Tarjan's Algorithm Makes On-the-Fly LTL Verification More Efficient

State-of-the-art algorithms for on-the-fly automata-theoretic LTL model checking make use of nested depth-first search to look for accepting cycles in the product of the system and the Buchi automaton. Here we present a new algorithm based on Tarjan’s algorithm for detecting strongly connected components. We show its correctness, describe how it can be efficiently implemented, and discuss its interaction with other model checking techniques, such as bitstate hashing. The algorithm is compared to the old algorithms through experiments on both random and actual state spaces, using random and real formulas. Our measurements indicate that our algorithm investigates at most as many states as the old ones. In the case of a violation of the correctness property, the algorithm often explores significantly fewer states.

[1]  Pierre Wolper,et al.  Reasoning about infinite computation paths , 1983, 24th Annual Symposium on Foundations of Computer Science (sfcs 1983).

[2]  David L. Dill,et al.  Validation with guided search of the state space , 1998, Proceedings 1998 Design and Automation Conference. 35th DAC. (Cat. No.98CH36175).

[3]  Stefan Edelkamp,et al.  Directed explicit-state model checking in the validation of communication protocols , 2004, International Journal on Software Tools for Technology Transfer.

[4]  Fabio Somenzi,et al.  Efficient Büchi Automata from LTL Formulae , 2000, CAV.

[5]  Patrice Godefroid,et al.  Partial-Order Methods for the Verification of Concurrent Systems , 1996, Lecture Notes in Computer Science.

[6]  Robert E. Tarjan,et al.  Depth-First Search and Linear Graph Algorithms , 1972, SIAM J. Comput..

[7]  Gerard Tel,et al.  Introduction to Distributed Algorithms: Contents , 2000 .

[8]  Ming T. Liu,et al.  Protocol verification using reachability analysis: the state space explosion problem and relief strategies , 1987, Computer Communication Review.

[9]  Doron A. Peled,et al.  All from One, One for All: on Model Checking Using Representatives , 1993, CAV.

[10]  Gerard J. Holzmann,et al.  State-space caching revisited , 1995, Formal Methods Syst. Des..

[11]  Kousha Etessami,et al.  Optimizing Büchi Automata , 2000, CONCUR.

[12]  Fausto Giunchiglia,et al.  Improved Automata Generation for Linear Temporal Logic , 1999, CAV.

[13]  George S. Avrunin,et al.  Property specification patterns for finite-state verification , 1998, FMSP '98.

[14]  Klaus Schneider,et al.  Improving Automata Generation for Linear Temporal Logic by Considering the Automaton Hierarchy , 2001, LPAR.

[15]  Antti Valmari,et al.  A stubborn attack on state explosion , 1990, Formal Methods Syst. Des..

[16]  Frank Wolter,et al.  Monodic fragments of first-order temporal logics: 2000-2001 A.D , 2001, LPAR.

[17]  Gerard J. Holzmann,et al.  Design and validation of computer protocols , 1991 .

[18]  Mihalis Yannakakis,et al.  On nested depth first search , 1996, The Spin Verification System.

[19]  Paul Gastin,et al.  Fast LTL to Büchi Automata Translation , 2001, CAV.

[20]  Eljas Soisalon-Soininen,et al.  On Finding the Strongly Connected Components in a Directed Graph , 1994, Inf. Process. Lett..

[21]  Pierre Wolper,et al.  Simple on-the-fly automatic verification of linear temporal logic , 1995, PSTV.

[22]  Heikki Tauriainen A Randomized Testbench for Algorithms Translating Linear Temporal Logic Formulae into B1chi Automat , 1999 .

[23]  Harold N. Gabow,et al.  Path-based depth-first search for strong and biconnected components , 2000, Inf. Process. Lett..

[24]  Reino Kurki-Suonio,et al.  On computing the transitive closure of a relation , 2004, Acta Informatica.

[25]  Alfred V. Aho,et al.  The Design and Analysis of Computer Algorithms , 1974 .

[26]  Pierre Wolper,et al.  Memory-efficient algorithms for the verification of temporal properties , 1990, Formal Methods Syst. Des..