Abstract
While separation logic is acknowledged as an enabling technology for large-scale program verification, most of the existing verification tools use only a fragment of separation logic that excludes separating implication. As the first step towards a verification tool using full separation logic, we develop a nested sequent calculus for Boolean BI (Bunched Implications), the underlying theory of separation logic, as well as a theorem prover based on it. A salient feature of our nested sequent calculus is that its sequent may have not only smaller child sequents but also multiple parent sequents, thus producing a graph structure of sequents instead of a tree structure. Our theorem prover is based on backward search in a refinement of the nested sequent calculus in which weakening and contraction are built into all the inference rules. We explain the details of designing our theorem prover and provide empirical evidence of its practicality.
Supplemental Material
- N. Belnap. Display logic. Journal of Philosophical Logic, 11: 375--417, 1982.Google Scholar
Cross Ref
- N. Belnap. Linear logic displayed. Notre Dame Journal of Formal Logic, 31: 14--25, 1990.Google Scholar
Cross Ref
- J. Berdine, C. Calcagno, and P. W. O'Hearn. A decidable fragment of separation logic. Proc. FSTTCS, pages 97--109, 2004. Google Scholar
Digital Library
- Berdine, Calcagno, and O'Hearn}berdine2005smallfootJ. Berdine, C. Calcagno, and P. W. O'Hearn. Smallfoot: Modular automatic assertion checking with separation logic. Proc. FMCO, pages 115--137, 2005\natexlaba. Google Scholar
Digital Library
- Berdine, Calcagno, and O'Hearn}berdine2005symbolicJ. Berdine, C. Calcagno, and P. W. O'Hearn. Symbolic execution with separation logic. Proc. APLAS, pages 52--68, 2005\natexlabb. Google Scholar
Digital Library
- J. Berdine, C. Calcagno, B. Cook, D. Distefano, P. W. O'Hearn, T. Wies, and H. Yang. Shape analysis for composite data structures. Proc. CAV, pages 178--192, 2007. Google Scholar
Digital Library
- L. Birkedal, N. Torp-Smith, and J. C. Reynolds. Local reasoning about a copying garbage collector. Proc. POPL, pages 220--231, 2004. Google Scholar
Digital Library
- R. Brochenin, S. Demri, and É. Lozes. On the almighty wand. Proc. CSL, pages 323--338, 2008. Google Scholar
Digital Library
- J. Brotherston. A cut-free proof theory for boolean BI (via display logic). Technical Report DTR09--13, Imperial College London, 2009.Google Scholar
- J. Brotherston. A unified display proof theory for bunched logic. Proc. MFPS, pages 197--211, 2010. Google Scholar
Digital Library
- J. Brotherston and M. Kanovich. Undecidability of propositional separation logic and its neighbours. Proc. LICS, pages 130--139, 2010. Google Scholar
Digital Library
- K. Brünnler. Deep sequent systems for modal logic. Proc. Advances in Modal Logic, pages 107--119, 2006.Google Scholar
- B.-Y. E. Chang and X. Rival. Relational inductive shape analysis. Proc. POPL, pages 247--260, 2008. Google Scholar
Digital Library
- D. Distefano and M. J. Parkinson. jStar: towards practical verification for Java. Proc. OOPSLA, pages 213--226, 2008. Google Scholar
Digital Library
- D. Distefano, P. W. O'Hearn, and H. Yang. A local shape analysis based on separation logic. Proc. TACAS, pages 287--302, 2006. Google Scholar
Digital Library
- K. Donnelly, T. Gibson, N. Krishnaswami, S. Magill, and S. Park. The inverse method for the logic of bunched implications. Proc. LPAR, pages 466--480, 2004.Google Scholar
- D. Galmiche and D. Larchey-Wendling. Expressivity properties of boolean BI through relational models. Proc. FSTTCS, pages 357--368, 2006. Google Scholar
Digital Library
- D. Galmiche and D. Méry. Proof-search and countermodel generation in propositional BI logic. Proc. TACS, pages 263--282, 2001. Google Scholar
Digital Library
- D. Galmiche and D. Méry. Semantic labelled tableaux for propositional BI (without bottom). Journal of Logic and Computation, 13: 70--753, 2003.Google Scholar
Cross Ref
- D. Galmiche and D. Méry. Tableaux and resource graphs for separation logic. Journal of Logic and Computation, 20: 189--231, 2010. Google Scholar
Digital Library
- D. Galmiche, D. Méry, and D. J. Pym. The semantics of BI and resource tableaux. Mathematical Structures in Computer Science, 15: 1033--1088, 2005. Google Scholar
Digital Library
- R. Goré, L. Postniece, and A. Tiu. Cut-elimination and proof-search for bi-intuitionistic logic using nested sequents. Proc. Advances in Modal Logic, pages 43--66, 2008.Google Scholar
- R. Goré, L. Postniece, and A. Tiu. Taming displayed tense logics using nested sequents with deep inference. Proc. TABLEAUX, pages 189--204, 2009. Google Scholar
Digital Library
- R. Goré, L. Postniece, and A. Tiu. On the correspondence between display postulates and deep inference in nested sequent calculi for tense logics. Logical Methods in Computer Science, 7: 1--38, 2011.Google Scholar
Cross Ref
- S. S. Ishtiaq and P. W. O'Hearn. BI as an assertion language for mutable data structures. Proc. POPL, pages 14--26, 2001. Google Scholar
Digital Library
- B. Jacobs, J. Smans, and F. Piessens. VeriFast: Imperative programs as proofs. In Proc. VSTTE, pages 59--68, 2010.Google Scholar
- R. Kashima. Cut-free sequent calculi for some tense logics. Studia Logica, 53 (1): 119--136, 1994.Google Scholar
Cross Ref
- D. Larchey-Wendling and D. Galmiche. Exploring the relation between intuitionistic BI and boolean BI: an unexpected embedding. Mathematical Structures in Computer Science, 19: 435--500, 2009. Google Scholar
Digital Library
- D. Larchey-Wendling and D. Galmiche. The undecidability of boolean BI through phase semantics. Proc. LICS, pages 140--149, 2010. Google Scholar
Digital Library
- S. Magill, J. Berdine, E. M. Clarke, and B. Cook. Arithmetic strengthening for shape analysis. Proc. SAS, pages 419--436, 2007. Google Scholar
Digital Library
- N. Marti, R. Affeldt, and A. Yonezawa. Formal verification of the heap manager of an operating system using separation logic. Proc. ICFEM, pages 400--419, 2006. Google Scholar
Digital Library
- J. A. Navarro Pérez and A. Rybalchenko. Separation logic superposition calculus = heap theorem prover. Proc. PLDI, pages 556--566. ACM, 2011. Google Scholar
Digital Library
- H. H. Nguyen and W.-N. Chin. Enhancing program verification with lemmas. Proc. CAV, pages 355--369, 2008. Google Scholar
Digital Library
- P. W. O'Hearn and D. J. Pym. The logic of bunched implications. Bulletin of Symbolic Logic, 5: 215--244, 1999.Google Scholar
Cross Ref
- D. J. Pym. The Semantics and Proof Theory of the Logic of Bunched Implications. Kluwer Academic Pub, 2002.Google Scholar
Cross Ref
- J. C. Reynolds. Separation logic: A logic for shared mutable data structures. Proc. LICS, pages 55--74, 2002. Google Scholar
Digital Library
- V. Vafeiadis and M. J. Parkinson. A marriage of rely/guarantee and separation logic. Proc. CONCUR, pages 256--271, 2007. Google Scholar
Digital Library
- H. Yang. An example of local reasoning in BI pointer logic: the Schorr-Waite graph marking algorithm. Proceedings of the 1st Workshop on Semantics, Program Analysis, and Computing Environments for Memory Management, pages 41--68, 2001.Google Scholar
Index Terms
A theorem prover for Boolean BI
Recommendations
A theorem prover for Boolean BI
POPL '13: Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languagesWhile separation logic is acknowledged as an enabling technology for large-scale program verification, most of the existing verification tools use only a fragment of separation logic that excludes separating implication. As the first step towards a ...
Verified heap theorem prover by paramodulation
ICFP '12We present VeriStar, a verified theorem prover for a decidable subset of separation logic. Together with VeriSmall [3], a proved-sound Smallfoot-style program analysis for C minor, VeriStar demonstrates that fully machine-checked static analyses ...
Verified heap theorem prover by paramodulation
ICFP '12: Proceedings of the 17th ACM SIGPLAN international conference on Functional programmingWe present VeriStar, a verified theorem prover for a decidable subset of separation logic. Together with VeriSmall [3], a proved-sound Smallfoot-style program analysis for C minor, VeriStar demonstrates that fully machine-checked static analyses ...







Comments