Programming with proofs: A second order type theory

  • Michel Parigot
3. Algebraic Specification And Type Concepts
Part of the Lecture Notes in Computer Science book series (LNCS, volume 300)


We discuss the possibility to construct a programming language in which we can program by proofs, in order to ensure program correctness. The logical framework we use is presented in [13].

The main objection to that kind of approach to programming being the inefficiency of the program produced by proofs, the greater part of the paper is devoted to investigate how to define data types and how to construct programs for combining proofs and efficiency. Several solutions are proposed using recursive data types which lead, in particular, to new representations of natural numbers in lambda-calculus.


Data Type Intuitionistic Logic Type Number Recursive Definition Predicate Variable 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. [1]
    H.P. BARENDREGT, The Lambda Calculus, Studies in Logic, North-Holland, 1981.Google Scholar
  2. [2]
    N. DE BRUIJN, A survey of the project Automath, to H.B. CURRY: essays on combinatory logic, λ-calculus and formalism, Seldin/Hindley (eds), pp 579–606, Academic Press, 1980.Google Scholar
  3. [3]
    T. COQUAND, Une théorie des constructions, Thèse de 3eme cycle, Université Paris 7, 1985.Google Scholar
  4. [4]
    T. COQUAND, G. HUET, Constructions: a higher order proof system for mechanizing mathematics, Proc. EUROCAL 85, LNCS 203.Google Scholar
  5. [5]
    R.L. CONSTABLE et. al., Implementing Mathematics with the Nuprl Proof Development System, Prentice-Hall, 1986.Google Scholar
  6. [6]
    G. COUSINEAU, P. L. CURIEN, M. MAUNY, The categorical abstract machine, LNCS 201, 1985.Google Scholar
  7. [7]
    J.Y. GIRARD, Une extension de l'interprétation de Gödel à l'analyse, et son application àl'élimination des coupures dans l'analyse et dans la théorie des types, Proc. 2nd Scandinavian Logic Symp., pp 63–92, North-Holland, 1970.Google Scholar
  8. [8]
    J.Y. GIRARD, Interprétation fonctionnelle et élimination des coupures de l'arithmétique d'ordre supérieur, Thèse d'état, Université Paris 7, 1972.Google Scholar
  9. [9]
    J.Y. GIRARD, The System F of variable types, fifteen years later, Theoretical Computer Science, 1987.Google Scholar
  10. [10]
    W.A. HOWARD, The formulae as types notion of construction, manuscript, 1969 (published in Seldin/Hindley (eds), To H.B. CURRY; essays on combinatory logic, λ-calculus and formalism, pp. 479–490, Academic Press, 1980).Google Scholar
  11. [11]
    J.L. KRIVINE, Programmation en Arithmetique Fonctionnelle du Second Ordre, manuscript.Google Scholar
  12. [12]
    J.L. KRIVINE, Un algorithme non typable dans le système F, CRAS, 1987.Google Scholar
  13. [13]
    J.L. KRIVINE, M. PARIGOT, Programming with proofs, preprint, presented at 6th Symposium on Computation Theory, Wendisch-Rietz, November 1987.Google Scholar
  14. [14]
    H. LAUCHLI, An abstract notion of realizability for which intuitionistic predicate calculus is complete, in Kino/Myhill/vesley (eds), Intuitionism and proof theory, pp 227–234, North-Holland, 1970.Google Scholar
  15. [15]
    P. MARTIN-LOF, Constructive Mathematics and Computer programming, Proc. 6th Cong. Logic, Methodology and Philosophy of Science, pp 153–175, North-Holland, 1982.Google Scholar
  16. [16]
    P. MARTIN-LOF, Intuitionistic type theory, Bibliopolis, 1984.Google Scholar
  17. [17]
    M. PARIGOT, Preuves et programmes: les mathématiques comme langage de programmation, Images des Mathématiques, Courrier du CNRS (à paraître).Google Scholar
  18. [18]
    M. PARIGOT, Recursive programming with proofs, preprint, december 1987.Google Scholar
  19. [19]
    J.R. REYNOLDS, Three approaches to type structure, LNCS 185, 1985, pp 97–138.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1988

Authors and Affiliations

  • Michel Parigot
    • 1
  1. 1.Equipe de Logique, CNRS UA 753Université Paris 7, UFR de MathématiquesPARIS Cedex 05

Personalised recommendations