[isabelle-dev] typedef
Brian Huffman
brianh at cs.pdx.edu
Fri Aug 26 23:08:43 CEST 2011
On Fri, Aug 26, 2011 at 1:34 PM, Andreas Schropp <schropp at 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!
- Brian
More information about the isabelle-dev
mailing list