Effective Theorem Proving for Hardware Verification

The attractiveness of using theorem provers for system design verification lies in their generality. The major practical challenge confronting theorem proving technology is in combining this generality with an acceptable degree of automation. We describe an approach for enhancing the effectiveness of theorem provers for hardware verification through the use of efficient automatic procedures for rewriting, arithmetic and equality reasoning, and an off-the-shelf BDD-based propo-sitional simplifier. These automatic procedures can be combined into general-purpose proof strategies that can efficiently automate a number of proofs including those of hardware correctness. The inference procedures and proof strategies have been implemented in the PVS verification system. They are applied to several examples including an N-bit adder, the Saxe pipelined processor, and the benchmark Tamarack microprocessor design. These examples illustrate the basic design philosophy underlying PVS where powerful and efficient low-level inferences are employed within high-level user-defined proof strategies. This approach is contrasted with approaches based on tactics or batch-oriented theorem proving.

[1]  Miriam Leeser,et al.  Toward a Super Duper Hardware Tactic , 1993, HUG.

[2]  Robert E. Tarjan,et al.  Variations on the Common Subexpression Problem , 1980, J. ACM.

[3]  Natarajan Shankar,et al.  PVS: A Prototype Verification System , 1992, CADE.

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

[5]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .

[6]  David L. Dill,et al.  Automatic verification of Pipelined Microprocessor Control , 1994, CAV.

[7]  Thomas Kropf,et al.  Structuring and automating hardware proofs in a higher-order theorem-proving environment , 1993, Formal Methods Syst. Des..

[8]  M. Gordon,et al.  PROVING A COMPUTER CORRECT IN HIGHER ORDER LOGIC , 1986 .

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

[10]  Steven M. German,et al.  Stanford Pascal Verifier user manual , 1979 .

[11]  Phillip J. Windley,et al.  A Correctness Model for Pipelined Multiprocessors , 1994, TPCD.

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

[13]  Mark Bickford,et al.  Formal verification of a pipelined microprocessor , 1990, IEEE Software.

[14]  Paliath Narendran,et al.  Ground Temporal Logic: A Logic for Hardware Verification , 1994, CAV.

[15]  Martín Abadi,et al.  The Existence of Refinement Mappings , 1988, LICS.

[16]  M. Gordon,et al.  Introduction to HOL: a theorem proving environment for higher order logic , 1993 .

[17]  Orna Grumberg,et al.  Research on Automatic Verification of Finite-State Concurrent Systems , 1987 .

[18]  Mandayam K. Srivas,et al.  Formal verification of the AAMP5 microprocessor: a case study in the industrial use of formal methods , 1995, Proceedings of 1995 IEEE Workshop on Industrial-Strength Formal Specification Techniques.

[19]  Stephen J. Garland,et al.  Using transformations and verification in circuit design , 1992, Formal Methods Syst. Des..