Reasoning About Systems with Transition Fairness

Formal verification methods model systems by Kripke structures. In order to model live behaviors of systems, Kripke structures are augmented with fairness conditions. Such conditions partition the computations of the systems into fair computations, with respect to which verification proceeds, and unfair computations, which are ignored. Reasoning about Kripke structures augmented with fairness is typically harder than reasoning about non-fair Kripke structures. We consider the transition fairness condition, where a computation π is fair iff each transition that is enabled in π infinitely often is also taken in π infinitely often. Transition fairness is a natural and useful fairness condition. We show that reasoning about Kripke structures augmented with transition fairness is not harder than reasoning about non-fair Kripke structures. We demonstrate it for fair CTL and LTL model checking, and the problem of calculating the dominators and postdominators.

[1]  Orna Kupferman,et al.  Coverage metrics for temporal logic model checking* , 2006, Formal Methods Syst. Des..

[2]  Wolfgang Thomas,et al.  Automata on Infinite Objects , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[3]  Mark N. Wegman,et al.  Efficiently computing static single assignment form and the control dependence graph , 1991, TOPL.

[4]  Amir Pnueli,et al.  Network Invariants in Action , 2002, CONCUR.

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

[6]  Jerzy Tiuryn,et al.  Logics of Programs , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[7]  Kousha Etessami,et al.  A Hierarchy of Polynomial-Time Computable Simulations for Automata , 2002, CONCUR.

[8]  Robert E. Tarjan,et al.  A fast algorithm for finding dominators in a flowgraph , 1979, TOPL.

[9]  Joseph Y. Halpern,et al.  “Sometimes” and “not never” revisited: on branching versus linear time temporal logic , 1986, JACM.

[10]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[11]  Moshe Y. Vardi Sometimes and Not Never Re-revisited: On Branching Versus Linear Time , 1998, CONCUR.

[12]  Moshe Y. Vardi Automatic verification of probabilistic concurrent finite state programs , 1985, 26th Annual Symposium on Foundations of Computer Science (sfcs 1985).

[13]  Edmund M. Clarke,et al.  Symbolic Model Checking: 10^20 States and Beyond , 1990, Inf. Comput..

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

[15]  Pierre Wolper,et al.  Reasoning About Infinite Computations , 1994, Inf. Comput..

[16]  Kavita Ravi,et al.  Efficient Decision Procedures for Model Checking of Linear Time Logic Properties , 1999, CAV.

[17]  Amir Pnueli,et al.  Algorithmic Verification of Linear Temporal Logic Specifications , 1998, ICALP.

[18]  Orna Kupferman,et al.  Verification of Fair Transition Systems , 1998, Chic. J. Theor. Comput. Sci..

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

[20]  Chin-Laung Lei,et al.  Modalities for Model Checking: Branching Time Logic Strikes Back , 1987, Sci. Comput. Program..

[21]  Zohar Manna,et al.  The Temporal Logic of Reactive and Concurrent Systems , 1991, Springer New York.

[22]  Monika Maidl Using model checking for system verification , 2000 .

[23]  C. Rattray,et al.  Specification and Verification of Concurrent Systems , 1990, Workshops in Computing.

[24]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1987, TOPL.

[25]  E. Allen Emerson,et al.  Temporal and Modal Logic , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[26]  J. Van Leeuwen,et al.  Handbook of theoretical computer science - Part A: Algorithms and complexity; Part B: Formal models and semantics , 1990 .

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

[28]  R. BurchJ.,et al.  Symbolic model checking , 1992 .

[29]  Robin Milner,et al.  On Observing Nondeterminism and Concurrency , 1980, ICALP.

[30]  Fabio Somenzi,et al.  An Algorithm for Strongly Connected Component Analysis in n log n Symbolic Steps , 2000, Formal Methods Syst. Des..

[31]  Orna Kupferman,et al.  Relating linear and branching model checking , 1998, PROCOMET.

[32]  Joseph Sifakis,et al.  Specification and verification of concurrent systems in CESAR , 1982, Symposium on Programming.

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

[34]  Carla Piazza,et al.  Computing strongly connected components in a linear number of symbolic steps , 2003, SODA '03.

[35]  Joseph Sifakis,et al.  Fairness and related properties in transition systems — a temporal logic to deal with fairness , 1983, Acta Informatica.

[36]  Haim Kaplan,et al.  A new, simpler linear-time dominators algorithm , 1998, TOPL.

[37]  Ugo Montanari,et al.  International Symposium on Programming , 1982, Lecture Notes in Computer Science.

[38]  Orna Grumberg,et al.  Model checking and modular verification , 1994, TOPL.

[39]  Timo Latvala,et al.  Coping With Strong Fairness , 2000, Fundam. Informaticae.