ACM Home Page
Please provide us with feedback. Feedback
Lifting abstract interpreters to quantified logical domains
Full text PdfPdf (284 KB)
Source
Annual Symposium on Principles of Programming Languages archive
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages table of contents
San Francisco, California, USA
SESSION: Session 7 table of contents
Pages 235-246  
Year of Publication: 2008
ISBN:978-1-59593-689-9
Also published in ...
Authors
Sumit Gulwani  Microsoft Research, Redmond, WA
Bill McCloskey  University of California: Berkeley, Berkeley, CA
Ashish Tiwari  SRI International, Menlo Park, CA
Sponsors
ACM: Association for Computing Machinery
SIGACT: ACM Special Interest Group on Algorithms and Computation Theory
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 4,   Downloads (12 Months): 84,   Citation Count: 4
Additional Information:

abstract   references   cited by   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/1328438.1328468
What is a DOI?

ABSTRACT

We describe a general technique for building abstract interpreters over powerful universally quantified abstract domains that leverage existing quantifier-free domains. Our quantified abstract domain can represent universally quantified facts like ∀i(0 ≤ i < n ⇒ α[i] = 0). The principal challenge in this effort is that, while most domains supply over-approximations of operations like join, meet, and variable elimination, working with the guards of quantified facts requires under-approximation. We present an automatic technique to convert the standard over-approximation operations provided with all domains into sound under-approximations. We establish the correctness of our abstract interpreters by identifying two lattices---one that establishes the soundness of the abstract interpreter and another that defines its precision, or completeness. Our experiments on a variety of programs using arrays and pointers (including several sorting algorithms) demonstrate the feasibility of the approach on challenging examples.


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
 
2
Jesse D. Bingham and Zvonimir Rakamaric. A logic and decision procedure for predicate abstraction of heap-manipulating programs. In VMCAI, pages 207--221, 2006.
 
3
A.R. Bradley, Z. Manna, and H. Sipma. What's decidable about arrays? In VMCAI, volume 3855 of LNCS, pages 427--442. Springer, 2006.
 
4
P. Cerny. Verification par interpretation abstraite de predicats parametriques. Master's thesis, Univ. Paris VII & Ecole normale superieure, Paris 20, 2003.
 
5
Patrick Cousot. Verification by abstract interpretation. In Verification: Theory and Practice, volume 2772 of LNCS, pages 243--268, 2003.
6
7
8
9
10
 
11
Sumit Gulwani and Ashish Tiwari. Static analysis of heap manipulating low-level software. In CAV, LNCS, 2007.
 
12
Sumit Gulwani, Bill McCloskey, and Ashish Tiwari. Lifting abstract interpreters to quantified logical domains. Technical Report MSR-TR-2007-87, Microsoft Research, July 2007.
 
13
Ranjit Jhala and Ken McMillan. Array abstractions from proofs. In CAV, 2007.
 
14
Michael Karr. Affine relationships among variables of a program. In Acta Informatica, pages 133--151. Springer, 1976.
 
15
Shuvendu K. Lahiri and Randal E. Bryant. Indexed predicate discovery for unbounded system verification. In CAV, pages 135--147, 2004.
16


Collaborative Colleagues:
Sumit Gulwani: colleagues
Bill McCloskey: colleagues
Ashish Tiwari: colleagues