Inductive definitions: Automation and application

  • John Harrison
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 971)


This paper demonstrates the great practical utility of inductive definitions in HOL. We describe a new package we have implemented for automating inductive definitions, based on the Knaster-Tarski fixpoint theorem. As an example, we use it to give a simple proof of the well-founded recursion theorem. We then describe how to generate free recursive types starting just from the Axiom of Infinity. This contrasts with the existing HOL development where several specific free recursive types are developed first.


Recursive Function Mutual Induction Inductive Definition Recursive Type Induction Theorem 
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.
    Wilhelm Ackermann. Zum Hilbertschen Aufbau der reellen Zahlen. Mathematische Annalen, 99:118–133, 1928. English translation, ‘On Hilbert's construction of the real numbers', in [24], pp. 493–507.Google Scholar
  2. 2.
    Peter Aczel. An introduction to inductive definitions. In J. Barwise and H.J. Keisler, editors, Handbook of mathematical logic, volume 90 of Studies in Logic and the Foundations of Mathematics, pages 739–782. North-Holland, 1991.Google Scholar
  3. 3.
    Sten Agerholm. A HOL basis for reasoning about functional programs. BRICS Report Series RS-94-44, Centre of the Danish National Research Foundation, Department of Computer Science, University of Aarhus, Ny Munkegade, DK-8000 Aarhus C, Denmark, 1994.Google Scholar
  4. 4.
    Flemming Andersen and Kim Dam Petersen. Recursive boolean functions in HOL. In Archer et al. [5], pages 367–377.Google Scholar
  5. 5.
    Myla Archer, Jeffrey J. Joyce, Karl N. Levitt, and Phillip J. Windley, editors. Proceedings of the 1991 International Workshop on the HOL theorem proving system and its Applications, University of California at Davis, Davis CA, USA, 1991. IEEE Computer Society Press.Google Scholar
  6. 6.
    Juanito Camilleri and Tom Melham. Reasoning with inductively defined relations in the HOL theorem prover. Technical Report 265, University of Cambridge Computer Laboratory, New Museums Site, Pembroke Street, Cambridge, CB2 3QG, UK, 1992.Google Scholar
  7. 7.
    Luc J. M. Claesen and Michael J. C. Gordon, editors. Proceedings of the IFIP TC10/WG10.2 International Workshop on Higher Order Logic Theorem Proving and its Applications, volume A-20 of IFIP Transactions A: Computer Science and Technology, IMEC, Leuven, Belgium, 1992. North-Holland.Google Scholar
  8. 8.
    J. A. Goguen, J. W. Thatcher, and E. G. Wagner. An initial algebra approach to the specification, correctness and implementation of abstract data types. In Raymond T. Yeh, editor, Current Trends in Programming Methodologies, volume IV, pages 80–149. Prentice-Hall, 1978.Google Scholar
  9. 9.
    Elsa L. Gunter. Why we can't have SML style datatype declarations in HOL. In Claesen and Gordon [7], pages 561–568.Google Scholar
  10. 10.
    Elsa L. Gunter. A broader class of trees for recursive type definitions for HOL. In Joyce and Seger [13], pages 141–154.Google Scholar
  11. 11.
    John Harrison and Konrad Slind. A reference version of HOL. Presented in poster session of 1994 HOL Users Meeting and only published in participants' supplementary proceedings. Available on the Web from∼hug94/sproc.html, 1994.Google Scholar
  12. 12.
    Nathan Jacobson. Basic Algebra I. W. H. Freeman, 2nd edition, 1989.Google Scholar
  13. 13.
    Jeffrey J. Joyce and Carl Seger, editors. Proceedings of the 1993 International Workshop on the HOL theorem proving system and its applications, volume 780 of Lecture Notes in Computer Science, UBC, Vancouver, Canada, 1993. Springer-Verlag.Google Scholar
  14. 14.
    B. Knaster. Un théorème sur les fonctions, d'ensembles. Annales de la Société Polonaise de Mathématique, 6:133–134, 1927. Volume published in 1928.Google Scholar
  15. 15.
    Tim Leonard. The HOL numeral library. Distributed with HOL system, 1993.Google Scholar
  16. 16.
    Thomas F. Melham. A package for inductive relation definitions in HOL. In Archer et al. [5], pages 350–357.Google Scholar
  17. 17.
    Thomas F. Melham. The HOL logic extended with quantification over type variables. In Claesen and Gordon [7], pages 3–18.Google Scholar
  18. 18.
    Lawrence C. Paulson. A fixedpoint approach to implementing (co)inductive definitions. Technical Report 320, University of Cambridge Computer Laboratory, New Museums Site, Pembroke Street, Cambridge, CB2 3QG, UK, 1993.Google Scholar
  19. 19.
    R. Péter. Konstruktion nichtrekursiver Funktionen. Mathematische Annalen, 111:42–60, 1935.Google Scholar
  20. 20.
    Wim Ploegaerts, Luc Claesen, and Hugo De Man. Defining recursive functions in HOL. In Archer et al. [5], pages 358–366.Google Scholar
  21. 21.
    Rachel E. O. Roxas. A HOL package for reasoning about relations defined by mutual induction. In Joyce and Seger [13], pages 129–140.Google Scholar
  22. 22.
    Alfred Tarski. A lattice-theoretical fixpoint theorem and its applications. Pacific Journal of Mathematics, 5:285–309, 1955.Google Scholar
  23. 23.
    Mark van der Voort. Introducing well-founded function definitions in HOL. In Claesen and Gordon [7], pages 117–132.Google Scholar
  24. 24.
    Jean van Heijenoort, editor. From Frege to Gödel: A Source Book in Mathematical Logic 1879–1931. Harvard University Press, 1967.Google Scholar
  25. 25.
    Glynn Winskel. The formal semantics of programming languages: an introduction. Foundations of computing. MIT Press, 1993.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1995

Authors and Affiliations

  • John Harrison
    • 1
  1. 1.University of Cambridge Computer LaboratoryCambridgeEngland

Personalised recommendations