Transition predicate abstraction and fair termination

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.

[1]  Jürgen Giesl,et al.  Termination of term rewriting using dependency pairs , 2000, Theor. Comput. Sci..

[2]  Lutz Priese,et al.  Fairness , 1988, Bull. EATCS.

[3]  J. R. Büchi On a Decision Method in Restricted Second Order Arithmetic , 1990 .

[4]  Alex Groce,et al.  Modular verification of software components in C , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[5]  Moshe Y. Vardi Verification of Concurrent Programs: The Automata-Theoretic Framework , 1991, Ann. Pure Appl. Log..

[6]  Yehoshua Sagiv A Termination Test for Logic Programs , 1991, ISLP.

[7]  Amir Pnueli,et al.  Liveness with (0, 1, ∞)-counter abstraction , 2002 .

[8]  Radhia Cousot,et al.  Higher-order abstract interpretation (and application to comportment analysis generalizing strictness, termination, projection and PER analysis of functional languages) , 1994, Proceedings of 1994 IEEE International Conference on Computer Languages (ICCL'94).

[9]  Thomas A. Henzinger,et al.  Lazy abstraction , 2002, POPL '02.

[10]  Andreas Podelski,et al.  Boolean and Cartesian abstraction for model checking C programs , 2001, International Journal on Software Tools for Technology Transfer.

[11]  Zohar Manna,et al.  Temporal verification of reactive systems - safety , 1995 .

[12]  Andreas Podelski,et al.  Abstraction Refinement for Termination , 2005, SAS.

[13]  Amir Pnueli,et al.  Liveness with (0, 1, infty)-Counter Abstraction , 2002, CAV.

[14]  Andreas Podelski,et al.  Termination proofs for systems code , 2006, PLDI '06.

[15]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[16]  Shuvendu K. Lahiri,et al.  A Symbolic Approach to Predicate Abstraction , 2003, CAV.

[17]  Eran Yahav,et al.  Verifying safety properties of concurrent Java programs using 3-valued logic , 2001, POPL '01.

[18]  Eran Yahav,et al.  Verifying Temporal Heap Properties Specified via Evolution Logic , 2006, Log. J. IGPL.

[19]  Neil D. Jones,et al.  The size-change principle for program termination , 2001, POPL '01.

[20]  Patrick Cousot,et al.  Invited Talk: Higher Order Abstract Interpretation (and Application to Comportment Analysis Generalizing Strictness, Termination, Projection, and PER Analysis. , 1994 .

[21]  Andreas Podelski,et al.  Boolean and Cartesian Abstraction for Model Checking C Programs , 2001, TACAS.

[22]  Anna Philippou,et al.  Tools and Algorithms for the Construction and Analysis of Systems , 2018, Lecture Notes in Computer Science.

[23]  Giorgio Delzanno,et al.  Constraint-based deductive model checking , 2001, International Journal on Software Tools for Technology Transfer.

[24]  Tobias Nipkow,et al.  Term rewriting and all that , 1998 .

[25]  Amir Pnueli,et al.  Impartiality, Justice and Fairness: The Ethics of Concurrent Termination , 1981, ICALP.

[26]  Edmund M. Clarke,et al.  Counterexample-guided abstraction refinement , 2003, 10th International Symposium on Temporal Representation and Reasoning, 2003 and Fourth International Conference on Temporal Logic. Proceedings..

[27]  Thomas Ball,et al.  A Theory of Predicate-Complete Test Coverage and Generation , 2004, FMCO.

[28]  Andreas Podelski,et al.  A Complete Method for the Synthesis of Linear Ranking Functions , 2004, VMCAI.

[29]  Zohar Manna,et al.  Temporal Verification of Reactive Systems , 1995, Springer New York.

[30]  A. Rybalchenko,et al.  Transition invariants , 2004, LICS 2004.

[31]  Tomás E. Uribe,et al.  Generating Finite-State Abstractions of Reactive Systems Using Decision Procedures , 1998, CAV.

[32]  Amir Pnueli,et al.  Verification by Augmented Finitary Abstraction , 2000, Inf. Comput..

[33]  Henny B. Sipma,et al.  Generalized Temporal Verification Diagrams , 1995, FSTTCS.

[34]  Henny B. Sipma,et al.  Linear Ranking with Reachability , 2005, CAV.

[35]  Nachum Dershowitz,et al.  A General Framework for Automatic Termination Analysis of Logic Programs , 2000, Applicable Algebra in Engineering, Communication and Computing.

[36]  S. Sieber On a decision method in restricted second-order arithmetic , 1960 .

[37]  Ashish Tiwari,et al.  Termination of Linear Programs , 2004, CAV.

[38]  Zohar Manna,et al.  Abstraction-based deductive-algorithmic verification of reactive systems , 2001 .

[39]  John P. Gallagher,et al.  One Loop at a Time , 2003 .

[40]  Nils Klarlund,et al.  Progress measures and stack assertions for fair termination , 1992, PODC '92.

[41]  François Bourdoncle,et al.  Abstract debugging of higher-order imperative languages , 1993, PLDI '93.

[42]  Stephan Merz,et al.  Rules for Abstraction , 1997, ASIAN.

[43]  Amir Pnueli,et al.  Verification by Augmented Abstraction: The Automata-Theoretic View , 2001, J. Comput. Syst. Sci..

[44]  Henny B. Sipma,et al.  Synthesis of Linear Ranking Functions , 2001, TACAS.

[45]  Frank Plumpton Ramsey,et al.  On a Problem of Formal Logic , 1930 .

[46]  Hassen Saïdi,et al.  Construction of Abstract State Graphs with PVS , 1997, CAV.

[47]  Cormac Flanagan,et al.  Predicate abstraction for software verification , 2002, POPL '02.

[48]  Henny B. Sipma,et al.  Deductive Model Checking , 1996, Formal Methods Syst. Des..