From Separation Logic to First-Order Logic

Separation logic is a spatial logic for reasoning locally about heap structures. A decidable fragment of its assertion language was presented in [1], based on a bounded model property. We exploit this property to give an encoding of this fragment into a first-order logic containing only the propositional connectives, quantification over the natural numbers and equality. This result is the first translation from Separation Logic into a logic which does not depend on the heap, and provides a direct decision procedure based on well-studied algorithms for first-order logic. Moreover, our translation is compositional in the structure of formulae, whilst previous results involved enumerating either heaps or formulae arising from the bounded model property.

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

[2]  Ramesh Hariharan,et al.  FST TCS 2001: Foundations of Software Technology and Theoretical Computer Science , 2001, Lecture Notes in Computer Science.

[3]  Xavier Leroy,et al.  Proceedings of the 31st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2004, Venice, Italy, January 14-16, 2004 , 2004, POPL.

[4]  Luca Cardelli,et al.  Deciding validity in a spatial logic for trees , 2003, TLDI '03.

[5]  S. Presentation Separation logic preserves the expressive power of classical logic , 2003 .

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

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

[8]  Robin Milner,et al.  On Observing Nondeterminism and Concurrency , 1980, ICALP.

[9]  Luca Cardelli,et al.  A spatial logic for concurrency - II , 2004, Theor. Comput. Sci..

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

[11]  L. Cardelli,et al.  Querying Trees with Pointers , 2003 .

[12]  Luca Cardelli,et al.  A spatial logic for concurrency (part I) , 2003, Inf. Comput..

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

[14]  Silvano Dal-Zilio,et al.  A logic you can count on , 2004, POPL.

[15]  Kousha Etessami,et al.  Verifying Probabilistic Procedural Programs , 2004, FSTTCS.

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

[17]  Luca Cardelli,et al.  A Spatial Logic for Concurrency (Part II) , 2002, CONCUR.

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

[19]  Matthew Hague Static Checkers for Tree Structures and Heaps , 2004 .

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