2017
DOI: 10.1016/j.scico.2016.11.002
|View full text |Cite
|
Sign up to set email alerts
|

Semantics-based generation of verification conditions via program specialization

Abstract: We present a method for automatically generating verification conditions for a class of imperative programs and safety properties. Our method is parametric with respect to the semantics of the imperative programming language, as it generates the verification conditions by specializing, using unfold/fold transformation rules, a Horn clause interpreter that encodes that semantics.We define a multi-step operational semantics for a fragment of the C language and compare the verification conditions obtained by usin… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1

Citation Types

0
23
0

Year Published

2017
2017
2024
2024

Publication Types

Select...
5
4

Relationship

0
9

Authors

Journals

citations
Cited by 26 publications
(23 citation statements)
references
References 53 publications
0
23
0
Order By: Relevance
“…However, proving the satisfiability of the clauses obtained by that translation is, in many cases, a much harder task. In a series of papers [5,7,8,9,10,16,19] it has been shown that by combining various transformation techniques, such as Specialization and Predicate Pairing, we can derive equisatisfiable sets of clauses where the efficacy of the CHC solvers is significantly improved. This approach avoids the burden of implementing very sophisticated solving strategies depending on the class of satisfiability problems to be solved.…”
Section: Discussionmentioning
confidence: 99%
“…However, proving the satisfiability of the clauses obtained by that translation is, in many cases, a much harder task. In a series of papers [5,7,8,9,10,16,19] it has been shown that by combining various transformation techniques, such as Specialization and Predicate Pairing, we can derive equisatisfiable sets of clauses where the efficacy of the CHC solvers is significantly improved. This approach avoids the burden of implementing very sophisticated solving strategies depending on the class of satisfiability problems to be solved.…”
Section: Discussionmentioning
confidence: 99%
“…Besides being useful on its own for bounded verification, the CLP interpreter for Erlang may be the basis for more sophisticated analysis techniques. In particular, by following an approach developed in the case of imperative languages, we intend to apply CLP transformation techniques to specialize the interpreter with respect to a given Erlang program and its symbolic input [6]. The specialized CLP clauses may enable more efficient bounded verification, and they can also be used as input to other tools for analysis and verification (such as constraint-based analyzers [3,11] and SMT solvers [8,14]), which have already been shown to be effective in other contexts [2,4,5].…”
Section: Discussionmentioning
confidence: 99%
“…Constraint logic programming, also named constrained Horn clauses, has been shown to be a powerful, flexible formalism to reason about the correctness of programs [13]. Constraint logic program is an artificial intelligence-based constraint satisfaction model with the ability of both logical programming and constraint solving.…”
Section: Introductionmentioning
confidence: 99%