Skip to main content
Log in

A compact kernel for the calculus of inductive constructions

  • Published:
Sadhana Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  • Abel A 2004 Termination checking with types. Theoretical informatics and applications 38: 277–319

    Article  MATH  MathSciNet  Google Scholar 

  • Asperti A 1992 A categorical understanding of environment machines. J. Funct. Program 2(1): 23–59

    Article  MATH  MathSciNet  Google Scholar 

  • 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

    Article  MATH  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to A. Asperti.

Rights and permissions

Reprints 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

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s12046-009-0003-3

Keywords

Navigation