Inductive Datatypes in HOL — Lessons Learned in Formal-Logic Engineering

  • Stefan Berghofer
  • Markus Wenzel
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1690)

Abstract

Isabelle/HOL has recently acquired new versions of definitional packages for inductive datatypes and primitive recursive functions. In contrast to its predecessors and most other implementations, Isabelle/HOL datatypes may be mutually and indirect recursive, even infinitely branching. We also support inverted datatype definitions for characterizing existing types as being inductive ones later. All our constructions are fully definitional according to established HOL tradition. Stepping back from the logical details, we also see this work as a typical example of what could be called “Formal-Logic Engineering”. We observe that building realistic theorem proving environments involves further issues rather than pure logic only.

Keywords

Theorem Prove Induction Rule High Order Logic Inductive Type Structural Induction 
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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [1]
    H. P. Barendregt. The quest for correctness. In Images of SMC Research, pages 39–58. Stichting Mathematisch Centrum, Amsterdam, 1996.Google Scholar
  2. [2]
    S. Berghofer. Definitorische Konstruktion induktiver Datentypen in Isabelle/HOL (in German). Master’s thesis, Technische Universität München, 1998.Google Scholar
  3. [3]
    A. Church. A formulation of the simple theory of types. Journal of Symbolic Logic, pages 56–68, 1940.Google Scholar
  4. [4]
    C. Cornes, J. Courant, J.-C. Filliâtre, G. Huet, P. Manoury, and C. Muñoz. The Coq Proof Assistant User’s Guide, version 6.1. INRIA-Rocquencourt et CNRSENS Lyon, 1996.Google Scholar
  5. [5]
    M. J. C. Gordon and T. F. Melham (editors). Introduction to HOL: A theorem proving environment for higher order logic. Cambridge University Press, 1993.Google Scholar
  6. [6]
    E. L. Gunter. Why we can’t have SML style datatype declarations in HOL. In L. J. M. Claesen and M. J. C. Gordon, editors, Higher Order Logic Theorem Proving and Its Applications, volume A-20 of IFIP Transactions, pages 561–568. North-Holland Press, 1992.Google Scholar
  7. [7]
    E. L. Gunter. A broader class of trees for recursive type definitions for HOL. In J. Joyce and C. Seger, editors, Higher Order Logic Theorem Proving and Its Applications, volume 780 of LNCS, pages 141–154. Springer, 1994.CrossRefGoogle Scholar
  8. [8]
    J. Harrison. Inductive definitions: automation and application. In P. J. Windley, T. Schubert, and J. Alves-Foss, editors, Higher Order Logic Theorem Proving and Its Applications: Proceedings of the 8th International Workshop, volume 971 of LNCS, pages 200–213, Aspen Grove, Utah, 1995. Springer.CrossRefGoogle Scholar
  9. [9]
    J. Harrison. HOL done right. Unpublished draft, 1996.Google Scholar
  10. [10]
    U. Hensel and B. Jacobs. Proof principles for datatypes with iterated recursion. In E. Moggi and G. Rosolini, editors, Category Theory and Computer Science, volume 1290 of LNCS, pages 220–241. Springer, 1997.CrossRefGoogle Scholar
  11. [11]
    F. Kammüller and M. Wenzel. Locales — a sectioning concept for Isabelle. Technical Report 449, University of Cambridge, Computer Laboratory, October 1998.Google Scholar
  12. [12]
    T. F. Melham. Automating recursive type definitions in higher order logic. In G. Birtwistle and P. A. Subrahmanyam, editors, Current Trends in Hardware Verification and Automated Theorem Proving, pages 341–386. Springer, 1989.Google Scholar
  13. [13]
    W. Naraschewski and M. Wenzel. Object-oriented verification based on record subtyping in higher-order logic. In J. Grundy and M. Newey, editors, Theorem Proving in Higher Order Logics, volume 1479 of LNCS. Springer, 1998.CrossRefGoogle Scholar
  14. [14]
    T. Nipkow and D. von Oheimb. Javalight is type-safe — definitely. In Proc. 25th ACM Symp. Principles of Programming Languages. ACM Press, New York, 1998.Google Scholar
  15. [15]
    S. Owre, S. Rajan, J. M. Rushby, N. Shankar, and M. Srivas. PVS: combining specification, proof checking, and model checking. In R. Alur and T. A. Henzinger, editors, Computer Aided Verification, volume 1102 of LNCS. Springer, 1996.CrossRefGoogle Scholar
  16. [16]
    S. Owre and N. Shankar. Abstract datatypes in PVS. Technical Report CSL-93-9R, Computer Science Laboratory, SRI International, 1993.Google Scholar
  17. [17]
    L. C. Paulson. A fixed-point approach to implementing (co)inductive defonitions. In A. Bundy, editor, Proceedings of the 12th International Conference on Automated Deduction, volume 814 of LNAI, pages 148–161, Nancy, France, 1994. Springer.Google Scholar
  18. [18]
    L. C. Paulson. Isabelle: A Generic Theorem Prover, volume 828 of LNCS. Springer, 1994.CrossRefMATHGoogle Scholar
  19. [19]
    L. C. Paulson. Mechanizing coinduction and corecursion in higher-order logic. Journal of Logic and Computation, 7(2):175–204, 1997.MathSciNetCrossRefMATHGoogle Scholar
  20. [20]
    F. Pfenning and C. Paulin-Mohring. Inductively defined types in the Calculus of Constructions. In Proceedings of Mathematical Foundations of Programming Semantics, volume 442 of LNCS. Springer, 1990.Google Scholar
  21. [21]
    K. Slind. Function definition in higher order logic. In J. Wright, J. Grundy, and J. Harrison, editors, 9th International Conference on Theorem Proving in Higher Order Logics, TPHOLs’96, volume 1125 of LNCS. Springer, 1996.Google Scholar
  22. [22]
    K. Slind. Derivation and use of induction schemes in higher-order logic. In 10th International Conference on Theorem Proving in Higher Order Logics, TPHOLs’97, volume 1275 of LNCS. Springer, 1997.Google Scholar
  23. [23] N. Völker. On the representation of datatypes in Isabelle/HOL. In L. C. Paulson, editor, First Isabelle Users Workshop, 1995.Google Scholar
  24. [24] M. Wenzel. Type classes and overloading in higher-order logic. In 10th International Conference on Theorem Proving in Higher Order Logics, TPHOLs’97, volume 1275 of LNCS. Springer, 1997.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1999

Authors and Affiliations

  • Stefan Berghofer
    • 1
  • Markus Wenzel
    • 1
  1. 1.Institut für InformatikTechnische Universität MünchenMünchenGermany

Personalised recommendations