Now that the Platonism discussion has died down (didn't Russell's paradox show 
the Platonic world of forms doesn't exist?), let me repeat two requests for 
help, as I should be done in 2 or 3 weeks.     I have 3700 lines of miz3 code 
http://www.math.northwestern.edu/~richter/RichterHOL-LightMiz3HilbertAxiomGeometry.tar.gz
and I'm 2 pages away from formalizing the first 7 sections of my geometry paper 
http://www.math.northwestern.edu/~richter/hilbert.pdf
I'm up to Euclid's Prop I.18, and I'll go no higher than Prop I.31.  My paper 
needs a lot of revision now.

My main problem is that I don't understand HOL, so I don't know what theorems 
HOL Light is proving for me.   The HOL4 Logic manual looks like a very 
respectable CS document, but I haven't been able to read it yet, and it's not a 
HOL Light document.   With my Tarski code, I would be happy to say (though I 
don't quite understand it) that HOL Light was verifying my FOL proofs using 
Tarski's geometry axioms.  But there's real  HOL in my Hilbert code funneled 
through sets.ml.  Of course I know what results I meant to prove, and my 
results use sets as mathematicians customarily use sets.  I figure that's the 
result that HOL Light proved for me, but I'm missing the translation.  A simple 
example of a result of mine I can't translate from math to HOL Light is 
OriginInRay_THM below, which leads me into my next problem:

John promised to write some set theory that miz3 can't handle after I finished 
formalizing my plane geometry.  I can live without it, but it would be nice to 
be able to fix something.  In the following 75 lines of miz3 code, everything 
works fine, including my set theoretic definition 
Ram_DEF : thm =
  |- !A B. ram A B = {X | ~(A = B) /\ Collinear A B X /\ A NOTIN open (X,B)}
except for a timeout error on my last thm.  No problems arise with the funny 
set theoretic definition 
Ray_DEF : thm =
  |- !A B X. ray A B X <=> ~(A = B) /\ Collinear A B X /\ A NOTIN open (X,B)

-- 
Best,
Bill 

#load "unix.cma";;
loadt "miz3/miz3.ml";;
horizon := 0;; 
timeout := 30;;

new_type("point",0);;
new_type_abbrev("point_set",`:point->bool`);;
new_constant("Between",`:point->point->point->bool`);;
new_constant("Line",`:point_set->bool`);;
parse_as_infix("NOTIN",(11, "right"));;

let NOTIN = new_definition
  `!a:A l:A->bool. a NOTIN l  <=> ~(a IN l)`;;

let Interval_DEF = new_definition
  `! A B X. open (A,B) X <=> Between A X B`;;

let Collinear_DEF = new_definition
  `Collinear A B C  <=> 
  ? l. Line l /\  A IN l /\ B IN l /\ C IN l`;;

let B1 = new_axiom
  `! A B C. Between A B C ==> ~(A = B) /\ ~(A = C) /\ ~(B = C) /\ 
            Between C B A /\ Collinear A B C`;;

let B1' = thm `;
  ! A B C.  B IN open (A,C) ==> ~(A = B) /\ ~(A = C) /\ ~(B = C) /\ 
             B IN open (C,A) /\ Collinear A B C
  by IN, Interval_DEF, B1`;;

let I1 = new_axiom
  `! A B.  ~(A = B) ==> ?! l. Line l /\  A IN l /\ B IN l`;;

let Ray_DEF = new_definition
  `! A B X. ray A B X <=> ~(A = B) /\ Collinear A B X /\ A NOTIN open (X,B)`;;

let OriginInRay_THM = thm `;
  let O Q be point;
  assume ~(Q = O)     [H1];
  thus O IN ray O Q

  proof
    O NOTIN open (O,Q)     [OOQ] by B1', NOTIN;
    consider l such that 
    Line l /\ O IN l /\ Q IN l     by H1, I1;
    Collinear O Q O     by -, Collinear_DEF;
  qed     by H1, -, OOQ, IN, Ray_DEF`;;


let EndpointInRay_THM = thm `;
  let O Q be point;
  assume ~(Q = O)     [H1];
  thus Q IN ray O Q

  proof
    O NOTIN open (Q,Q)     [notOQQ] by B1', NOTIN;
    consider l such that 
    Line l /\ O IN l /\ Q IN l     by H1, I1;
    Collinear O Q Q     by -, Collinear_DEF;
  qed     by H1, -, notOQQ, IN, Ray_DEF`;;


let Ram_DEF = new_definition
  `! A B. ram A B = {X:point | ~(A = B) /\ Collinear A B X /\ A NOTIN open 
(X,B)}`;;

let OriginInRam_THM = thm `;
  let O Q be point;
  assume ~(Q = O)     [H1];
  thus O IN ram O Q

  proof
    O NOTIN open (O,Q)     [OOQ] by B1', NOTIN;
    consider l such that 
    Line l /\ O IN l /\ Q IN l     by H1, I1;
    Collinear O Q O     by -, Collinear_DEF;
  qed     by H1, -, OOQ, IN, Ram_DEF`;;

------------------------------------------------------------------------------
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