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.
Keywords
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.
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”.
Preview
Unable to display preview. Download preview PDF.
References
H. Barendregt. Lambda Calculi with Types. Technical Report 91-19, Catholic University Nijmegen, September 1991.
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].
R. L. Constable et al. Implementing Mathematics with the Nuprl Proof Development System. Prentice-Hall, 1986.
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.
G. Dowek. Démonstration Automatique dans le Calcul des Constructions. PhD thesis, Université Paris 7, 1991.
G. Dowek. A Complete Proof Synthesis Method for the Cube of Type Systems. Journal of Logic and Computation, To appear.
S. Hayashi and H. Nakano. PX: A Computational Logic. Foundations of Computing. MIT Press, 1988.
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.
Z. Luo. An Extended Calculus of Constructions. PhD thesis, Department of Computer Science, University of Edinburgh, June 1990.
P. Manoury and M. Simonot. Des preuves de totalité de fonctions comme synthèse de programmes. PhD thesis, Université PARIS 7, December 1992.
B. Nordström, K. Petersson, and G. Plotkinn, editors. Prooceedings of the 1992 worshop on types for proofs and programs, June 1992.
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.
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.
C. Paulin-Mohring. Extraction de programmes dans le Calcul des Constructions. PhD thesis, Université Paris VII, 1989.
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.
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.
E. Poll. A programming logic for Fω. Technical Report 92/25, Eindhoven University of Technology, September 1992.
Author information
Authors and Affiliations
Editor information
Rights 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