🤖 AI Summary
Concurrent Separation Logic (CSL) and its permission-region extension (CSLPerm) enable fine-grained reasoning about concurrent programs but lack automation and compositional verification support. This paper introduces CoSl, the first automated system supporting compositional verification of both function calls and concurrent threads. CoSl models memory disjointness using strong and weak separation conjunctions, fractional permissions, and explicit arithmetic constraints; it introduces a novel entailment mechanism for deriving heap residuals under arithmetic constraints; and it tightly integrates the frame rule with region-based permission management to achieve permission-aware modular verification. The CoSl prototype successfully verifies 10 challenging concurrent programs—including benchmarks beyond the capabilities of existing approaches—demonstrating superior precision and automation compared to state-of-the-art tools.
📝 Abstract
Concurrent separation logic with fractional permissions (CSLPerm) provides a promising reasoning system to verify most complex sequential and concurrent fine-grained programs. The logic with strong and weak separating conjunctions offers a solid foundation for producing concise and precise proofs. However, it lacks automation and compositionality support. This paper addresses this limitation by introducing a compositional verification system for concurrent programs that manipulate regions of shared memory. The centre of our system is novel logical principles and an entailment procedure that can infer the residual heaps in the frame rule for a fragment of CSL-Perm with explicit arithmetical constraints for memory heaps' disjointness. This procedure enables the compositional reasoning for concurrent threads and function calls. We have implemented the proposal in a prototype tool called CoSl, tested it with 10 challenging concurrent programs, including those beyond the state-of-the-art, and confirmed the advantage of our approach.