Checking Entailment Between Separation Logic Symbolic Heaps: Beyond Connected and Established Systems

We show that the entailment problem φ |= ψ in Separation Logic is decidable for separated conjunctions of atoms φ and ψ, that contain predicate symbols whose interpretation is given inductively by a set of recursive rules. The proof is based on a reduction to a class of entailment problems shown to be decidable in [9]. In contrast with the works of [9, 12, 13], the considered inductive rules may introduce memory locations without allocating them, which strongly extends the class of structures that can be constructed. Moreover, the result is more general than the one given in [8], because the conditions on the inductive rules corresponding to the left-hand side of the considered entailment are strongly relaxed: it is only assumed that the rules are progressing, i.e. that they allocate exactly one memory location.

[1]  Nicolas Peltier,et al.  Entailment Checking in Separation Logic with Inductive Definitions is 2-EXPTIME hard , 2020, LPAR.

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

[3]  Samin Ishtiaq,et al.  SLAyer: Memory Safety for Systems-Level Code , 2011, CAV.

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

[5]  Tomás Vojnar,et al.  Predator: A Practical Tool for Checking Manipulation of Dynamic Data Structures Using Separation Logic , 2011, CAV.

[6]  Nicolas Peltier,et al.  Decidable Entailments in Separation Logic with Inductive Definitions: Beyond Establishment , 2021, CSL.

[7]  Florian Zuleger,et al.  Effective Entailment Checking for Separation Logic with Inductive Definitions , 2019, TACAS.

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

[9]  Peter W. O'Hearn,et al.  Moving Fast with Software Verification , 2015, NFM.

[10]  Nicolas Peltier,et al.  Entailment is Undecidable for Symbolic Heap Separation Logic Formulæ with Non-Established Inductive Rules , 2022, Inf. Process. Lett..

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

[12]  Florian Zuleger,et al.  Beyond Symbolic Heaps: Deciding Separation Logic With Inductive Definitions , 2020, LPAR.

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

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