[isabelle-dev] Interpretation in arbitrary targets.
Makarius
makarius at sketis.net
Wed Mar 27 11:01:09 CET 2013
On Tue, 26 Mar 2013, Florian Haftmann wrote:
> Clemens Ballarin wrote:
>> Currently, sublocale is used for two purposes:
>>
>> a) relating two locales to each other (such as "a total order is a
>> lattice")
>>
>> b) import (a typically small number of) lemmas, which are needed for
>> establishing some result, from one locale A into another locale B
> Currently, there is check that »interpretation« may only be issued at
> the bottom level of the local theory stack, outside any free-floating
> context. Although I have no constructive proof at hand yet, I believe
> that by lifting the check appropriately we get b) for free: similar to
> »interpret«, this would only yield facts inside the context (whose
> bindings disappear after »end«) without any additional dependencies or
> registrations. This is also why I adhered to »interpretation« in the
> end.
> So, your example could somehow look like
>
> context B begin
> context
> begin
> interpretation A
> end
> context
> begin
> interpretation A'
> end
> context
> begin
> interpretation A''
> end
> interpretation A'' -- {* permanent subscription *}
> end
Note that we have one more aspect in the back-end that could help here:
the 'private' modifier. Its meaning was not fully defined so far, but it
could do the job:
context B
begin
private interpretation A ...
private interpretation A' ...
private interpretation A'' ...
interpretation A'' ...
end
Until I manage to get 'private' as command modifier into the toplevel
interpreter, we can tentatively use 'private_interpretation'.
Note that there might be still certain "foundations" that have to be
pushed through to the background theory, despite the privateness. For
example "private definition ..." has to introduce a global const, but the
name space entries can differ. (We can think about this side-branch harder
about this when we are standing there.)
For interpretation, the foundation aspect are the details about
subscription and the registration that is left behind in the context(s).
> You might still argue about syntax, e.g. having separate commands
> subscription – what is currently interpretation and subscription, not
> in free-floating contexts (as implemented in the patches).
> interpretation – only in confined contexts (locales, context begin …
> end, but not global theories any longer) without any subscription.
That paragraph is very difficult to understand.
> Overall I am amazed how well this all would fit to the existing local
> theories.
I agree with that formal observation. The changeset line is carefully
constructed as a "proof" on the history, where each step can be followed
in isolation. The main thing is
http://isabelle.in.tum.de/~haftmann/cgi-bin/repos/interpretation/rev/dd6dd81381fb
"subscription as dedicated target concept", when the result suddenly pops
out almost for free. (Apart from small snags concerning context reinit.)
Makarius
More information about the isabelle-dev
mailing list