From Formal Proofs to Mathematical Proofs: A Safe, Incremental Way for Building in First-order Decision Procedures

We investigate here a new version of the Calculus of Inductive Constructions (CIC) on which the proof assistant Coq is based: the Calculus of Congruent Inductive Constructions, which truly extends CIC by building in arbitrary first-order decision procedures: deduction is still in charge of the CIC kernel, while computation is outsourced to dedicated first-order decision procedures that can be taken from the shelves provided they deliver a proof certificate. The soundness of the whole system becomes an incremental property following from the soundness of the certificate checkers and that of the kernel. A detailed example shows that the resulting style of proofs becomes closer to that of the working mathematician.

[1]  Frédéric Blanqui,et al.  Inductive types in the Calculus of Algebraic Constructions , 2003, Fundam. Informaticae.

[2]  Eduardo Giménez,et al.  Structural Recursive Definitions in Type Theory , 1998, ICALP.

[3]  Robert E. Shostak,et al.  A Practical Decision Procedure for Arithmetic with Function Symbols , 1979, JACM.

[4]  Jean-Pierre Jouannaud,et al.  The Calculus of algebraic Constructions , 1999, RTA.

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

[6]  P.H.J.M. Corbineau D'emonstration Automatique en Th'eorie des Types , 2005 .

[7]  Thierry Coquand,et al.  The Calculus of Constructions , 1988, Inf. Comput..

[8]  José Meseguer,et al.  Principles of OBJ2 , 1985, POPL.

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

[10]  José Meseguer,et al.  Specification and proof in membership equational logic , 2000, Theor. Comput. Sci..

[11]  Frédéric Blanqui Definitions by rewriting in the Calculus of Constructions , 2005, Math. Struct. Comput. Sci..

[12]  Mark-Jan Nederhof,et al.  Modular proof of strong normalization for the calculus of constructions , 1991, Journal of Functional Programming.

[13]  Benjamin Werner,et al.  Une Théorie des Constructions Inductives , 1994 .

[14]  Mark-Oliver Stehr,et al.  The Open Calculus of Constructions (Part II): An Equational Type Theory with Dependent Types for Programming, Specification, and Interactive Theorem Proving , 2005, Fundam. Informaticae.

[15]  Pierre Corbineau,et al.  Démonstration automatique en théorie des types , 2005 .

[16]  Thierry Coquand,et al.  Inductively defined types , 1988, Conference on Computer Logic.

[17]  Natarajan Shankar,et al.  Little engines of proof , 2002, Proceedings 17th Annual IEEE Symposium on Logic in Computer Science.

[18]  Jean-Pierre Jouannaud,et al.  Building Decision Procedures in the Calculus of Inductive Constructions , 2007, CSL.

[19]  Nicolas Oury Extensionality in the Calculus of Constructions , 2005, TPHOLs.