[Date Prev][Date Next] [Chronological] [Thread] [Top]

[mizar] Syntax




Robert Solovay wrote:

>  Last night I uncovered a strange Mizar
> bug/feature: If say k is reserved to be Nat, then
> Mizar thinks
>
> k is;
>
> is a perfectly clear and acceptable assertion. As a
> result, I got some strange error messages when I said
>
> k is prime;
>
> without having "prime" in the vocabulary. [I think
> FILTER_0 is what's needed, but I'm just going by
> memory here.]

We have corrected it. (Version 6.1.12). It was well known feature of the
Mizar syntax. We kept it because:

 a Multi Adjective Formula Expression, i.e. Atomic Formula Expression of
the form

      /tau is /alpha_1 ... /alpha_k

 means actually

    /tau is /alpha_1 & ... & /tau is /alpha_k

E.g.
  x is non empty non trivial finite

means

  x is non empty & x is non trivial & x is finite

and because VERUM is a conjunction of the length 0 (in the realm of
Mizar semantic correlates) we believed that

allowing for

 x is

with the meaning

not contradiction

has a didactic value. The only protest as yet was that if the sentence
"/tau is" occurs in the inference one is tempted to believe that the
(ground) term "/tau' occurs, too. It is not true, so such recording is
misleading.

The Bob argument is critical, if the attribute symbol /alpha_1 is not in
the lexical environment of the article that
the formula

  /tau is /alpha_1 ... /alpha_k

is cut to

 /tau is

that causes misleading error messages.

In new syntax if you try to use "/tau is" you will get the error:

 consider x being set;

 x is;
::>  *309
::>
::> 309: Type or attribute expected

Actually the construction has been used in MML (the article YELLOW20 by
Grzegorz Bancerek). The library committee changed it to "not
contradiction" and it is O.K. now.

Regards,
Andrzej Trybulec