2013
DOI: 10.1007/978-3-642-40627-0_24
|View full text |Cite
|
Sign up to set email alerts
|

Constraint-Based Program Reasoning with Heaps and Separation

Abstract: Abstract. This 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… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
26
0

Year Published

2014
2014
2018
2018

Publication Types

Select...
5
2
1

Relationship

2
6

Authors

Journals

citations
Cited by 11 publications
(26 citation statements)
references
References 23 publications
0
26
0
Order By: Relevance
“…The ↓ binder of HyBBI(↓) also allows us to encode the definition of the overlapping conjunction ∪ * of separation logic, which has been used in specifying and verifying programs manipulating data structures with intrinsic sharing [25,16,13]. In these works, ∪ * is introduced as an new primitive connective, defined by extending the standard forcing relation for BBI (Definition 2.3) as follows:…”
Section: Formulas and Expressivitymentioning
confidence: 99%
“…The ↓ binder of HyBBI(↓) also allows us to encode the definition of the overlapping conjunction ∪ * of separation logic, which has been used in specifying and verifying programs manipulating data structures with intrinsic sharing [25,16,13]. In these works, ∪ * is introduced as an new primitive connective, defined by extending the standard forcing relation for BBI (Definition 2.3) as follows:…”
Section: Formulas and Expressivitymentioning
confidence: 99%
“…To this aim we may combine the CHR axiomatization of heaps proposed by [17] with the generalization strategies based on widening and convex-hull considered in this paper.…”
Section: Related Work and Conclusionmentioning
confidence: 99%
“…Some methods, directly following the approach presented in [41], are based on abstract interpretation [8] and compute an overapproximation of the least model of the CLP program under consideration by a bottom-up evaluation of an abstraction of the program [2,28,39]. Other methods use goal directed evaluation of CLP programs combined with other symbolic techniques such as interpolation [17,20,31,30]. Some other methods, like the ones presented in [5,25,43,45], combine CLP (also called constrained Horn clauses in those papers) with different reasoning techniques developed in the areas of Software Model Checking and Automated Theorem Proving, such as CounterExample-Guided Abstraction Refinement (CEGAR) and Satisfiability Modulo Theory (SMT).…”
Section: Introductionmentioning
confidence: 99%
“…Constraint Logic Programming 1 (CLP) [30] is becoming increasingly popular as a logical basis for developing methods and tools for software verification (see, for instance, [8,16,24,32,39,37]). Indeed, CLP provides a suitable formalism for expressing verification conditions that guarantee the correctness of imperative, functional, or concurrent programs and, moreover, constraints are very useful for encoding properties of data domains such as integers, reals, arrays, and heaps [6,18,11,35]. An advantage of using a CLP representation for verification problems is that we can then combine reasoning techniques and constraint solvers based on the common logical language [22].…”
Section: Introductionmentioning
confidence: 99%