equal
deleted
inserted
replaced
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 |