Heap-Dependent expressions in separation logic

  • Authors:
  • Jan Smans;Bart Jacobs;Frank Piessens

  • Affiliations:
  • Katholieke Universiteit Leuven, Belgium;Katholieke Universiteit Leuven, Belgium;Katholieke Universiteit Leuven, Belgium

  • Venue:
  • FMOODS'10/FORTE'10 Proceedings of the 12th IFIP WG 6.1 international conference and 30th IFIP WG 6.1 international conference on Formal Techniques for Distributed Systems
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

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.