Locales: A Module System for Mathematical Theories

Journal of Automated Reasoning - Tập 52 - Trang 123-153 - 2013
Clemens Ballarin1
1Karlsruhe, Germany

Tóm tắt

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).

Tài liệu tham khảo

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