src/HOL/Groups_Big.thy
changeset 56166 9a241bc276cd
parent 55096 916b2ac758f4
child 56536 aefb4a8da31f
equal deleted inserted replaced
56165:dd89ce51d2c8 56166:9a241bc276cd
   160   assumes "\<forall>A\<in>C. finite A" "\<forall>A\<in>C. \<forall>B\<in>C. A \<noteq> B \<longrightarrow> A \<inter> B = {}"
   160   assumes "\<forall>A\<in>C. finite A" "\<forall>A\<in>C. \<forall>B\<in>C. A \<noteq> B \<longrightarrow> A \<inter> B = {}"
   161   shows "F g (Union C) = F (F g) C"
   161   shows "F g (Union C) = F (F g) C"
   162 proof cases
   162 proof cases
   163   assume "finite C"
   163   assume "finite C"
   164   from UNION_disjoint [OF this assms]
   164   from UNION_disjoint [OF this assms]
   165   show ?thesis
   165   show ?thesis by simp
   166     by (simp add: SUP_def)
       
   167 qed (auto dest: finite_UnionD intro: infinite)
   166 qed (auto dest: finite_UnionD intro: infinite)
   168 
   167 
   169 lemma distrib:
   168 lemma distrib:
   170   "F (\<lambda>x. g x * h x) A = F g A * F h A"
   169   "F (\<lambda>x. g x * h x) A = F g A * F h A"
   171   using assms by (induct A rule: infinite_finite_induct) (simp_all add: assoc commute left_commute)
   170   using assms by (induct A rule: infinite_finite_induct) (simp_all add: assoc commute left_commute)
  1018 lemma card_Union_disjoint:
  1017 lemma card_Union_disjoint:
  1019   "finite C ==> (ALL A:C. finite A) ==>
  1018   "finite C ==> (ALL A:C. finite A) ==>
  1020    (ALL A:C. ALL B:C. A \<noteq> B --> A Int B = {})
  1019    (ALL A:C. ALL B:C. A \<noteq> B --> A Int B = {})
  1021    ==> card (Union C) = setsum card C"
  1020    ==> card (Union C) = setsum card C"
  1022 apply (frule card_UN_disjoint [of C id])
  1021 apply (frule card_UN_disjoint [of C id])
  1023 apply (simp_all add: SUP_def id_def)
  1022 apply simp_all
  1024 done
  1023 done
  1025 
  1024 
  1026 
  1025 
  1027 subsubsection {* Cardinality of products *}
  1026 subsubsection {* Cardinality of products *}
  1028 
  1027