# HG changeset patch # User Christian Urban # Date 1294378831 0 # Node ID e9a2770660ef9b16e8f32e6b13aef0238069d4f5 # Parent 4aa72a88b2c18b646f65b467c46580380dcef169 added one further lemma about equivariance of THE_default diff -r 4aa72a88b2c1 -r e9a2770660ef Nominal/Ex/LamTest.thy --- a/Nominal/Ex/LamTest.thy Fri Jan 07 05:06:25 2011 +0000 +++ b/Nominal/Ex/LamTest.thy Fri Jan 07 05:40:31 2011 +0000 @@ -17,10 +17,11 @@ apply(auto simp add: eqvt_def) done +term THE_default lemma the_default_eqvt: assumes unique: "\!x. P x" - shows "(p \ (THE_default d P)) = (THE_default (p \ d) (p \ P))" + shows "(p \ (THE_default d P)) = (THE_default d (p \ P))" apply(rule THE_default1_equality [symmetric]) apply(rule_tac p="-p" in permute_boolE) apply(perm_simp add: permute_minus_cancel) @@ -30,6 +31,21 @@ apply(rule THE_defaultI'[OF unique]) done +lemma fundef_ex1_eqvt: + fixes x::"'a::pt" + assumes f_def: "f == (\x::'a. THE_default d (G x))" + assumes ex1: "\!y. G x y" + assumes eqvt: "eqvt G" + shows "(p \ (f x)) = f (p \ x)" + apply (simp only: f_def) + apply(subst the_default_eqvt) + apply (rule ex1) + apply(perm_simp) + using eqvt + apply(simp add: eqvt_def) + done + + ML {*