Duck, G.J.Jaffar, J.Koh, N.C.H.COMPUTER SCIENCE2014-07-042014-07-042013Duck, G.J.,Jaffar, J.,Koh, N.C.H. (2013). Constraint-based program reasoning with heaps and separation. Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) 8124 LNCS : 282-298. ScholarBank@NUS Repository. <a href="https://doi.org/10.1007/978-3-642-40627-0_24" target="_blank">https://doi.org/10.1007/978-3-642-40627-0_24</a>978364240626303029743https://scholarbank.nus.edu.sg/handle/10635/78067This paper introduces a constraint language H for finite partial maps (a.k.a. heaps) that incorporates the notion of separation from Separation Logic. We use H to build an extension of Hoare Logic for reasoning over heap manipulating programs using (constraint-based) symbolic execution. We present a sound and complete algorithm for solving quantifier-free (QF) H-formulae based on heap element propagation. An implementation of the H-solver has been integrated into a Satisfiability Modulo Theories (SMT) framework. We experimentally evaluate the implementation against Verification Conditions (VCs) generated from symbolic execution of large (heap manipulating) programs. In particular, we mitigate the path explosion problem using subsumption via interpolation - made possible by the constraint-based encoding. © 2013 Springer-Verlag.Constraint Handling RulesHeap Manipulating ProgramsSatisfiability Modulo TheoriesSeparation LogicSymbolic ExecutionConstraint-based program reasoning with heaps and separationConference PaperNOT_IN_WOS