Memory-efficient algorithms for the verification of temporal properties

This article addresses the problem of designing memory-efficient algorithms for the verification of temporal properties of finite-state programs. Both the programs and their desired temporal properties are modeled as automata on infinite words (Büchi automata). Verification is then reduced to checking the emptiness of the automaton resulting from the product of the program and the property. This problem is usually solved by computing the strongly connected components of the graph representing the product automaton. Here, we present algorithms that solve the emptiness problem without explicitly constructing the strongly connected components of the product graph. By allowing the algorithms to err with some probability, we can implement them with a randomly accessed memory of size O(n) bits, where n is the number of states of the graph, instead of O(n log n) bits that the presently known algorithms require.

[1]  Claude Jard,et al.  Attacking a Complex Distributed Algorithm from Different Sides: an Experience with Complementary Validation Tools , 1984, Comput. Networks.

[2]  Amir Pnueli,et al.  Checking that finite state concurrent programs satisfy their linear specification , 1985, POPL.

[3]  Carl A. Sunshine Experience with automated Protocol Verification , 1983, Protocol Specification, Testing, and Verification.

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

[5]  C. H. West,et al.  Automated validation of a communications protocol: the CCITT X.21 recommendation , 1978 .

[6]  Gerard J. Holzmann,et al.  An improved protocol reachability analysis technique , 1988, Softw. Pract. Exp..

[7]  C. H. West,et al.  General technique for communications protocol validation , 1978 .

[8]  Pierre Wolper,et al.  On the Relation of Programs and Computations to Models of Temporal Logic , 1987, Temporal Logic in Specification.

[9]  André Thayse,et al.  From modal logic to deductive databases: introduction to a logic based approach to artificial intelligence , 1989 .

[10]  Alfred V. Aho,et al.  Data Structures and Algorithms , 1983 .

[11]  B. Hailpern,et al.  Tools for Verifying Network Protocols , 1989, Logics and Models of Concurrent Systems.

[12]  Thierry Jéron,et al.  On-Line Model Checking for Finite Linear Temporal Logic Specifications , 1989, Automatic Verification Methods for Finite State Systems.

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

[14]  G. J. Holzmann,et al.  Tracing protocols , 1985, AT&T Technical Journal.

[15]  Pascal Gribomont,et al.  From Modal Logic to Deductive Databases: Introducing a Logic Based Approach to Artificial Intelligence , 1989 .

[16]  Harry Rudin Network Protocols and Tools to Help Produce Them , 1987 .

[17]  Harry Rudin,et al.  A Validation Technique for Tightly Coupled Protocols , 1982, IEEE Transactions on Computers.

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

[19]  Pierre Wolper,et al.  Adding liveness properties to coupled finite-state machines , 1990, TOPL.

[20]  Edmund M. Clarke,et al.  Avoiding the state explosion problem in temporal logic model checking , 1987, PODC '87.

[21]  Thierry Jéron,et al.  Bounded-memory Algorithms for Verification On-the-fly , 1991, CAV.

[22]  Ming T. Liu Protocol Engineering , 1989, Adv. Comput..

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

[24]  Moshe Y. Vardi Unified Verification Theory , 1987, Temporal Logic in Specification.

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

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