TYPES 2002: Types for Proofs and Programs pp 200-219 | Cite as
A New Extraction for Coq
Conference paper
First Online:
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.
Keywords
Type Scheme Inductive Type Weak Reduction Logical Part Dead Code
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.
Preview
Unable to display preview. Download preview PDF.
References
- [1]S. Berardi. Pruning simply typed λ-calculi. Journal of Logic and Computation, 6(2), 1996.Google Scholar
- [2]L. Boerio. Extending pruning techniques to polymorphic second order λ-calculus. In Proceedings ESOP’94, volume 788. Lecture Notes in Computer Science, 1994.Google Scholar
- [3]L. Cruz-Filipe. A constructive formalization of the fundamental theorem of calculus. In Proceedings TYPES’ 2002.Google Scholar
- [4]S. Peyton Jones et al. Haskell 98, A Non-strict, Purely Functional Language, 1999. Available at http://haskell.org/.
- [5]B. Grégoire and X. Leroy. A compiled implementation of strong reduction. In Proceedings ICFP’2002. To appear.Google Scholar
- [6]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.Google Scholar
- [7]S. Hayashi and H. Nakano. Px, a computational logic. Technical report, Research Institute for Mathematical Sciences, Kyoto University, 1987.Google Scholar
- [8]P. Jackson. The Nuprl Proof Development System, Version 4.1 Reference Manual and User’s Guide. Cornell University, Ithaca, NY, 1994.Google Scholar
- [9]R. Kelsey, W. Clinger, and J. Rees (eds.). Revised 5 Report on the Algorithmic Language Scheme, 1998. Available at http://www.scheme.org/.
- [10]X. Leroy, J. Vouillon, and D. Doliguez. The Objective Caml system — release 3.04, 2002. Available at http://caml.inria.fr/.
- [11]D. Monniaux. Rĺisation mécanisée d’interpréteurs abstraits. Rapport de DEA, Université Paris VII, 1998.Google Scholar
- [12]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.Google Scholar
- [13]C. Paulin-Mohring. Extraction de programmes dans le Calcul des Constructions. Thèse d’université, Paris 7, January 1989.Google Scholar
- [14]C. Paulin-Mohring and B. Werner. Synthesis of ml programs in the system coq. Journal of Symbolic Computation, 15:607–640, 1993.MATHCrossRefMathSciNetGoogle Scholar
- [15]L. Pottier. Extraction dans le calcul des constructions inductives. In Journées Francophones des Langages Applicatifs, 2001.Google Scholar
- [16]P. Severi and N. Szasz. Studies of a theory of specifications with built-in program extraction. Journal of Automated Reasoning, 27(1), 2001.Google Scholar
- [17]The Coq Development Team. The Coq Proof Assistant Reference Manual — Version 7.3, May 2002. Available at http://coq.inria.fr/doc-eng.html.
- [18]B. Werner. Méta-théorie du Calcul des Constructions Inductives. PhD thesis, Univ. Paris VII, 1994.Google Scholar
Copyright information
© Springer-Verlag Berlin Heidelberg 2003