equal
deleted
inserted
replaced
67 ultimately have "bij_betw (the_inv_into UNIV (enumerate (f`S)) \<circ> f) S UNIV" |
67 ultimately have "bij_betw (the_inv_into UNIV (enumerate (f`S)) \<circ> f) S UNIV" |
68 by (rule bij_betw_trans) |
68 by (rule bij_betw_trans) |
69 then show thesis .. |
69 then show thesis .. |
70 qed |
70 qed |
71 |
71 |
|
72 lemma countable_infiniteE': |
|
73 assumes "countable A" "infinite A" |
|
74 obtains g where "bij_betw g (UNIV :: nat set) A" |
|
75 using bij_betw_inv[OF countableE_infinite[OF assms]] that by blast |
|
76 |
72 lemma countable_enum_cases: |
77 lemma countable_enum_cases: |
73 assumes "countable S" |
78 assumes "countable S" |
74 obtains (finite) f :: "'a \<Rightarrow> nat" where "finite S" "bij_betw f S {..<card S}" |
79 obtains (finite) f :: "'a \<Rightarrow> nat" where "finite S" "bij_betw f S {..<card S}" |
75 | (infinite) f :: "'a \<Rightarrow> nat" where "infinite S" "bij_betw f S UNIV" |
80 | (infinite) f :: "'a \<Rightarrow> nat" where "infinite S" "bij_betw f S UNIV" |
76 using ex_bij_betw_finite_nat[of S] countableE_infinite \<open>countable S\<close> |
81 using ex_bij_betw_finite_nat[of S] countableE_infinite \<open>countable S\<close> |