A Module system for Mathematical Theories
This is the homepage of the MMT system designed and maintained by Florian Rabe.
MMT is a language for formal mathematics that pays special attention to foundation-independence, scalability, and modularity. MMT is also a sublanguage of the OMDoc format for open mathematical documents and will be integrated into the upcoming OMDoc 2 format.
The goals of OMDoc and MMT are to provide a web-scalable environment in which all mathematics can be represented in a way that supports both rigorous mathematical and logical tools as well as knowledge management services (e.g., databases, notation management, document management, change management).
I don't like fancy home pages with logos and animations. So don't let this site make you underestimate the system. Also while I usually keep this main page in sync with my research progress, other parts of the trac might be outdated.
MMT Language
The key features of the MMT language are
- a module system for declarative languages that combines expressivity with simplicity,
- a foundation- and logic-independent semantics,
- a design that incorporates web-scalability.
The central concepts of the MMT syntax are
- module level declarations
- (structured) theories encapsulate mathematical contexts.
- theory morphisms translate between theories either by representation (views) or by inheritance (structures),
- styles are sets of notations to render MMT expressions for humans or systems.
- symbol level declarations
- constants represent mathematical objects as possibly typed, possibly defined entities akin to Pure Type Systems.
- Axiom and theorem declarations are treated as special cases of symbols via the Curry-Howard correspondence.
- notations state transformation rules in styles.
- object level expressions
- MMT integrates the OpenMath syntax for expressions but extends it with notions of theories and contexts.
- morphisms are compositions of inclusions, views, and structures and are treated like objects in MMT.
MMT System
The MMT system consists of a Scala-based reference API to the MMT data structures with a scriptable shell frontend and an HTTP
- mmt-web, a Lift-based HTTP server for mmt-api
The MMT svn repository can be accessed here. It contains in particular, the mmt-api project and various plugins. These are eclipse projects, and they contain ant build files. Runnable jar files are provided in the deploy directory.
Documentation
- mmt-api API documentation: https://svn.kwarc.info/repos/MMT/doc/api/index.html
- user's manual: https://svn.kwarc.info/repos/MMT/doc/manual/mmt.pdf
- the main paper on MMT: http://kwarc.info/frabe/Research/mmt.pdf
Quick installation instructions are given here.
Related Projects and Applications
MMT is heavily used in the LATIN project. In particular, an instance of the LATIN web browser can be found here.
In particular, LATIN uses MMT notations to produce JOBAD-enabled XHTML-MathML.
MMT and JOBAD were used in our submission to the AI Mashup Challenge.
Information on the MMT-Plugin for TNTBase can be found here.
MMT was used as the basis in the Twelf module system. See here for more information.
Papers
- F. Rabe, M. Kohlhase, A Web-Scalable Module System for Mathematical Theories - this is the main paper on MMT (under review)
- F. Horozal, A. Iacob, C. Jucovschi, M. Kohlhase, F. Rabe, Combining Source, Content, Presentation, Narration, and Relational Representation - introduces the concept of MMT archives (published at MKM 2011, LNCS)
- M. Kohlhase, F. Rabe, C. Sacerdoti Coen, A Foundational View on Integration Problems - outlines how MMT can be used for system integration (published at Calculemus 2011, LNCS)
- M. Codescu, F. Horozal, M. Kohlhase, T. Mossakowski, F. Rabe A Proof Theoretic Interpretation of Model Theoretic Hiding - adds the hiding operation to MMT (published at WADT 2011, LNCS)
- M. Kohlhase, F. Rabe, V. Zholudev, Towards MKM in the Large: Modular Representation and Scalable Software Architecture - a high level view on MMT and its software infrastructure (published at MKM 2010, LNCS, best paper award)
- V. Zholudev, M. Kohlhase, F. Rabe, A (insert XML Format) Database for (insert cool application) - uses MMT as an example how to use TNTBase as a format-independent database (published at XMLPrague 2009)
- J. Giceva, C. Lange, F. Rabe, Integrating Web Services into Active Mathematical Documents - introduces JOBAD, a precursor to the MMT interactive web interface (published at MKM 2009, LNCS)
- F. Rabe and C. Schürmann, A Practical Module System for LF - the Twelf instantiation of the MMT module system (published at LFMTP 2009)
- M. Kohlhase, C. Müller, F. Rabe, Notations for Living Mathematical Documents - introduces a precursor to the MMT notation language and rendering engine
- F. Rabe and M. Kohlhase, An Exchange Format for Modular Knowledge - an early workshop paper on MMT (published at KEAPPA 2008)
