equal
deleted
inserted
replaced
310 show False |
310 show False |
311 by auto |
311 by auto |
312 qed |
312 qed |
313 qed |
313 qed |
314 |
314 |
|
315 lemma transfer_countable[transfer_rule]: |
|
316 "bi_unique R \<Longrightarrow> rel_fun (rel_set R) op = countable countable" |
|
317 by (rule rel_funI, erule (1) bi_unique_rel_set_lemma) |
|
318 (auto dest: countable_image_inj_on) |
|
319 |
315 subsection \<open>Uncountable\<close> |
320 subsection \<open>Uncountable\<close> |
316 |
321 |
317 abbreviation uncountable where |
322 abbreviation uncountable where |
318 "uncountable A \<equiv> \<not> countable A" |
323 "uncountable A \<equiv> \<not> countable A" |
319 |
324 |
321 by (auto intro: inj_on_inv_into simp: countable_def) |
326 by (auto intro: inj_on_inv_into simp: countable_def) |
322 (metis all_not_in_conv inj_on_iff_surj subset_UNIV) |
327 (metis all_not_in_conv inj_on_iff_surj subset_UNIV) |
323 |
328 |
324 lemma uncountable_bij_betw: "bij_betw f A B \<Longrightarrow> uncountable B \<Longrightarrow> uncountable A" |
329 lemma uncountable_bij_betw: "bij_betw f A B \<Longrightarrow> uncountable B \<Longrightarrow> uncountable A" |
325 unfolding bij_betw_def by (metis countable_image) |
330 unfolding bij_betw_def by (metis countable_image) |
326 |
331 |
327 lemma uncountable_infinite: "uncountable A \<Longrightarrow> infinite A" |
332 lemma uncountable_infinite: "uncountable A \<Longrightarrow> infinite A" |
328 by (metis countable_finite) |
333 by (metis countable_finite) |
329 |
334 |
330 lemma uncountable_minus_countable: |
335 lemma uncountable_minus_countable: |
331 "uncountable A \<Longrightarrow> countable B \<Longrightarrow> uncountable (A - B)" |
336 "uncountable A \<Longrightarrow> countable B \<Longrightarrow> uncountable (A - B)" |
332 using countable_Un[of B "A - B"] assms by auto |
337 using countable_Un[of B "A - B"] assms by auto |
333 |
338 |
334 lemma countable_Diff_eq [simp]: "countable (A - {x}) = countable A" |
339 lemma countable_Diff_eq [simp]: "countable (A - {x}) = countable A" |