I think we should teach rigorous axiomatic geometry in high school
with the aid of formal proof checkers like HOL Light, promoted by Tom
Hales's Notices article.  I think HOL Light needs better documentation
before this is possible, and maybe new code, and I'll work on it.  I
need help porting my 1500 lines of Tarski geometry axiom Mizar code
http://www.math.northwestern.edu/~richter/RichterTarskiMizar.tar to
HOL Light Light.  Details:

I wrote a paper (for my 13yo son, who read it carefully) on Hilbert's
axioms http://www.math.northwestern.edu/~richter/hilbert.pdf as a
bridge between Moise & Venema's rigorous geometry texts and
Hartshorne's exciting but not-too-rigorous Euclid/Hilbert book.  But
to make rigorous axiomatic geometry a possibility in high school, I
think we need to tie it into the formal proof revolution, with the
spin that kids will learn computer programming skills that will help
them get jobs in the new field of formally checking software.

I built an old version 3.09 of HOL Light (I failed to build the newest
with camlp5) and was completely bufuddled by John Harrison's 1000
pages of dox (tutorial & reference manual).  How do a write down a
list of axioms and get HOL to check my axiomatic proofs?  A big part
of the dox problem, I believe, is explained in John's thesis, which is
about proving theorems in the real line with the aim of formally
proving mathematical theorems needed to show the correctness of
floating point computer processors.  That's a long way from axiomatic
geometry proofs.  I'm certainly prepared to like HOL Light, which is
based on ML, a Scheme-like language.  I'm a pretty good Scheme
programmer, and coached my son to write a nice Racket Sudoku solver on
http://schemecookbook.org/Cookbook/SudokuSolver.

So I switched to Mizar (which Tom's paper cites), which boasts of it's
bad dox, and sorta figured it out, and wrote 1500 lines of Mizar code
trying to prove Hilbert's geometry axioms from Tarski's.  I more or
less coded up Julien Narboux's proofs which he explains in the form of
Coq code in http://dpt-info.u-strasbg.fr/~narboux/tarski.html My first
step is port my code to HOL.  I tried to use the various Mizar modes,
but I couldn't run any of them in HOL 3.09, and I also couldn't
understand how to write up such proofs.

I think I made improvements to Julien's exposition, and my Mizar code
is much more readable than his Coq code, and also more readable than
the JHilbert code written by wikiproofs
http://www.wikiproofs.de/w/index.php?title=Interface:Tarski%27s_geometry_axioms
where I first learned how to use Tarski's axioms.  I believe that
Julien was porting proofs from the 1983 book Metamathematische
Methoden in der Geometrie by W. Schwabhäuser, W Szmielew, and
A. Tarski, and he got as far as Gupta's amazing proof of (more or
less) Hilbert's axiom I1 that two points determine a line.  It's
amazing how weak Tarski's axioms are!  

There's no good Mizar documentation, but there are a number of pdf
files with examples, and that sufficed for me.  There seems to be no
way of saying `` let's derive consequences of these axioms.''  So I
would have liked to say, let S be a model of Tarski's axioms, i.e. a
set S with betweenness and equidistance relations satisfying these 9
axioms.  I think in Mizar you can only do that if you first show that
a model of the axioms actually exist.  And of course R^2 is a model,
but that would take work to show, and I'd have to learn the Mizar of
the real line, and I didn't do it.  Instead I stumbled on the odd
solution of making the axioms into theorems, and then I cite these
axiom-theorems in my proofs.  It's an OK solution if one starts on
line 200 (my first actual proof) and only looks upward to find the
statement of the axioms.  Mizar has a particularly annoying feature of
not allowing TABs or the symbols for implies etc which Isabelle/Isar
(which I never built or understood) uses.  So I wrote some emacs code
.mizar-isar.el which gets around this.  Now I write up my Mizar code
in Isar fashion, using the forbidden symbols ⇒ ¬ ∨ ∧ ≡ ∀ ∃ ⇔ and not
worrying about TABs, and then run my function isar->mizar which copies
this file to joe.miz and rewrites it so Mizar will compile it.  I also
bound the forbidden symbols to keys for easy typing.  

-- 
Best,
Bill 

------------------------------------------------------------------------------
For Developers, A Lot Can Happen In A Second.
Boundary is the first to Know...and Tell You.
Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
http://p.sf.net/sfu/Boundary-d2dvs2
_______________________________________________
hol-info mailing list
hol-info@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hol-info

Reply via email to