Automatic verification of pointer programs using monadic second-order logic
Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
BI as an assertion language for mutable data structures
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Separation Logic: A Logic for Shared Mutable Data Structures
LICS '02 Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science
Computability and Complexity Results for a Spatial Assertion Language for Data Structures
FST TCS '01 Proceedings of the 21st Conference on Foundations of Software Technology and Theoretical Computer Science
TVLA: A System for Implementing Static Analyses
SAS '00 Proceedings of the 7th International Symposium on Static Analysis
First-order logic with two variables and unary temporal logic
Information and Computation - Special issue: LICS'97
Elimination of spatial connectives in static spatial logics
Theoretical Computer Science - Expressiveness in concurrency
A Theory of Singly-Linked Lists and its Extensible Decision Procedure
SEFM '06 Proceedings of the Fourth IEEE International Conference on Software Engineering and Formal Methods
Context logic as modal logic: completeness and parametric inexpressivity
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Expressiveness and complexity of graph logic
Information and Computation
Quantitative Separation Logic and Programs with Lists
IJCAR '08 Proceedings of the 4th international joint conference on Automated Reasoning
CSL '08 Proceedings of the 22nd international workshop on Computer Science Logic
Separating Graph Logic from MSO
FOSSACS '09 Proceedings of the 12th International Conference on Foundations of Software Science and Computational Structures: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Beyond Shapes: Lists with Ordered Data
FOSSACS '09 Proceedings of the 12th International Conference on Foundations of Software Science and Computational Structures: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Tableaux and Resource Graphs for Separation Logic
Journal of Logic and Computation
Monadic second-order logics with cardinalities
ICALP'03 Proceedings of the 30th international conference on Automata, languages and programming
Undecidability of Propositional Separation Logic and Its Neighbours
LICS '10 Proceedings of the 2010 25th Annual IEEE Symposium on Logic in Computer Science
The Undecidability of Boolean BI through Phase Semantics
LICS '10 Proceedings of the 2010 25th Annual IEEE Symposium on Logic in Computer Science
Tractable reasoning in a fragment of separation logic
CONCUR'11 Proceedings of the 22nd international conference on Concurrency theory
The complexity of abduction for separated heap abstractions
SAS'11 Proceedings of the 18th international conference on Static analysis
A logic of reachable patterns in linked data-structures
FOSSACS'06 Proceedings of the 9th European joint conference on Foundations of Software Science and Computation Structures
Verifying programs with dynamic 1-selector-linked structures in regular model checking
TACAS'05 Proceedings of the 11th international conference on Tools and Algorithms for the Construction and Analysis of Systems
A decidable fragment of separation logic
FSTTCS'04 Proceedings of the 24th international conference on Foundations of Software Technology and Theoretical Computer Science
Adjunct elimination through games in static ambient logic
FSTTCS'04 Proceedings of the 24th international conference on Foundations of Software Technology and Theoretical Computer Science
Proof search for propositional abstract separation logics via labelled sequents
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
A proof system for separation logic with magic wand
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Hi-index | 0.00 |
We investigate decidability, complexity and expressive power issues for (first-order) separation logic with one record field (herein called SL) and its fragments. SL can specify properties about the memory heap of programs with singly-linked lists. Separation logic with two record fields is known to be undecidable by reduction of finite satisfiability for classical predicate logic with one binary relation. Surprisingly, we show that second-order logic is as expressive as SL and as a by-product we get undecidability of SL. This is refined by showing that SL without the separating conjunction is as expressive as SL, whence undecidable too. As a consequence, in SL the separating implication (also known as the magic wand) can simulate the separating conjunction. By contrast, we establish that SL without the magic wand is decidable, and we prove a non-elementary complexity by reduction from satisfiability for the first-order theory over finite words. This result is extended with a bounded use of the magic wand that appears in Hoare-style rules. As a generalization, it is shown that kSL, the separation logic over heaps with k=1 record fields, is equivalent to kSO, the second-order logic over heaps with k record fields.