Abstract
Nuprl supports program synthesis by extracting programs from proofs. In this paper we describe the extraction of “efficient” recursion schemes from proofs of well-founded induction principles. This is part of a larger methodology; when these well-founded induction principles are used in proofs, the structure of the program extracted from the proof is determined by the recursion scheme inhabiting the induction principle. Our development is based on Paulson’s paper Constructing recursion operators in intuitionistic type theory, but we specifically address two possibilities raised in the conclusion of his paper: the elimination of non-computational content from the recursion schemes themselves and, the use of the Y combinator to allow the recursion schemes to be extracted directly from the proofs of well-founded relations.
This research was supported by NSF CCR-9985239
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Stuart Allen. A Non-Type-Theoretic Semantics for Type-Theoretic Language. PhD thesis, Cornell University, Ithaca, NY, 1987. TR 87-866.
Stuart Allen. NuprlPrimitives-Explanations of Nuprl Primitives and Conventions. Computer Science Department, Cornell University, Ithaca, NY. www.cs.cornell.edu/Info/People/sfa/Nuprl/NuprlPrimitives/Welcome.html, 2001.
T. Altenkirch, V. Gaspes, B. Nordström, and B. von Sydow. A user’s guide to ALF. Computer Science Department, Chalmers University of Technology, Göteborg, Sweden. Manuscript available at www.cs.chalmers.se/ComputingScience/Research/Logic/alf/guide.html, 1994.
Antonia Balaa and Yves Bertot. Fix-point equations for well-founded recursion in type theory. In Theorem Proving in Higher Order Logics, volume 1869 of Lecture Notes in Computer Science, pages 1–16. Springer, 2000.
Bruno Barras, Samuel Boutin, Cristina Cornes, Judicael Courant, Jean-Christophe Filliatre, Eduardo Gimenez, Hugo Herbelin, Gerard Huet, Cesar Munoz, Chetan Murthy, Catherine Parent, Christine Paulin-Mohring, Amokrane Saibi, and Benjamin Werner. The Coq Proof Assistant Reference Manual: Version 6.1. Technical Report RT-0203, INRIA, Rocquencourt, France, 1997.
Ana Bove. Simple general recursion in type theory. Nordic Journal of Computing, 8(1):22–42, 2001.
Ana Bove and Venanzio Capretta. Nested general recursion and partiality in type theory. In Theorem Proving in Higher Order Logics, volume 2152 of Lecture Notes in Computer Science, pages 121–135, 2001.
James Caldwell. Moving proofs-as-programs into practice. In Proceedings, 12th IEEE International Conference Automated Software Engineering, pages 10–17. IEEE Computer Society, 1997.
James Caldwell. Formal methods technology transfer: A view from NASA. Formal Methods in System Design, 12(2):125–137, 1998.
James Caldwell. Intuitionistic tableau extracted. In Automated Reasoning with Analytic Tableaux and Related Methods, Lecture Notes in Artifical Intelligence, Saratoga Springs, NY, June 1999. Springer.
Robert L. Constable and et al. Implementing Mathematics with the Nuprl Development System. Prentice-Hall, N.J., 1986.
J. H. Gallier. Logic for Computer Science: Founations of Automatic Theorem Proving. Harper and Row, 1986.
Didier Galmiche. Program development in constructive type theory. Theoretical Computer Science, 94:237–259, 1992.
Herman Geuvers, Erik Poll, and Jan Zwanenburg. Safe proof checking in type theory with y. In F. Flum and M. Rodriguez-Artalejo, editors, Computer Science Logic (CSL’99), pages 439–452, September 1999.
D. Howe. Automating Reasoning in an Implementation of Constructive Type Theory. PhD thesis, Cornell University, Ithaca, NY, April 1988.
Douglas J. Howe. Reasoning about functional programs in Nuprl. In Functional Programming, Concurrency, Simulation and Automated Reasoning, volume 693 of Lecture Notes in Computer Science, Berlin, 1993. Springer Verlag.
Paul Jackson. The Nuprl proof developemnt system, version 4.2 reference manual and user’s guide. Computer Science Department, Cornell University, Ithaca, N.Y. Manuscript available at http://www.cs.cornell.edu/Info/Projects/NuPrl/manual/it.html, July 1995.
Paul B. Jackson. Enhancing the Nuprl proof development system and applying it to computational abstract algebra. PhD thesis, Cornell University, 1995.
Zohar Manna and Richard Waldinger. The Logical Basis for Computer Programming: Volume II: Deductive Systems. Addison Wesley, 1990.
Michel Parigot. Recursive programming with proofs. Theoretical Computer Science, 94:335–356, 1992.
L. C. Paulson. Constructing recursion operators in intuitionistic type theory. Journal of Symbolic Computation, 2(4):325–355, 1986.
Laurent Théry. A Certified Version of Buchberger’s Algorithm. In H. Kirchner and C. Kirchner, editors, 15th International Conference on Automated Deduction, LNAI 1421, pages 349–364, Lindau, Germany, July 5–July 10, 1998. Springer-Verlag.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2002 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Caldwell, J.L. (2002). Extracting General Recursive Program Schemes in Nuprl’s Type Theory. In: Pettorossi, A. (eds) Logic Based Program Synthesis and Transformation. LOPSTR 2001. Lecture Notes in Computer Science, vol 2372. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45607-4_13
Download citation
DOI: https://doi.org/10.1007/3-540-45607-4_13
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-43915-8
Online ISBN: 978-3-540-45607-0
eBook Packages: Springer Book Archive