Hi Bill,

| John and Freek, I finished porting my Tarski geometry Mizar code to
| miz3, and it's about 2/3 the size!!!  Thank you again for your help!

Congratulations! I'm really happy to see this work, which is both a
nice addition to HOL Light and a serious stress-test of miz3. I
suppose it is Freek's little syntactic improvements like "qed" that
account for the smaller code, is it? Since I gather you were trying to
keep the automation at a Mizar-like level, I assume that you didn't
try cutting out stages and relying on stronger justification, let
along going in for Urban-style Vampirism :-) By the way, I appreciate
the acknowledgement in the comments, but it's a bit much to say that
the port is "mostly due to John Harrison". All I did was point you in
the right direction and prove a few really simple lemmas as an
example.

|    You did a good job of boiling down the essential core.
|
| Thanks, John!  I spent years working for Richard Stallman, who taught
| me to write (Emacs) bug reports.  It didn't help my math career, but
| it was great to find folks who WANTED to hear about their errors!

Oh, I didn't know you used to work for Richard! I was sorry to see he
fell ill the other day while giving a talk in Barcelona. I hope he's
doing all right now.

| I found a workaround for this problem that I feel is a better
| solution.  I didn't know how to nest cases in Mizar, but Freek's
| grammar showed me how to do it.

Oh I see, yes, that probably is a better solution in several ways.
Using an explicit tactic would make your proofs only 99% declarative
instead of 100%, which would have been a bit unsatisfying.

| 1) I was able to write 1500 lines of Mizar code without any good Mizar
| dox because the error messages were informative enough.  The miz3
| error messages are not nearly as good, and I'll accept Freek's word
| that HOL Light causes this.  But we can make do with baffling error
| messages if the dox are good enough.  I would sit down right now and
| write up the syntax & semantics of miz3 if I knew what they were.

It would certainly be possible to improve the HOL Light error
messages. Generally HOL Light uses only the simplest error reporting
to keep the code simple. (In fact, some parts of the original HOL
Light core were basically Konrad Slind's hol90 code ported from SML to
OCaml and with the error handling removed.) If there are some specific
situations that you found particularly irksome, let me know and I'll
think about a fix. You might already have done this before on this
thread but I didn't pay close enough attention to that side of
things.

If you do have time to work on some kind of miz3 documentation, it
would be great, of course! I think the combination of the existing
paper by Freek, documentation for Mizar itself and even a closer
examination of the code might be enough to give a more or less
definitive picture. There is a reasonable level of documentation of
the "native HOL" facilities; in fact every non-theorem identifier in
the HOL Light system is supposed to have an entry in the reference
manual, which you can also get from inside HOL Light itself by

        help "CONJ_TAC";;

| 2) We don't need strict miz3 compliance with Mizar.  Mizar was
| extremely successful in showing that lots of folks can write up lots
| of formal proofs, without being a HOL Light or Coq code wizard.  But
| at this point Mizar is like an old pyramid, and we need spaceships.

It's certainly true that HOL Light has advantages of programmability,
more decision procedures and a generally more open architecture. But
I wouldn't dismiss Mizar too readily since it has a lot of other very
good features like its more flexible type system, and a much larger
library of abstract mathematics.

| 1) Freek's 1201.3601-1.pdf isn't actually about how to run Mizar
| programs in HOL Light.  It's about how to mix declarative &
| procedural, and I I give Freek credit for for his bold effort.

Yes, although I can't really speak for Freek I think I can confidently
say that his main interest was in discussing the ideas more abstractly
rather than trying to write end-user documentation. So there is
probably a gap in the market for a tutorial and/or reference for miz3
from the user perspective.

| 2) Make HOL Light the right place to write Mizar-like code.  I think
| the Mizar authors were great pioneers, but their program is an
| Egyptian pyramid with secret source code that they're not maintaining.

I am certainly very happy to see the wider use of declarative proof in
HOL Light. More generally, I'm all in favour of having people try out
alternative approaches to the default tactic language or build other
proof tools around HOL Light. For example, there is an interesting set
of Isabelle-style tactics by Petros Papapanagiotou and Jacques Fleuriot
that you can find in the "IsabelleLight" subdirectory.

John.

------------------------------------------------------------------------------
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
hol-info@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hol-info

Reply via email to