[isabelle-dev] Regression in the sublocale command

Florian Haftmann florian.haftmann at informatik.tu-muenchen.de
Sat Feb 14 21:35:55 CET 2015


A few first traces.

The sublocale statements themselves are operative in Isabelle2013-1.
However, if put into a local context, the same situation as in
Isabelle2014 occurs:

context loc1
begin

sublocale x: loc2 A c (* sigma_1 *)
  where "x.b == B" and "x.d == e" (* tau_1 *)
sorry

end

context loc2
begin

sublocale x: loc1 A b (* sigma_2 *)
  where "x.c == C" and "x.e == d" (* tau_2 *)
sorry (* loops! *)

end

This might indicate that something is wrong in the local theory stack
here, maybe the last line in

> fun locale_dependency locale dep_morph mixin export =
>   (Local_Theory.raw_theory ooo Locale.add_dependency locale) dep_morph mixin export
>   #> Locale.activate_fragment_nonbrittle dep_morph mixin export;

from generic_target.ML

However, I have to investigate this further to get a clear picture.

Note that »print_locale loc2« is already looping in Isabelle2013-1.

So far,
	Florian

Am 14.02.2015 um 16:27 schrieb Clemens Ballarin:
> I forgot to attach the example.  Loops here also for 4862f3dc9540 (12 Feb 2015).
> 
> Clemens
> 
> 
> On 14 February, 2015 14:25 CET, Florian Haftmann <florian.haftmann at informatik.tu-muenchen.de> wrote: 
>  
>> Hi Clemens,
>>
>> I am struggling to reproduce the behaviour you describe.  Find attached
>> my attempt to contrieve an example.  Unfortunately, the looping is not
>> reproducible in c3ca292c1484.  Can you provide more detail?
>>
>> Thanks,
>> 	Florian
>>
>> Am 12.02.2015 um 22:19 schrieb Clemens Ballarin:
>>> Hi Florian,
>>>
>>> I'm investigating a regression which prevents identifying certain equivalent locales through circular sublocale declarations:
>>>
>>>   sublocale loc1 < x: loc2 A c (* sigma_1 *)
>>>     where "x.b == B" and "x.d == e" (* tau_1 *)
>>>   sorry
>>>
>>>   sublocale loc2 < x: loc1 A b (* sigma_2 *)
>>>     where "x.c == C" and "x.e == d" (* tau_2 *)
>>>   sorry (* loops from changeset 8fab871a2a6f *)
>>>
>>> The last "sorry" loops, which is unfortunate, because it forces certain workarounds on my current project.  In a fairly lengthy debug session I figured out that it is the simplifier that loops.  This is an indication that the morphisms tau_1 and tau_2 are applied simultaneously, which they should not.  In any case, the behaviour appears to have been introduced quite a while ago in 8fab871a2a6f, which is in the first batch of your changes to the locale interpretation commands.
>>>
>>> Clemens
>>>
>>> _______________________________________________
>>> isabelle-dev mailing list
>>> isabelle-dev at in.tum.de
>>> https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev
>>>
>>
>> -- 
>>
>> PGP available:
>> http://home.informatik.tu-muenchen.de/haftmann/pgp/florian_haftmann_at_informatik_tu_muenchen_de
>  
>  
>  
>  
> 
> 
> 
> _______________________________________________
> isabelle-dev mailing list
> isabelle-dev at in.tum.de
> https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev
> 

-- 

PGP available:
http://home.informatik.tu-muenchen.de/haftmann/pgp/florian_haftmann_at_informatik_tu_muenchen_de

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: OpenPGP digital signature
URL: <https://mailman46.in.tum.de/pipermail/isabelle-dev/attachments/20150214/35c65b66/attachment.sig>


More information about the isabelle-dev mailing list