John & Freek, I have miz3 comments, based on John's miz3 axiom port of
my Tarksi geometry code, below.  It would be great to write good miz3
dox, because there are no good Mizar dox.  Maybe I can help.

 ********************************
A misfeature of my Mizar code was duplicating the thm assumptions at
the top of the proof.  1201.3601v2.pdf had a way to avoid that:

let CongruenceDoubleSymmetry_THM = thm `;
   let a b c d be point;
   assume a,b === c,d [H1];
   thus   b,a === d,c

   proof
     b,a === a,b /\ c,d === d,c [X1] by H1, A1;
     a,b === d,c by H1, X1, EquivTransitive;   
     qed by -, X1, EquivTransitive`;;

I also used Freek's qed feature to get rid of a useless line.
Improvements like this are really important to pull kids in.

 ********************************
I'd like a Mizar feature which reduces duplication.  In miz3 we write

     ? x . Between (b,x,b) /\ Between (a,x,a) by -, H1, A7;
     consider x such that
     Between (b,x,b) /\ Between (a,x,a) [X1];

But in Mizar we can also write more simply

     consider x such that
     Between (b,x,b) /\ Between (a,x,a) by -, H1, A7 [X1];

********************************
If a statement has a label, the label must precede `by ...'  I don't
know where this is explained, and it seems to be contradicted on p 17:

   The labels are behind the statements in brackets, instead of in front
   with a colon.

This caused me a lot of trouble, but I would have known if I'd read
Freek's examples, as the correct behavior is showne.g. on p 13:

  consider x such that ~P x [3] by 2;
  take x;
  assume P x [4];
  F [5] by 3,4;
  thus !y. P y [6] by 5;

********************************
I'd prefer statement labels at the beginning of a line, as in Mizar.
That seems more readable, and in the tradition of 2-column proofs.

********************************
On p 17 of 1201.3601v2.pdf, Freek writes 

   The label `-' refers to the previous statement. Also, the last
   ‘horizon’ statements are visible without reference, where horizon is
   a variable of the miz3 server that is usually set to 1.

That seems to mean that the previous statement is always visible, and
that we never need `-'.  I want to need a `-' to refer to the previous
statement, so (this works fine so far) I set 
horizon := 0;; 
but it makes the there-exists/consider even more cluttered:

     ? x . Between (a,c,x) /\ c,x === c,d by A4;
     consider x such that 
     Between (a,c,x) /\ c,x === c,d [X1] by -;

******************************** 
I think the miz3 error message are not nearly as good as the Mizar
error message, which are often baffling, but obey one principle: on
the first offending line, there is an error message, and it's indented
to mark the offending expression.  I don't have a good example yet. 

I have a serious problem the miz3 error message aren't helping me fix,
but that requires the Tarski code, so I'll write a separate message.

******************************** 
Freek's `cases' discussion does not point out that in sufficiently trivial
cases, no `by' is needed, as in 

let B124and234Ordered_THM = thm `;
   ! a b c d .
   Between (a,b,d) /\ Between (b,c,d) ==> is_ordered (a,b,c,d)

proof
     let a b c d be point;
     assume Between (a,b,d) [H1];
     assume Between (b,c,d) [H2];
      cases;
     suppose b = c [P1];
       Between (a,b,c) [P2] by -, Bqaa_THM;
       Between (a,c,d) by P1, H1;   
       thus is_ordered (a,b,c,d) by P2, H1, -, H2, is_ordered_DEF;
     end;
     suppose ~(b = c) [Q1];
       Between (a,b,c) by H1, H2, B124and234then123_THM;   
       thus is_ordered (a,b,c,d) by -, Q1, H2, BTransitivityOrdered_THM;
     end;
    end`;;

-- 
Best,
Bill 

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
hol-info mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/hol-info

Reply via email to