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

Re: [mizar] Formalization of the Lebesgue measure in Mizar



On Sun, 22 May 2016, Amir Livne Bar-on wrote:

3. Some of the inference chains make the Mizar engine seem "less smart"
than others. For instance, the end of the proof of EmptySetMeasureZero. Or
algebraic manipulations, such as
       A5: c > a;
       set b = (a + c) / 2;
       a + c > a + a by A5, XREAL_1:6;
       then (a + c) / 2 > (a + a) / 2 by XREAL_1:74;
       then A6: b > a;
which would be nicer if it had equalities instead of inequalities.

You're right, the proof checker is not particularly strong in this respect, so quite simple steps must still be spelled out. But in the case of this proof fragment:

     suppose A6: c in REAL;
        assume A5: c > a;
        reconsider c as Real by A6, XREAL_0:def 1;
        set b = (a + c) / 2;
        a + c > a + a by A5, XREAL_1:6;
        then (a + c) / 2 > (a + a) / 2 by XREAL_1:74;
        then A6: b > a;
        a + c < c + c by A5, XREAL_1:6;
        then (a + c) / 2 < (c + c) / 2 by XREAL_1:74;
        then b < c;
        hence contradiction by A1, A6, XXREAL_2:def 2;
      end;

it can be written like this:

      suppose c in REAL;
        then reconsider d=c as Real;
        assume c > a; then
        a + a < a + d < d + d by XREAL_1:6; then
        (a + a) / 2 < (a + d) / 2 < (d + d) / 2 by XREAL_1:74;
        hence contradiction by A1, XXREAL_2:def 2;
      end;

and then it looks a little better.

For example, I don't understand the difference between Real and Element of REAL.

In most contexts one should use 'Real' (which is just a shorthand for 'real Number'). 'Element of REAL' is used mainly in situations where you need to explicitely refer to the domain of real numbers, e.g. when a term is expected to be an element of some given set. The system should know automatically (thanks to the registration in XREAL_0) that any term with the type 'Element of REAL' possesses the 'real' adjective, so is has the type 'Real'.

As another example, I don't know what the "correctness" stanza of a registration should justify. Are there any more sources to learn about Mizar?

'correctness' is a general "placeholder" for a series of specific correctness conditions which have to be proved for various kinds of definitions or registrations. In case of registrations these are 'existence' or 'coherence' (when you specify new type). The "Mizar in a nutshell" manual has an appendix (Skeletons) which shows the formulas associated with these correctness conditions. Just beware that the syntax of conditional and existential registration statements has been changed slightly (it now requires writing the 'for' keyword before the type), but it's the only difference.

Adam

===========================================================================
Dept. of Programming and Formal Methods      Fax: +48(85)738-83-33
Institute of Informatics                     Tel: +48(85)738-83-06 (office)
University of Bialystok                      E-mail: adamn@mizar.org
Ciolkowskiego 1M, 15-245 Bialystok, Poland   http://math.uwb.edu.pl/~adamn/
===========================================================================