[isabelle-dev] Interpretation in arbitrary targets.

Lars Noschinski noschinl at in.tum.de
Wed May 22 12:22:02 CEST 2013


On 21.05.2013 13:59, Makarius wrote:
>> I do this usually by searching backwards for "context" (which means I
>> might miss contexts opened by "locale") or manually search through the
>> sidekick. To check whether I am in a local context at all, I usually
>> insert an additional "end" command and look for an error.
>
> BTW, there is also the old-fashioned TTY command print_context to ask
> the prover. It is more relevant in non-trivial contexts like
> 'interpretation'. On the other hand, all these things should be more
> immediate in the Prover IDE, as generated templates or similar.

I did not know about print_context, which solves my immediate use case.

This command is not documented in the reference manual (at least not in 
the index), though. Also, it only seems to work half-way for unnamed 
contexts:

   - If I open an unnamed context with some fixes, assumes in the theory
     context, print_context ignores this, i.e. in

        theory Foo imports Main begin
        context fixes P assumes P begin

     print_context outputs only "theory Foo".

   - This is different inside a named context:

        theory Foo imports Main begin
        locale A begin
        context fixes P assumes P begin

     yields

        theory Foo
        locale A =
          fixes P :: "bool"
          assumes "P"

     as output of print_context. Although this might also be considered
     slightly irritating, as those elements are not part of the locale,
     so something like

        theory Foo
        locale A
        context
          fixes P :: "bool"
          assumes "P"

     would be better.

How is interpretation related to print_context? It seems that neither 
interpret nor interpretation extends the context as displayed by 
print_context?

   -- Lars



More information about the isabelle-dev mailing list