[isabelle-dev] typrep?

Tobias Nipkow nipkow at in.tum.de
Tue Jan 20 21:49:03 CET 2009

What are these automatically-generated class instances?

And yes, if even experienced users like Amine are confused, we have a


Brian Huffman schrieb:
> Hi Florian,
> I, for one, am rather alarmed at the hurdles that Amine was forced to
> overcome to do a simple merge of two theories. Even before the
> typerep-related problems, merging Isabelle theories was already
> difficult enough! I think that merging theories is one of Isabelle's
> most serious weaknesses, and it has prevented many users from being able
> to borrow, share, and build upon each other's code. (Witness how little
> re-use of code there has been among AFP entries, in spite of the
> recommendation in the submission guidelines, "It is possible and
> encouraged to build on other archive entries in your submission.")
> With this in mind, automatically-generated class instances are a step in
> the wrong direction. Assuming we can find solutions to name-space and
> syntax clashes, the only thing that can make two theories truly
> incompatible is having two different instantiations for overloaded
> constants at the same type. Adding class instantiations can introduce
> theory incompatibilities, and for this reason, adding class
> instantiations should not be taken lightly---and they should certainly
> not be done automatically!
> I think that the automatic class-instantiations should be disabled
> immediately, and replaced with a new top-level command so that these
> instantiations can be done explicitly, and individually.
> Facilitating the merging of theories written by different people should
> be a much higher priority. Arranging theory graphs should not have to be
> nearly so difficult as it is.
> - Brian
> Quoting Florian Haftmann <florian.haftmann at informatik.tu-muenchen.de>:
>> Hi Amine,
>> I guess you are in the following thygraph situation:
>>     Typrep  Real
>>        | /  \ |
>>        |/    \|
>> Complex_Main  FPS
>>        \      /
>>         \    /
>>          \  /
>>           Foo
>> Real defines type real, Typerep class typerep (;-)).  Then both in
>> Complex_Main and FPS and instance for typerep on type real is generated
>> automatically (thanks to generic interpretation), which clash on merge
>> into theory Foo.
>> The solution is too arrange that there is only one meeting point of
>> Typrep and Real in the thygraph.  According to your second email you
>> have already found a way.
>> N.B. arranging the HOL thygraph is a nontrivial task!
>> Cheers,
>>     Florian
> _______________________________________________
> Isabelle-dev mailing list
> Isabelle-dev at mailbroy.informatik.tu-muenchen.de
> https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev

More information about the isabelle-dev mailing list