[isabelle-dev] Interpretation in arbitrary targets.

Clemens Ballarin ballarin at in.tum.de
Sun Apr 7 12:58:32 CEST 2013

Quoting Florian Haftmann <florian.haftmann at informatik.tu-muenchen.de>:

>>> Let those thoughts sink further few days.  If there is no veto until Apr
>>> 7th, I would go ahead to turn the patches upstream.

You have proposed a change about which doubts were raised.  I don't  
consider it acceptable to then announce a deadline after which you  
will go ahead and push.  People simply may not be able to respond in  
time, especially in a vacation period.

Regarding interpretation vs sublocale

We are talking about user interface design, and this means choosing  
appropriate metaphors for what certain commands do.  People familiar  
with the history of locales may remember that the precursor of the  
sublocale command was

   interpretation l < e

before I changed that to sublocale in the reimplementation.  This  
change was motivated by the realisation that interpretation between  
locales essentially means changing the module hierarchy.  This is a  
remarkable feature for a module system, which deserves emphasis and  
isn't really appropriately described by 'interpretation'.  In  
contrast, interpretation in theories just interprets locales in  
theories (even though with "subscription"), there is no additional  

 From this perspective (which is the perspective of the designer!) it  
seems wrong to put interpretation in locales and theories in one  
category, and local interpretation (as it might be called) in locale  
contexts and in proof contexts in the other.  Even, if this made some  
aspects of the implementation more elegant.  Let me note that, of  
course, the user interface design should not make the implementation  
unnecessarily complicated (but I believe we are far away from that).

In this light, if a version of the sublocale command seems necessary  
in context blocks, why no call it 'sublocale'?  Of course, the global  
version should remain

   sublocale l < e.

It should not be turned into

   sublocale (in l) e

because the former much more clearly indicates the change to the  
locale hierarchy.  This design has the additional benefits that users  
don't need to change existing proof documents, terminology in the  
literature remains up to date, and, most importantly, the sublocale  
command is clearly recognisable in context blocks.

There were two more aspects in the recent discussion.  I will pick  
them up in separate e-mails since this has got too long already.


More information about the isabelle-dev mailing list