removed a premise of card_inj_on_le
authorpaulson
Fri, 14 May 2004 16:52:53 +0200
changeset 14748 001323d6d75b
parent 14747 2eaff69d3d10
child 14749 9ccfd0f59e11
removed a premise of card_inj_on_le
src/HOL/Finite_Set.thy
--- a/src/HOL/Finite_Set.thy	Fri May 14 16:50:33 2004 +0200
+++ b/src/HOL/Finite_Set.thy	Fri May 14 16:52:53 2004 +0200
@@ -1004,8 +1004,8 @@
   by (auto simp add: setprod_def LC_def LC.fold_insert
       mult_left_commute)
 
-lemma setprod_reindex [rule_format]: "finite B ==>
-                  inj_on f B --> setprod h (f ` B) = setprod (h \<circ> f) B"
+lemma setprod_reindex [rule_format]:
+     "finite B ==> inj_on f B --> setprod h (f ` B) = setprod (h \<circ> f) B"
 apply (rule finite_induct, assumption, force)
 apply (rule impI, auto)
 apply (simp add: inj_on_def)
@@ -1013,7 +1013,7 @@
 apply (subgoal_tac "finite (f ` F)")
 apply (auto simp add: setprod_insert)
 apply (simp add: inj_on_def)
-  done
+done
 
 lemma setprod_reindex_id: "finite B ==> inj_on f B ==>
     setprod f B = setprod id (f ` B)"
@@ -1325,8 +1325,11 @@
   done
 
 lemma card_inj_on_le:
-    "[|inj_on f A; f ` A \<subseteq> B; finite A; finite B |] ==> card A <= card B"
-  by (auto intro: card_mono simp add: card_image [symmetric])
+    "[|inj_on f A; f ` A \<subseteq> B; finite B |] ==> card A \<le> card B"
+apply (subgoal_tac "finite A") 
+ apply (force intro: card_mono simp add: card_image [symmetric])
+apply (blast intro: Finite_Set.finite_imageD dest: finite_subset) 
+done
 
 lemma card_bij_eq:
     "[|inj_on f A; f ` A \<subseteq> B; inj_on g B; g ` B \<subseteq> A;