diff -r 4898bae6ef23 -r 0a54cfc9add3 src/HOL/Finite_Set.thy --- a/src/HOL/Finite_Set.thy Sat Nov 27 17:44:36 2010 -0800 +++ b/src/HOL/Finite_Set.thy Sun Nov 28 15:20:51 2010 +0100 @@ -274,7 +274,7 @@ then show ?thesis by simp qed -lemma finite_Diff [simp]: "finite A ==> finite (A - B)" +lemma finite_Diff [simp, intro]: "finite A ==> finite (A - B)" by (rule Diff_subset [THEN finite_subset]) lemma finite_Diff2 [simp]: @@ -303,7 +303,7 @@ text {* Image and Inverse Image over Finite Sets *} -lemma finite_imageI[simp]: "finite F ==> finite (h ` F)" +lemma finite_imageI[simp, intro]: "finite F ==> finite (h ` F)" -- {* The image of a finite set is finite. *} by (induct set: finite) simp_all @@ -372,8 +372,9 @@ text {* The finite UNION of finite sets *} -lemma finite_UN_I: "finite A ==> (!!a. a:A ==> finite (B a)) ==> finite (UN a:A. B a)" - by (induct set: finite) simp_all +lemma finite_UN_I[intro]: + "finite A ==> (!!a. a:A ==> finite (B a)) ==> finite (UN a:A. B a)" +by (induct set: finite) simp_all text {* Strengthen RHS to @@ -385,7 +386,7 @@ lemma finite_UN [simp]: "finite A ==> finite (UNION A B) = (ALL x:A. finite (B x))" -by (blast intro: finite_UN_I finite_subset) +by (blast intro: finite_subset) lemma finite_Collect_bex[simp]: "finite A \ finite{x. EX y:A. Q x y} = (ALL y:A. finite{x. Q x y})" @@ -428,9 +429,9 @@ text {* Sigma of finite sets *} -lemma finite_SigmaI [simp]: +lemma finite_SigmaI [simp, intro]: "finite A ==> (!!a. a:A ==> finite (B a)) ==> finite (SIGMA a:A. B a)" - by (unfold Sigma_def) (blast intro!: finite_UN_I) + by (unfold Sigma_def) blast lemma finite_cartesian_product: "[| finite A; finite B |] ==> finite (A <*> B)" @@ -2266,7 +2267,7 @@ apply (induct set: finite) apply (simp_all add: Pow_insert) apply (subst card_Un_disjoint, blast) - apply (blast intro: finite_imageI, blast) + apply (blast, blast) apply (subgoal_tac "inj_on (insert x) (Pow F)") apply (simp add: card_image Pow_insert) apply (unfold inj_on_def)