[isabelle-dev] Towards localized syntax: bundle mixins for locale and class specifications – Discussion of alternatives

Clemens Ballarin ballarin at in.tum.de
Thu Dec 3 21:35:41 CET 2020


Hi Florian,

Could you please explain what you mean by "surface context" in the 
documentation of the locale command:

> given bundles take effect in the surface context within both import and 
> body and the potentially following begin / end block

I'm trying to understand where exactly bundles in locale declarations 
are effective. I suppose they are not persisted beyond the locale 
declaration's begin /end block?

Clemens


On 2020-11-27 18:46, Florian Haftmann wrote:
> See now http://isabelle.in.tum.de/repos/isabelle/rev/e7c2848b78e8 for a
> refined and documented version.
> 
> 	Florian
> 
> Am 21.11.20 um 09:01 schrieb Florian Haftmann:
>> Since this thread did not stimulate any activity I will go on to
>> document the syntax in NEWS entries and manuals.
>> 
>> Cheers,
>> 	Florian
>> 
>> Am 01.11.20 um 18:09 schrieb Florian Haftmann:
>>> Dear all,
>>> 
>>> currently the syntax for bundle mixins for locale / class 
>>> specifications
>>> looks as follows:
>>> 
>>>   locale / class foo = import +
>>>     includes bundles
>>>     fixes …
>>>     assumes …
>>>   begin
>>> 
>>>>>> 
>>>   end
>>> 
>>> While this use of »includes« rests firmly on established traditions, 
>>> it
>>> is a little bit unsatisfactory since it also applies to the »import«
>>> expression, but is notated *after* it.
>>> 
>>> I had thought about something like
>>> 
>>>   context
>>>     includes bundles
>>>   begin
>>> 
>>>   locale foo = import +
>>>     fixes …
>>>     assumes …
>>>   begin
>>> 
>>>>>> 
>>>   end
>>> 
>>>   end
>>> 
>>> instead but this would require an artificial construction identifying
>>> nested contexts as »morally being global« internally.
>>> 
>>> A more inspiring solution could be to abandon the existing »includes«
>>> syntax entirely and replace it by a specific toplevel construct, e.g.
>>> 
>>>   including bundles lemma foo: ‹…› if ‹…› for …
>>> 
>>>   including bundles context group
>>>   begin
>>> 
>>>>>> 
>>>   end
>>> 
>>>   including bundles locale bar = …
>>> 
>>> This looks charming but the progressive participle is reserved for
>>> proofs.  For the same reason »with« won't do.
>>> 
>>> Cheers,
>>> 	Florian
>>> 
>>> 
>>> _______________________________________________
>>> isabelle-dev mailing list
>>> isabelle-dev at in.tum.de
>>> https://mailman46.in.tum.de/mailman/listinfo/isabelle-dev
>>> 
>> 
>> 
>> _______________________________________________
>> isabelle-dev mailing list
>> isabelle-dev at in.tum.de
>> https://mailman46.in.tum.de/mailman/listinfo/isabelle-dev
>> 
> 
> 
> _______________________________________________
> isabelle-dev mailing list
> isabelle-dev at in.tum.de
> https://mailman46.in.tum.de/mailman/listinfo/isabelle-dev


More information about the isabelle-dev mailing list