Tableaux and Resource Graphs for Separation Logic

Separation logic (SL) is often presented as an assertion language for reasoning about mutable data structures. As recent results about verification in SL have mainly been achieved from a model-checking point of view, our aim in this article is to study SL from a complementary proof-theoretic perspective in order to provide results about proof search in SL. We begin our study with a fragment of SL, denoted SLP, where first-order quantifiers, variables and equality are removed. We first define specific structures, called resource graphs, that capture SLP models by considering heaps as resources via a labelling process. We then provide a tableau calculus that allows us to build such resource graphs from which either proofs, or countermodels can be generated. We finally prove soundess, completeness and termination of our tableau calculus before discussing extensions to various fragments of SL (including full SL) and the related decidability issues.

[1]  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.

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

[3]  Luca Cardelli,et al.  A Spatial Logic for Querying Graphs , 2002, ICALP.

[4]  Peter W. O'Hearn,et al.  Permission accounting in separation logic , 2005, POPL '05.

[5]  Silvio Ranise,et al.  Applying Light-Weight Theorem Proving to Debugging and Verifying Pointer Programs , 2003, FTP.

[6]  Nicolas Biri,et al.  Models and Separation Logics for Resource Trees , 2007, J. Log. Comput..

[7]  Luca Cardelli,et al.  TQL: A Query Language for Semistructured Data Based on the Ambient Logic , 2003 .

[8]  D. Galmiche,et al.  Characterizing Provability in BI ’ s Pointer Logic through Resource Graphs , 2005 .

[9]  Luca Cardelli,et al.  Anytime, anywhere: modal logics for mobile ambients , 2000, POPL '00.

[10]  Peter W. O'Hearn,et al.  Computability and Complexity Results for a Spatial Assertion Language for Data Structures , 2001, APLAS.

[11]  Peter W. O'Hearn,et al.  Local Reasoning about Programs that Alter Data Structures , 2001, CSL.

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

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

[14]  Stéphane Demri,et al.  Reasoning about sequences of memory states , 2009, Ann. Pure Appl. Log..

[15]  Tobias Nipkow,et al.  Proving Pointer Programs in Higher-Order Logic , 2003, CADE.

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

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

[18]  Étienne Lozes,et al.  Elimination of spatial connectives in static spatial logics , 2005, Theor. Comput. Sci..

[19]  Nils Klarlund,et al.  Automatic verification of pointer programs using monadic second-order logic , 1997, PLDI '97.

[20]  Melvin Fitting,et al.  First-Order Logic and Automated Theorem Proving , 1990, Graduate Texts in Computer Science.

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

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

[23]  Philippa Gardner,et al.  Context logic and tree update , 2005, POPL '05.

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

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