2017
DOI: 10.1007/978-3-319-57288-8_18
|View full text |Cite
|
Sign up to set email alerts
|

Systematic Predicate Abstraction Using Variable Roles

Abstract: Abstract. Heuristics for discovering predicates for abstraction are an essential part of software model checkers. Picking the right predicates affects the runtime of a model checker, or determines if a model checker is able to solve a verification task at all. In this paper we present a method to systematically specify heuristics for generating program-specific abstractions. The heuristics can be used to generate initial abstractions, and to guide abstraction refinement through templates provided for Craig int… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
10
0

Year Published

2018
2018
2021
2021

Publication Types

Select...
2
2
2

Relationship

1
5

Authors

Journals

citations
Cited by 7 publications
(10 citation statements)
references
References 22 publications
0
10
0
Order By: Relevance
“…For 17 of these 142 runs, LIA (incorrectly) verified the program to be safe whereas BV found a counter-example. Unexpectantly for trex03 trueunreach-call.i.annot.c from [12], LIA found a counter-example but BV verified safety. This program contains three integers, x1, x2 and x3, which can become negative in the idealised arithmetic employed in LIA, triggering an assertion.…”
Section: Methodsmentioning
confidence: 93%
See 1 more Smart Citation
“…For 17 of these 142 runs, LIA (incorrectly) verified the program to be safe whereas BV found a counter-example. Unexpectantly for trex03 trueunreach-call.i.annot.c from [12], LIA found a counter-example but BV verified safety. This program contains three integers, x1, x2 and x3, which can become negative in the idealised arithmetic employed in LIA, triggering an assertion.…”
Section: Methodsmentioning
confidence: 93%
“…The model checker is implemented in Python 3.7.2 and uses MathSAT5 [9] for satisfiability checking and interpolation over LIA. The model checker parses a subset of the C language, but is rich enough to handle 312 benchmarks drawn from [2,12]. The model checker was instantiated in one of three ways to use: (1) LIA interpolation [17]; (2) BV interpolation by covering the solutions of an LIA interpolate with columns (recall f 2 of section 2); and (3) BV interpolation by covering the solutions of an LIA interpolate using boxing, gapping and flipping.…”
Section: Methodsmentioning
confidence: 99%
“…d) Verification of C Programs: Since it is difficult to compare interpolation procedures outside of an application, we present results of running the ELDARICA version 2.0-alpha3 model checker 5 on a benchmark set of 551 C programs, using the implementation of our calculus in PRINCESS as interpolation procedure (Table I). The benchmarks are the programs used in [31] for evaluating different predicate generation strategies. The programs use only arithmetic operations, no arrays or heap data structures.…”
Section: Methodsmentioning
confidence: 99%
“…In this case, loop analysis will identify the term x -y as a useful expression (or interpolation template) in invariants, and interpolation abstraction will guide the interpolation process towards expressions that avoid the variables x, y, unless they occur in the context x -y. This approach enables ELDAR-ICA to rank interpolants according to their expected generality, and has been shown to speed up the solving process, as well as to significantly reduce the possibility of divergence [29], [14]. Interpolation templates can also be specified manually by the user to control the derived predicates.…”
Section: Convergence Heuristicsmentioning
confidence: 99%
“…The development of ELDARICA initially focused on the theory of unbounded linear integer arithmetic (LIA, quantifierfree Presburger arithmetic, but also including Booleans), for which efficient Craig interpolation is well understood. Among the supported theories, linear integer arithmetic in ELDARICA is at this point the most refined and mature, and has been evaluated extensively in previous work [22], [29], [14].…”
Section: Status Of Theory Support a Unbounded Integersmentioning
confidence: 99%