Title
From tests to proofs.
Abstract
We describe the design and implementation of an automatic invariant generator for imperative programs. While automatic invariant generation through constraint solving has been extensively studied from a theoretical viewpoint as a classical means of program verification, in practice existing tools do not scale even to moderately sized programs. This is because the constraints that need to be solved even for small programs are already too difficult for the underlying (non-linear) constraint solving engines. To overcome this obstacle, we propose to strengthen static constraint generation with information obtained from static abstract interpretation and dynamic execution of the program. The strengthening comes in the form of additional linear constraints that trigger a series of sim- plifications in the solver, and make solving more scalable. We demonstrate the practical applicability of the approach by an experimental evaluation on a col- lection of challenging benchmark programs and comparisons with related tools based on abstract interpretation and software model checking.
Year
DOI
Venue
2013
10.1007/s10009-012-0267-5
Tools and Algorithms for Construction and Analysis of Systems
Keywords
DocType
Volume
Invariant generation, Linear invariants, Constraint solving, Testing, Software verification
Journal
15
Issue
ISSN
Citations 
4
1433-2787
25
PageRank 
References 
Authors
1.17
18
3
Name
Order
Citations
PageRank
Ashutosh Gupta119214.01
Rupak Majumdar23401220.08
Andrey Rybalchenko3143968.53