X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fpapers%2Fmatita%2Fmatita2.tex;h=c5c0fff05b9e433c444bd921cf1ed71982c5904f;hb=4c2a5e7da43e15d9a5f35d65f6bd6eda9a117d93;hp=c994cbc127a0f852cc8a66554bb036c4d194fe9f;hpb=aaa8de04bb771bb61116f1b3f2e6d2e36a326e9b;p=helm.git diff --git a/helm/papers/matita/matita2.tex b/helm/papers/matita/matita2.tex index c994cbc12..c5c0fff05 100644 --- a/helm/papers/matita/matita2.tex +++ b/helm/papers/matita/matita2.tex @@ -1,4 +1,4 @@ -\documentclass[draft]{kluwer} +\documentclass[]{kluwer} \usepackage{color} \usepackage{graphicx} % \usepackage{amssymb,amsmath} @@ -270,6 +270,14 @@ allow other developers to quickly understand our code and contribute. \end{center} \end{figure} +\begin{figure}[t] + \begin{center} + \includegraphics[width=0.9\textwidth]{libraries.ps} + \caption{\MATITA{} libraries} + \label{fig:libraries} + \end{center} +\end{figure} + \section{Overview of the Architecture} Fig.~\ref{fig:libraries} shows the architecture of the \emph{libraries} (circle nodes) and \emph{applications} (squared nodes) developed in the HELM project. @@ -1223,10 +1231,8 @@ of course, we wrote (and offer) the source script files, while, in the case of Coq, Matita may only rely on XML files of Coq objects. The current library just comprises about one thousand theorems in -elementary aspects of arithmetics. The most complex result proved -so far in Matita (that however, at our knoweledge, has never been proved -before in any other system) is the multiplicative property for Eulers' -totient function $\phi$. +elementary aspects of arithmetics up to the multiplicative property for +Eulers' totient function $\phi$. The library is organized in five main directories: $logic$ (connectives, quantifiers, equality, $\dots$), $datatypes$ (basic datatypes and type constructors), $nat$ (natural numbers), $Z$ (integers), $Q$ (rationals). @@ -1253,12 +1259,79 @@ developing wiki-technologies to support a collaborative development of the library, encouraging people to expand, modify and elaborate previous contributions. +\subsection{Matita's naming convention} +A minor but not entirely negligible aspect of Matita is that of +adopting a (semi)-rigid naming convention for identifiers, derived by +our studies about metadata for statements. +The convention is only applied to identifiers for theorems +(not definitions), and relates the name of a proof to its statement. +The basic rules are the following: +\begin{itemize} +\item each identifier is composed by an ordered list of (short) +names occurring in a left to right traversal of the statement; +\item all identifiers should (but this is not strictly compulsory) +separated by an underscore, +\item identifiers in two different hypothesis, or in an hypothesis +and in the conlcusion must be separated by the string ``\verb+_to_+''; +\item the identifier may be followed by a numerical suffix, or a +single or duoble apostrophe. + +\end{itemize} +Take for instance the theorem +\[\forall n:nat. n = plus \; n\; O\] +Possible legal names are: \verb+plus_n_O+, \verb+plus_O+, +\verb+eq_n_plus_n_O+ and so on. +Similarly, consider the theorem +\[\forall n,m:nat. n