Skip to main content

Developing certified programs in the system Coq the program tactic

  • Conference paper
  • First Online:
Types for Proofs and Programs (TYPES 1993)

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

Included in the following conference series:

Abstract

The system Coq is an environment for proof development based on the Calculus of Constructions extended by inductive definitions. The specification of a program can be represented by a logical formula and the program itself can be extracted from the constructive proof of the specification. In this paper, we look at the possibility of inverting the extraction process. More precisely, we present a method which, given a specification and a program, builds the logical conditions to be verified in order to obtain a correctness proof of the program. We build a proof of the specification from the program from which the program can be extracted. Since some information cannot automatically be inferred, we show how to annotate the program by specifying some of its parts in order to guide the search for the proof.

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. R. L. Constable et al. Implementing Mathematics with the Nuprl Proof Development System. Prentice-Hall, 1986.

    Google Scholar 

  4. 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 58. Technical Report 154, Projet Formel — INRIA-Rocquencourt-CNRS-ENS Lyon, May 1993.

    Google Scholar 

  5. G. Dowek. Démonstration Automatique dans le Calcul des Constructions. PhD thesis, Université Paris 7, 1991.

    Google Scholar 

  6. G. Dowek. A Complete Proof Synthesis Method for the Cube of Type Systems. Journal of Logic and Computation, To appear.

    Google Scholar 

  7. S. Hayashi and H. Nakano. PX: A Computational Logic. Foundations of Computing. MIT Press, 1988.

    Google Scholar 

  8. 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 

  9. Z. Luo. An Extended Calculus of Constructions. PhD thesis, Department of Computer Science, University of Edinburgh, June 1990.

    Google Scholar 

  10. 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 

  11. B. Nordström, K. Petersson, and G. Plotkinn, editors. Prooceedings of the 1992 worshop on types for proofs and programs, June 1992.

    Google Scholar 

  12. C. Parent. Automatisation partielle du développement de programmes dans le système Coq. Master's thesis, Ecole Normale Supérieure de Lyon, June 1992.

    Google Scholar 

  13. C. Paulin-Mohring. Extracting Fω's programs from proofs in the Calculus of Constructions. In Association for Computing Machinery, editor, Sixteenth Annual ACM Symposium on Principles of Programming Languages, Austin, January 1989.

    Google Scholar 

  14. C. Paulin-Mohring. Extraction de programmes dans le Calcul des Constructions. PhD thesis, Université Paris VII, 1989.

    Google Scholar 

  15. 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 

  16. C. Paulin-Mohring and B. Werner. Synthesis of ML programs in the system Coq. Journal of Symbolic Computation-special issue on automated programing, 1992. To appear.

    Google Scholar 

  17. E. Poll. A programming logic for Fω. Technical Report 92/25, Eindhoven University of Technology, September 1992.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Henk Barendregt Tobias Nipkow

Rights and permissions

Reprints and permissions

Copyright information

© 1994 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Parent, C. (1994). Developing certified programs in the system Coq the program tactic. In: Barendregt, H., Nipkow, T. (eds) Types for Proofs and Programs. TYPES 1993. Lecture Notes in Computer Science, vol 806. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-58085-9_81

Download citation

  • DOI: https://doi.org/10.1007/3-540-58085-9_81

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-58085-0

  • Online ISBN: 978-3-540-48440-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics