src/HOL/Library/Countable_Set_Type.thy
changeset 61585 a9599d3d7610
parent 61424 c3658c18b7bc
child 61952 546958347e05
equal deleted inserted replaced
61584:f06e5a5a4b46 61585:a9599d3d7610
   367 lemmas cimage_cUN = image_UN[Transfer.transferred]
   367 lemmas cimage_cUN = image_UN[Transfer.transferred]
   368 lemmas cUN_csingleton [simp] = UN_singleton[Transfer.transferred]
   368 lemmas cUN_csingleton [simp] = UN_singleton[Transfer.transferred]
   369 
   369 
   370 subsection \<open>Additional lemmas\<close>
   370 subsection \<open>Additional lemmas\<close>
   371 
   371 
   372 subsubsection \<open>@{text cempty}\<close>
   372 subsubsection \<open>\<open>cempty\<close>\<close>
   373 
   373 
   374 lemma cemptyE [elim!]: "cin a cempty \<Longrightarrow> P" by simp
   374 lemma cemptyE [elim!]: "cin a cempty \<Longrightarrow> P" by simp
   375 
   375 
   376 subsubsection \<open>@{text cinsert}\<close>
   376 subsubsection \<open>\<open>cinsert\<close>\<close>
   377 
   377 
   378 lemma countable_insert_iff: "countable (insert x A) \<longleftrightarrow> countable A"
   378 lemma countable_insert_iff: "countable (insert x A) \<longleftrightarrow> countable A"
   379 by (metis Diff_eq_empty_iff countable_empty countable_insert subset_insertI uncountable_minus_countable)
   379 by (metis Diff_eq_empty_iff countable_empty countable_insert subset_insertI uncountable_minus_countable)
   380 
   380 
   381 lemma set_cinsert:
   381 lemma set_cinsert:
   384 using assms by transfer(erule Set.set_insert, simp add: countable_insert_iff)
   384 using assms by transfer(erule Set.set_insert, simp add: countable_insert_iff)
   385 
   385 
   386 lemma mk_disjoint_cinsert: "cin a A \<Longrightarrow> \<exists>B. A = cinsert a B \<and> \<not> cin a B"
   386 lemma mk_disjoint_cinsert: "cin a A \<Longrightarrow> \<exists>B. A = cinsert a B \<and> \<not> cin a B"
   387   by (rule exI[where x = "cDiff A (csingle a)"]) blast
   387   by (rule exI[where x = "cDiff A (csingle a)"]) blast
   388 
   388 
   389 subsubsection \<open>@{text cimage}\<close>
   389 subsubsection \<open>\<open>cimage\<close>\<close>
   390 
   390 
   391 lemma subset_cimage_iff: "csubset_eq B (cimage f A) \<longleftrightarrow> (\<exists>AA. csubset_eq AA A \<and> B = cimage f AA)"
   391 lemma subset_cimage_iff: "csubset_eq B (cimage f A) \<longleftrightarrow> (\<exists>AA. csubset_eq AA A \<and> B = cimage f AA)"
   392 by transfer (metis countable_subset image_mono mem_Collect_eq subset_imageE) 
   392 by transfer (metis countable_subset image_mono mem_Collect_eq subset_imageE) 
   393 
   393 
   394 subsubsection \<open>bounded quantification\<close>
   394 subsubsection \<open>bounded quantification\<close>