DocumentCode
1762340
Title
TACO: Efficient SAT-Based Bounded Verification Using Symmetry Breaking and Tight Bounds
Author
Galeotti, Juan Pablo ; Rosner, Nicolas ; Lopez Pombo, Carlos G. ; Frias, Marcelo
Author_Institution
Dept. of Comput. Sci., Saarland Univ., Saarbrucken, Germany
Volume
39
Issue
9
fYear
2013
fDate
Sept. 2013
Firstpage
1283
Lastpage
1307
Abstract
SAT-based bounded verification of annotated code consists of translating the code together with the annotations to a propositional formula, and analyzing the formula for specification violations using a SAT-solver. If a violation is found, an execution trace exposing the failure is exhibited. Code involving linked data structures with intricate invariants is particularly hard to analyze using these techniques. In this paper, we present Translation of Annotated COde (TACO), a prototype tool which implements a novel, general, and fully automated technique for the SAT-based analysis of JML-annotated Java sequential programs dealing with complex linked data structures. We instrument code analysis with a symmetry-breaking predicate which, on one hand, reduces the size of the search space by ignoring certain classes of isomorphic models and, on the other hand, allows for the parallel, automated computation of tight bounds for Java fields. Experiments show that the translations to propositional formulas require significantly less propositional variables, leading to an improvement of the efficiency of the analysis of orders of magnitude, compared to the noninstrumented SAT--based analysis. We show that in some cases our tool can uncover bugs that cannot be detected by state-of-the-art tools based on SAT-solving, model checking, or SMT-solving.
Keywords
computability; formal specification; formal verification; program diagnostics; program interpreters; JML-annotated Java sequential program; SAT-based bounded verification; SAT-solving; SMT-solving; TACO tool; automated tight bound computation; code analysis; code translation; data structure; isomorphic model; model checking; satisfiability; specification violation; symmetry-breaking predicate; translation-of-annotated code tool; Analytical models; Context; Contracts; Cost accounting; Instruments; Java; Metals; Alloy; DynAlloy; KodKod; SAT-based code analysis; Static analysis;
fLanguage
English
Journal_Title
Software Engineering, IEEE Transactions on
Publisher
ieee
ISSN
0098-5589
Type
jour
DOI
10.1109/TSE.2013.15
Filename
6482141
Link To Document