Abstract
A type theoretic programming language is introduced that is based on lambda calculus with coproducts, products and inductive types, and additionally allows the definition of recursive functions in the way that is common in most functional programming languages. A formal system is presented that checks whether such a definition is structurally recursive and a soundness theorem is shown for this system. Thus all functions passing this check are ensured to terminate on all inputs. For the moment only non-mutual recursive functions are considered.
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
Andreas Abel and Thorsten_Altenkirch. A predicative analysis of structural recursion. Submitted to the Journal of Functional Programming, December 1999.
Andreas Abel. foetus-termination checker for simple functional programs. http://www.informatik.uni-muenchen.de/~abel/foetus/, 1998.
Andreas Abel. A semantic analysis of structural recursion. Master’s thesis, Ludwig-Maximilians-University Munich, 1999. http://www.informatik.uni-muenchen.de/~abel/publications/.
Frédéric Blanqui, Jean-Pierre Jouannaud, and Mitsuhiro Okada. Inductive data type systems. To appear in Theoretical Computer Science, 2000.
Ulrich Berger and Helmut Schwichtenberg. Program Development by Proof Transformation. Talk at Marktoberdorf, draft available under http://www.mathematik.uni-muenchen.de/~schwicht/, 1993.
Thierry Coquand. Pattern matching with dependent types. WWW, 1992.
Catarina Coquand. Agda home page. http://www.cs.chalmers.se/~catarina/agda/, 1999.
Eduardo Gimenéz. Codifying guarded definitions with recursive schemes. In Peter Dybjer, Bengt Nordström, and Jan Smith, editors, Types for Proofs and Programs, International Workshop TYPES’94, Bøastad, Sweden, June 6-10, 1994, Selected Papers, volume 996 of LNCS, pages 39–59. Springer, 1995.
Robert Harper, Furio Honsell, and Gordon Plotkin. A Framework for Defining Logics. Journal of the Association of Computing Machinery, 40(1):143–184, January 1993.
J. P. Jouannaud and M. Okada. Abstract data type systems. Theoretical Computer Science, 173, 1997.
David McAllester and Kostas Arkoudas. Walther Recursion. In M. A. McRobbie and J. K. Slaney, editors, 13th International Conference on Automated Deduction, New Brunswick, NJ, USA, July 30-August 3, 1996, Proceedings, volume 1104 of Lecture Notes in Computer Science. Springer-Verlag, 1996.
Per Martin-Löf. Intuitionistic Type Theory. Bibliopolis, 1984.
Brigitte Pientka and Frank Pfenning. Termination and Reduction Checking in the Logical Framework. Workshop on Automation of Proofs by Mathematical Induction, CADE-17, Pittsburgh, PA, USA, June 2000.
Frank Pfenning and Carsten Schürmann. Twelf user’s guide. Technical report, Carnegie Mellon University, 1998.
A.J. Telford and D.A. Turner. Ensuring Termination in ESFP. Submitted to BCTCS 15 proceedings issue of Journal of Universal Computer Science, 1999.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2000 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Abel, A. (2000). Specification and Verification of a Formal System for Structurally Recursive Functions. In: Coquand, T., Dybjer, P., Nordström, B., Smith, J. (eds) Types for Proofs and Programs. TYPES 1999. Lecture Notes in Computer Science, vol 1956. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-44557-9_1
Download citation
DOI: https://doi.org/10.1007/3-540-44557-9_1
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-41517-6
Online ISBN: 978-3-540-44557-9
eBook Packages: Springer Book Archive