equal
deleted
inserted
replaced
453 by(simp add: Pow_def[symmetric]) |
453 by(simp add: Pow_def[symmetric]) |
454 |
454 |
455 |
455 |
456 lemma finite_UnionD: "finite(\<Union>A) \<Longrightarrow> finite A" |
456 lemma finite_UnionD: "finite(\<Union>A) \<Longrightarrow> finite A" |
457 by(blast intro: finite_subset[OF subset_Pow_Union]) |
457 by(blast intro: finite_subset[OF subset_Pow_Union]) |
|
458 |
|
459 |
|
460 lemma finite_subset_image: |
|
461 assumes "finite B" |
|
462 shows "B \<subseteq> f ` A \<Longrightarrow> \<exists>C\<subseteq>A. finite C \<and> B = f ` C" |
|
463 using assms proof(induct) |
|
464 case empty thus ?case by simp |
|
465 next |
|
466 case insert thus ?case |
|
467 by (clarsimp simp del: image_insert simp add: image_insert[symmetric]) |
|
468 blast |
|
469 qed |
458 |
470 |
459 |
471 |
460 subsection {* Class @{text finite} *} |
472 subsection {* Class @{text finite} *} |
461 |
473 |
462 setup {* Sign.add_path "finite" *} -- {*FIXME: name tweaking*} |
474 setup {* Sign.add_path "finite" *} -- {*FIXME: name tweaking*} |