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 \ 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) \ (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