|
ABSTRACT
Predicate abstraction is the basis of many program verification tools. Until now, the only known way to overcome the inherent limitation of predicate abstraction to safety properties was to manually annotate the finite-state abstraction of a program. We extend predicate abstraction to transition predicate abstraction. Transition predicate abstraction goes beyond the idea of finite abstract-state programs (and checking the absence of loops). Instead, our abstraction algorithm transforms a program into a finite abstract-transition program. Then a second algorithm checks fair termination. The two algorithms together yield an automated method for the verification of liveness properties under full fairness assumptions (impartiality, justice, and compassion). In summary, we exhibit principles that extend the applicability of predicate abstraction-based program verification to the full set of temporal properties.
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
|
Ball, T. 2005. A theory of predicate-complete test coverage and generation. In FMCO'2004: Symposium on Formal Methods for Components and Objects. Lecture Notes in Computer Science, vol. 3657. Springer, Berlin, Germany, 1--22.
|
 |
4
|
|
| |
5
|
|
 |
6
|
|
| |
7
|
Bradley, A. R., Manna, Z., and Sipma, H. B. 2005. Linear ranking with reachability. In CAV'2005: Computer Aided Verification. Lecture Notes in Computer Science, vol. 3576. Springer, Berlin, Germany, 491--504.
|
| |
8
|
|
| |
9
|
Büchi, J. R. 1960. On a decision method in restricted second order arithmeric. In Proceedings of the International Congress on Logic, Methodology and Philosophy of Science. Stanford University Press, Stanford, CA, 1--11.
|
| |
10
|
Sagar Chaki , Edmund Clarke , Alex Groce , Somesh Jha , Helmut Veith, Modular verification of software components in C, Proceedings of the 25th International Conference on Software Engineering, May 03-10, 2003, Portland, Oregon
|
| |
11
|
Codish, M., Genaim, S., Bruynooghe, M., Gallagher, J., and Vanhoof, W. 2003. One loop at a time. In 6th International Workshop on Termination (WST 2003). Universidad Politécnica de Valencia, Valencia, Spain.
|
| |
12
|
|
| |
13
|
|
| |
14
|
Cook, B., Podelski, A., and Rybalchenko, A. 2005. Abstraction refinement for termination. In SAS'2005: Static Analysis Symposium. Lecture Notes in Computer Science, vol. 3672. Springer, Berlin, Germany, 87--101.
|
 |
15
|
|
 |
16
|
|
| |
17
|
Cousot, P. and Cousot, R. 1994. Higher-order abstract interpretation (and application to comportment analysis generalizing strictness, termination, projection and PER analysis of functional languages). In ICCL'1994: Proceedings of the International Conference on Computer Languages. IEEE Computer Society Press, Los Alamitos, CA, 95--112.
|
| |
18
|
Delzanno, G. and Podelski, A. 2001. Constraint-based deductive model checking. Int. J. Softw. Tools Tech. Trans. 3, 3, 250--270.
|
| |
19
|
Dershowitz, N., Lindenstrauss, N., Sagiv, Y., and Serebrenik, A. 2001. A general framework for automatic termination analysis of logic programs. Applic. Alg. Eng. Commun. Comput 12, 117--156.
|
 |
20
|
|
| |
21
|
|
| |
22
|
|
 |
23
|
Thomas A. Henzinger , Ranjit Jhala , Rupak Majumdar , Grégoire Sutre, Lazy abstraction, Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.58-70, January 16-18, 2002, Portland, Oregon
|
| |
24
|
|
| |
25
|
|
 |
26
|
|
| |
27
|
Lahiri, S. K., Bryant, R. E., and Cook, B. 2003. A symbolic approach to predicate abstraction. In CAV'2003: Computer Aided Verification. Lecture Notes in Computer Science, vol. 2725. Springer, Berlin, Germany, 141--153.
|
 |
28
|
|
| |
29
|
|
| |
30
|
|
| |
31
|
Manna, Z. and Pnueli, A. 1996. Temporal verification of reactive systems: Progress. unpublished article.
|
| |
32
|
|
| |
33
|
|
| |
34
|
Podelski, A. and Rybalchenko, A. 2004a. A complete method for the synthesis of linear ranking functions. In VMCAI'2004: Verification, Model Checking, and Abstract Interpretation. Lecture Notes in Computer Science, vol. 2937. Springer, Berlin, Germany, 239--251.
|
| |
35
|
|
| |
36
|
Ramsey, F. P. 1930. On a problem of formal logic. In Proc. London Math. Soc. 30, 264--285.
|
| |
37
|
Sagiv, Y. 1991. A termination test for logic programs. In ISLP'1991: Proceedings of the International Logic Programming Symposium, 518--532.
|
| |
38
|
|
| |
39
|
Tiwari, A. 2004. Termination of linear programs. In CAV'2004: Computer Aided Verification. Lecture Notes in Computer Science, vol. 3114. Springer, Berlin, Germany, 70--82.
|
| |
40
|
|
| |
41
|
Vardi, M. Y. 1991. Verification of concurrent programs---the automata-theoretic framework. Ann. Pure Appl. Log. 51, 79--98.
|
 |
42
|
|
| |
43
|
Yahav, E., Reps, T., Sagiv, M., and Wilhelm, R. 2003. Verifying temporal heap properties specified via evolution logic. In ESOP'2003: European Symposium on Programming. Lecture Notes in Computer Science, vol. 2618. Springer, Berlin, Germany, 204--222.
|
|