
diff -r b4216d0e109a -r 1ea4ca823266 Nominal/Abs.thy
--- a/Nominal/Abs.thy	Wed Mar 17 10:34:25 2010 +0100
+++ b/Nominal/Abs.thy	Wed Mar 17 11:53:56 2010 +0100
@@ -300,31 +300,38 @@
   apply(simp_all)
   done
 
-lemma supp_Abs_subset1:
-  fixes x::"'a::fs"
+lemma finite_supp_Abs_subset1:
+  assumes "finite (supp x)"
   shows "(supp x) - as \<subseteq> supp (Abs as x)"
   apply(simp add: supp_conv_fresh)
   apply(auto)
   apply(drule_tac supp_Abs_fun_fresh)
   apply(simp only: supp_Abs_fun_simp)
   apply(simp add: fresh_def)
-  apply(simp add: supp_finite_atom_set finite_supp)
+  apply(simp add: supp_finite_atom_set assms)
   done
 
-lemma supp_Abs_subset2:
-  fixes x::"'a::fs"
+lemma finite_supp_Abs_subset2:
+  assumes "finite (supp x)"
   shows "supp (Abs as x) \<subseteq> (supp x) - as"
   apply(rule supp_is_subset)
   apply(rule Abs_supports)
-  apply(simp add: finite_supp)
+  apply(simp add: assms)
+  done
+
+lemma finite_supp_Abs:
+  assumes "finite (supp x)"
+  shows "supp (Abs as x) = (supp x) - as"
+  apply(rule_tac subset_antisym)
+  apply(rule finite_supp_Abs_subset2[OF assms])
+  apply(rule finite_supp_Abs_subset1[OF assms])
   done
 
 lemma supp_Abs:
   fixes x::"'a::fs"
   shows "supp (Abs as x) = (supp x) - as"
-  apply(rule_tac subset_antisym)
-  apply(rule supp_Abs_subset2)
-  apply(rule supp_Abs_subset1)
+  apply(rule finite_supp_Abs)
+  apply(simp add: finite_supp)
   done
 
 instance abs :: (fs) fs




