[isabelle-dev] [isabelle] Simplification in locales

John Matthews matthews at galois.com
Thu Jul 3 23:32:27 CEST 2008


Hi Tobias,

>> lemma f_cong [cong]: "y = z ==> l.f x y = l.f x z"
>
> Well spotted. We have also toyed with this idea but hadn't done  
> anything
> about it yet because locales are still not 100% finished.

Ok, then I'll continue this thread on isabelle-dev.

Brian's idea does indeed help with rewriting. However, the congruence  
rule needs to be slightly more general to handle higher-order  
occurrences of local functions:

lemma f_cong [cong]: "l.f x = l.f x"

You can also prove this lemma in the locale itself, which results in  
this odd-looking rule:

lemma (in l) f_cong [cong]: "f = f"

But I'm not sure what side effects these congruence rules will have in  
interpretations of l. Is there a way to only apply a theorem attribute  
inside a locale and its descendants, but not in other locale  
interpretations?

Thanks,
-john






More information about the isabelle-dev mailing list