[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
[mizar] proposal for absolute notation
Hi,
as already discussed about a year ago on this list, there are serious
difficulties, when translating the internal (constructor) format of
Mizar formulas back to the user-readable (and also Mizar-parsable)
format.
The main reason for this difficulty is overloading of symbols, which
however seems to be indispensable for any larger library of mathematics.
This means that output of many Mizar utilities working on the internal
level cannot be used as input to the Mizar parser, which causes that a
lot of work (revision, experimental, etc.) that could be done
automatically, has to be done manually.
I think that with the growth of MML, this is becoming untenable, and the
current enormous amount of manual work, resulting from the recent
schematizer reimplementation (not published yet), shows it very clearly.
Another big problem caused by this overloading, appears when writing
advanced articles, that make use of a lot of previous facts from
different parts of MML. If several meanings of an overloaded symbol are
needed in one article, the writer has to do increasingly funny and
complicated exercises with environment and redefinitions, to be able to
write simple formulas. Even if such effort succeeds, it makes
understanding of such articles difficult.
There is also a third problem connected with this, even though maybe not
directly perceived by authors of Mizar articles now.
MML is now the largest body of formalized mathematics, written and
managed in an internally consistent manner, and it provides formal
conventions for many advanced concepts. There are many other people
working on some kind of "digitalization" of mathematics, or making use of
it.
When cooperating with MML, such people are mostly interested in the
semantics of MML, which can however be only expressed in the internal
(constructor) Mizar format. The usual approach to this format (used e.g.
by MML Query or MPTP) is numbering of article constructors, giving names
like "XBOOLE_0:func 1" to the empty set.
Apart from the obvious nonintuitivness of such names, they also make such
semantic presentations very unstable across various versions of MML.
E.g. revision adding a new functor definition at the beginning of
XBOOLE_0, make the previous semantic presentation hopelessly obsolete.
I think all these problems could be solved by adding the following simple
MML policy rule:
Whenever a symbol is being overloaded (i.e. a new definition or
a redefinition is introduced for symbol previously used in MML),
the author has to provide a unique (and possibly intuitive) synonym for
it, which must not be redefined later (this could be checked by some
simple utility).
This should solve the output-used-as-input problem, since we can always
resort to the absolute synonym, and similarly, the absolute synonym
can be used to resolve the overloading in advanced environments.
It could also help the third (presentation) problem, because the
absolute synonyms can be used instead of names like "XBOOLE_0:func 1",
making semantic presentations much more understandable, and (even more
important) much less fragile with revisions of MML.
I would also like to add some sort of a second rule, saying that the
format of such symbols has to be uniform in some way, e.g. allowing only
prefix notation, only alphanumeric characters and '_', or even starting
with low letter (to conform to simple theorem proving notations ;-),
so that it is easy for others to work with such absolute notation.
Thanks for any comments,
Josef Urban