VeriFast's separation logic: a logic without laters for modular verification of fine-grained concurrent programs
Bart Jacobs
TL;DR
The paper addresses how to verify fine-grained concurrent programs in a modular way without relying on the later modality. It introduces a formalization of VeriFast's ghost-code-based logic with atomic spaces and fractional ownership, and proves its soundness. It discusses the trade-offs with Iris and related later-less approaches (Nola, Lilo), clarifying capabilities and limitations. The results support scalable, semi-automated verification of concurrent C/Java/Rust programs and illuminate practical design choices for invariant reasoning without laters.
Abstract
VeriFast is one of the leading tools for semi-automated modular formal program verification. A central feature of VeriFast is its support for higher-order ghost code, which enables its support for expressively specifying fine-grained concurrent modules, without the need for the later modality. We present the first formalization and soundness proof for this aspect of VeriFast's logic, and we compare it both to Iris, a state-of-the-art logic for fine-grained concurrency which features the later modality, as well as to some recent proposals for Iris-like reasoning without the later modality.
