[isabelle-dev] Datatype alt_names
Makarius
makarius at sketis.net
Fri Nov 5 16:03:14 CET 2010
On Wed, 3 Nov 2010, Makarius wrote:
> On Wed, 3 Nov 2010, Brian Huffman wrote:
>
>> Consider this typedef command from an old version of HOLCF:
>>
>> typedef (Sprod) ('a, 'b) "**" (infixr 20) = "{f. ? a b. f = Spair_Rep
>> (a::'a) (b::'b)}"
>>
>> The name "Sprod" sets "Rep_Sprod" and "Abs_Sprod" as the default names
>> for the morphisms (which could just as well be done with the
>> "morphisms" option). It also gives the name "Sprod" to the defined
>> set, and causes the generated theorem names to be qualified with
>> "Sprod".
>>
>> I am guessing that the original motivation for this feature is the same as
>> the reason for the similar feature in the datatype package: to support
>> non-alphanumeric type names like "**".
>
> OK, there is yet another reason for that ancient alternative name.
> Before the typedef package existed, Larry had a certain standard scheme
> to write the axioms by hand, but the names where derived from a
> capitalized version of the later type name. This option allowed to
> imitate Larry's old scheme and thus helped to save many hours or many
> days of recompiling existing theories after name changes as we would do
> now.
I did not find time yet to investigate the sources/history further, but I
have just attended a talk where the presenter was using 'typedef' with
this alternative name. So its probably better not to delete it without a
strong reason.
Makarius
More information about the isabelle-dev
mailing list