[isabelle-dev] CONTEXT exception after locale interpretation with setup_lifting
Traytel Dmitriy
traytel at inf.ethz.ch
Fri Feb 28 17:44:16 CET 2020
Hi Makarius,
I found the following interaction of setup_lifting and locale interpretations surprising. In the below example, the first two local_setup's succeed, whereas the third one fails with a CONTEXT exception in Isabelle/b94053ca8d77. And this failure occurs despite the fact that Lifting_Info.lookup_quotients already invokes Morphism.transfer_morphism. All three local_setup's work in Isabelle2019. If I were to guess, I believe this has to do with the commit c82f59c47aaf, which changes the meaning of Morphism.transfer_morphism. But I have to admit that I don't understand the Context.subthy_id check in the Thm.join_transfer function that is introduced there.
Another datapoint: if I omit the locale interpretation or add some definition (e.g., "foo = True") or some datatype declaration after the locale interpretation but before the offending local_setup, the CONTEXT exception disappears.
Cheers,
Dmitriy
typedef 'a x = "UNIV :: 'a set" by blast
locale A begin setup_lifting type_definition_x end
ML ‹val Qt_thm = @{thm Quotient_transp}›
context begin
interpretation A .
local_setup ‹fn lthy =>
(Lifting_Info.lookup_quotients lthy @{type_name x} |> the |> #quot_thm |> Thm.transfer' lthy
|> (fn thm => thm RS Qt_thm) |> @{print};
lthy)›
local_setup ‹fn lthy =>
(Lifting_Info.lookup_quotients lthy @{type_name x} |> the |> #quot_thm
|> (fn thm => thm RS (Qt_thm |> Thm.transfer' lthy)) |> @{print};
lthy)›
local_setup ‹fn lthy =>
(Lifting_Info.lookup_quotients lthy @{type_name x} |> the |> #quot_thm
|> (fn thm => thm RS Qt_thm) |> @{print};
lthy)›
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman46.in.tum.de/pipermail/isabelle-dev/attachments/20200228/601e6394/attachment.html>
More information about the isabelle-dev
mailing list