ACM Home Page
Please provide us with feedback. Feedback
Variance analyses from invariance analyses
Full text PdfPdf (735 KB)
Source Annual Symposium on Principles of Programming Languages archive
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages table of contents
Nice, France
SESSION: Session 8 table of contents
Pages: 211 - 224  
Year of Publication: 2007
ISBN:1-59593-575-4
Also published in ...
Authors
Josh Berdine  Microsoft Research
Aziem Chawdhary  Queen Mary, University of London
Byron Cook  Microsoft Research
Dino Distefano  Queen Mary, University of London
Peter O'Hearn  Queen Mary, University of London
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 11,   Downloads (12 Months): 59,   Citation Count: 8
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/1190216.1190249
What is a DOI?

ABSTRACT

An invariance assertion for a program location l is a statement that always holds at l during execution of the program. Program invariance analyses infer invariance assertions that can be useful when trying to prove safety properties. We use the term variance assertion to mean a statement that holds between any state at l and any previous state that was also at l. This paper is concerned with the development of analyses for variance assertions and their application to proving termination and liveness properties. We describe a method of constructing program variance analyses from invariance analyses. If we change the underlying invariance analysis, we get a different variance analysis. We describe several applications of the method, including variance analyses using linear arithmetic and shape analysis. Using experimental results we demonstrate that these variance analyses give rise to a new breed of termination provers which are competitive with and sometimes better than today's state-of-the-art termination provers.


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
 
3
J. Berdine, B. Cook, D. Distefano, and P. O'Hearn. Automatic termination proofs for programs with shape-shifting heaps. In CAV'06: International Conference on Computer Aided Verification, 2006.
 
4
A. Biere, C. Artho, and V. Schuppan. Liveness checking as safety checking. In FMICS'02: Formal Methods for Industrial Critical Systems, 2002.
 
5
A. Bradley. Personal communication. Aaron Bradley's suggested script that iteratively applies the tools described in {7} and {6} with increasingly expensive options, June 2006.
 
6
A. Bradley, Z. Manna, and H. Sipma. Termination of polynomial programs. In VMCAI'05: Verification, Model Checking, and Abstract Interpretation, 2005.
 
7
A. R. Bradley, Z. Manna, and H. B. Sipma. The polyranking principle. In ICALP'05: International Colloquium on Automata, Languages and Programming, 2005.
 
8
C. Calcagno, D. Distefano, P. O'Hearn, and H. Yang. Beyond reachability: Shape abstraction in the presence of pointer arithmetic. In SAS'06: Static Analysis Symposium, 2006.
 
9
 
10
11
 
12
B. Cook, A. Podelski, and A. Rybalchenko. Abstraction refinement for termination. In SAS'05: Static Analysis Symposium, 2005.
13
 
14
B. Cook, A. Podelski, and A. Rybalchenko. Terminator: Beyond safety. In CAV'06: International Conference on Computer Aided Verification, 2006.
 
15
P. Cousot. The calculational design of a generic abstract interpreter. In M. Broy and R. Steinbrüggen, editors, Calculational System Design. 1999.
 
16
P. Cousot. Proving program invariance and termination by parametric abstraction, Lagrangian relaxation and semidefinite programming. In VMCAI'05: Verification, Model Checking, and Abstract Interpretation, 2005.
 
17
P. Cousot. Personal communication, 2006.
18
19
 
20
P. Cousot and R. Cousot. Abstract interpretation frameworks. J. Log. Comput. 2(4), pp511--547, 1992.
 
21
 
22
P. Cousot, R. Cousot, J. Feret, L. Mauborgne, A. Miné, D. Monniaux, and X. Rival. The ASTRÉE analyzer. In ESOP'05: European Symposium on Programming, 2005.
23
 
24
D. Distefano, P. W. O'Hearn, and H. Yang. A local shape analysis based on separation logic. In TACAS'06: Tools and Algorithms for the Construction and Analysis of Systems, 2006.
 
25
R. W. Floyd. Assigning meanings to programs. In Mathematical Aspects of Computer Science, 1967.
 
26
J. Giesl, R. Thiemann, P. Schneider-Kamp, and S. Falke. Automated termination proofs with AProVE. In RTA'04: Rewriting Techniques and Applications, 2004.
 
27
 
28
B. S. Gulavanii and S. K. Rajamani. Counterexample driven refinement for abstract interpretation. In TACAS'06: Tools and Algorithms for the Construction and Analysis of Systems, 2006.
 
29
H. Jain, F. Ivancic, A. Gupta, I. Shlyakhter, and C. Wang. Using statically computed invariants inside the predicate abstraction and refinement loop. In CAV'06: International Conference on Computer Aided Verification, 2006.
 
30
B. Jeannet. NewPolka polyhedra library. http://pop-art.inrialpes.fr/~people/bjeannet/newpolka/index.html.
31
 
32
Z. Manna and A. Pnueli. Axiomatic approach to total correctness of programs. Acta Informatica, 1974.
 
33
L. Mauborgne and X. Rival. Trace partitioning in abstract interpretation based static analyzers. In ESOP'05: European Symposium on Programming, 2005.
 
34
A. Miné. The Octagon abstract domain. Higher-Order and Symbolic Computation. (to appear).
 
35
A. Pnueli. The temporal logic of programs. In 18th IEEE Symposium on Foundations of Computer Science, 1977.
 
36
A. Podelski and A. Rybalchenko. A complete method for the synthesis of linear ranking functions. In VMCAI'04: Verification, Model Checking, and Abstract Interpretation, 2004.
 
37
38
 
39
 
40
 
41
S. Sankaranarayanan, F. Ivancic, I. Shlyakhter, and A. Gupta. Static analysis in disjunctive numerical domains. In SAS'06: Static Analysis Symposium, 2006.
 
42
A. Tiwari. Termination of linear programs. In CAV'04: International Conference on Computer Aided Verification, 2004.
 
43
M. Y. Vardi. Verification of concurrent programs: The automata-theoretic framework. Ann. Pure Appl. Logic, 51(1-2):79--98, 1991.


Collaborative Colleagues:
Josh Berdine: colleagues
Aziem Chawdhary: colleagues
Byron Cook: colleagues
Dino Distefano: colleagues
Peter O'Hearn: colleagues