Satisfiability Modulo Heap-Based Programs

Conference paper

DOI: 10.1007/978-3-319-41528-4_21

Part of the Lecture Notes in Computer Science book series (LNCS, volume 9779)
Cite this paper as:
Le Q.L., Sun J., Chin WN. (2016) Satisfiability Modulo Heap-Based Programs. In: Chaudhuri S., Farzan A. (eds) Computer Aided Verification. CAV 2016. Lecture Notes in Computer Science, vol 9779. Springer, Cham


In this work, we present a semi-decision procedure for a fragment of separation logic with user-defined predicates and Presburger arithmetic. To check the satisfiability of a formula, our procedure iteratively unfolds the formula and examines the derived disjuncts. In each iteration, it searches for a proof of either satisfiability or unsatisfiability. Our procedure is further enhanced with automatically inferred invariants as well as detection of cyclic proof. We also identify a syntactically restricted fragment of the logic for which our procedure is terminating and thus complete. This decidable fragment is relatively expressive as it can capture a range of sophisticated data structures with non-trivial pure properties, such as size, sortedness and near-balanced. We have implemented the proposed solver and a new system for verifying heap-based programs. We have evaluated our system on benchmark programs from a software verification competition.


Decision procedures Satisfiability Separation logic Inductive predicates Cyclic proofs 

Copyright information

© Springer International Publishing Switzerland 2016

Authors and Affiliations

  1. 1.Singapore University of Technology and DesignSingaporeSingapore
  2. 2.National University of SingaporeSingaporeSingapore

Personalised recommendations