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
[email protected]
https://lists.sourceforge.net/lists/listinfo/hol-info