ACM Home Page
Please provide us with feedback. Feedback
The synergy of precise and fast abstractions for program verification
Full text PdfPdf (407 KB)
Source
Symposium on Applied Computing archive
Proceedings of the 2009 ACM symposium on Applied Computing table of contents
Honolulu, Hawaii
SESSION: Software verification and testing track table of contents
Pages 566-573  
Year of Publication: 2009
ISBN:978-1-60558-166-8
Authors
Natasha Sharygina  University of Lugano, Switzerland
Stefano Tonetta  Fondazione Bruno Kessler, Trento, Italy
Aliaksei Tsitovich  University of Lugano, Switzerland
Sponsor
SIGAPP: ACM Special Interest Group on Applied Computing
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 9,   Downloads (12 Months): 43,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1529282.1529404
What is a DOI?

ABSTRACT

Predicate abstraction is a powerful technique to reduce the state space of a program to a finite and affordable number of states. It produces a conservative over-approximation where concrete states are grouped together according to a given set of predicates. A precise abstraction contains the minimal set of transitions with regards to the predicates, but as a result is computationally expensive. Most model checkers therefore approximate the abstraction to alleviate the computation of the abstract system by trading off precision with cost. However, approximation results in a higher number of refinement iterations, since it can produce more false counterexamples than its precise counterpart. The refinement loop can become prohibitively expensive for large programs.

This paper proposes a new abstraction refinement technique that combines slow and precise predicate abstraction techniques with fast and imprecise ones. It allows computing the abstraction quickly, but keeps it precise enough to avoid too many refinement iterations. We implemented the new algorithm in a state-of-the-art software model checker. Our tests with various real life benchmarks show that the new approach systematically outperforms both precise and imprecise techniques.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
T. Ball, B. Cook, S. Das, and S. K. Rajamani. Refining Approximations in Software Predicate Abstraction. In TACAS, pages 388--403, 2004.
2
 
3
T. Ball, A. Podelski, and S. K. Rajamani. Boolean and Cartesian Abstraction for Model Checking C Programs. STTT, 5(1): 49--58, 2003.
 
4
T. Ball and S. K. Rajamani. Boolean Programs: A Model and Process for Software Analysis. Technical Report 2000-14, Microsoft Research, February 2000.
 
5
T. Ball and S. K. Rajamani. Generating Abstract Explanations of Spurious Counterexamples in C Programs. Technical Report 2002-09, Microsoft Research, September 2002.
 
6
 
7
 
8
 
9
E. Clarke, M. Talupur, H. Veith, and D. Wang. SAT Based Predicate Abstraction for Hardware Verification. In SAT, 2003.
 
10
11
 
12
 
13
 
14
 
15
 
16
 
17
 
18
A. Gupta and O. Strichman. Abstraction Refinement for Bounded Model Checking. In CAV, pages 112--124, 2005.
19
20
21
 
22
Himanshu Jain, Franjo Ivancic, Aarti Gupta, and Malay K. Ganai. Localization and Register Sharing for Predicate Abstraction. In TACAS, pages 397--412, 2005.
 
23
R. Jhala and K. L. McMillan. Interpolant-Based Transition Relation Approximation. In CAV, pages 39--51, 2005.
 
24
R. Jhala and K. L. McMillan. A Practical and Complete Approach to Predicate Refinement. In TACAS, pages 459--473, 2006.
25
 
26
S. K. Lahiri, T. Ball, and B. Cook. Predicate Abstraction via Symbolic Decision Procedures. Logical Methods in Computer Science, 3(2), 2007.
 
27
S. K. Lahiri, R. Nieuwenhuis, and A. Oliveras. SMT Techniques for Fast Predicate Abstraction. In CAV, LNCS, pages 424--437. Springer, 2006.
 
28
Kenneth L. McMillan. Lazy abstraction with interpolants. In CAV, pages 123--136, 2006.
 
29
 
30

Collaborative Colleagues:
Natasha Sharygina: colleagues
Stefano Tonetta: colleagues
Aliaksei Tsitovich: colleagues