src/HOL/Library/Disjoint_Sets.thy
changeset 74223 527088d4a89b
parent 73477 1d8a79aa2a99
child 74438 5827b91ef30e
equal deleted inserted replaced
74218:8798edfc61ef 74223:527088d4a89b
   329   shows "partition_on (f ` A) ((`) f ` P - {{}})"
   329   shows "partition_on (f ` A) ((`) f ` P - {{}})"
   330 proof (rule partition_on_transform[OF P])
   330 proof (rule partition_on_transform[OF P])
   331   show "p \<in> P \<Longrightarrow> q \<in> P \<Longrightarrow> disjnt p q \<Longrightarrow> disjnt (f ` p) (f ` q)" for p q
   331   show "p \<in> P \<Longrightarrow> q \<in> P \<Longrightarrow> disjnt p q \<Longrightarrow> disjnt (f ` p) (f ` q)" for p q
   332     using f[THEN inj_onD] P[THEN partition_onD1] by (auto simp: disjnt_def)
   332     using f[THEN inj_onD] P[THEN partition_onD1] by (auto simp: disjnt_def)
   333 qed auto
   333 qed auto
       
   334 
       
   335 lemma partition_on_insert:
       
   336   assumes "disjnt p (\<Union>P)"
       
   337   shows "partition_on A (insert p P) \<longleftrightarrow> partition_on (A-p) P \<and> p \<subseteq> A \<and> p \<noteq> {}"
       
   338   using assms
       
   339   by (auto simp: partition_on_def disjnt_iff pairwise_insert)
   334 
   340 
   335 subsection \<open>Finiteness of partitions\<close>
   341 subsection \<open>Finiteness of partitions\<close>
   336 
   342 
   337 lemma finitely_many_partition_on:
   343 lemma finitely_many_partition_on:
   338   assumes "finite A"
   344   assumes "finite A"