skip to main content
article

Transition predicate abstraction and fair termination

Published:12 January 2005Publication History
Skip Abstract Section

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 (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

  1. T. Ball. A theory of predicate-complete test coverage and generation. In FMCO'2004: Symp. on Formal Methods for Components and Objects, LNCS. Springer, 2004. To appear. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. T. Ball, R. Majumdar, T. Millstein, and S. Rajamani. Automatic predicate abstraction of C programs. In PLDI'2001: Programming Language Design and Implementation, volume 36 of ACM SIGPLAN Notices, pages 203--213. ACM Press, 2001. Google ScholarGoogle Scholar
  3. T. Ball, A. Podelski, and S. K. Rajamani. Boolean and cartesian abstractions for model checking C programs. In TACAS'2001: Tools and Algorithms for the Construction and Analysis of Systems, volume 2031 of LNCS, pages 268--283. Springer, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. F. Bourdoncle. Abstract debugging of higher-order imperative languages. In PLDI'1993: Programming Language Design and Implementation, pages 46--55. ACM Press, 1993. Google ScholarGoogle Scholar
  5. I. Browne, Z. Manna, and H. Sipma. Generalized verification diagrams. In FSTTCS'1995: Foundations of Software Technology and Theoretical Computer Science, volume 1026 of LNCS, pages 484--498. Springer, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. S. Chaki, E. Clarke, A. Groce, S. Jha, and H. Veith. Modular verification of software components in C. In ICSE'2003: Int. Conf. on Software Engineering, pages 385--395, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. E. M. Clarke, O. Grumberg, S. Jha, Y. Lu, and H. Veith. Counterexample-guided abstraction refinement. In CAV'2000: Computer Aided Verification, volume 1855 of LNCS, pages 154--169. Springer, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. M. Colón and H. Sipma. Synthesis of linear ranking functions. In TACAS'2001: Tools and Algorithms for the Construction and Analysis of Systems, volume 2031 of LNCS, pages 67--81. Springer, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. M. Colón and T. Uribe. Generating finite-state abstractions of reactive systems using decision procedures. In CAV'1998: Computer Aided Verification, volume 1427 of LNCS, pages 293--304. Springer, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. P. Cousot and R. Cousot. Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In POPL'1977: Principles of Programming Languages, pages 238--252. ACM Press, 1977. Google ScholarGoogle Scholar
  11. P. Cousot and R. Cousot. Higher-order abstract interpretation (and application to comportment analysis generalizing strictness, termination, projection and PER analysis of functional languages). In ICCL'1994: Int. Conf. on Computer Languages, pages 95--112. IEEE, 1994.Google ScholarGoogle ScholarCross RefCross Ref
  12. G. Delzanno and A. Podelski. Constraint-based deductive model checking. Int. Journal on Software Tools for Technology Transfer (STTT), 2000.Google ScholarGoogle Scholar
  13. C. Flanagan and S. Qadeer. Predicate abstraction for software verification. In POPL'2002: Principles of Programming Languages, pages 191--202. ACM Press, 2002. Google ScholarGoogle Scholar
  14. S. Graf and H. Saïdi. Construction of abstract state graphs with PVS. In CAV'1997: Computer Aided Verification, volume 1254 of LNCS, pages 72--83. Springer, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. T. Henzinger, R. Jhala, R. Majumdar, and G. Sutre. Lazy abstraction. In POPL'2002: Principles of Programming Languages, pages 58--70. ACM Press, 2002. Google ScholarGoogle Scholar
  16. Y. Kesten and A. Pnueli. Verification by augmented finitary abstraction. Information and Computation, a special issue on Compositionality, 163(1):203--243, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Y. Kesten, A. Pnueli, and M. Y. Vardi. Verification by augmented abstraction: The automata-theoretic view. Journal of Computer and System Sciences, 62(4):668--690, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. S. K. Lahiri, R. E. Bryant, and B. Cook. A symbolic approach to predicate abstraction. In CAV'2003: Computer Aided Verification, volume 2725 of LNCS, pages 141--153. Springer, 2003.Google ScholarGoogle ScholarCross RefCross Ref
  19. C. S. Lee, N. D. Jones, and A. M. Ben-Amram. The size-change principle for program termination. In POPL'2001: Principles of Programming Languages, volume 36, 3 of ACM SIGPLAN Notices, pages 81--92. ACM Press, 2001. Google ScholarGoogle Scholar
  20. Z. Manna and A. Pnueli. Temporal verification of reactive systems: Safety. Springer, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Z. Manna and A. Pnueli. Temporal verification of reactive systems: Progress. Draft, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. A. Pnueli, J. Xu, and L. Zuck. Liveness with (0,1,∞)-counter abstraction. In CAV'2002: Computer Aided Verification, volume 2404 of LNCS, pages 107--122. Springer, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. A. Podelski and A. Rybalchenko. A complete method for the synthesis of linear ranking functions. In VMCAI'2004: Verification, Model Checking, and Abstract Interpretation, volume 2937 of LNCS, pages 239--251. Springer, 2004.Google ScholarGoogle ScholarCross RefCross Ref
  24. A. Podelski and A. Rybalchenko. Transition invariants. In LICS'2004: Logic in Computer Science, pages 32--41. IEEE, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. F. P. Ramsey. On a problem of formal logic. In Proc. London Math. Soc., volume~30, pages 264--285, 1930.Google ScholarGoogle Scholar
  26. H. Sipma, T. Uribe, and Z. Manna. Deductive model checking. In CAV'1996: Computer Aided Verification, volume 1102 of LNCS, pages 208--219. Springer, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. A. Tiwari. Termination of linear programs. In CAV'2004: Computer Aided Verification, volume 3114 of LNCS, pages 70--82. Springer, 2004.Google ScholarGoogle ScholarCross RefCross Ref
  28. T. Uribe. Abstraction-Based Deductive-Algorithmic Verification of Reactive Systems. PhD thesis, Stanford University, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. M. Y. Vardi. Verification of concurrent programs --- the automata-theoretic framework. Annals of Pure and Applied Logic, 51:79--98, 1991.Google ScholarGoogle ScholarCross RefCross Ref
  30. E. Yahav. Verifying safety properties of concurrent Java programs using 3-valued logic. In POPL'2001: Principles of Programming Languages, pages 27--40. ACM Press, 2001. Google ScholarGoogle Scholar
  31. E. Yahav, T. Reps, M. Sagiv, and R. Wilhelm. Verifying temporal heap properties specified via evolution logic. In ESOP'2003: European Symp. on Programming, volume 2618 of LNCS, pages 204--222. Springer, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Transition predicate abstraction and fair termination

              Recommendations

              Comments

              Login options

              Check if you have access through your login credentials or your institution to get full access on this article.

              Sign in

              Full Access

              • Published in

                cover image ACM SIGPLAN Notices
                ACM SIGPLAN Notices  Volume 40, Issue 1
                Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
                January 2005
                391 pages
                ISSN:0362-1340
                EISSN:1558-1160
                DOI:10.1145/1047659
                Issue’s Table of Contents
                • cover image ACM Conferences
                  POPL '05: Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
                  January 2005
                  402 pages
                  ISBN:158113830X
                  DOI:10.1145/1040305
                  • General Chair:
                  • Jens Palsberg,
                  • Program Chair:
                  • Martín Abadi

                Copyright © 2005 ACM

                Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

                Publisher

                Association for Computing Machinery

                New York, NY, United States

                Publication History

                • Published: 12 January 2005

                Check for updates

                Qualifiers

                • article

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader