Nominal/Nominal2_Base.thy
changeset 2742 f1192e3474e0
parent 2735 d97e04126a3d
child 2743 7085ab735de7
--- a/Nominal/Nominal2_Base.thy	Tue Mar 08 09:07:49 2011 +0000
+++ b/Nominal/Nominal2_Base.thy	Fri Mar 11 08:51:39 2011 +0000
@@ -34,7 +34,7 @@
 primrec
   sort_of :: "atom \<Rightarrow> atom_sort"
 where
-  "sort_of (Atom s i) = s"
+  "sort_of (Atom s n) = s"
 
 primrec
   nat_of :: "atom \<Rightarrow> nat"
@@ -1121,9 +1121,7 @@
 lemma supp_eqvt [eqvt]:
   shows "p \<bullet> (supp x) = supp (p \<bullet> x)"
   unfolding supp_conv_fresh
-  unfolding Collect_def
-  unfolding permute_fun_def
-  by (simp add: Not_eqvt fresh_eqvt)
+  by (perm_simp) (rule refl)
 
 lemma fresh_permute_left:
   shows "a \<sharp> p \<bullet> x \<longleftrightarrow> - p \<bullet> a \<sharp> x"
@@ -1720,6 +1718,18 @@
   apply(simp add: swap_set_in)
 done
 
+lemma supp_cofinite_atom_set:
+  fixes S::"atom set"
+  assumes "finite (UNIV - S)"
+  shows "supp S = (UNIV - S)"
+  apply(rule finite_supp_unique)
+  apply(simp add: supports_def)
+  apply(simp add: swap_set_both_in)
+  apply(rule assms)
+  apply(subst swap_commute)
+  apply(simp add: swap_set_in)
+done
+
 lemma fresh_finite_atom_set:
   fixes S::"atom set"
   assumes "finite S"