diff -r 592d17e26e09 -r f338b455314c Nominal/Nominal2_Eqvt.thy --- a/Nominal/Nominal2_Eqvt.thy Thu Jan 06 13:28:04 2011 +0000 +++ b/Nominal/Nominal2_Eqvt.thy Thu Jan 06 13:28:19 2011 +0000 @@ -232,7 +232,27 @@ by (induct xs) (simp_all, simp only: permute_fun_app_eq) -subsection {* Equivariance for fsets *} +subsection {* Equivariance Finite-Set Operations *} + +lemma in_fset_eqvt[eqvt]: + shows "(p \ (x |\| S)) = ((p \ x) |\| (p \ S))" +unfolding in_fset +by (perm_simp) (simp) + +lemma union_fset_eqvt[eqvt]: + shows "(p \ (S |\| T)) = ((p \ S) |\| (p \ T))" +by (induct S) (simp_all) + +lemma supp_union_fset: + fixes S T::"'a::fs fset" + shows "supp (S |\| T) = supp S \ supp T" +by (induct S) (auto) + +lemma fresh_union_fset: + fixes S T::"'a::fs fset" + shows "a \ S |\| T \ a \ S \ a \ T" +unfolding fresh_def +by (simp add: supp_union_fset) lemma map_fset_eqvt[eqvt]: shows "p \ (map_fset f S) = map_fset (p \ f) (p \ S)"