2017
DOI: 10.1007/978-3-662-54580-5_23
|View full text |Cite
|
Sign up to set email alerts
|

DepthK: A k-Induction Verifier Based on Invariant Inference for C Programs

Abstract: DepthK is a software verification tool that employs a proof by induction algorithm that combines k-induction with invariant inference. In order to efficiently and effectively verify and falsify safety properties in C programs, DepthK infers program invariants using polyhedral constraints. Experimental results show that our approach can handle a wide variety of safety properties in several intricate verification tasks.

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
28
0

Year Published

2018
2018
2020
2020

Publication Types

Select...
5
2
1

Relationship

2
6

Authors

Journals

citations
Cited by 33 publications
(28 citation statements)
references
References 11 publications
0
28
0
Order By: Relevance
“…The k-induction algorithm is an effective verification technique implemented in various software model checkers with the goal of proving partial correctness over a large number of different programs and properties [1][2][3]. Typical k-inductionbased verifiers use iterative deepening and repeatedly unwind the program to produce the verification results; its incremental nature means that it always finds the smallest falsification [2].…”
Section: Overviewmentioning
confidence: 99%
See 1 more Smart Citation
“…The k-induction algorithm is an effective verification technique implemented in various software model checkers with the goal of proving partial correctness over a large number of different programs and properties [1][2][3]. Typical k-inductionbased verifiers use iterative deepening and repeatedly unwind the program to produce the verification results; its incremental nature means that it always finds the smallest falsification [2].…”
Section: Overviewmentioning
confidence: 99%
“…3, the state space is only constrained using the properties in the program; these are (usually) not strong enough to prove program correctness. Several authors address this problem by generating program invariants to rule out unreachable regions of the state space, either as a pre-processing step where invariants are introduced in the program before verification [3], or during the verification itself [1,5]. Similarly to Rocha et al [3], we perform a static analysis prior to loop unwinding and (over-)estimate the range that a variable can assume.…”
Section: Invariant Inference Based On Interval Analysismentioning
confidence: 99%
“…In addition, more models of libraries will be integrated into COM, with the goal of increasing the coverage of CUDA's API such as CUDA Driver API, NPP, and cu-SOLVER. Finally, we also aim to implement further techniques (e.g., invariant inference via abstract interpretation [24]), in order to prune the statespace exploration, by taking into account GPU symmetry.…”
Section: Discussionmentioning
confidence: 99%
“…CPA-Seq applies a number of different techniques when verifying a program, so a direct comparison to their k-induction is not possible; however, a "pure k-indcution" version (CPAkind, [12]) showed poor results in a previous competition. Correct true 1898 1438 3790 1184 1957 2822 1418 3902 1725 2292 Correct false 1426 1856 2598 1516 1476 1494 1209 1278 514 563 Incorrect true 2 2 0 19 336 14 1 2 0 3 Incorrect false 5 3 4 37 92 10 0 0 0 3 Total correct results 3324 3294 6388 2694 3433 4316 2627 5180 2239 2855 Total incorrect results 7 5 4 58 428 24 1 2 0 6 DepthK uses an invariant generator to instrument the code with invariants and uses k-induction to verify the program [13]. Although one would expect better results, DepthK uses an old version of ESBMC to verify the programs; this explains the poor results.…”
Section: ) Setupmentioning
confidence: 99%