Abstract
The paper describes the new kernel for the Calculus of Inductive Constructions (CIC) implemented inside the Matita Interactive Theorem Prover. The design of the new kernel has been completely revisited since the first release, resulting in a remarkably compact implementation of about 2300 lines of OCaml code. The work is meant for people interested in implementation aspects of Interactive Provers, and is not self contained. In particular, it requires good acquaintance with Type Theory and functional programming languages.
Similar content being viewed by others
References
Abel A 2004 Termination checking with types. Theoretical informatics and applications 38: 277–319
Asperti A 1992 A categorical understanding of environment machines. J. Funct. Program 2(1): 23–59
Asperti A, Ricciotti W 2008 About the formalization of some results by chebyshev in number theory. Invited talk at TYPES’08, Torino, Italy
Asperti A, Sacerdoti Coen C, Tassi E, Zacchiroli S 2006 Crafting a proof assistant. In: Proceedings of Types 2006: Conference of the Types Project. Nottingham, UK — April 18–21, Springer-Verlag, Lecture Notes in Computer Science, to appear
Barendregt H 1992 Lambda Calculi with Types. In: Abramsky, Samson and others (eds) Handbook of Logic in Computer Science, vol. 2, Oxford University Press
Barras B 1999 Auto-validation d’un système de preuves avec familles inductives. Thèse de doctorat, Universitée Paris 7
Barthe G, Ruys M, Barendregt H 1995 A two-level approach towards lean proof-checking. In: Types for Proofs and Programs (Types 1995), Springer-Verlag, LNCS, 1158: 16–35
Barthe G, Grégoire B, Pastawski F 2006 Type-based termination of recursive definitions in the Calculus of Inductive Constructions. In: Proceedings of the 13th International Conference on Logic for Programming Artificial Intelligence and Reasoning (LPAR’06), Springer-Verlag, Lecture Notes in Artificial Intelligence, to appear
Bertot Y, Castéran P 2004 Interactive theorem proving and program development. Texts in Theoretical Computer Science, Springer-Verlag, iSBN-3-540-20854-2
Boutin S 1997 Using re ection to build efficient and certified decision procedures. In: M Abadi editors TI (eds) Theoretical Aspect of Computer Software TACS’97, Lecture Notes in Computer Science, Springer-Verlag, 1281: 515–529
Courant J 2002 Explicit universes for the calculus of constructions. In: Theorem Proving in Higher Order Logics: 15th International Conference 115–130
Crégut P 1990 An abstract machine for lambda-terms normalization. In: LISP and Functional Programming, 333–340
Crégut P 2007 Strongly reducing variants of the krivine abstract machine. Higher-Order and Symbolic Computation 20(3): 209–230
Danos V, Regnier L 2003 How abstract machines implement head linear reduction, submitted for publication
Dybjer P 1997 Inductive families. Formal Aspects of Computing 6(4): 440–465
Geuvers H 1993 Logics and Type Systems. Ph.D. dissertation, Catholic University Nijmegen
Geuvers H, Jojgov G I 2002 Open proofs and open terms: A basis for interactive logic. In: Bradfield J (ed) Computer Science Logic: 16th International Workshop, CSL 2002, Springer-Verlag, Lecture Notes in Computer Science, 2471: 537–552
Giménez E 1998 Structural recursive definitions in type theory. In: ICALP, 397–408
Gonthier G 2005 A computer-checked proof of the four-colour theorem. Available at http://research.microsoft.com/gonthier/4colproof.pdf
Grégoire B 2003 Compilation des termes de preuves: un (nouveau) mariage entre coq et ocaml. Thése de doctorat, spécialité informatique, Université Paris 7, école Polytechnique, France, URL http://www.sop.inria.fr/everest/personnel/Benjamin.Gregoire/Publi/gregoire these.ps.gz
Huet G, Kahn G, Paulin-Mohring C 1998 The Coq Proof Assistant. A Tutorial
Johnsson T 1985 Lambda lifting: Transforming programs to recursive equations. In: Proc. of Functional programming languages and computer architecture. Nancy, France, Sept 1985
Luo Z 1990 An Extended Calculus of Constructions. PhD thesis, University of Edinburgh
McBride C 1999 Dependently typed functional programs and their proofs. PhD thesis, University of Edinburgh
Miquel A, Werner B 2003 The not so simple proof-irrelevant model of CC. In: H Geuvers, F Wiedijk (eds) Types for Proofs and Programs: International Workshop, TYPES 2002, Springer-Verlag, Lecture Notes in Computer Science, 2646: 240–258
Muoz C 1997 A calculus of substitutions for incomplete-proof representation in type theory. PhD thesis, INRIA
Paulin-Mohring C 1996 Définitions inductives en théorie des types d’ordre supŕieur. Habilitation à diriger les recherches, Université Claude Bernard Lyon I, URL http://www.lri.fr/paulin/habilitation.ps.gz
Peyton-Jones SL 1987 The Implementation of Functional Programming Languages. Prentice-Hall
Pollack R 1994 The theory of lego: A proof checker for the extended calculus of constructions. PhD thesis, PhD thesis, Univ. of Edinburgh
Sacerdoti Coen C 2004a Mathematical knowledge management and interactive theorem proving. PhD thesis, University of Bologna, technical Report UBLCS 2004-5
Sacerdoti Coen C 2004b) Mathematical libraries as proof assistant environments. In: Andrea Asperti, A T Grzegorz Bancerek (ed) Proceedings of Mathematical Knowledge Management 2004, Springer-Verlag, Lecture Notes in Computer Science, 3119: 332–346
Sacerdoti Coen C 2007 Reduction and conversion strategies for the calculus of (co)inductive constructions: Part i. In: Proceedings of the Sixth International Workshop on Reduction Strategies in Rewriting and Programming, Elsevier, ENTCS, 174: 97–118
van Benthem Jutting L, McKinna J, Pollack R 1994 Checking algorithms for Pure Type Systems. In: Barendregt, Nipkow (eds) TYPES’93: Workshop on Types for Proofs and Programs, Selected Papers, Springer-Verlag, LNCS, 806: 19–61, URL http://homepages.inf.ed.ac.uk/rpollack/export/JMPchecking.ps.gz
Werner B 1994 Une théorie des Constructions Inductives. PhD thesis, Université Paris VII
Werner B 1997 Sets in types, types in sets. In: Abadi M, editors TI (eds) Theoretical Aspect of Computer Software TACS’97, Lecture Notes in Computer Science, Springer-Verlag, 1281: 530–546
Werner B 2008 Faire simple pour pouvoir faire compliqué. contributions à une théorie des types pratique. Habilitation à diriger les recherches, Université Paris sud, URL http://www.lix.polytechnique.fr/Labo/Benjamin.Werner/annonceHDR.html
Wiedijk F 2006 The seventeen provers of the world. LNAI 3600
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Asperti, A., Ricciotti, W., Sacerdoti Coen, C. et al. A compact kernel for the calculus of inductive constructions. Sadhana 34, 71–144 (2009). https://doi.org/10.1007/s12046-009-0003-3
Published:
Issue Date:
DOI: https://doi.org/10.1007/s12046-009-0003-3