[isabelle-dev] Additional type variable(s) in specification

John Matthews matthews at galois.com
Thu Dec 2 20:34:09 CET 2010

As another user data point, a few months back I ran into this same  
issue of the type I specified not being the type Isabelle gave me  
back. It was pretty confusing at the time and it took me a while to  
figure out what was going on.


On Dec 2, 2010, at 11:26 AM, Makarius wrote:

> On Thu, 2 Dec 2010, Alexander Krauss wrote:
>> I'll have a look at the code and see if packages can reject this  
>> from the user, while still being composable. This applies to all  
>> packages.
> In fact I've made this error already in 2005, and it was Alex  
> himself who convinced me more recently that packagages cannot  
> realistically do any check here, because the thing is so obscure  
> that hardly any package author will get to the point.
> Back to history: in 2005 Brian had a paper on TPHOLs with a footnote  
> about an unexpected crash of the typedef package due to hidden  
> polymorphism in the set involved, not the type.  What I did then is  
> to make the typedef package insert "itself" arguments in the way one  
> would think of as a first idea.  This made the problem go away for  
> the moment, although it complicated the package implementation.   
> When Larry was asking me about that change of typedef later, I also  
> failed to explain to him both the problem and its solution.
> After Local_Theory.define started handling the problem uniformly  
> once and for all, I could remove lots of strange code from typedef,  
> and be sure at the same time that all other (localized) packages  
> would stop crashing
> on the same kind of problem.
> When we speak about "users" of packages it covers both ML and Isar  
> theory sources, e.g. the function package is a user of the inductive  
> package. It is important to keep modularity here.
> The system is able to distinguish between things that are visible in  
> the source vs. internal uses of the same specifciation mechanisms to  
> some extent, but one needs to look very closely at that when  
> modifying the behaviour here.  We have already a long track record  
> of very abscure crashes due to errors that are emitted too eagerly,  
> e.g. in declaration attributes that insist in certain input and  
> choke on the transformed version after some interpretations.
> Part of the inherent complexity of local theory specifications is  
> due to interpretation wrt. the "target context", which always  
> happens when writing down specifications like 'definition' or  
> 'inductive'.  This is not the primitive consts + defs that we had  
> many yours ago.  And of course, the extra complexity localized  
> specifications was not introduced for fun, but to address concrete  
> problems that had accumulated over a couple of years of less  
> systematic treatment of these issues.  Compared to the situation  
> before it, there are very little problems left that need some fine  
> tuning.
> 	Makarius
> _______________________________________________
> isabelle-dev mailing list
> isabelle-dev at in.tum.de
> https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2205 bytes
Desc: not available
URL: <https://mailman46.in.tum.de/pipermail/isabelle-dev/attachments/20101202/07363dbe/attachment.bin>

More information about the isabelle-dev mailing list