Navarro Pérez, JA;
Separation logic + superposition calculus = heap theorem prover.
Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI).
(pp. 556 - 566).
Program analysis and verification tools crucially depend on the ability to symbolically describe and reason about sets of program behaviors. Separation logic provides a promising foundation for dealing with heap manipulating programs, while the development of practical automated deduction/satisfiability checking tools for separation logic is a challenging problem. In this paper, we present an efficient, sound and complete automated theorem prover for checking validity of entailments between separation logic formulas with list segment predicates. Our theorem prover integrates separation logic inference rules that deal with list segments and a superposition calculus to deal with equality/aliasing between memory locations. The integration follows a modular combination approach that allows one to directly incorporate existing advanced techniques for first-order reasoning with equality, as well as account for additional theories, e.g., linear arithmetic, using extensions of superposition. An experimental evaluation of our entailment prover indicates speedups of several orders of magnitude with respect to the available state-of-the-art tools. © 2011 ACM.
|Title:||Separation logic + superposition calculus = heap theorem prover|
|Open access status:||An open access version is available from UCL Discovery|
|Additional information:||This is the authors' accepted version of this published article.|
|UCL classification:||UCL > School of BEAMS > Faculty of Engineering Science > Computer Science|
Archive Staff Only