skip to main content
10.1145/1040305.1040317acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
Article

Transition predicate abstraction and fair termination

Published: 12 January 2005 Publication History

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.
[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.
[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.
[4]
F. Bourdoncle. Abstract debugging of higher-order imperative languages. In PLDI'1993: Programming Language Design and Implementation, pages 46--55. ACM Press, 1993.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[12]
G. Delzanno and A. Podelski. Constraint-based deductive model checking. Int. Journal on Software Tools for Technology Transfer (STTT), 2000.
[13]
C. Flanagan and S. Qadeer. Predicate abstraction for software verification. In POPL'2002: Principles of Programming Languages, pages 191--202. ACM Press, 2002.
[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.
[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.
[16]
Y. Kesten and A. Pnueli. Verification by augmented finitary abstraction. Information and Computation, a special issue on Compositionality, 163(1):203--243, 2000.
[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.
[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.
[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.
[20]
Z. Manna and A. Pnueli. Temporal verification of reactive systems: Safety. Springer, 1995.
[21]
Z. Manna and A. Pnueli. Temporal verification of reactive systems: Progress. Draft, 1996.
[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.
[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.
[24]
A. Podelski and A. Rybalchenko. Transition invariants. In LICS'2004: Logic in Computer Science, pages 32--41. IEEE, 2004.
[25]
F. P. Ramsey. On a problem of formal logic. In Proc. London Math. Soc., volume~30, pages 264--285, 1930.
[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.
[27]
A. Tiwari. Termination of linear programs. In CAV'2004: Computer Aided Verification, volume 3114 of LNCS, pages 70--82. Springer, 2004.
[28]
T. Uribe. Abstraction-Based Deductive-Algorithmic Verification of Reactive Systems. PhD thesis, Stanford University, 1999.
[29]
M. Y. Vardi. Verification of concurrent programs --- the automata-theoretic framework. Annals of Pure and Applied Logic, 51:79--98, 1991.
[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.
[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.

Cited By

View all
  • (2023)Thread-modular counter abstraction: automated safety and termination proofs of parameterized software by reduction to sequential program verificationFormal Methods in System Design10.1007/s10703-023-00439-664:1-3(108-145)Online publication date: 6-Oct-2023
  • (2022)Decomposing software verification into off-the-shelf componentsProceedings of the 44th International Conference on Software Engineering10.1145/3510003.3510064(536-548)Online publication date: 21-May-2022
  • (2022)Software Model Checking: 20 Years and BeyondPrinciples of Systems Design10.1007/978-3-031-22337-2_27(554-582)Online publication date: 29-Dec-2022
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

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
  • 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
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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 12 January 2005

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. fair termination
  2. liveness
  3. software model checking
  4. transition predicate abstraction

Qualifiers

  • Article

Conference

POPL05

Acceptance Rates

Overall Acceptance Rate 860 of 4,328 submissions, 20%

Upcoming Conference

POPL '26

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)16
  • Downloads (Last 6 weeks)2
Reflects downloads up to 05 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2023)Thread-modular counter abstraction: automated safety and termination proofs of parameterized software by reduction to sequential program verificationFormal Methods in System Design10.1007/s10703-023-00439-664:1-3(108-145)Online publication date: 6-Oct-2023
  • (2022)Decomposing software verification into off-the-shelf componentsProceedings of the 44th International Conference on Software Engineering10.1145/3510003.3510064(536-548)Online publication date: 21-May-2022
  • (2022)Software Model Checking: 20 Years and BeyondPrinciples of Systems Design10.1007/978-3-031-22337-2_27(554-582)Online publication date: 29-Dec-2022
  • (2020)Termination analysis for evolving programs: an incremental approach by reusing certified modulesProceedings of the ACM on Programming Languages10.1145/34282674:OOPSLA(1-27)Online publication date: 13-Nov-2020
  • (2018)Temporal Prophecy for Proving Temporal Properties of Infinite-State Systems2018 Formal Methods in Computer Aided Design (FMCAD)10.23919/FMCAD.2018.8603008(1-11)Online publication date: Oct-2018
  • (2017)Hazelnut: a bidirectionally typed structure editor calculusACM SIGPLAN Notices10.1145/3093333.300990052:1(86-99)Online publication date: 1-Jan-2017
  • (2017)A posteriori environment analysis with Pushdown Delta CFAACM SIGPLAN Notices10.1145/3093333.300989952:1(19-31)Online publication date: 1-Jan-2017
  • (2017)Fast polyhedra abstract domainACM SIGPLAN Notices10.1145/3093333.300988552:1(46-59)Online publication date: 1-Jan-2017
  • (2017)Ogre and Pythia: an invariance proof method for weak consistency modelsACM SIGPLAN Notices10.1145/3093333.300988352:1(3-18)Online publication date: 1-Jan-2017
  • (2017)Polymorphism, subtyping, and type inference in MLsubACM SIGPLAN Notices10.1145/3093333.300988252:1(60-72)Online publication date: 1-Jan-2017
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media