On Thu, 26 Apr 2012, Phil Scott wrote:

> Others have mentioned the more modular approach of defining a relation R 
> on variables which stand for Hilbert's various primitive notions. Then a 
> formula such as Group1(on_line, on_plane) can assert that the relations 
> on_line and on_plane satisfy Hilbert's axioms. This would allow you to 
> carry out metatheoretic proofs, at the expense of making all of 
> Hilbert's theorems conditional on Group1(on_line, on_plane). The main 
> issue I then have is that all definitions (and Hilbert needs many just 
> to assert his axioms) need to carry the primitive notions as arguments. 
> I think this would really uglify the proofs, but it should be possible 
> to hide this away with some judicious syntactic sugar, as I believe is 
> done with Isabelle's locales.

If you think of the "axiomatization" as a local context with parameters 
and assumptions (based on some predicate definition in the background), 
then your subsequent definitions become dependent on that context as 
abserved above.  The locale context of Isabelle manages exactly that by 
some extra-logical infrastructure, and this is a bit more than just 
syntactic sugar.

In fact, the modest locale concept of 1999/2002 has been refined and 
elaborated many times.  Around 2006/2007 we've turned it into so-called 
"local theory" infrastructure, where locales, type clases, overloading 
etc. are just particular targets, which means contexts that can absorb 
definitional specifications.  In the other dimension you have 
"definitional packages" that live in the local theory space: inductive 
sets and predicates, recursive functions, etc. Even what looks like plain 
definition or theorem statements in Isabelle are non-trivial local theory 
packages, and can thus depend on particular context elements without the 
user having to care about it very much.

What is conceptually also important here is that we have introduced a 
clear separation between the "foundation" level (actual definitional 
primitives) and the "user" view on that.  So user theories are no longer 
directly exposed to the bare metal of the logic.  For exmaple, the 
proverbial HOL problem from the other thread by Rob Arthan, which is 
called "hidden polymorphism" in Isabelle jargon, is absorbed by the local 
theory infrastructure:

   definition "unitary = (!x. x = x)"

This correctly defines a polymorphic boolean with an implicit type 
dependency in Isabelle/HOL.  This works out formally, but it might still 
be apt to confusion and surprises when used in practice.  (There are rare 
situations where this is really required in that form.)


        Makarius

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