Progress on the State Explosion Problem in Model Checking

Model checking is an automatic verification technique for finite state concurrent systems. In this approach to verification, temporal logic specifications are checked by an exhaustive search of the state space of the concurrent system. Since the size of the state space grows exponentially with the number of processes, model checking techniques based on explicit state enumeration can only handle relatively small examples. This phenomenon is commonly called the "State Explosion Problem". Over the past ten years considerable progress has been made on this problem by (1) representing the state space symbolically using BDDs and by (2) using abstraction to reduce the size of the state space that must be searched. As a result model checking has been used successfully to find extremely subtle errors in hardware controllers and communication protocols. In spite of these successes, however, additional research is needed to handle large designs of industrial complexity. This aim of this paper is to give a succinct survey of symbolic model checking and to introduce the reader to recent advances in abstraction.

[1]  In-Ho Moon,et al.  Border-Block Triangular Form and Conjunction Schedule in Image Computation , 2000, FMCAD.

[2]  Carl Pixley Introduction to a Computational Theory and Implementation of Sequential Hardware Equivalence , 1990, CAV.

[3]  Ming Li,et al.  An Introduction to Kolmogorov Complexity and Its Applications , 1997, Texts in Computer Science.

[4]  Erwin Engeler,et al.  Logic of Programs, Workshop , 1981 .

[5]  Edmund M. Clarke,et al.  Counterexample-Guided Abstraction Refinement , 2000, CAV.

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

[7]  Helmut Veith Succinct Representation, Leaf Languages, and Projection Reductions , 1998, Inf. Comput..

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

[9]  J. P. Marques,et al.  GRASP : A Search Algorithm for Propositional Satisfiability , 1999 .

[10]  Edmund M. Clarke,et al.  Model Checking , 1999, Handbook of Automated Reasoning.

[11]  Stephan Olariu,et al.  Efficient Image Computations on Reconfigurable Meshes , 1992, CONPAR.

[12]  Georg Gottlob,et al.  Succinctness as a Source of Complexity in Logical Formalisms , 1999, Ann. Pure Appl. Log..

[13]  Edmund M. Clarke,et al.  Design and Synthesis of Synchronization Skeletons Using Branching-Time Temporal Logic , 1981, Logic of Programs.

[14]  Helmut Veith,et al.  Languages Represented by Boolean Formulas , 1997, Inf. Process. Lett..

[15]  William I. Gasarch,et al.  Book Review: An introduction to Kolmogorov Complexity and its Applications Second Edition, 1997 by Ming Li and Paul Vitanyi (Springer (Graduate Text Series)) , 1997, SIGACT News.

[16]  Fausto Giunchiglia,et al.  NUSMV: a new symbolic model checker , 2000, International Journal on Software Tools for Technology Transfer.

[17]  F. Somenzi,et al.  To split or to conjoin: the question in image computation , 2000, Proceedings 37th Design Automation Conference.

[18]  Edmund M. Clarke,et al.  Counterexample-guided abstraction refinement , 2003, 10th International Symposium on Temporal Representation and Reasoning, 2003 and Fourth International Conference on Temporal Logic. Proceedings..

[19]  Georg Gottlob,et al.  Datalog LITE: a deductive query language with linear time model checking , 2002, TOCL.

[20]  Carl Pixley,et al.  Automatic derivation of FSM specification to implementation encoding , 1991, [1991 Proceedings] IEEE International Conference on Computer Design: VLSI in Computers and Processors.

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

[22]  Fausto Giunchiglia,et al.  NUSMV: A New Symbolic Model Verifier , 1999, CAV.

[23]  Igor Walukiewicz,et al.  Guarded fixed point logic , 1999, Proceedings. 14th Symposium on Logic in Computer Science (Cat. No. PR00158).

[24]  Mahesh Viswanathan,et al.  The Complexity of Problems on Graphs Represented as OBDDs , 1998, Chic. J. Theor. Comput. Sci..

[25]  Randal E. Bryant,et al.  Graph-Based Algorithms for Boolean Function Manipulation , 1986, IEEE Transactions on Computers.

[26]  Randal E. Bryant,et al.  On the Complexity of VLSI Implementations and Graph Representations of Boolean Functions with Application to Integer Multiplication , 1991, IEEE Trans. Computers.

[27]  Alberto L. Sangiovanni-Vincentelli,et al.  An Iterative Approach to Language Containment , 1993, CAV.

[28]  Olivier Coudert,et al.  Verification of Synchronous Sequential Machines Based on Symbolic Execution , 1989, Automatic Verification Methods for Finite State Systems.

[29]  Seh-Woong Jeong,et al.  Exact calculation of synchronization sequences based on binary decision diagrams , 1992, [1992] Proceedings 29th ACM/IEEE Design Automation Conference.

[30]  A. Prasad Sistla,et al.  Automatic verification of finite state concurrent system using temporal logic specifications: a practical approach , 1983, POPL '83.

[31]  Edmund M. Clarke,et al.  Symbolic Model Checking with Partitioned Transistion Relations , 1991, VLSI.

[32]  Johan van Benthem,et al.  Modal Languages and Bounded Fragments of Predicate Logic , 1998, J. Philos. Log..

[33]  Kenneth L. McMillan,et al.  Symbolic model checking , 1992 .

[34]  Helmut Veith,et al.  How to encode a logical structure by an OBDD , 1998, Proceedings. Thirteenth Annual IEEE Conference on Computational Complexity (Formerly: Structure in Complexity Theory Conference) (Cat. No.98CB36247).