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
Reasoning about iterators with separation logic
Proceedings of the 2006 conference on Specification and verification of component-based systems
Relational inductive shape analysis
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Enhancing Program Verification with Lemmas
CAV '08 Proceedings of the 20th international conference on Computer Aided Verification
jStar: towards practical verification for java
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
A Fresh Look at Separation Algebras and Share Accounting
APLAS '09 Proceedings of the 7th Asian Symposium on Programming Languages and Systems
Tableaux and Resource Graphs for Separation Logic
Journal of Logic and Computation
Shape analysis for composite data structures
CAV'07 Proceedings of the 19th international conference on Computer aided verification
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
Extended alias type system using separating implication
Proceedings of the 7th ACM SIGPLAN workshop on Types in language design and implementation
Infer: an automatic program verifier for memory safety of C programs
NFM'11 Proceedings of the Third international conference on NASA Formal methods
The relationship between separation logic and implicit dynamic frames
ESOP'11/ETAPS'11 Proceedings of the 20th European conference on Programming languages and systems: part of the joint European conferences on theory and practice of software
Separation logic + superposition calculus = heap theorem prover
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Smallfoot: modular automatic assertion checking with separation logic
FMCO'05 Proceedings of the 4th international conference on Formal Methods for Components and Objects
Symbolic execution with separation logic
APLAS'05 Proceedings of the Third Asian conference on Programming Languages and Systems
Information and Computation
From separation logic to first-order logic
FOSSACS'05 Proceedings of the 8th international conference on Foundations of Software Science and Computation Structures
A decidable fragment of separation logic
FSTTCS'04 Proceedings of the 24th international conference on Foundations of Software Technology and Theoretical Computer Science
A local shape analysis based on separation logic
TACAS'06 Proceedings of the 12th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Arithmetic strengthening for shape analysis
SAS'07 Proceedings of the 14th international conference on Static Analysis
A theorem prover for Boolean BI
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The ramifications of sharing in data structures
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Predator: a tool for verification of low-level list manipulation
TACAS'13 Proceedings of the 19th international conference on Tools and Algorithms for the Construction and Analysis of Systems
SeLoger: a tool for graph-based reasoning in separation logic
CAV'13 Proceedings of the 25th international conference on Computer Aided Verification
Hi-index | 0.00 |
Separation logic is an extension of Hoare logic which is acknowledged as an enabling technology for large-scale program verification. It features two new logical connectives, separating conjunction and separating implication, but most of the applications of separation logic have exploited only separating conjunction without considering separating implication. Nevertheless the power of separating implication has been well recognized and there is a growing interest in its use for program verification. This paper develops a proof system for full separation logic which supports not only separating conjunction but also separating implication. The proof system is developed in the style of sequent calculus and satisfies the admissibility of cut. The key challenge in the development is to devise a set of inference rules for manipulating heap structures that ensure the completeness of the proof system with respect to separation logic. We show that our proof of completeness directly translates to a proof search strategy.