Coq and Hardware Verification: A Case Study

We present several approaches to verifying a class of circuits with the Coq proof-assistant, using the example of a left-to-right comparator. The large capacity of expression of the Calculus of Inductive Constructions allows us to give precise and general specifications. Using Coq’s higher order logic, we state general results useful in establishing the correctness of the circuits. Finally, exploiting the constructive aspect of the logic, we can show how a certified circuit can be automatically synthesized from its specification.

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

[2]  Christine C. Paulin Extraction de programmes dans le calcul des constructions , 1989 .

[3]  Miriam Leeser,et al.  A Methodology for Reusable Hardware Proofs , 1992, TPHOLs.

[4]  C. A. R. Hoare,et al.  Mechanized reasoning and hardware design , 1992 .

[5]  Yves Bertot,et al.  CtCoq: A System Presentation , 1996, AMAST.

[6]  Jean-Yves Girard,et al.  The System F of Variable Types, Fifteen Years Later , 1986, Theor. Comput. Sci..

[7]  Catherine Parent Synthese de preuves de programmes dans le calcul des constructions inductives , 1995 .

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

[9]  Robin Milner,et al.  Edinburgh lcf: a mechanized logic of computation , 1978 .

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

[11]  Miriam Leeser Using Nuprl for the verification and synthesis of hardware , 1992, Philosophical Transactions of the Royal Society of London. Series A: Physical and Engineering Sciences.

[12]  Mark Longley,et al.  Specification and Verification Using Dependent Types , 1990, IEEE Trans. Software Eng..

[13]  Michel Allemand Modélisation fonctionnelle et preuve de circuits avec LP , 1995 .

[14]  Michael J. C. Gordon,et al.  Why higher-order logic is a good formalism for specifying and verifying hardware , 1985 .

[15]  Christine Paulin-Mohring,et al.  Inductive Definitions in the system Coq - Rules and Properties , 1993, TLCA.

[16]  Gilles Kahn,et al.  Extracting Text from Proofs , 1995, TLCA.

[17]  T. Coquand Une théorie des constructions , 1985 .

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

[19]  Yves Bertot,et al.  User Guide to the CTCOQ Proof Environment , 1997 .

[20]  Hugo Herbelin,et al.  The Coq proof assistant : reference manual, version 6.1 , 1997 .

[21]  M. K. Srivas,et al.  Applying formal verification to a commercial microprocessor , 1995, Proceedings of ASP-DAC'95/CHDL'95/VLSI'95 with EDA Technofair.

[22]  Natarajan Shankar,et al.  A Tutorial on Using PVS for Hardware Verification , 1994, TPCD.

[23]  Michael J. C. Gordon,et al.  Edinburgh LCF: A mechanised logic of computation , 1979 .

[24]  Christine Paulin-Mohring,et al.  Circuits as Streams in Coq: Verification of a Sequential Multiplier , 1995, TYPES.

[25]  Thierry Coquand,et al.  Constructions: A Higher Order Proof System for Mechanizing Mathematics , 1985, European Conference on Computer Algebra.

[26]  Niels Ole Bernsen,et al.  Basic Research Actions: A New Esprit Initiative , 1988 .