Skip to main content

Synthesizing proofs from programs in the Calculus of Inductive Constructions

  • Contributed Lectures
  • Conference paper
  • First Online:
Mathematics of Program Construction (MPC 1995)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 947))

Included in the following conference series:

Abstract

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.

This research was partly supported by ESPRIT Basic Research Action “Types for Proofs and Programs” and by Programme de Recherche Coordonnées and CNRS Groupement de Recherche “Programmation”.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. H. Barendregt. Lambda Calculi with Types. Technical Report 91-19, Catholic University Nijmegen, September 1991.

    Google Scholar 

  2. 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. 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 ftp.inria.fr, à paraître.

    Google Scholar 

  4. R. L. Constable et al. Implementing Mathematics with the Nuprl Proof Development System. Prentice-Hall, 1986.

    Google Scholar 

  5. T. Coquand. Une théorie des constructions. PhD thesis, Université Paris VII, 1985.

    Google Scholar 

  6. 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. 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. C.A.R. Hoare. An Axiomatic Basis for Computer Programming. Communications of the ACM, 12(10), October 1969.

    Google Scholar 

  9. 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. P. Martin-Löf. Intuitionistic Type Theory. Studies in Proof Theory. Bibliopolis, 1984.

    Google Scholar 

  11. 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. 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. 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. 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. 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. 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. 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. C. Paulin-Mohring. Extraction de programmes dans le Calcul des Constructions. PhD thesis, Université Paris VII, 1989.

    Google Scholar 

  19. 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. E. Poll. A Programming Logic Based on Type Theory. PhD thesis, Technische Universiteit Eindhoven, 1994.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Bernhard Möller

Rights and permissions

Reprints and permissions

Copyright information

© 1995 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Parent, C. (1995). Synthesizing proofs from programs in the Calculus of Inductive Constructions. In: Möller, B. (eds) Mathematics of Program Construction. MPC 1995. Lecture Notes in Computer Science, vol 947. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-60117-1_20

Download citation

  • DOI: https://doi.org/10.1007/3-540-60117-1_20

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-60117-3

  • Online ISBN: 978-3-540-49445-4

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics