Function definition in higher-order logic

  • Konrad Slind
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1125)


We use a formally proven wellfounded recursion theorem as the basis upon which to build a function definition facility for Higher Order Logic. This approach offers flexibility in the choice of wellfounded relations used, the deferral of termination arguments, and automatic isolation of termination conditions. Building on this platform, we provide the ability to define recursive functions via pattern matching. The system is parameterized and has been instantiated to quite different theorem provers.


Termination Condition Theorem Prove Recursive Function Function Definition Recursive Call 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    S. Agerholm. LCF examples in HOL. The Computer Journal, 38(2):121–130, July 1995.CrossRefGoogle Scholar
  2. 2.
    S. Agerholm. Non-primitive recursive function definition. In E. T. Schubert, P. J. Windley, and J. Alves-Foss, editors, Proceedings of the 8th International Workshop on Higher Order Logic Theorem Proving and Its Applications (LNCS 971), pages 17–31, Aspen Grove, Utah, September 1995. Springer Verlag.Google Scholar
  3. 3.
    Lennart Augustsson. Compiling pattern matching. In J.P. Jouannaud, editor, Conference on Functional Programming Languages and Computer Architecture (LNCS 201), pages 368–381, Nancy, France, 1985.Google Scholar
  4. 4.
    Robert S. Boyer and J Strother Moore. A Computational Logic. Academic Press, 1979.Google Scholar
  5. 5.
    A. Bundy, A. Stevens, F. van Harmelen, A. Ireland, and A. Smaill. Rippling: A heuristic for guiding inductive proofs. Artificial Intelligence, 62:185–253, 1993.zbMATHCrossRefMathSciNetGoogle Scholar
  6. 6.
    Simon Finn, Mike Fourman, and John Longley. Partial functions in a total setting. To appear in Journal of Automated Reasoning, 1996.Google Scholar
  7. 7.
    Juergen Giesl. Termination analysis for functional programs using term orderings. In Proceedings of the 2nd International Static Analysis Symposium, Glasgow, Scotland, 1995. Springer-Verlag.Google Scholar
  8. 8.
    H. Busch. Unification based induction. In L.J.M. Claesen and M.J.C. Gordon, editors, International Workshop on Higher Order Logic Theorem Proving and its Applications, pages 97–116, Leuven, Belgium, September 1992. IFIP TC10/WG10.2, North-Holland. IFIP Transactions.Google Scholar
  9. 9.
    P. V. Homeier and D. F. Martin. A verified verification condition generator. The Computer Journal, 38(2):131–141, July 1995.CrossRefGoogle Scholar
  10. 10.
    Peter Johnstone. Notes on logic and set theory. Cambridge University Press, 1987.Google Scholar
  11. 11.
    Delia Kesner, Laurence Puel, and Val Tannen. A typed pattern calculus. Information and Computation, 124(4):32–61, 1996.zbMATHCrossRefMathSciNetGoogle Scholar
  12. 12.
    Lena Magnusson and Bengt Nordstrom. The ALF proof editor and its proof engine. In Types for Proofs and Programs (LNCS 806), pages 213–237, Nijmegen, Netherlands, 1994. Springer-Verlag.Google Scholar
  13. 13.
    Pascal Manoury. A user's friendly syntax to define recursive functions as typed λ-terms. In Types for Proofs and Programs: International Workshop TYPES'94, number 996 in Lecture Notes in Computer Science, Baastad, Sweden, June 1995. Springer Verlag.Google Scholar
  14. 14.
    Pascal Manoury and Marianne Simonot. Automatizing termination proofs of recursively defined functions. Theoretical Computer Science, (135):319–343, 1994.Google Scholar
  15. 15.
    Tom Melham. Automating recursive type definitions in higher order logic. In Graham Birtwistle and P.A. Subrahmanyam, editors, Current Trends in Hardware Verification and Automated Theorem Proving, pages 341–386. Springer-Verlag, 1989.Google Scholar
  16. 16.
    Tobias Nipkow. Term rewriting and beyond—theorem proving in Isabelle. Formal Aspects of Computing, 1:320–338, 1989.CrossRefGoogle Scholar
  17. 17.
    Bengt Nordstrom. Terminating general recursion. BIT, 28:605–619, 1988.CrossRefMathSciNetGoogle Scholar
  18. 18.
    S. Owre, J. M. Rushby, and N. Shankar. PVS: A prototype verification system. In Deepak Kapur, editor, 11th International Conference on Automated Deduction, LNAI 607, pages 748–752, Saratoga Springs, New York, USA, June 15–18, 1992. Springer-Verlag.Google Scholar
  19. 19.
    Lawrence Paulson. A higher order implementation of rewriting. Science of Computer Programming, 3:119–149, 1983.zbMATHCrossRefMathSciNetGoogle Scholar
  20. 20.
    Lawrence Paulson. Constructing recursion operators in intuitionistic type theory. Journal of Symoblic Computation, 2:325–355, 1986.zbMATHMathSciNetCrossRefGoogle Scholar
  21. 21.
    Lawrence Paulson. Proving termination of normalization functions for conditional expressions. Journal of Automated Reasoning, 2:63–74, 1986.zbMATHCrossRefMathSciNetGoogle Scholar
  22. 22.
    Franz Regensburger. HOLCF: Eine konservative Einbettung von LCF in HOL. PhD thesis, Institut für Informatik, Technische Universität München, 1994.Google Scholar
  23. 23.
    H. Schwichtenberg and S. Wainer. Ordinal bounds for programs. In Jeff Remmel, editor, Feasible Mathematics II, pages 387–406. Birkhäuser, 1994.Google Scholar
  24. 24.
    M. van der Voort. Introducing well-founded function definitions in HOL. Leuven, Belgium, September 1992. IFIP TC10/WG10.2, Elsevier Science Publishers.Google Scholar
  25. 25.
    Christoph Walther. On proving the termination of algorithms by machine. Artificial Intelligence, 71(1):101–157, 1994.zbMATHCrossRefMathSciNetGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1996

Authors and Affiliations

  • Konrad Slind
    • 1
  1. 1.Institut für InformatikTechnische Universität MünchenMünchenGermany

Personalised recommendations