Locales: A Module System for Mathematical Theories


Locales are a module system for managing theory hierarchies in a theorem prover through theory interpretation. They are available for the theorem prover Isabelle. In this paper, their semantics is defined in terms of local theories and morphisms. Locales aim at providing flexible means of extension and reuse. Theory modules (which are called locales) may be extended by definitions and theorems. Interpretation to Isabelle’s global theories and proof contexts is possible via morphisms. Even the locale hierarchy may be changed if declared relations between locales do not adequately reflect logical relations, which are implied by the locales’ specifications. By discussing their design and relating it to more commonly known structuring mechanisms of programming languages and provers, locales are made accessible to a wider audience beyond the users of Isabelle. The discussed mechanisms include ML-style functors, type classes and mixins (the latter are found in modern object-oriented languages).

This is a preview of subscription content, log in to check access.


  1. 1.

    Ancona, D., Zucca, E.: A theory of mixin modules: basic and derived operators. Math. Struct. Comput. Sci. 8, 401–446 (1998)

    Article  MATH  MathSciNet  Google Scholar 

  2. 2.

    Ballarin, C.: Locales and locale expressions in Isabelle/Isar. In: Berardi, S., Coppo, M., Damiani, F. (eds.) Types for Proofs and Programs, TYPES 2003, Torino, Italy. LNCS 3085, pp. 34–50. Springer (2004)

  3. 3.

    Ballarin, C.: Interpretation of locales in Isabelle: managing dependencies between locales. Tech. Rep. TUM-I0607, Technische Universität München (2006)

  4. 4.

    Ballarin, C.: Interpretation of locales in Isabelle: theories and proof contexts. In: Borwein, J.M., Farmer, W.M. (eds.) Mathematical Knowledge Management, MKM 2006, Wokingham, UK. LNCS 4108, pp. 31–43. Springer (2006)

  5. 5.

    Ballarin, C.: Tutorial to locales and locale interpretation. In: Lambán, L., Romero, A., Rubio, J. (eds.) Contribuciones Científicas en Honor de Mirian Andrés Gómez. Servicio de Publicaciones de la Universidad de La Rioja, Logroño, Spain (2010). Also part of the Isabelle user documentation

  6. 6.

    Bracha, G.: The programming language Jigsaw: mixins, modulariy and multiple inheritance. Ph.D. thesis, University of Utah (1992). Also Technical Report UUCS-92-007

  7. 7.

    Carette, J., Farmer, W.M., Jeremic, F., Maccio, V., O’Connor, R., Tran, Q.M.: The MathScheme library: some preliminary experiments. Manuscript arXiv:1106.1862v1 (2011)

  8. 8.

    Farmer, W.M., Guttman, J.D., Thayer, F.J.: Little theories. In: Kapur, D. (ed.) Automated deduction, CADE-11: Saratoga Springs, NY, USA. LNCS 607, pp. 567–581. Springer-Verlag (1992)

  9. 9.

    Gunter, E.L.: Doing algebra in simple type theory. Tech. Rep. MS-CIS-89-38, University of Pennsylvania (1989)

  10. 10.

    Haftmann, F., Wenzel, M.: Constructive type classes in Isabelle. In: Altenkirch, T., McBride, C. (eds.) Types for Proofs and Programs, TYPES 2006, Nottingham, UK. LNCS 4502, pp. 160–174. Springer (2007). doi:10.1007/978-3-540-74464-1_11

  11. 11.

    Haftmann, F., Wenzel, M.: Local theory specifications in Isabelle/Isar. In: Berardi, S., Damiani, F., de’Liguoro, U. (eds.) Types for Proofs and Programs, TYPES 2008, Torino, Italy. LNCS 5497, pp. 153–168. Springer (2009). doi:10.1007/978-3-642-02444-3_10

  12. 12.

    Harper, R., Pierce, B.C.: Design considerations for ML-style module systems. In: Pierce, B.C. (ed.) Advanced Topics in Types and Programming Languages. MIT Press (2005)

  13. 13.

    Jenks, R.D., Sutor, R.S.: AXIOM: The Scientific Computation System. Springer-Verlag (1992)

  14. 14.

    Kammüller, F.: Modular reasoning in Isabelle. Ph.D. thesis, University of Cambridge, Computer Laboratory (1999). Also Technical Report No. 470

  15. 15.

    Kammüller, F., Wenzel, M., Paulson, L.C.: Locales: a sectioning concept for Isabelle. In: Bertot, Y., Dowek, G., Hirschowitz, A., Paulin, C., Théry, L. (eds.) Theorem Proving in Higher Order Logics: TPHOLs’99, Nice, France. LNCS 1690, pp. 149–165. Springer (1999)

  16. 16.

    Milner, R., Tofte, M.: Commentary on Standard ML. MIT Press, Cambridge (1990)

  17. 17.

    Nipkow, T.: Order-sorted polymorphism in Isabelle. In: Huet, G., Plotkin, G. (eds.) Logical Environments, pp. 164–188. Cambridge University Press, Cambridge (1993)

    Google Scholar 

  18. 18.

    Nipkow, T.: Verified efficient enumeration of plane graphs modulo isomorphism. In: van Eekelen, M., Geuvers, H., Schmaltz, J., Wiedijk, F. (eds.) Interactive Theorem Proving (ITP 2011). LNCS 6898, pp. 281–296. Springer (2011)

  19. 19.

    Odersky, M., Altherr, P., Cremet, V., Emir, B., Maneth, S., Micheloud, S., Mihaylov, N., Schinz, M., Stenman, E., Zenger, M.: An overview of the Scala programming language. Tech. Rep. IC/2004/64, École Polytechnique Fédérale de Lausanne (2004)

  20. 20.

    Java platform, standard edition 6 API specification. http://docs.oracle.com/javase/6/docs/api/ (2011)

  21. 21.

    Paulson, L.C.: The reflection theorem: a study in meta-theoretic reasoning. In: Voronkov, A. (ed.) Automated Deduction—CADE-18 International Conference. LNCS 2392, pp. 377–391. Springer (2002)

  22. 22.

    Schirmer, N., Wenzel, M.: State spaces—the locale way. Electr. Notes Theor. Comput. Sci. 254, 161–179 (2009)

    Article  Google Scholar 

  23. 23.

    Soubiran, E.: Modular development of theories and name-space management for the Coq proof assistant. Ph.D. thesis, École Polytechnique (2012)

  24. 24.

    Wenzel, M.: Type classes and overloading in higher-order logic. In: Theorem Proving in Higher Order Logics. LNCS 1275, pp. 307–322 (1997). doi:10.1007/BFb0028402

Download references

Author information



Corresponding author

Correspondence to Clemens Ballarin.

Rights and permissions

Reprints and Permissions

About this article

Cite this article

Ballarin, C. Locales: A Module System for Mathematical Theories. J Autom Reasoning 52, 123–153 (2014). https://doi.org/10.1007/s10817-013-9284-7

Download citation


  • Theorem prover
  • Module system
  • Theory hierarchy
  • Theory interpretation
  • Isabelle