Systematic Design of Separation Logics
Roberto Bruni, Lorenzo Gazzella, Roberta Gori

TL;DR
This paper introduces a systematic methodology for designing separation logics that embed the locality principle by construction, enabling modular heap analysis and broadening the scope of logical systems for program verification.
Contribution
It proposes a parametric, calculational approach to derive local axioms and frame rules for heap-manipulating programs, improving flexibility and applicability over existing methods.
Findings
Derives minimal heap and conditions for heap primitives.
Produces logical systems for correctness and incorrectness analysis.
Designs a novel proof system for inferring necessary preconditions.
Abstract
Thanks to the locality principle, separation logics support modular, scalable analysis of large codebases by relying on local axioms and frame rules to focus only on the heap fragments required for verification. However, depending on the direction (forward vs. backward) and sense of approximation (over vs. under) of the analysis, designing the corresponding proof systems can require some ingenuity. In his work on the calculational design of program logics, Patrick Cousot outlines a methodology for deriving proof systems directly from program semantics using abstract interpretation, covering both correctness and incorrectness analyses. Unfortunately, when applied to heap-manipulating programs, Cousot's calculational approach cannot handle the locality principle, because it does not provide a calculational way to derive frame rules and produces axioms that refer to the global heap. In…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
