Proving Liveness by Backwards Reachability

We present a new method for proving liveness and termination properties for fair concurrent programs, which does not rely on finding a ranking function or on computing the transitive closure of the transition relation. The set of states from which termination or some liveness property is guaranteed is computed by a backwards reachability analysis. A central technique for handling concurrency is a check for certain commutativity properties. The method is not complete. However, it can be seen as a complement to other methods for proving termination, in that it transforms a termination problem into a simpler one with a larger set of terminated states. We show the usefulness of our method by applying it to existing programs from the literature. We have also implemented it in the framework of Regular Model Checking, and used it to automatically verify non-starvation for parameterized algorithms.

[1]  Edmund M. Clarke,et al.  State space reduction using partial order techniques , 1999, International Journal on Software Tools for Technology Transfer.

[2]  Boleslaw K. Szymanski Mutual exclusion revisited , 1990, Proceedings of the 5th Jerusalem Conference on Information Technology, 1990. 'Next Decade in Information Technology'.

[3]  Andreas Podelski,et al.  Transition predicate abstraction and fair termination , 2005, POPL '05.

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

[5]  Amir Pnueli,et al.  Liveness and Acceleration in Parameterized Verification , 2000, CAV.

[6]  Gerard J. Holzmann,et al.  The Model Checker SPIN , 1997, IEEE Trans. Software Eng..

[7]  K. Mani Chandy,et al.  Parallel program design - a foundation , 1988 .

[8]  Patrice Godefroid,et al.  Symbolic Verification of Communication Protocols with Infinite State Spaces using QDDs , 1999, Formal Methods Syst. Des..

[9]  Amir Pnueli,et al.  Shape Analysis by Predicate Abstraction , 2005, VMCAI.

[10]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[11]  Z. Manna,et al.  Tools and rules for the practicing verifier , 1990 .

[12]  Parosh Aziz Abdulla,et al.  Algorithmic Analysis of Programs with Well Quasi-ordered Domains , 2000, Inf. Comput..

[13]  Parosh Aziz Abdulla,et al.  Using Forward Reachability Analysis for Verification of Lossy Channel Systems , 2004, Formal Methods Syst. Des..

[14]  Patrice Godefroid,et al.  Symbolic Verification of Communication Protocols with Infinite State Spaces Using QDDs (Extended Abstract) , 1996, CAV.

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

[16]  Henny B. Sipma,et al.  Practical Methods for Proving Program Termination , 2002, CAV.

[17]  Parosh Aziz Abdulla,et al.  Regular Model Checking for LTL(MSO) , 2004, CAV.

[18]  Amir Pnueli,et al.  ON TOOLS AND ALGORITHMS FOR THE CONSTRUCTION AND ANALYSIS OF SYSTEMS , 2006 .

[19]  Parosh Aziz Abdulla,et al.  Handling Global Conditions in Parameterized System Verification , 1999, CAV.

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

[21]  Amir Pnueli,et al.  Separating Fairness and Well-Foundedness for the Analysis of Fair Discrete Systems , 2005, TACAS.

[22]  Henny B. Sipma,et al.  Termination Analysis of Integer Linear Loops , 2005, CONCUR.

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

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

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

[26]  Marcus Nilsson,et al.  Regular Model Checking , 2000, CAV.

[27]  Helmut Veith,et al.  Counterexample-guided abstraction refinement for symbolic model checking , 2003, JACM.

[28]  Parosh Aziz Abdulla,et al.  Verifying programs with unreliable channels , 1993, [1993] Proceedings Eighth Annual IEEE Symposium on Logic in Computer Science.

[29]  Parosh Aziz Abdulla,et al.  A Survey of Regular Model Checking , 2004, CONCUR.

[30]  Pierre Wolper,et al.  Verifying Systems with Infinite but Regular State Spaces , 1998, CAV.

[31]  Ahmed Bouajjani,et al.  Abstract Regular Model Checking , 2004, CAV.

[32]  Patrick Cousot,et al.  Proving Program Invariance and Termination by Parametric Abstraction, Lagrangian Relaxation and Semidefinite Programming , 2005, VMCAI.

[33]  Parosh Aziz Abdulla,et al.  Undecidable Verification Problems for Programs with Unreliable Channels , 1994, Inf. Comput..

[34]  Amir Pnueli,et al.  Liveness with Incomprehensible Ranking , 2004, TACAS.

[35]  Zohar Manna,et al.  Adequate Proof Principles for Invariance and Liveness Properties of Concurrent Programs , 1984, Sci. Comput. Program..

[36]  Henny B. Sipma,et al.  Termination of Polynomial Programs , 2005, VMCAI.

[37]  Stephan Merz,et al.  Model Checking , 2000 .

[38]  Pierre Wolper,et al.  An Automata-Theoretic Approach to Automatic Program Verification (Preliminary Report) , 1986, LICS.