Affiliation:
1. Cornell University, Ithaca, USA
Abstract
Separation logic’s compositionality and local reasoning properties have led to significant advances in scalable static analysis. But program analysis has new challenges—many programs display
computational effects
and, orthogonally, static analyzers must handle
incorrectness
too. We present Outcome Separation Logic (OSL), a program logic that is sound for both correctness and incorrectness reasoning in programs with varying effects. OSL has a frame rule—just like separation logic—but uses different underlying assumptions that open up local reasoning to a larger class of properties than can be handled by any single existing logic.
Building on this foundational theory, we also define symbolic execution algorithms that use bi-abduction to derive specifications for programs with effects. This involves a new
tri-abduction
procedure to analyze programs whose execution branches due to effects such as nondeterministic or probabilistic choice. This work furthers the compositionality promised by separation logic by opening up the possibility for greater reuse of analysis tools across two dimensions: bug-finding vs verification in programs with varying effects.
Publisher
Association for Computing Machinery (ACM)
Reference54 articles.
1. Flavio Ascari Roberto Bruni Roberta Gori and Francesco Logozzo. 2023. Sufficient Incorrectness Logic: SIL and Separation SIL. arxiv:2310.18156.
2. Murat Baktiev. 2006. Permutation Semantics of Separation Logic. Master’s thesis. Saarland University. https://www.ps.uni-saarland.de/Publications/documents/baktiev2006.pdf
3. A Bunched Logic for Conditional Independence
4. A separation logic for negative dependence
5. Relational Reasoning via Probabilistic Coupling