Thanks, Konrad!  You seem to agree with me here, that the typed-LC-implies-FOL 
isn't actually important:

   My personal feelings on this foundational aspect are that the
   actual set of axioms isn't that important provided the usual
   introduction and elimination rules of predicate calculus can be
   derived from them.

Now you're encouraging me to go read Church's typed LC paper more carefully, 
and see if I can work out the apparent difference between Church and what I 
quoted Andrews as saying about Church: 

   My recollection (don't have citations to hand) is that Church
   originally wanted the untyped lambda calculus to serve as a
   foundation for logic, but that was discovered to be
   inconsistent. Something like Russell's paradox would be easy to
   code up in it. However, the simply typed lambda calculus worked
   better, i.e., it supports the derivation of the expected FOL-like
   rules, as we see in HOL theorem provers, and it is sound.

Here's a some dumb questions about HOL4 and HOL Light.  

On p 29 of LOGIC, you write that there are constants 
Tbool, ∀(α→bool)→bool etc.  Why aren't there colons?  I would have written that 
as 
T:bool and ∀:(α→bool)→bool
Are the apparent subscripts supposed to indicate colons, or does HOL4 not use 
colons for type annotations?

I'm having trouble seeing your derivation of the expected FOL-like rules in HOL 
Light.  Is there a paper where somebody explained these HOL derivations, or is 
it perhaps easier to understand in HOL4? 

Tom Hales writes on p 6 of 
http://www.ams.org/notices/200811/tx081101370p.pdf

The system [HOL Light] has only two primitive constants.  One of them is the 
equality symbol (=) of type :A->A->bool.  So = is primitive, and p 5 lists the 
HOL Light axioms about the properties of =.  Let's try to find this in the HOL 
Light sources.  In  
hol_light/bool.ml
it seems to me that first the type bool is defined, 
then = and <=> are defined to have type bool->bool->bool and to be the same as 
each other,
then T is defined as 

let T_DEF = new_basic_definition
 `T = ((\p:bool. p) = (\p:bool. p))`;;

That's your first HOL axiom on p 29 (again without colons):

T = ((λxbool . x) = (λxbool . x))

So it looks to me that HOL Light is defining Tom's primitive = in terms of the 
Ocaml =.  Is that correct?  And maybe that just means that the HOL Light 
primitive = is "represented" in Ocaml as the ordinary =?

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