🤖 AI Summary
Concurrent program verification suffers from exponential blowup in proof size due to interleaving-induced complexity. Method: This paper proposes a novel, fully automated method to transform interleaving-dependent correctness proofs into thread-modular Owicki-Gries proofs. It synthesizes ghost variables to abstract critical interleaving behaviors, enabling modular and compact representation of concurrency dependencies. The approach integrates program logic reasoning, abstraction analysis, and ghost variable synthesis to formally extract and reconstruct interleaving information within the Owicki-Gries framework. Contribution/Results: Our method is the first to achieve fully automatic conversion from interleaving-based to thread-modular proofs. Experiments demonstrate substantial reduction in proof size, significant improvement in verification efficiency, and strong verifiability—yielding proofs directly usable for certificate generation in algorithmic verification tools.
📝 Abstract
Implementation bugs threaten the soundness of algorithmic software verifiers. Generating correctness certificates for correct programs allows for efficient independent validation of verification results, and thus helps to reveal such bugs. Automatic generation of small, compact correctness proofs for concurrent programs is challenging, as the correctness arguments may depend on the particular interleaving, which can lead to exponential explosion. We present an approach that converts an interleaving-based correctness proof, as generated by many algorithmic verifiers, into a thread-modular correctness proof in the style of Owicki and Gries. We automatically synthesize ghost variables that capture the relevant interleaving information, and abstract away irrelevant details. Our evaluation shows that the approach is efficient in practice and generates compact proofs, compared to a baseline.