Comprehending Isabelle/HOL’s Consistency

  • Ondřej KunčarEmail author
  • Andrei Popescu
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10201)


The proof assistant Isabelle/HOL is based on an extension of Higher-Order Logic (HOL) with ad hoc overloading of constants. It turns out that the interaction between the standard HOL type definitions and the Isabelle-specific ad hoc overloading is problematic for the logical consistency. In previous work, we have argued that standard HOL semantics is no longer appropriate for capturing this interaction, and have proved consistency using a nonstandard semantics. The use of an exotic semantics makes that proof hard to digest by the community. In this paper, we prove consistency by proof-theoretic means—following the healthy intuition of definitions as abbreviations, realized in HOLC, a logic that augments HOL with comprehension types. We hope that our new proof settles the Isabelle/HOL consistency problem once and for all. In addition, HOLC offers a framework for justifying the consistency of new deduction schemas that address practical user needs.


Type Definition Ground Type Ground Instance Type Constructor Substitutive Closure 
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.



We thank Tobias Nipkow, Larry Paulson, Makarius Wenzel, and the members of the Isabelle mailing list for inspiring and occasionally intriguing opinions and suggestions concerning the foundations of Isabelle/HOL. We also thank the reviewers for suggestions on how to improve the presentation and for indicating related work. Kunčar is supported by the German Research Foundation (DFG) grant “Security Type Systems and Deduction” (Ni 491/13-3) in the priority program “RS\(^3\) – Reliably Secure Software Systems” (SPP 1496). Popescu is supported by the UK Engineering and Physical Sciences Research Council (EPSRC) starting grant “VOWS – Verification of Web-based Systems” (EP/N019547/1).


  1. 1.
  2. 2.
    Conservativity of HOL constant and type definitions (2016).
  3. 3.
  4. 4.
    Type definitions in Isabelle; article “A Consistent Foundation for Isabelle/HOL” by Kunčar/Popescu (2016).
  5. 5.
    Arthan, R.: On definitions of constants and types in HOL. J. Autom. Reason. 56(3), 205–219 (2016)MathSciNetCrossRefzbMATHGoogle Scholar
  6. 6.
    Barras, B.: Sets in Coq, Coq in sets. J. Formal. Reason. 3(1), 29–48 (2010)MathSciNetzbMATHGoogle Scholar
  7. 7.
    Berghofer, S., Wenzel, M.: Inductive datatypes in HOL – lessons learned in formal-logic engineering. In: Bertot, Y., Dowek, G., Théry, L., Hirschowitz, A., Paulin, C. (eds.) TPHOLs 1999. LNCS, vol. 1690, pp. 19–36. Springer, Heidelberg (1999). doi: 10.1007/3-540-48256-3_3 CrossRefGoogle Scholar
  8. 8.
    Bertot, Y., Casteran, P.: Interactive Theorem Proving and Program Development. Coq’Art: The Calculus of Inductive Constructions. Springer, Heidelberg (2004)CrossRefzbMATHGoogle Scholar
  9. 9.
    Blanchette, J.C., Popescu, A., Traytel, D.: Foundational extensible corecursion. In: ICFP 2015. ACM (2015)Google Scholar
  10. 10.
    Bulwahn, L., Krauss, A., Haftmann, F., Erkök, L., Matthews, J.: Imperative functional programming with Isabelle/HOL. In: Mohamed, O.A., Muñoz, C., Tahar, S. (eds.) TPHOLs 2008. LNCS, vol. 5170, pp. 134–149. Springer, Heidelberg (2008). doi: 10.1007/978-3-540-71067-7_14 CrossRefGoogle Scholar
  11. 11.
    Divasón, J., Joosten, S., Thiemann, R., Yamada, A.: A formalization of the Berlekamp-Zassenhaus factorization algorithm. In: CPP, pp. 17–29 (2017)Google Scholar
  12. 12.
    Divasón, J., Kunčar, O., Thiemann, R., Yamada, A.: Certifying exact complexity bounds for matrix interpretations. In: LCC (2016)Google Scholar
  13. 13.
    Divasón, J., Kunčar, O., Thiemann, R., Yamada, A.: Perron-Frobenius theorem for spectral radius analysis. Archive of Formal Proofs (2016).
  14. 14.
    Esparza, J., Lammich, P., Neumann, R., Nipkow, T., Schimpf, A., Smaus, J.-G.: A fully verified executable LTL model checker. In: Sharygina, N., Veith, H. (eds.) CAV 2013. LNCS, vol. 8044, pp. 463–478. Springer, Heidelberg (2013). doi: 10.1007/978-3-642-39799-8_31 CrossRefGoogle Scholar
  15. 15.
    Fallenstein, B., Kumar, R.: Proof-producing reflection for HOL - with an application to model polymorphism. In: ITP, pp. 170–186 (2015)Google Scholar
  16. 16.
    Freeman, T., Pfenning, F.: Refinement types for ML. In: PLDI, pp. 268–277 (1991)Google Scholar
  17. 17.
    Geuvers, H.: Proof assistants: history, ideas and future. Sadhana 34(1), 3–25 (2009)MathSciNetCrossRefzbMATHGoogle Scholar
  18. 18.
    Gordon, M.J.C., Melham, T.F. (eds.): Introduction to HOL: A Theorem Proving Environment for Higher Order Logic. Cambridge University Press, Cambridge (1993)zbMATHGoogle Scholar
  19. 19.
    Haftmann, F., Nipkow, T.: Code generation via higher-order rewrite systems. In: Blume, M., Kobayashi, N., Vidal, G. (eds.) FLOPS 2010. LNCS, vol. 6009, pp. 103–117. Springer, Heidelberg (2010). doi: 10.1007/978-3-642-12251-4_9 CrossRefGoogle Scholar
  20. 20.
    Harrison, J.: HOL Light: an overview. In: Berghofer, S., Nipkow, T., Urban, C., Wenzel, M. (eds.) TPHOLs 2009. LNCS, vol. 5674, pp. 60–66. Springer, Heidelberg (2009). doi: 10.1007/978-3-642-03359-9_4 CrossRefGoogle Scholar
  21. 21.
    Holger Blasum, O.H., Tverdyshev, S.: Euro-mils: secure European virtualisation for trustworthy applications in critical domains - formal methods used.
  22. 22.
    Homeier, P.V.: The HOL-Omega logic. In: Berghofer, S., Nipkow, T., Urban, C., Wenzel, M. (eds.) TPHOLs 2009. LNCS, vol. 5674, pp. 244–259. Springer, Heidelberg (2009). doi: 10.1007/978-3-642-03359-9_18 CrossRefGoogle Scholar
  23. 23.
    Kanav, S., Lammich, P., Popescu, A.: A conference management system with verified document confidentiality. In: Biere, A., Bloem, R. (eds.) CAV 2014. LNCS, vol. 8559, pp. 167–183. Springer, Heidelberg (2014). doi: 10.1007/978-3-319-08867-9_11 Google Scholar
  24. 24.
    Klein, G., Andronick, J., Elphinstone, K., Heiser, G., Cock, D., Derrin, P., Elkaduwe, D., Engelhardt, K., Kolanski, R., Norrish, M., Sewell, T., Tuch, H., Winwood, S.: seL4: formal verification of an operating-system kernel. Commun. ACM 53(6), 107–115 (2010)CrossRefGoogle Scholar
  25. 25.
    Kumar, R., Arthan, R., Myreen, M.O., Owens, S.: HOL with definitions: semantics, soundness, and a verified implementation. In: Klein, G., Gamboa, R. (eds.) ITP 2014. LNCS, vol. 8558, pp. 308–324. Springer, Heidelberg (2014). doi: 10.1007/978-3-319-08970-6_20 Google Scholar
  26. 26.
    Kunčar, O.: Types, abstraction and parametric polymorphism in higher-order logic. Ph.D. thesis, Fakultät für Informatik, Technische Universität München (2016).
  27. 27.
    Kunčar, O.: Correctness of Isabelle’s cyclicity checker: implementability of overloading in proof assistants. In: CPP, pp. 85–94 (2015)Google Scholar
  28. 28.
    Kunčar, O., Popescu, A.: A Consistent Foundation for Isabelle/HOL - Extended Version.
  29. 29.
    Kunčar, O., Popescu, A.: A consistent foundation for Isabelle/HOL. In: Urban, C., Zhang, X. (eds.) ITP 2015. LNCS, vol. 9236, pp. 234–252. Springer, Heidelberg (2015). doi: 10.1007/978-3-319-22102-1_16 Google Scholar
  30. 30.
    Kunčar, O., Popescu, A.: From types to sets by local type definitions in higher-order logic. In: Blanchette, J.C., Merz, S. (eds.) ITP 2016. LNCS, vol. 9807, pp. 200–218. Springer, Heidelberg (2016). doi: 10.1007/978-3-319-43144-4_13 CrossRefGoogle Scholar
  31. 31.
    Kunčar, O., Popescu, A.: Comprehending Isabelle/HOL’s consistency. Technical report (2017).
  32. 32.
    Lochbihler, A.: Verifying a compiler for Java threads. In: Gordon, A.D. (ed.) ESOP 2010. LNCS, vol. 6012, pp. 427–447. Springer, Heidelberg (2010). doi: 10.1007/978-3-642-11957-6_23 CrossRefGoogle Scholar
  33. 33.
    Lochbihler, A.: Probabilistic functions and cryptographic oracles in higher order logic. In: Thiemann, P. (ed.) ESOP 2016. LNCS, vol. 9632, pp. 503–531. Springer, Heidelberg (2016). doi: 10.1007/978-3-662-49498-1_20 CrossRefGoogle Scholar
  34. 34.
    Melham, T.F.: The HOL logic extended with quantification over type variables. In: TPHOLs, pp. 3–17 (1992)Google Scholar
  35. 35.
    Nipkow, T., Paulson, L., Wenzel, M.: Isabelle/HOL - A Proof Assistant for Higher-Order Logic. LNCS, vol. 2283. Springer, Heidelberg (2002)zbMATHGoogle Scholar
  36. 36.
    Nipkow, T., Klein, G.: Concrete Semantics - With Isabelle/HOL. Springer, Heidelberg (2014)zbMATHGoogle Scholar
  37. 37.
    Nipkow, T., Snelting, G.: Type classes and overloading resolution via order-sorted unification. In: Hughes, J. (ed.) FPCA 1991. LNCS, vol. 523, pp. 1–14. Springer, Heidelberg (1991). doi: 10.1007/3540543961_1 CrossRefGoogle Scholar
  38. 38.
    Obua, S.: Checking conservativity of overloaded definitions in higher-order logic. In: Pfenning, F. (ed.) RTA 2006. LNCS, vol. 4098, pp. 212–226. Springer, Heidelberg (2006). doi: 10.1007/11805618_16 CrossRefGoogle Scholar
  39. 39.
    Owre, S., Shankar, N.: The formal semantics of PVS, SRI Technical report, March 1999.
  40. 40.
    Paulson, L.: Personal communication (2014)Google Scholar
  41. 41.
    Pitts, A.: The HOL logic. In: Introduction to HOL: A Theorem Proving Environment for Higher Order Logic, pp. 191–232 (1993). Gordon and Melham [18]Google Scholar
  42. 42.
    Reynolds, J.C.: Polymorphism is not set-theoretic. In: Kahn, G., MacQueen, D.B., Plotkin, G. (eds.) SDT 1984. LNCS, vol. 173, pp. 145–156. Springer, Heidelberg (1984). doi: 10.1007/3-540-13346-1_7 CrossRefGoogle Scholar
  43. 43.
    Rushby, J.M., Owre, S., Shankar, N.: Subtypes for specifications: predicate subtyping in PVS. IEEE Trans. Softw. Eng. 24(9), 709–720 (1998)CrossRefGoogle Scholar
  44. 44.
    Shankar, N., Owre, S., Rushby, J.M.: PVS Tutorial. Computer Science Laboratory, SRI International, Menlo Park (1993)Google Scholar
  45. 45.
    Traytel, D., Popescu, A., Blanchette, J.C.: Foundational, compositional (co)datatypes for higher-order logic: category theory applied to theorem proving. In: LICS, pp. 596–605 (2012)Google Scholar
  46. 46.
    Wadler, P., Blott, S.: How to make ad-hoc polymorphism less ad-hoc. In: POPL (1989)Google Scholar
  47. 47.
    Wenzel, M.: The Isabelle/Isar reference manual (2016).
  48. 48.
    Wenzel, M.: Type classes and overloading in higher-order logic. In: Gunter, E.L., Felty, A. (eds.) TPHOLs 1997. LNCS, vol. 1275, pp. 307–322. Springer, Heidelberg (1997). doi: 10.1007/BFb0028402 CrossRefGoogle Scholar
  49. 49.
    Wiedijk, F.: Stateless HOL. In: TYPES, pp. 47–61 (2009)Google Scholar

Copyright information

© Springer-Verlag GmbH Germany 2017

Authors and Affiliations

  1. 1.Fakultät für InformatikTechnische Universität MünchenMünchenGermany
  2. 2.Department of Computer ScienceMiddlesex University LondonLondonUK
  3. 3.Institute of Mathematics Simion Stoilow of the Romanian AcademyBucharestRomania

Personalised recommendations