src/HOL/Finite_Set.thy
changeset 60303 00c06f1315d0
parent 59520 76d7c593c6e8
child 60585 48fdff264eb2
equal deleted inserted replaced
60302:6dcb8aa0966a 60303:00c06f1315d0
   275 next
   275 next
   276   case (insert x B)
   276   case (insert x B)
   277   then have B_A: "insert x B = f ` A" by simp
   277   then have B_A: "insert x B = f ` A" by simp
   278   then obtain y where "x = f y" and "y \<in> A" by blast
   278   then obtain y where "x = f y" and "y \<in> A" by blast
   279   from B_A `x \<notin> B` have "B = f ` A - {x}" by blast
   279   from B_A `x \<notin> B` have "B = f ` A - {x}" by blast
   280   with B_A `x \<notin> B` `x = f y` `inj_on f A` `y \<in> A` have "B = f ` (A - {y})" by (simp add: inj_on_image_set_diff)
   280   with B_A `x \<notin> B` `x = f y` `inj_on f A` `y \<in> A` have "B = f ` (A - {y})" 
       
   281     by (simp add: inj_on_image_set_diff Set.Diff_subset)
   281   moreover from `inj_on f A` have "inj_on f (A - {y})" by (rule inj_on_diff)
   282   moreover from `inj_on f A` have "inj_on f (A - {y})" by (rule inj_on_diff)
   282   ultimately have "finite (A - {y})" by (rule insert.hyps)
   283   ultimately have "finite (A - {y})" by (rule insert.hyps)
   283   then show "finite A" by simp
   284   then show "finite A" by simp
   284 qed
   285 qed
   285 
   286