equal
deleted
inserted
replaced
38 assume *: "x \<in> (\<Union>i. A i)" |
38 assume *: "x \<in> (\<Union>i. A i)" |
39 then obtain i where "x \<in> A i" by auto |
39 then obtain i where "x \<in> A i" by auto |
40 from suminf_cmult_indicator[OF assms(1), OF `x \<in> A i`, of "\<lambda>k. 1"] |
40 from suminf_cmult_indicator[OF assms(1), OF `x \<in> A i`, of "\<lambda>k. 1"] |
41 show ?thesis using * by simp |
41 show ?thesis using * by simp |
42 qed simp |
42 qed simp |
|
43 |
|
44 lemma setsum_indicator_disjoint_family: |
|
45 fixes f :: "'d \<Rightarrow> 'e::semiring_1" |
|
46 assumes d: "disjoint_family_on A P" and "x \<in> A j" and "finite P" and "j \<in> P" |
|
47 shows "(\<Sum>i\<in>P. f i * indicator (A i) x) = f j" |
|
48 proof - |
|
49 have "P \<inter> {i. x \<in> A i} = {j}" |
|
50 using d `x \<in> A j` `j \<in> P` unfolding disjoint_family_on_def |
|
51 by auto |
|
52 thus ?thesis |
|
53 unfolding indicator_def |
|
54 by (simp add: if_distrib setsum.If_cases[OF `finite P`]) |
|
55 qed |
43 |
56 |
44 text {* |
57 text {* |
45 The type for emeasure spaces is already defined in @{theory Sigma_Algebra}, as it is also used to |
58 The type for emeasure spaces is already defined in @{theory Sigma_Algebra}, as it is also used to |
46 represent sigma algebras (with an arbitrary emeasure). |
59 represent sigma algebras (with an arbitrary emeasure). |
47 *} |
60 *} |
117 proof (induct n) |
130 proof (induct n) |
118 case (Suc n) |
131 case (Suc n) |
119 then have "(\<Sum>i\<le>Suc n. f (disjointed A i)) = f (A n) + f (disjointed A (Suc n))" |
132 then have "(\<Sum>i\<le>Suc n. f (disjointed A i)) = f (A n) + f (disjointed A (Suc n))" |
120 by simp |
133 by simp |
121 also have "\<dots> = f (A n \<union> disjointed A (Suc n))" |
134 also have "\<dots> = f (A n \<union> disjointed A (Suc n))" |
122 using A by (subst f(2)[THEN additiveD]) (auto simp: disjointed_incseq) |
135 using A by (subst f(2)[THEN additiveD]) (auto simp: disjointed_mono) |
123 also have "A n \<union> disjointed A (Suc n) = A (Suc n)" |
136 also have "A n \<union> disjointed A (Suc n) = A (Suc n)" |
124 using `incseq A` by (auto dest: incseq_SucD simp: disjointed_incseq) |
137 using `incseq A` by (auto dest: incseq_SucD simp: disjointed_mono) |
125 finally show ?case . |
138 finally show ?case . |
126 qed simp |
139 qed simp |
127 |
140 |
128 lemma (in ring_of_sets) additive_sum: |
141 lemma (in ring_of_sets) additive_sum: |
129 fixes A:: "'i \<Rightarrow> 'a set" |
142 fixes A:: "'i \<Rightarrow> 'a set" |