A theorem prover for Boolean BI

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.

[1]  Peter W. O'Hearn,et al.  Symbolic Execution with Separation Logic , 2005, APLAS.

[2]  Kai Brünnler,et al.  Deep sequent systems for modal logic , 2009, Arch. Math. Log..

[3]  Dominique Larchey-Wendling,et al.  Expressivity properties of boolean BI through relational models , 2006 .

[4]  Peter W. O'Hearn,et al.  Shape Analysis for Composite Data Structures , 2007, CAV.

[5]  Viktor Vafeiadis,et al.  A Marriage of Rely/Guarantee and Separation Logic , 2007, CONCUR.

[6]  Didier Galmiche,et al.  Semantic Labelled Tableaux for propositional BI (without bottom) , 2003 .

[7]  Bor-Yuh Evan Chang,et al.  Relational inductive shape analysis , 2008, POPL '08.

[8]  Matthew J. Parkinson,et al.  jStar: towards practical verification for java , 2008, OOPSLA.

[9]  James Brotherston,et al.  Undecidability of Propositional Separation Logic and Its Neighbours , 2010, 2010 25th Annual IEEE Symposium on Logic in Computer Science.

[10]  Andrey Rybalchenko,et al.  Separation logic + superposition calculus = heap theorem prover , 2011, PLDI '11.

[11]  Stéphane Demri,et al.  On the almighty wand , 2012, Inf. Comput..

[12]  Wei-Ngan Chin,et al.  Enhancing Program Verification with Lemmas , 2008, CAV.

[13]  Tjark Weber Towards Mechanized Program Verification with Separation Logic , 2004, CSL.

[14]  Dominique Larchey-Wendling,et al.  Exploring the relation between Intuitionistic BI and Boolean BI: an unexpected embedding , 2009, Math. Struct. Comput. Sci..

[15]  Nuel Belnap,et al.  Display logic , 1982, J. Philos. Log..

[16]  Michael Norrish,et al.  Types, bytes, and separation logic , 2007, POPL '07.

[17]  Lars Birkedal,et al.  Local reasoning about a copying garbage collector , 2004, POPL '04.

[18]  Peter W. O'Hearn,et al.  Beyond Reachability: Shape Abstraction in the Presence of Pointer Arithmetic , 2006, SAS.

[19]  Hongseok Yang,et al.  An Example of Local Reasoning in BI Pointer Logic: the Schorr−Waite Graph Marking Algorithm , 2001 .

[20]  Akinori Yonezawa,et al.  Formal Verification of the Heap Manager of an Operating System Using Separation Logic , 2006, ICFEM.

[21]  Peter W. O'Hearn,et al.  Smallfoot: Modular Automatic Assertion Checking with Separation Logic , 2005, FMCO.

[22]  Lars Birkedal,et al.  Ynot: dependent types for imperative programs , 2008, ICFP.

[23]  Didier Galmiche,et al.  Semantic Labelled Tableaux for Propositional BI , 2003, J. Log. Comput..

[24]  James Brotherston,et al.  A Unified Display Proof Theory for Bunched Logic , 2010, MFPS.

[25]  David J. Pym,et al.  The semantics and proof theory of the logic of bunched implications , 2002, Applied logic series.

[26]  Rajeev Goré,et al.  Cut-elimination and proof-search for bi-intuitionistic logic using nested sequents , 2008, Advances in Modal Logic.

[27]  Sungwoo Park,et al.  The Inverse Method for the Logic of Bunched Implications , 2005, LPAR.

[28]  Peter W. O'Hearn,et al.  A Local Shape Analysis Based on Separation Logic , 2006, TACAS.

[29]  Adam Chlipala,et al.  Effective interactive proofs for higher-order imperative programs , 2009, ICFP.

[30]  Nuel Belnap,et al.  Linear Logic Displayed , 1989, Notre Dame J. Formal Log..

[31]  Didier Galmiche,et al.  Proof-Search and Countermodel Generation in Propositional BI Logic , 2001, TACS.

[32]  Frank Piessens,et al.  VeriFast: Imperative Programs as Proofs , 2010 .

[33]  John C. Reynolds,et al.  Separation logic: a logic for shared mutable data structures , 2002, Proceedings 17th Annual IEEE Symposium on Logic in Computer Science.

[34]  Ryo Kashima,et al.  Cut-free sequent calculi for some tense logics , 1994, Stud Logica.

[35]  Didier Galmiche,et al.  Tableaux and Resource Graphs for Separation Logic , 2010, J. Log. Comput..

[36]  Edmund M. Clarke,et al.  Arithmetic Strengthening for Shape Analysis , 2007, SAS.

[37]  Rajeev Goré,et al.  On the Correspondence between Display Postulates and Deep Inference in Nested Sequent Calculi for Tense Logics , 2011, Log. Methods Comput. Sci..

[38]  David J. Pym,et al.  The semantics of BI and resource tableaux , 2005, Mathematical Structures in Computer Science.

[39]  Rajeev Goré,et al.  Taming Displayed Tense Logics Using Nested Sequents with Deep Inference , 2009, TABLEAUX.

[40]  Andrew McCreight,et al.  Practical Tactics for Separation Logic , 2009, TPHOLs.

[41]  J. Brotherston A Cut-Free Proof Theory for Boolean BI ( via Display Logic ) , 2009 .

[42]  Peter W. O'Hearn,et al.  A Decidable Fragment of Separation Logic , 2004, FSTTCS.

[43]  Peter W. O'Hearn,et al.  BI as an assertion language for mutable data structures , 2001, POPL '01.

[44]  Peter W. O'Hearn,et al.  The Logic of Bunched Implications , 1999, Bulletin of Symbolic Logic.

[45]  Dominique Larchey-Wendling,et al.  The Undecidability of Boolean BI through Phase Semantics , 2010, 2010 25th Annual IEEE Symposium on Logic in Computer Science.