Formal verification of digital systems

A formal verifier is an automated decision procedure that can prove or disprove a set of statements in some logical system of reasoning. Problems informal verification have been posed and studied in a variety of disciplines for many years. However the last ten years have produced significant advances in both the theory and practical art of building formal verifiers. Various formal proof techniques available today include language containment, model checking, equivalence checking, symbolic simulation and theorem proving. In this tutorial, we will be restricting ourselves to the formal finite state machine based techniques: language containment, model checking and equivalence checking. A brief introduction to the technologies that underly these techniques will be presented as well. The tutorial will conclude with some examples of how formal methods can be employed in the verification of hardware systems.

[1]  Gerard J. Holzmann,et al.  The State of SPIN , 1996, CAV.

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

[3]  Robert K. Brayton,et al.  Implicit state enumeration of finite state machines using BDD's , 1990, 1990 IEEE International Conference on Computer-Aided Design. Digest of Technical Papers.

[4]  R. Brayton,et al.  Efficient Formal Design Verification : Data Structure + Algorithms , 1994 .

[5]  Albert R. Wang,et al.  Logic verification using binary decision diagrams in a logic synthesis environment , 1988, [1988] IEEE International Conference on Computer-Aided Design (ICCAD-89) Digest of Technical Papers.

[6]  Sérgio Vale Aguiar Campos,et al.  Symbolic Model Checking , 1993, CAV.

[7]  Olivier Coudert,et al.  A unified framework for the formal verification of sequential circuits , 1990, ICCAD 1990.

[8]  Seh-Woong Jeong,et al.  Synchronizing sequences and symbolic traversal techniques in test generation , 1993, J. Electron. Test..

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

[10]  D. Brand Verification of large synthesized designs , 1993, ICCAD 1993.

[11]  G. Hachtel,et al.  Tearing based automatic abstraction for CTL model checking , 1996, ICCAD 1996.

[12]  David L. Dill,et al.  The Murphi Verification System , 1996, CAV.

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

[14]  Jeffrey D. Ullman,et al.  Introduction to Automata Theory, Languages and Computation , 1979 .

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

[16]  Chin-Laung Lei,et al.  Modalities for model checking (extended abstract): branching time strikes back , 1985, POPL.

[17]  E. Emerson,et al.  Modalities for model checking (extended abstract): branching time strikes back , 1985, ACM-SIGACT Symposium on Principles of Programming Languages.

[18]  R. P. Kurshan,et al.  Automata-theoretic verification of coordinating processes , 1994 .

[19]  Lynn Conway,et al.  Introduction to VLSI systems , 1978 .

[20]  Robert P. Kurshan,et al.  Software for analytical development of communications protocols , 1990, AT&T Technical Journal.

[21]  Tiziano Villa,et al.  VIS: A System for Verification and Synthesis , 1996, CAV.

[22]  Szu-Tsung Cheng,et al.  HSIS: A BDD-Based Environment for Formal Verification , 1994, 31st Design Automation Conference.

[23]  Randal E. Bryant,et al.  Formal hardware verification by symbolic trajectory evaluation , 1997 .

[24]  Edmund M. Clarke,et al.  Efficient generation of counterexamples and witnesses in symbolic model checking , 1995, DAC '95.

[25]  R. Rudell Dynamic variable ordering for ordered binary decision diagrams , 1993, ICCAD 1993.

[26]  Melvin A. Breuer,et al.  Diagnosis and Reliable Design of Digital Systems , 1977 .

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

[28]  Sheldon B. Akers,et al.  Binary Decision Diagrams , 1978, IEEE Transactions on Computers.