# HG changeset patch # User Christian Urban # Date 1302392512 -28800 # Node ID 8f833ebc4b58e6a76314984bff9777ca1e3d3910 # Parent aeda59ca0d4c4ecc3eb175edb9e2f0d4be093b36 eqvt of supp and fresh is proved using equivariance infrastructure diff -r aeda59ca0d4c -r 8f833ebc4b58 Nominal/Nominal2_Base.thy --- a/Nominal/Nominal2_Base.thy Sun Apr 10 04:07:15 2011 +0800 +++ b/Nominal/Nominal2_Base.thy Sun Apr 10 07:41:52 2011 +0800 @@ -1092,36 +1092,21 @@ subsection {* supp and fresh are equivariant *} -lemma finite_Collect_bij: - assumes a: "bij f" - shows "finite {x. P (f x)} = finite {x. P x}" -by (metis a finite_vimage_iff vimage_Collect_eq) + +lemma supp_eqvt [eqvt]: + shows "p \ (supp x) = supp (p \ x)" + unfolding supp_def + by (perm_simp) + (simp only: permute_eqvt[symmetric]) + +lemma fresh_eqvt [eqvt]: + shows "p \ (a \ x) = (p \ a) \ (p \ x)" + unfolding fresh_def + by (perm_simp) (rule refl) lemma fresh_permute_iff: shows "(p \ a) \ (p \ x) \ a \ x" -proof - - have "(p \ a) \ (p \ x) \ finite {b. (p \ a \ b) \ p \ x \ p \ x}" - unfolding fresh_def supp_def by simp - also have "\ \ finite {b. (p \ a \ p \ b) \ p \ x \ p \ x}" - using bij_permute by (rule finite_Collect_bij[symmetric]) - also have "\ \ finite {b. p \ (a \ b) \ x \ p \ x}" - by (simp only: permute_eqvt [of p] swap_eqvt) - also have "\ \ finite {b. (a \ b) \ x \ x}" - by (simp only: permute_eq_iff) - also have "\ \ a \ x" - unfolding fresh_def supp_def by simp - finally show "(p \ a) \ (p \ x) \ a \ x" . -qed - -lemma fresh_eqvt [eqvt]: - shows "p \ (a \ x) = (p \ a) \ (p \ x)" - unfolding permute_bool_def - by (simp add: fresh_permute_iff) - -lemma supp_eqvt [eqvt]: - shows "p \ (supp x) = supp (p \ x)" - unfolding supp_conv_fresh - by (perm_simp) (rule refl) + by (simp only: fresh_eqvt[symmetric] permute_bool_def) lemma fresh_permute_left: shows "a \ p \ x \ - p \ a \ x"