[isabelle-dev] typedef

Andreas Schropp schropp at in.tum.de
Fri Aug 26 23:02:19 CEST 2011


On 08/26/2011 11:08 PM, Brian Huffman wrote:
> 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!
>    

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

> - Brian
>    




More information about the isabelle-dev mailing list