Abstract
We present here a new extraction mechanism for the Coq proof assistant [17]. By extraction, we mean automatic generation of functional code from Coq proofs, in order to produce certified programs. In former versions of Coq, the extraction mechanism suffered several limitations and in particular worked only with a subset of the language. We first discuss difficulties encountered and solutions proposed to remove these limitations. Then we give a proof of correctness for a theoretical model of the new extraction. Finally we describe the actual implementation distributed in Coq version 7.3 and further.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
S. Berardi. Pruning simply typed λ-calculi. Journal of Logic and Computation, 6(2), 1996.
L. Boerio. Extending pruning techniques to polymorphic second order λ-calculus. In Proceedings ESOP’94, volume 788. Lecture Notes in Computer Science, 1994.
L. Cruz-Filipe. A constructive formalization of the fundamental theorem of calculus. In Proceedings TYPES’ 2002.
S. Peyton Jones et al. Haskell 98, A Non-strict, Purely Functional Language, 1999. Available at http://haskell.org/.
B. Grégoire and X. Leroy. A compiled implementation of strong reduction. In Proceedings ICFP’2002. To appear.
F. Wiedijk H. Geuvers, R. Pollack and J. Zwanenburg. The algebraic hierarchy of the fta project. Journal of Symbolic Computation, Special Issue on the Integration of Automated Reasoning and Computer Algebra Systems, pages 271–286, 2002.
S. Hayashi and H. Nakano. Px, a computational logic. Technical report, Research Institute for Mathematical Sciences, Kyoto University, 1987.
P. Jackson. The Nuprl Proof Development System, Version 4.1 Reference Manual and User’s Guide. Cornell University, Ithaca, NY, 1994.
R. Kelsey, W. Clinger, and J. Rees (eds.). Revised 5 Report on the Algorithmic Language Scheme, 1998. Available at http://www.scheme.org/.
X. Leroy, J. Vouillon, and D. Doliguez. The Objective Caml system — release 3.04, 2002. Available at http://caml.inria.fr/.
D. Monniaux. Rĺisation mécanisée d’interpréteurs abstraits. Rapport de DEA, Université Paris VII, 1998.
C. Paulin-Mohring. Extracting F ω’s programs from proofs in the Calculus of Constructions. In Sixteenth Annual ACM Symposium on Principles of Programming Languages, Austin, January 1989. ACM.
C. Paulin-Mohring. Extraction de programmes dans le Calcul des Constructions. Thèse d’université, Paris 7, January 1989.
C. Paulin-Mohring and B. Werner. Synthesis of ml programs in the system coq. Journal of Symbolic Computation, 15:607–640, 1993.
L. Pottier. Extraction dans le calcul des constructions inductives. In Journées Francophones des Langages Applicatifs, 2001.
P. Severi and N. Szasz. Studies of a theory of specifications with built-in program extraction. Journal of Automated Reasoning, 27(1), 2001.
The Coq Development Team. The Coq Proof Assistant Reference Manual — Version 7.3, May 2002. Available at http://coq.inria.fr/doc-eng.html.
B. Werner. Méta-théorie du Calcul des Constructions Inductives. PhD thesis, Univ. Paris VII, 1994.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Letouzey, P. (2003). A New Extraction for Coq. In: Geuvers, H., Wiedijk, F. (eds) Types for Proofs and Programs. TYPES 2002. Lecture Notes in Computer Science, vol 2646. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-39185-1_12
Download citation
DOI: https://doi.org/10.1007/3-540-39185-1_12
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-14031-3
Online ISBN: 978-3-540-39185-2
eBook Packages: Springer Book Archive