src/HOL/Library/Countable_Set.thy
changeset 62370 4a35e3945cab
parent 60500 903bb1495239
child 62390 842917225d56
equal deleted inserted replaced
62369:acfc4ad7b76a 62370:4a35e3945cab
   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"