Abstract : Separation logic is a popular specification language for imperative programs where the heap can only be mentioned through points-to assertions. However, separation logic's take on assertions does not match well with the classical view of assertions as boolean, side effect-free, potentially heap-dependent expressions from the host programming language familiar to many developers. In this paper, we propose a variant of separation logic where side effect-free expressions from the host programming language, such as pointer dereferences and invocations of pure methods, can be used in assertions. We modify the symbolic execution-based verification algorithm used in Smallfoot to support mechanized checking of our variant of separation logic. We have implemented this algorithm in a tool and used the tool to verify some interesting programming patterns.
https://hal.inria.fr/hal-01055155 Contributor : Hal IfipConnect in order to contact the contributor Submitted on : Monday, August 11, 2014 - 4:31:35 PM Last modification on : Thursday, February 21, 2019 - 10:31:46 AM Long-term archiving on: : Wednesday, November 26, 2014 - 10:15:40 PM
Jan Smans, Bart Jacobs, Frank Piessens. Heap-Dependent Expressions in Separation Logic. Joint 12th IFIP WG 6.1 International Conference on Formal Methods for Open Object-Based Distributed Systems (FMOODS) / 30th IFIP WG 6.1 International Conference on Formal Techniques for Networked and Distributed Systems (FORTE), Jun 2010, Amsterdam, Netherlands. pp.170-185, ⟨10.1007/978-3-642-13464-7_14⟩. ⟨hal-01055155⟩