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

Re: [mizar] Re: Mizar 7.8.04 MML 4.80.962




Hi,

On Sun, 25 Mar 2007, Adam Grabowski wrote:

 Let me briefly summarize the changes in the hottest official
distribution of the Mizar system:

- The basic change in the Mizar sources which enforced
 the revision is that local definitions (objects introduced
 mainly by the "set" construct) are prohibited now in the
 exportable items. This was used extensively in the SCM series,
 unfortunately, due to the change the readability of these
 articles is much smaller.

There is no technical reason to forbid "set", "deffunc", and "defpred" which are (recursively) clean of local constants introduced by "(re)consider". That means, the existing exportable items can remain as they are, if the implementation does the additional "cleanness" check.

For me the main issue is presentation of exportable items: An article can use a lot of "local stuff" for convenience, but it seems reasonable to have the "global stuff" (i.e. exportable items) use only the "global language". Otherwise the general advantages of scoping and abstraction are gone (i.e., instead of just reading a theorem, you need to browse through the whole article, etc.). If naive expansion of the local definitions makes the exportable items unreadable, then perhaps some of the local definitions (which make the item "locally readable") should be made global? I.e., use normal function definition (via "equals") instead of a long "set" and "deffunc"?

Anyway, I agree that readability is one of Mizar's strengths, and we should try to preserve it. There has been so much time since this issue came up, and it's hard to understand why we should suddenly hurry to take a quick & dirty solution with side-effects that will be hard to revert.

- There is no agreement which approach is better: (let me describe
 this based on the definition of a group) - to define the unity
 of a group as the selector of the underlying structure possessing
 the appropriate properties (the latter via "attribute" definition),
 or to introduce it by an adjective without any additional selector.
 The earlier approach is represented by "well-unital" adjective (and
 the unity is denoted by 1.F for a field F), the latter - by
 "unital" one (1_F). The change, done by Andrzej Trybulec consisted
 mainly in replacing "unital" with "well-unital" and "1." with "1_"
 (for "well-unital" these are equivalent notions). I am not sure if
 it's right because as I remember some five years ago we did exactly
 the opposite - but the "identify" construction wasn't available those
 days.

:-) "Experience, Not Only Doctrine", a.k.a. "Brownian Motion"

Best,
Josef