Abstract
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).
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.References
Ancona, D., Zucca, E.: A theory of mixin modules: basic and derived operators. Math. Struct. Comput. Sci. 8, 401–446 (1998)
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)
Ballarin, C.: Interpretation of locales in Isabelle: managing dependencies between locales. Tech. Rep. TUM-I0607, Technische Universität München (2006)
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)
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
Bracha, G.: The programming language Jigsaw: mixins, modulariy and multiple inheritance. Ph.D. thesis, University of Utah (1992). Also Technical Report UUCS-92-007
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)
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)
Gunter, E.L.: Doing algebra in simple type theory. Tech. Rep. MS-CIS-89-38, University of Pennsylvania (1989)
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
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
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)
Jenks, R.D., Sutor, R.S.: AXIOM: The Scientific Computation System. Springer-Verlag (1992)
Kammüller, F.: Modular reasoning in Isabelle. Ph.D. thesis, University of Cambridge, Computer Laboratory (1999). Also Technical Report No. 470
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)
Milner, R., Tofte, M.: Commentary on Standard ML. MIT Press, Cambridge (1990)
Nipkow, T.: Order-sorted polymorphism in Isabelle. In: Huet, G., Plotkin, G. (eds.) Logical Environments, pp. 164–188. Cambridge University Press, Cambridge (1993)
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)
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)
Java platform, standard edition 6 API specification. http://docs.oracle.com/javase/6/docs/api/ (2011)
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)
Schirmer, N., Wenzel, M.: State spaces—the locale way. Electr. Notes Theor. Comput. Sci. 254, 161–179 (2009)
Soubiran, E.: Modular development of theories and name-space management for the Coq proof assistant. Ph.D. thesis, École Polytechnique (2012)
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
Author information
Authors and Affiliations
Corresponding author
Rights 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
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10817-013-9284-7