Systematic Design of Separation Logics
Open Access
- 1 October 2026
- journal article
- Published by Association for Computing Machinery (ACM) in Proceedings of the ACM on Programming Languages
- Vol. 10 (OOPSLA2) , 2605-2633
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 this paper, we propose a general methodology for systematically deriving local axioms in which the locality principle is embedded by construction. For heap-manipulating primitives, we can derive the minimal required heap and the corresponding pre- and postconditions, complemented by universal frame rules without additional syntactic side conditions. Our method is parametric w.r.t. a set of semantic closure properties that are exploited to design local axioms; it can deal with different memory models; it favors the reuse of many inference rules across over- and under-approximation; and it produces logical systems capable of deriving a broader range of triples w.r.t. existing, cleverly designed, program logics for (in)correctness, ranging from Separation Logic (SL) and Incorrectness Separation Logic (ISL) to Separation Sufficient Incorrectness Logic (SepSIL). Furthermore, we demonstrate the flexibility of our methodology by applying it to design a novel proof system for inferring necessary preconditions with separation logic.Keywords
All Related Versions
Funding Information
- Ministero dell'Università e della Ricerca (P2022HXNSC)
- NextGenerationEU (PE00000014 - CUP H73C2200089001)
- INdAM-GNCS (CUP E53C22001930001)
This publication has 50 references indexed in Scilit:
- On Algebra of Program Correctness and Incorrectness2021
- Local Reasoning About the Presence of Bugs: Incorrectness Separation Logic2020
- Bringing Order to the Separation Logic Jungle2017
- Moving Fast with Software Verification2015
- Reverse Hoare Logic2011
- The Next 700 Separation LogicsLecture Notes in Computer Science, 2010
- Footprints in Local Reasoning2007
- Hoare Logic for NanoJava: Auxiliary Variables, Side Effects, and Virtual Methods RevisitedLecture Notes in Computer Science, 2002
- A Semantic Basis for Local Reasoning2002
- Local Reasoning about Programs that Alter Data Structures2001