Synthesizing proofs from programs in the Calculus of Inductive Constructions

  • Catherine Parent
Contributed Lectures
Part of the Lecture Notes in Computer Science book series (LNCS, volume 947)


We want to prove “automatically” that a program is correct with respect to a set of given properties that is a specification. Proofs of specifications contain logical parts and computational parts. Programs can be seen as computational parts of proofs. They can then be extracted from proofs and be certified to be correct. We focus on the inverse problem: is it possible to reconstruct proof obligations from a program and its specification ? The framework is the type theory where a proof can be represented as a typed λ-term [Con86, NPS90] and particularly the Calculus of Inductive Constructions [Coq85]. A notion of coherence is introduced between a specification and a program containing annotations as in the Hoare sense. This notion is based on the definition of an extraction function called the weak extraction. Such an annotated program can give a method to reconstruct a set of proof obligations needed to have a proof of the initial specification. This can be seen either as a method of proving programs or as a method of synthetically describing proofs.


Heuristic Method Proof Obligation Inductive Type Typing Judgment Inductive Construction 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [Bar91]
    H. Barendregt. Lambda Calculi with Types. Technical Report 91-19, Catholic University Nijmegen, September 1991.Google Scholar
  2. [BM92]
    R. Burstall and J. McKinna. Deliverables: a categorical approach to program development in type theory. Technical Report 92-242, LFCS, October 1992. Also in [NPP92].Google Scholar
  3. [CCF+94]
    C. Cornes, J. Courant, J.C. Filliâtre, G. Huet, P. Manoury, C. Paulin-Mohring, C. Muñoz, C. Murthy, C. Parent, A. Saïbi, and B. Werner. Coq V5.10 Reference Manual. Technical report, 1994. Disponible en ftp anonyme sur, à paraître.Google Scholar
  4. [Con86]
    R. L. Constable et al. Implementing Mathematics with the Nuprl Proof Development System. Prentice-Hall, 1986.Google Scholar
  5. [Coq85]
    T. Coquand. Une théorie des constructions. PhD thesis, Université Paris VII, 1985.Google Scholar
  6. [DFH+93]
    G. Dowek, A. Felty, H. Herbelin, G. Huet, C. Murthy, C. Parent, C. Paulin-Mohring, and B. Werner. The Coq Proof Assistant User's Guide — Version 5.8. Technical Report 154, Projet Formel — INRIA-Rocquencourt-CNRS-ENS Lyon, May 1993.Google Scholar
  7. [Gir72]
    J.Y. Girard. Interprétation fonctionnelle et élimination des coupures de l'arithmétique d'ordre supérieur. PhD thesis, Université Paris 7, 1972.Google Scholar
  8. [Hoa69]
    C.A.R. Hoare. An Axiomatic Basis for Computer Programming. Communications of the ACM, 12(10), October 1969.Google Scholar
  9. [How80]
    W.A. Howard. The formulaes-as-types notion of construction. In J.R. Hindley, editor, To H.B.Curry: Essays on Combinatory Logic, lambda-calculus and formalism. Seldin, J.P., 1980.Google Scholar
  10. [ML84]
    P. Martin-Löf. Intuitionistic Type Theory. Studies in Proof Theory. Bibliopolis, 1984.Google Scholar
  11. [MS92]
    P. Manoury and M. Simonot. Des preuves de totalité de fonctions comme synthèse de programmes. PhD thesis, Université PARIS 7, December 1992.Google Scholar
  12. [NPP92]
    B. Nordström, K. Petersson, and G. Plotkin, editors. Proceedings of the 1992 workshop on types for proofs and programs, June 1992.Google Scholar
  13. [NPS90]
    B. Nordström, K. Petersson, and J. M. Smith. Programming in Martin-Löf 's Type Theory: an introduction. Oxford Science Publications, 1990.Google Scholar
  14. [Par93]
    C. Parent. Developing certified programs in the system Coq — The Program tactic. In H. Barendregt and T. Nipkow, editors, Types For Proofs and Programs, volume 806 of LNCS, pages 291–312, May 1993.Google Scholar
  15. [Par95]
    C. Parent. Synthèse de preuves de programmes dans le Calcul des Constructions. PhD thesis, Ecole Normale Supérieure de Lyon, January 1995.Google Scholar
  16. [PC89]
    F. Pfenning and Paulin-Mohring C. Inductively Defined Types in the Calculus of Constructions. In 5th International Conference on Mathematical Foundations of Programming Semantics, volume 442 of LNCS, pages 209–228, 1989.Google Scholar
  17. [PM89a]
    C. Paulin-Mohring. Extracting F ω programs from proofs in the Calculus of Constructions. In Sixteenth Annual ACM Symposium on Principles of Programming Languages, Austin, January 1989.Google Scholar
  18. [PM89b]
    C. Paulin-Mohring. Extraction de programmes dans le Calcul des Constructions. PhD thesis, Université Paris VII, 1989.Google Scholar
  19. [PM93]
    C. Paulin-Mohring. Inductive Definitions in the System Coq — Rules and Properties. In Typed Lambda Calculi and Applications, volume 664 of LNCS, March 1993. Also in research report 92-49, LIP-ENS Lyon, December 1992.Google Scholar
  20. [Pol94]
    E. Poll. A Programming Logic Based on Type Theory. PhD thesis, Technische Universiteit Eindhoven, 1994.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1995

Authors and Affiliations

  • Catherine Parent
    • 1
  1. 1.LIP, URA CNRS 1398, ENS LyonLyon cedex 07France

Personalised recommendations