Logics for digital circuit verification : theory, algorithms, and applications

ion .. 'L' { BV I ',' }+ 1 • 1 Formula Fixed_Point :: = 1 mu' I 1 nu' ) RV ' . ' Term . Term_l : : = Term_2 ( '->' I 1 <->' I 1 XOr 1 ) Term_2}. Term_2 Term_3 { 1 +' Term_3 } Term_3 .. Term_4 1 &' Term_4} Term_4 .. { ,-, } Atomic_Term Atomic_Term : := 1 0' I '1 1 I RV 1 , 1 1 ] 1 , [ 1 Term , J 1 Figure 7.1. Boolean ,u-calculus concrete syntax in BNP. The new notation for the connectives and punctuation symbols is made clear in table 7.2. We assume that the set of boolean variables BV and predicate symbols or relational variables RV are disjoint. Apart from the overloading of the 0 and 1 tokens and taking the above assumption into account the grammar is LL(l) and therefore unambiguous [Backh80]. lt is straightforward to convert this grammar into an equivalent one, i.e., a grammar that generates the same language, but uses less meta-symbols (see figure 7.2). 90 p-Calculus Chapter 7 Math. notation: mu notation: Meaning: 3z1, z2, · · ·, ZJ.:. E zl, z2, ... , zk Existential quant. Vz1 ,z2, · · · ,zk. A zl, z2, * * • I zk Universal quant. --+ -> Implication H <-> Equivalence (Ij xor Exclusive-or V + (Inclusive-)or A & And .... Not Jz1 , z2, · · · , Zk· L zl, z2, .... , zk Abstraction f.l.X. mu X . Least fixed-point vX. nu X Greatest fixed-point Table 7.2. Notational correspondence. F .. Fl I QF QF : := 'E' BVL , I F I I A' BVL I . ' F . Fl : : = F2 Fl '->' F2 Fl '<->' F2 Fl 1XOr 1 F2 . F2 .. F3 F2 1+1 F3 F3 :: = F4 F3 I&' F4 F4 :: = AF I -I F4 AF : := PF I ( I F I } I PF : : = '01 I '1' I BV BV I I I I I Ap . Ap : : = AT PF I AT , ( , FL I ) I FL : := F I FL I I F. I T : : == Tl I Ab I FP Ab : := I L' BVL I I F . BVL : := BV I BVL I , BV I FP : : = 'mu' RV I I T I 'nu' RV I I T Tl : := T2 Tl '->' T2 Tl '<->' T2 Tl 'xor 1 T2 T2 .. T3 T2 I+ I T3 T3 : := T4 T3 '&' T4 T4 .. AT II T4 AT : := , 0, I , 1' I RV I RV I I I I I I [ I T I l I Figure 7.2. Boolean p-calculus concrete syntax in Restricted-BNF. The shorter narnes that we use for the non-terminal symbols should be obvious. We will denote the set of strings generaled by a non-terminal symbol by the name of that non-terminal symbol; thus F denotes the universe of all formulas. §7.4 Boolean .u-calculus 91 Also, we use the lowercase name to denote an arbitrary element of such a set of strings: f is a formula in F. We developed a computer program called mu based on the latter syntax. (The new syntax of figure 7.2 is directly suitable as input to the parser generator tool yacc.) To ease the definition of the semantics of formulas and terms, some operators and constructs are seen as abbreviations of more elaborate constructs. Table 7.3 informally indicates the intended abbreviations. For these abbreviations we can define a transformation tostringsof a simpler grammar (as in figure 7.3). Construct: Abbreviates: E z1~ z2, "'"' • I zk . f E z1 E z2 ... E zk f A z1, z2, ..... , zk . f -(E z1~ z2~ "•,. I zk ( f)) G -> H (G) + H G <-> H (G -> H) & (H -> G) G xor H -{G <-> H) G & H ((G) + (H) ) s~ -(s) nu X t -(mu X < t[-x/x] l l Table 7.3. Abbreviations. f stands for an arbitrary formula; the zi are arbitrary variables; G and H are either both formulas or both terms; s stands for an arbitrary variabie or predicate symbol; X is a predicate symbol and t a term, and t[-x/x] denotes the term that results after substituting -x for all free occurrences of X int. Note that the correspondence is of a recursive nature. This simple grammar is then the basis for our semantics definition. F ' E , BV , . I , ( , F , ) ,

[1]  M. Rem,et al.  VLSI programming and silicon compilation-a novel approach from Philips research , 1988, Proceedings 1988 IEEE International Conference on Computer Design: VLSI.

[2]  W. Wolf An algorithm for nearly-minimal collapsing of finite-state machine networks , 1990, 1990 IEEE International Conference on Computer-Aided Design. Digest of Technical Papers.

[3]  Simon L. Peyton Jones,et al.  The Implementation of Functional Programming Languages , 1987 .

[4]  Harold T. Hodes,et al.  The | lambda-Calculus. , 1988 .

[5]  Niklaus Wirth Hardware Compilation: Translating Programs into Circuits , 1998, Computer.

[6]  Jean H. Gallier,et al.  Logic for Computer Science: Foundations of Automatic Theorem Proving , 1985 .

[7]  Martin Peschke,et al.  Design and Validation of Computer Protocols , 2003 .

[8]  A. Prasad Sistla,et al.  The complexity of propositional linear temporal logics , 1982, STOC '82.

[9]  K. Karplus Using if-then-else DAGs for multi-level logic minimization , 1989 .

[10]  Sharad Malik,et al.  Analysis of cyclic combinational circuits , 1993, ICCAD '93.

[11]  C. A. J. van Eijk,et al.  Exploiting functional dependencies in finite state machine verification , 1996, Proceedings ED&TC European Design and Test Conference.

[12]  Randal E. Bryant,et al.  Efficient implementation of a BDD package , 1991, DAC '90.

[13]  Arvind Srinivasan,et al.  Verity - A formal verification program for custom CMOS circuits , 1995, IBM J. Res. Dev..

[14]  David S. Johnson,et al.  Computers and Intractability: A Guide to the Theory of NP-Completeness , 1978 .

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

[16]  Jan Madsen,et al.  CONTROLLER SYNTHESIS AND VERIFICATION , 1993 .

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

[18]  Edsger W. Dijkstra,et al.  Programming methodologies : their objectives and their nature , 1976 .

[19]  Roland Carl Backhouse,et al.  Syntax of Programming Languages: Theory and Practice , 1979 .

[20]  Zohar Manna,et al.  Verification of concurrent programs, Part I: The temporal framework , 1981 .

[21]  A. Tarski A LATTICE-THEORETICAL FIXPOINT THEOREM AND ITS APPLICATIONS , 1955 .

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

[23]  Jerry R. Burch,et al.  Using bdds to verify multipliers , 1991, 28th ACM/IEEE Design Automation Conference.

[24]  Sharad Malik,et al.  Permutation and phase independent Boolean comparison , 1993, Integr..

[25]  M. Browne Automatic verification of finite state machines using temporal logic , 1989 .

[26]  Michael J. Townsend,et al.  Thomas Piketty: Capital in the twenty-first century , 2014, Public Choice.

[27]  Stephen Warshall,et al.  A Theorem on Boolean Matrices , 1962, JACM.

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

[29]  Roger Hale,et al.  Using Temporal Logic for Prototyping: The Design of a Lift Controller , 1987, Temporal Logic in Specification.

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

[31]  Pierre Wolper,et al.  Temporal logic can be more expressive , 1981, 22nd Annual Symposium on Foundations of Computer Science (sfcs 1981).