diff -r ec1a7ef740b8 -r c66d288b9fa0 Nominal/Nominal2_Abs.thy --- a/Nominal/Nominal2_Abs.thy Sun Jan 30 09:57:37 2011 +0900 +++ b/Nominal/Nominal2_Abs.thy Sun Jan 30 12:09:23 2011 +0900 @@ -285,7 +285,7 @@ then have "(supp x' - as') \ (p \ (supp x \ as)) = {}" using a by (simp add: alphas) ultimately show "p \ (supp x \ as) = supp x' \ as'" by (auto dest: disjoint_right_eq) -qed +qed lemma alpha_abs_res_stronger1_aux: assumes asm: "(as, x) \res (op =) supp p' (as', x')" @@ -320,6 +320,26 @@ show "\p. (as, x) \res (op =) supp p (as', x') \ supp p \ (supp x \ as) \ (supp x' \ as')" by blast qed +lemma alpha_abs_res_minimal: + assumes asm: "(as, x) \res (op =) supp p (as', x')" + shows "(as \ supp x, x) \res (op =) supp p (as' \ supp x', x')" + using asm unfolding alpha_res by (auto simp add: Diff_Int) + +lemma alpha_abs_res_abs_set: + assumes asm: "(as, x) \res (op =) supp p (as', x')" + shows "(as \ supp x, x) \set (op =) supp p (as' \ supp x', x')" +proof - + have c: "p \ x = x'" + using alpha_abs_res_minimal[OF asm] unfolding alpha_res by clarify + then have a: "supp x - as \ supp x = supp (p \ x) - as' \ supp (p \ x)" + using alpha_abs_res_minimal[OF asm] by (simp add: alpha_res) + have b: "(supp x - as \ supp x) \* p" + using alpha_abs_res_minimal[OF asm] unfolding alpha_res by clarify + have "p \ (as \ supp x) = as' \ supp (p \ x)" + by (metis Int_commute asm c supp_property_res) + then show ?thesis using a b c unfolding alpha_set by simp +qed + lemma alpha_abs_res_stronger1: assumes asm: "(as, x) \res (op =) supp p' (as', x')" shows "\p. (as, x) \res (op =) supp p (as', x') \ supp p \ as \ as'"