Hardware verification, Boolean logic programming, Boolean functional programming

One of the main obstacles to automatic verification of finite state systems (FSSs) is state explosion. In this respect automatic verification of an FSS M using model checking and binary decision diagrams (BDDs) has an intrinsic limitation: no automatic global optimization of the verification task is possible until a BDD representation for M is generated. This is because systems and specifications are defined using different languages. To perform global optimization before generating a BDD representation for M we propose to use the same language to define systems and specifications. We show that first order logic on a Boolean domain yields an efficient functional programming language that can be used to represent, specify and automatically verify FSSs, e.g. on a SUN Sparc Station 2 we were able to automatically verify a 64 bit commercial multiplier.

[1]  Enrico Tronci,et al.  About Systems of Equations, X-Separability, and Left-Invertibility in the lambda-Calculus , 1991, Inf. Comput..

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

[3]  M. Gordon HOL: A Proof Generating System for Higher-Order Logic , 1988 .

[4]  Somesh Jha,et al.  An Improved Algorithm for the Evaluation of Fixpoint Expressions , 1994, Theor. Comput. Sci..

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

[6]  Robert K. Brayton,et al.  On Computing the Transitive Closure of a State Transition Relation , 1993, 30th ACM/IEEE Design Automation Conference.

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

[8]  Alan J. Hu,et al.  Higher-Level Specification and Verification with BDDs , 1992, CAV.

[9]  J. Lloyd Foundations of Logic Programming , 1984, Symbolic Computation.

[10]  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.

[11]  Enrico Tronci,et al.  X-Separability and Left-Invertibility in lambda-calculus , 1987, LICS.

[12]  Alan J. Hu,et al.  Reducing BDD Size by Exploiting Functional Dependencies , 1993, 30th ACM/IEEE Design Automation Conference.

[13]  Leslie Lamport,et al.  The temporal logic of actions , 1994, TOPL.