Thanks, Konrad!  I'll read your proof of NOT_FORALL_THM, and try to find Gordon 
and Melham's book.  Two points:

I don't believe that Church ever explained how typed LC implies FOL.  Church 
certainly does not explain this in his paper
A Formulation of the Simple Theory of Types http://www.jstor.org/stable/2266170.
In section 4 "Formal axioms", he lists exactly the FOL axioms that his student 
Peter Andrews lists
http://plato.stanford.edu/entries/type-theory-church/
So maybe Gordon and Melham were the first people to figure out how to deduce 
FOL from typed LC and some simple LC axioms like the HOL Light axioms  Tom Hale 
cites:
http://www.ams.org/notices/200811/tx081101370p.pdf

I've understood something pretty simple from hol_light/equal.ml, a proof 
(translated from SYM of equal.ml) that equality is symmetric, using Hale's 
axioms
1) Equality is reflexive;
3) Equal functions applied to equals are equal;
7) An ``equality-based'' rule of modus ponens holds.
My written proof just amounts to understanding the actually quite nice code in 
equal.ml:

let AP_TERM tm th =
  try MK_COMB(REFL tm,th)
  with Failure _ -> failwith "AP_TERM";;

let SYM th =
  let tm = concl th in
  let l,r = dest_eq tm in
  let lth = REFL l in
  EQ_MP (MK_COMB(AP_TERM (rator (rator tm)) th,lth)) lth;;

First a simple point involving infixes and currying.  Take a term l.  Note that 
(= l) x means l = x, by definition of infix, and that (= l) is the function
λx. l = x
if we choose a variable x which is not free in l.  But by using (= l), equal.ml 
both avoids choosing such a free variable x, simplify the use of axiom 3 above, 
and means we don't have to understand how full beta-conversion version of 
Hales's axiom 
5) The application of the function x |-> a to x gives a.
How clever!

Next we'll need the theorem implicit in AP_TERM obtained by combining axioms 1 
and 3: applying the same function to an equation gives an equation.  That is, 
if Gamma |- x = y, then Gamma |- f x = f y.

Theorem: 
Take two terms l and r with Gamma |- l = r.  Then Gamma |- r = l.

Proof:
We can suppress assumptions Gamma in the proof, because axiom 1 requires no 
assumptions, and axioms 3 and 7 take the union of the assumptions.
Axiom 1 gives the equation l = l which we'll use twice below.
l and r must have type A, and 
= has type A->(A->bool).  So applying = to the equation l = r gives the equation
(= l) = (= r),
by the AP_TERM theorem.
Axiom 3 applied to this function equation and l = l gives the equation 
((= l) l) = ((= r) l)
i.e.
(l = l) = (r = l).
Thus we have the equation r = l by Axiom 7, since l = l.
\qed

Now I'm ready to try harder things, like Rob's beta-conversion or your 
NOT_FORALL_THM. 

-- 
Best,
Bill 

------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/13534_NeoTech
_______________________________________________
hol-info mailing list
hol-info@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hol-info

Reply via email to