Decision Procedure for Entailment of Symbolic Heaps with Arrays

This paper gives a decision procedure for the validity of en- tailment of symbolic heaps in separation logic with Presburger arithmetic and arrays. The correctness of the decision procedure is proved under the condition that sizes of arrays in the succedent are not existentially bound. This condition is independent of the condition proposed by the CADE-2017 paper by Brotherston et al, namely, one of them does not imply the other. For improving efficiency of the decision procedure, some techniques are also presented. The main idea of the decision procedure is a novel translation of an entailment of symbolic heaps into a formula in Presburger arithmetic, and to combine it with an external SMT solver. This paper also gives experimental results by an implementation, which shows that the decision procedure works efficiently enough to use.

[1]  Radu Iosif,et al.  The Tree Width of Separation Logic with Recursive Definitions , 2013, CADE.

[2]  Victor Vianu,et al.  Invited articles section foreword , 2010, JACM.

[3]  Ruzica Piskac,et al.  Automating Separation Logic Using SMT , 2013, CAV.

[4]  Peter W. O'Hearn,et al.  Compositional Shape Analysis by Means of Bi-Abduction , 2011, JACM.

[5]  James Brotherston,et al.  Biabduction (and Related Problems) in Array Separation Logic , 2016, CADE.

[6]  Constantin Enea,et al.  Compositional entailment checking for a fragment of separation logic , 2014, Formal Methods in System Design.

[7]  Joël Ouaknine,et al.  Foundations for Decision Problems in Separation Logic with General Inductive Predicates , 2014, FoSSaCS.

[8]  Constantin Enea,et al.  A Logic-Based Framework for Reasoning about Composite Data Structures , 2009, CONCUR.

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

[10]  Henny B. Sipma,et al.  What's Decidable About Arrays? , 2006, VMCAI.

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

[12]  Joël Ouaknine,et al.  Tractable Reasoning in a Fragment of Separation Logic , 2011, CONCUR.

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

[14]  Shuvendu K. Lahiri,et al.  Back to the future: revisiting precise program verification using SMT solvers , 2008, POPL '08.

[15]  Tomás Vojnar,et al.  Deciding Entailments in Inductive Separation Logic with Tree Automata , 2014, ATVA.

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

[17]  Nikolaj Bjørner,et al.  Z3: An Efficient SMT Solver , 2008, TACAS.

[18]  Daisuke Kimura,et al.  Separation Logic with Monadic Inductive Definitions and Implicit Existentials , 2015, APLAS.

[19]  Constantin Enea,et al.  Compositional Invariant Checking for Overlaid and Nested Linked Lists , 2013, ESOP.

[20]  James Brotherston,et al.  A decision procedure for satisfiability in separation logic with inductive predicates , 2014, CSL-LICS.

[21]  Constantin Enea,et al.  Compositional Entailment Checking for a Fragment of Separation Logic , 2014, APLAS.