Abstract
Functions specified by nested recursions are difficult to define and reason about. We present several ameliorative techniques that use deduction in a classical higher-order logic. First, we discuss how an apparent circular dependency between the proof of nested termination conditions and the definition of the specified function can be avoided. Second, we propose a method that allows the specified function to be defined in the absence of a termination relation. Finally, we show how our techniques extend to nested program schemes, where a termination relation cannot be found until schematic parameters have been filled in. In each of these techniques, suitable induction theorems are automatically derived.
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
S. Agerholm. LCF examples in HOL. The Computer Journal, 38(2):121–130, July 1995.
Richard Boulton and Konrad Slind. Automatic derivation and application of induction schemes for mutually recursive functions. In Proceedings of the First International Conference on Computational Logic (CL2000), London, UK, July 2000. To appear. Available at http://www.cl.cam.ac.uk/users/kxs/papers/mutual.html.
Ana Bove. Programming in Martin-Löf Type Theory. Unification: A non-trivial Example. Master’s thesis, Chalmers University of Technology, 1999. Licentiate Thesis.
Robert S. Boyer and J Strother Moore. A Computational Logic. Academic Press, 1979.
Robert S. Boyer and J Strother Moore. A Computational Logic Handbook. Academic Press, 1988.
Simon Finn, Mike Fourman, and John Longley. Partial functions in a total setting. Journal of Automated Reasoning, 18(1):85–104, February 1997.
Juergen Giesl. Termination of nested and mutually recursive algorithms. Journal of Automated Reasoning, 19(1):1–29, August 1997.
Jürgen Giesl. Automatisierung von Terminieringsbeweisen für rekursiv defininierte Algorithmen. PhD thesis, Technische Hochshule Darmstadt, 1995.
Deepak Kapur and M. Subramaniam. Automating induction over mutually recursive functions. In Proceedings of the 5th International Conference on Algebraic Methodology and Software Technology (AMAST’96), volume 1101 of Lecture Notes in Computer Science. Springer-Verlag, 1996.
Zohar Manna and Richard Waldinger. Deductive synthesis of the unification algorithm. Science of Computer Programming, 1:5–48, 1981.
Conor McBride. Dependently Typed Functional Programs and their Proofs. PhD thesis, University of Edinburgh, 1999.
Bengt Nordstrom. Terminating general recursion. BIT, 28:605–619, 1988.
S. Owre, J. M. Rushby, N. Shankar, and D.J. Stringer-Calvert. PVS System Guide. SRI Computer Science Laboratory, September 1998. Available at http://pvs.csl.sri.com/manuals.html.
Lawrence Paulson. Verifying the unification algorithm in LCF. Science of Computer Programming, 3:143–170, 1985.
Lawrence Paulson. ML for the working programmer. Cambridge University Press, second edition, 1996.
Joseph Rouyer. Développement d’algorithme d’unification dans le Calcul des Constructions avecs types inductifs. Technical Report 1795, INRIA-Lorraine, November 1992.
Konrad Slind. Function definition in higher order logic. In Theorem Proving in Higher Order Logics, number 1125 in Lecture Notes in Computer Science, Turku, Finland, August 1996. Springer-Verlag.
Konrad Slind. Derivation and use of induction schemes in higher order logic. In Theorem Proving in Higher Order Logics, number 1275 in Lecture Notes in Computer Science, Murrary Hill, New Jersey, USA, August 1997. Springer-Verlag.
Konrad Slind. Reasoning about Terminating Functional Programs. PhD thesis, Institut für Informatik, Technische Universität München, 1999. Accessible at http://www.cl.cam.ac.uk/users/kxs/papers.
Konrad Slind. Wellfounded schematic definitions. In David McAllester, editor, Proceedings of the Seventeenth International Conference on Automated Deduction CADE-17, volume 1831, Pittsburgh, Pennsylvania, June 2000. Springer-Verlag.
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
Slind, K. (2000). Another Look at Nested Recursion. In: Aagaard, M., Harrison, J. (eds) Theorem Proving in Higher Order Logics. TPHOLs 2000. Lecture Notes in Computer Science, vol 1869. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-44659-1_31
Download citation
DOI: https://doi.org/10.1007/3-540-44659-1_31
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-67863-2
Online ISBN: 978-3-540-44659-0
eBook Packages: Springer Book Archive