Fair Model Checking with Process Counter Abstraction

Parameterized systems are characterized by the presence of a large (or even unbounded) number of behaviorally similar processes, and they often appear in distributed/concurrent systems. A common state space abstraction for checking parameterized systems involves not keeping track of process identifiers by grouping behaviorally similar processes. Such an abstraction, while useful, conflicts with the notion of fairness. Because process identifiers are lost in the abstraction, it is difficult to ensure fairness (in terms of progress in executions) among the processes. In this work, we study the problem of fair model checking with process counter abstraction. Even without maintaining the process identifiers, our on-the-fly checking algorithm enforces fairness by keeping track of the local states from where actions are enabled / executed within an execution trace. We enhance our home-grown PAT model checker with the technique and show its usability via the automated verification of several real-life protocols.

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

[2]  Amir Pnueli,et al.  Model Checking with Strong Fairness , 2006, Formal Methods Syst. Des..

[3]  Y. S. Ramakrishna,et al.  An efficient meta-lock for implementing ubiquitous synchronization , 1999, OOPSLA '99.

[4]  Bengt Jonsson,et al.  Systematic Acceleration in Regular Model Checking , 2007, CAV.

[5]  Michael J. Fischer,et al.  Self-stabilizing Leader Election in Networks of Finite-State Anonymous Agents , 2006, OPODIS.

[6]  Jun Sun,et al.  Specifying and Verifying Event-Based Fairness Enhanced Systems , 2008, ICFEM.

[7]  Nicolas Halbwachs,et al.  Automatic verification of parameterized linear networks of processes , 1997, POPL '97.

[8]  Kedar S. Namjoshi,et al.  Reasoning about rings , 1995, POPL '95.

[9]  Jun Sun,et al.  PAT: Towards Flexible Verification under Fairness , 2009, CAV.

[10]  Amir Pnueli,et al.  Liveness by Invisible Invariants , 2006, FORTE.

[11]  Rajeev Alur,et al.  A Temporal Logic of Nested Calls and Returns , 2004, TACAS.

[12]  Somesh Jha,et al.  Exploiting symmetry in temporal logic model checking , 1993, Formal Methods Syst. Des..

[13]  Hagit Attiya,et al.  Distributed Computing: Fundamentals, Simulations and Advanced Topics , 1998 .

[14]  Dragan Bosnacki,et al.  Using Fairness to Make Abstractions Work , 2004, SPIN.

[15]  Pierre Wolper,et al.  Relative liveness and behavior abstraction (extended abstract) , 1997, PODC '97.

[16]  Michel Dubois,et al.  A New Approach for the Verification of Cache Coherence Protocols , 1995, IEEE Trans. Parallel Distributed Syst..

[17]  A. Prasad Sistla,et al.  Utilizing symmetry when model-checking under fairness assumptions: an automata-theoretic approach , 1997, TOPL.

[18]  Jaco Geldenhuys,et al.  More efficient on-the-fly LTL verification with Tarjan's algorithm , 2005, Theor. Comput. Sci..

[19]  Krzysztof R. Apt,et al.  Limits for Automatic Verification of Finite-State Concurrent Systems , 1986, Inf. Process. Lett..

[20]  A. Prasad Sistla,et al.  Reasoning about systems with many processes , 1992, JACM.

[21]  Michel Dubois,et al.  Verification techniques for cache coherence protocols , 1997, CSUR.

[22]  Allan Clark,et al.  Semantic-Based Development of Service-Oriented Systems , 2006, FORTE.

[23]  A. Prasad Sistla,et al.  On-the-Fly Model Checking Under Fairness that Exploits Symmetry , 1999, Formal Methods Syst. Des..

[24]  Marcin Paprzycki,et al.  Distributed Computing: Fundamentals, Simulations and Advanced Topics , 2001, Scalable Comput. Pract. Exp..

[25]  Ajitha Rajan,et al.  Requirements Coverage as an Adequacy Measure for Conformance Testing , 2008, ICFEM.

[26]  Jan Arne Telle,et al.  Faster Algorithms for the Nonemptiness of Streett Automata and for Communication Protocol Pruning , 1995, SWAT.

[27]  Andreas Podelski,et al.  ACSAR: Software Model Checking with Transfinite Refinement , 2007, SPIN.

[28]  David L. Dill,et al.  Verifying Systems with Replicated Components in Murphi , 1996, CAV.

[29]  Ulrich Ultes-Nitsche,et al.  Improved verification of linear‐time properties within fairness: weakly continuation‐closed behaviour abstractions computed from trace reductions , 2003, Softw. Test. Verification Reliab..

[30]  Andrzej Lingas,et al.  Algorithm Theory — SWAT'96 , 1996, Lecture Notes in Computer Science.

[31]  David L. Dill,et al.  Verifying Systems with Replicated Components in Murϕ , 1999, Formal Methods Syst. Des..

[32]  Stephan Merz,et al.  Truly On-The-Fly LTL Model Checking , 2005, TACAS.

[33]  Giorgio Delzanno Automatic Verification of Parameterized Cache Coherence Protocols , 2000, CAV.

[34]  Gerard J. Holzmann,et al.  The SPIN Model Checker - primer and reference manual , 2003 .