Using an induction prover for verifying arithmetic circuits

Abstract.We show that existing theorem proving technology can be used effectively for mechanically verifying a family of arithmetic circuits. A theorem prover implementing: (i) a decision procedure for quantifier-free Presburger arithmetic with uninterpreted function symbols; (ii) conditional rewriting; and (iii) heuristics for carefully selecting induction schemes from terminating recursive function definitions; and (iv) well integrated with backtracking, can automatically verify number-theoretic properties of parameterized and generic adders, multipliers and division circuits. This is illustrated using our theorem prover Rewrite Rule Laboratory (RRL). To our knowledge, this is the first such demonstration of the capabilities of a theorem prover mechanizing induction.The above features of RRL are briefly discussed using illustrations from the verification of adder, multiplier and division circuits. Extensions to the prover likely to make it even more effective for hardware verification are discussed. Furthermore, it is believed that these results are scalable, and the proposed approach is likely to be effective for other arithmetic circuits as well.

[1]  Robert S. Boyer,et al.  A computational logic handbook , 1979, Perspectives in computing.

[2]  Deepak Kapur,et al.  Mechanizing Reasoning about Large Finite Tables in a Rewrite Based Theorem Prover , 1998, ASIAN.

[3]  Andrew Ireland,et al.  The Use of Planning Critics in Mechanizing Inductive Proofs , 1992, LPAR.

[4]  Deepak Kapur,et al.  Mechanically Verifying a Family of Multiplier Circuits , 1996, CAV.

[5]  Jane Thurmann Hesketh,et al.  Using middle-out reasoning to guide inductive theorem proving , 1992 .

[6]  M. Ercegovac,et al.  Division and Square Root: Digit-Recurrence Algorithms and Implementations , 1994 .

[7]  Deepak Kapur,et al.  Lemma Discovery in Automated Induction , 1996, CADE.

[8]  Amos R. Omondi,et al.  Computer arithmetic systems - algorithms, architecture and implementation , 1994, Prentice Hall International series in computer science.

[9]  Natarajan Shankar,et al.  Modular Verification of SRT Division , 1996, CAV.

[10]  Robert E. Shostak,et al.  Deciding Combinations of Theories , 1982, JACM.

[11]  J. B. Gosling,et al.  Design of a Hih-Speed Square Root Multiply and Divide Unit , 1987, IEEE Transactions on Computers.

[12]  Toby Walsh,et al.  Difference Matching , 1992, CADE.

[13]  Robert S. Boyer,et al.  Integrating decision procedures into heuristic theorem provers: a case study of linear arithmetic , 1988 .

[14]  Greg Nelson,et al.  Simplification by Cooperating Decision Procedures , 1979, TOPL.

[15]  Tomás Lang,et al.  Radix-4 square root without initial PLA , 1989, Proceedings of 9th Symposium on Computer Arithmetic.

[16]  K. D. Tocher TECHNIQUES OF MULTIPLICATION AND DIVISION FOR AUTOMATIC BINARY COMPUTERS , 1958 .

[17]  Hantao Zhang,et al.  Implementing Contextual Rewriting , 1992, CTRS.

[18]  M. Subramaniam,et al.  Failure analyses of inductive theorem provers , 1996 .

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

[20]  James E. Robertson,et al.  A New Class of Digital Division Methods , 1958, IRE Trans. Electron. Comput..

[21]  R. Bryant,et al.  Verification of Arithmetic Functions with Binary Moment Diagrams , 1994 .

[22]  Deepak Kapur,et al.  A Mechanizable Induction Principle for Equational Specifications , 1988, CADE.

[23]  Christopher S. Wallace,et al.  A Suggestion for a Fast Multiplier , 1964, IEEE Trans. Electron. Comput..

[24]  Natarajan Shankar,et al.  Effective Theorem Proving for Hardware Verification , 1994, TPCD.

[25]  Robert S. Boyer,et al.  Computational Logic , 1990, ESPRIT Basic Research Series.

[26]  Toby Walsh,et al.  A Divergence Critic , 1994, CADE.

[27]  Deepak Kapur,et al.  Rewriting, Decision Procedures and Lemma Speculation for Automated Hardware Verification , 1997, TPHOLs.

[28]  Deepak Kapur,et al.  Shostak's Congruence Closure as Completion , 1997, RTA.

[29]  Deepak Kapur,et al.  An Overview of Rewrite Rule Laboratory (RRL) , 1989, RTA.

[30]  Tom Melham,et al.  Hardware Verification using Higher−Order Logic , 1986 .

[31]  Paul S. Miner,et al.  Verification of IEEE Compliant Subtractive Division Algorithms , 1996, FMCAD.

[32]  Matt Kaufmann,et al.  A Mechanically Checked Proof of the , 1998 .

[33]  Debjit Das Sarma,et al.  Measuring the accuracy of ROM reciprocal tables , 1993, Proceedings of IEEE 11th Symposium on Computer Arithmetic.

[34]  Natarajan Shankar,et al.  Modular Verification of SRT Division , 1996, CAV.

[35]  Erdem Hokenek,et al.  Design of the IBM RISC System/6000 Floating-Point Execution Unit , 1990, IBM J. Res. Dev..

[36]  Edmund M. Clarke,et al.  Verifying the SRT Division Algorithm Using Theorem Proving Techniques , 1996, Formal Methods Syst. Des..

[37]  Bishop Brock,et al.  The Verification of a Bit-slice ALU , 1989, Hardware Specification, Verification and Synthesis.

[38]  George S. Taylor Compatible hardware for division and square root , 1981, 1981 IEEE 5th Symposium on Computer Arithmetic (ARITH).

[39]  Hugo De Man,et al.  A METHODOLOGY FOR PROVING CORRECTNESS OF PARAMETERIZED HARDWARE MODULES IN HOL , 1991 .

[40]  N. A C H U M D E R S H O W I T Z Termination of Rewriting' , 2022 .

[41]  Edmund M. Clarke,et al.  Sequential circuit verification using symbolic model checking , 1991, DAC '90.

[42]  Randal E. Bryant Bit-level analysis of an SRT divider circuit , 1996, DAC '96.

[43]  Tomás Lang,et al.  Radix-4 Square Root Without Initial PLA , 1990, IEEE Trans. Computers.