On 08/26/2011 11:08 PM, Brian Huffman wrote:
On Fri, Aug 26, 2011 at 1:34 PM, Andreas Schropp<schr...@in.tum.de>  wrote:
locale bla =
  assume "False"
  typedef empty = {}

Now I have to put up with the fact the semantic interpretation of empty is
the empty set. Formerly only non-empty sets were semantic interpretations of
type constructors. The way around this is to localize derivations related to
type constructor well-formedness, using False to forge all those crazy
things.
As I understand it, the typedef in the above example will cause a
conditional axiom to be generated, something like this:

axiom type_definition_empty:
   "False ==>  type_definition Rep_empty Abs_empty {}"

As far as I can tell, this axiom doesn't force you to use the empty
set to denote type "empty" in your set-theoretic model. In fact, you
can use any set you want to denote type "empty", because the axiom
type_definition_empty doesn't assert anything about it at all!

So you suggest using e.g.
  if EX x. x : A then A
  else {0}
instead of A as the semantic interpretation?
Interesting!

- Brian

_______________________________________________
isabelle-dev mailing list
isabelle-...@in.tum.de
https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev

Reply via email to