equal
deleted
inserted
replaced
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 |