1.2. La consolidación de los estados modernos y sus múltiples expresiones
1.2.4. El estado del socialismo real o estalinismo
The MathLang project dates back to 2000 when F. Kamareddine and J.B. Wells started the project within the ULTRA (Useful Logics, Types, Rewriting and Ap- plication) group. In 2000 and 2001 in the MathLang’s proposals [KW00, KW01a], they expressed the idea of developing a new mathematical language and framework called MathLang11, which keeps most of the advantages of CML and avoids its dis-
advantages ([KW01b, KW02, KW08, KWZ08]). Moreover the idea was to provide a second language to CML, so any mathematical document written in CML could be written instead in MathLang, which would allow a gradual computerisation and formalisation of mathematical texts. The initial MathLang project has fine and solid goals:
1. A MathLang text written in a formal language MathLang should remain very close to CML and should support all the usual features of the CML: natural language notions, document structure, symbolic formulas, images. In such case, MathLang can be used as a second language to the CML.
2. It should be possible to write a MathLang text in a less ambiguous way than the corresponding origin text. A MathLang document should support repre- senting the semantics and structure of the original document. The support for semantics should cover formula level as well as the entire document and its relationship to other documents, so it supports building computerised and connected libraries of mathematics.
3. The structure of a MathLang document has to express exactly the structure of a CML text, so the reading and writing of a MathLang text should be close to that of reading and writing CML. At the same time the MathLang structure has to be more precise and less ambiguous than that of CML documents. MathLang should somehow support and help mathematicians to precisely identify the logical structure of a document, without requiring readers and authors to adapt their thinking to fit the formal representation of MathLang. 4. A MathLang language does not restrict mathematicians to any existing the- oretic foundations (like set/type/category theory). So it allows to capture all kind of mathematics and provides a freedom for the mathematician to de-
11The project was always named MathLang but the initial name of the proposed language was
velop any mathematical document regardless of the branch of mathematics or even the level of correctness.
5. The authoring of a MathLang text should not require “extra” knowledge, skills or significant effort from the author. More specifically, it should not be more difficult than authoring mathematical documents using typesetting systems like LATEX.
Furthermore post-authoring additional features (such as full formalisation in a proof system) should also not be too labor-extensive for the author. 6. A MathLang text may act as a communication medium for the human and
the reasoning, expressed in CML is computerised and ready for further ma- nipulation and computer-based analysis. MathLang’s document uniformity provides a firm basis for communication allowing many people to work pro- ductively with the same text. As MathLang documents are more precisely structured than CML texts, they provide an excellent ground to the admin- istration of mathematical knowledge.
7. The MathLang framework provides extra features supporting more rigor to the initial translation of CML. One can define further levels of translations into more semantically and logically complete versions. Each level is a refined version of the previous level and captures/annotates more logics and seman- tics of the original document. This gradual computerisation method should be more accessible than direct formalisation, because a number of first levels do not require any particular expertise in formalisation.
8. The MathLang document structure should allow and support further post- authoring computer manipulations that respect the mathematical structure and meaning. Examples include the translation of the MathLang document into different format (e.g., LATEX, OMDoc), the high-quality visual repre-
sentation (similar to the one that LATEX provides), semantic-based searches,
the extraction of proof skeletons and sketches, etc. In particular it should support interfacing with proof systems so that parts of the MathLang docu- ment can contain full formal details in a chosen foundation and those parts can be automatically verified by the proof system.
None of the previous computer softwares for representing mathematical docu- ments satisfies the goals of MathLang. Therefore the MathLang is not yet another framework for computerising mathematics but it is an approach to bridge the gap
between mathematicians writing day-to-day CML texts and the proof systems com- munity. Moreover, MathLang’s philosophy is to bridge the gap between CML and full formalisation.
As expressed above, the main goal of MathLang is to support different degrees of formalisation. Furthermore, for those mathematicians where the full formalisa- tion of an authored document is a goal, MathLang is intended to achieve this by providing a framework where the full formalisation can be accomplished in gradual steps and at the same time the expertise knowledge of a chosen proof system is postponed to the latest phases of the formalisation. Full formalisation is some- times desirable but also is often undesirable due to its labour and time expense as well as the requirement to commit to many inessential details of document to be formalised. Therefore MathLang could support partial formalisation or full for- malisation of chosen parts of a MathLang document. The formalisation degree completeness is left for the author to decide how far he wants to go. Moreover, a partially formalised document can be tackled later on by another person.
Summarising, the novel approach for putting mathematics on computer pro- posed by MathLang desires to follow three main goals:
• Providing an authoring framework for mathematicians that is very similar to the one they are used to work with, where the front end language of that framework mimics and contains all features of CML. This allows mathemati- cians to work as they like using their own style of writing mathematics. At the same time, the framework gives the author a freedom to develop any mathematical document regardless of the branch of mathematics or even the level of correctness.
• Bridging the gap between CML and full formalisation. This opens the pos- sibility of further (sometimes post-authoring) semantic and logic refinements of a computerised text to reach the desired formalisation level. This should support either a partial formalisation or a full formalisation of a whole doc- ument or simply some required parts of a document whichever is desired. This allows to postpone, the expertise knowledge of a chosen proof system needed to fulfill the essential details to meet the formalisation level allowing computer verification of logical correctness.
• Providing a compatible way with future extensions of the framework to support additional uses of mathematical knowledge. The design of Math- Lang language should provide a bridge to existing languages like OMDoc,
TEXmacs.