一句话:提出从程序语义系统推导内嵌局部性原理的局部公理与框架规则的方法。
分离逻辑依赖局部性原理与框架规则,对大型代码库进行模块化、可扩展的堆程序分析;但针对前向/后向及过近似/欠近似分析,设计相应证明系统往往需要技巧。Cousot 的计算式程序逻辑设计可借抽象解释从程序语义导出证明系统,却无法处理堆操作中的局部性,产生的公理涉及全局堆。本文提出一种通用方法,将局部性内建于所推导的局部公理中:针对堆操作原语,可导出所需的最小堆及相应前后条件,并配备无需额外语法侧条件的通用框架规则。该方法对一组语义闭包性质参数化,支持不同内存模型,促进过近似与欠近似之间的规则复用,并能导出比 SL、ISL、SepSIL 等已有逻辑更广的三元组,还用于设计推断必要前置条件的新证明系统。
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.
@article{paperbot12113,
title = {Systematic Design of Separation Logics},
author = {Roberto Bruni and Lorenzo Gazzella and Roberta Gori},
journal = {Proceedings of the ACM on Programming Languages},
volume = {10},
number = {OOPSLA2},
year = {2026},
doi = {10.1145/3839540}
}