diff -r 2a878d7d631f -r ab8ed83d0188 Quot/Nominal/Abs.thy --- a/Quot/Nominal/Abs.thy Wed Feb 24 17:42:52 2010 +0100 +++ b/Quot/Nominal/Abs.thy Wed Feb 24 18:38:49 2010 +0100 @@ -113,11 +113,12 @@ apply(simp) done -lemma alpha_gen_atom_eqvt: - assumes a: "\x. pi \ (f x) = f (pi \ x)" - and b: "\pia. ({atom a}, t) \gen (\x1 x2. R x1 x2 \ R (pi \ x1) (pi \ x2)) f pia ({atom b}, s)" - shows "\pia. ({atom (pi \ a)}, pi \ t) \gen R f pia ({atom (pi \ b)}, pi \ s)" - using b +lemma alpha_gen_compose_eqvt: + assumes b: "\pia. (g d, t) \gen (\x1 x2. R x1 x2 \ R (pi \ x1) (pi \ x2)) f pia (g e, s)" + and c: "\y. pi \ (g y) = g (pi \ y)" + and a: "\x. pi \ (f x) = f (pi \ x)" + shows "\pia. (g (pi \ d), pi \ t) \gen R f pia (g (pi \ e), pi \ s)" + using b apply - apply(erule exE) apply(rule_tac x="pi \ pia" in exI) @@ -125,10 +126,10 @@ apply(erule conjE)+ apply(rule conjI) apply(rule_tac ?p1="- pi" in permute_eq_iff[THEN iffD1]) - apply(simp add: a[symmetric] atom_eqvt Diff_eqvt insert_eqvt set_eqvt empty_eqvt) + apply(simp add: a[symmetric] atom_eqvt Diff_eqvt insert_eqvt set_eqvt empty_eqvt c[symmetric]) apply(rule conjI) apply(rule_tac ?p1="- pi" in fresh_star_permute_iff[THEN iffD1]) - apply(simp add: a[symmetric] atom_eqvt Diff_eqvt insert_eqvt set_eqvt empty_eqvt) + apply(simp add: a[symmetric] atom_eqvt Diff_eqvt insert_eqvt set_eqvt empty_eqvt c[symmetric]) apply(subst permute_eqvt[symmetric]) apply(simp) done