51 SUPR_ereal_setsum[symmetric] incseq_setsumI setsum_nonneg) |
51 SUPR_ereal_setsum[symmetric] incseq_setsumI setsum_nonneg) |
52 qed |
52 qed |
53 |
53 |
54 subsection {* Measure Spaces *} |
54 subsection {* Measure Spaces *} |
55 |
55 |
56 record 'a measure_space = "'a algebra" + |
|
57 measure :: "'a set \<Rightarrow> ereal" |
|
58 |
|
59 definition positive where "positive M f \<longleftrightarrow> f {} = (0::ereal) \<and> (\<forall>A\<in>sets M. 0 \<le> f A)" |
|
60 |
|
61 definition additive where "additive M f \<longleftrightarrow> |
|
62 (\<forall>x \<in> sets M. \<forall>y \<in> sets M. x \<inter> y = {} \<longrightarrow> f (x \<union> y) = f x + f y)" |
|
63 |
|
64 definition countably_additive :: "('a, 'b) algebra_scheme \<Rightarrow> ('a set \<Rightarrow> ereal) \<Rightarrow> bool" where |
|
65 "countably_additive M f \<longleftrightarrow> (\<forall>A. range A \<subseteq> sets M \<longrightarrow> disjoint_family A \<longrightarrow> (\<Union>i. A i) \<in> sets M \<longrightarrow> |
|
66 (\<Sum>i. f (A i)) = f (\<Union>i. A i))" |
|
67 |
|
68 definition increasing where "increasing M f \<longleftrightarrow> |
|
69 (\<forall>x \<in> sets M. \<forall>y \<in> sets M. x \<subseteq> y \<longrightarrow> f x \<le> f y)" |
|
70 |
|
71 definition subadditive where "subadditive M f \<longleftrightarrow> |
56 definition subadditive where "subadditive M f \<longleftrightarrow> |
72 (\<forall>x \<in> sets M. \<forall>y \<in> sets M. x \<inter> y = {} \<longrightarrow> f (x \<union> y) \<le> f x + f y)" |
57 (\<forall>x\<in>M. \<forall>y\<in>M. x \<inter> y = {} \<longrightarrow> f (x \<union> y) \<le> f x + f y)" |
73 |
58 |
74 definition countably_subadditive where "countably_subadditive M f \<longleftrightarrow> |
59 definition countably_subadditive where "countably_subadditive M f \<longleftrightarrow> |
75 (\<forall>A. range A \<subseteq> sets M \<longrightarrow> disjoint_family A \<longrightarrow> (\<Union>i. A i) \<in> sets M \<longrightarrow> |
60 (\<forall>A. range A \<subseteq> M \<longrightarrow> disjoint_family A \<longrightarrow> (\<Union>i. A i) \<in> M \<longrightarrow> |
76 (f (\<Union>i. A i) \<le> (\<Sum>i. f (A i))))" |
61 (f (\<Union>i. A i) \<le> (\<Sum>i. f (A i))))" |
77 |
62 |
78 definition lambda_system where "lambda_system M f = {l \<in> sets M. |
63 definition lambda_system where "lambda_system \<Omega> M f = {l \<in> M. |
79 \<forall>x \<in> sets M. f (l \<inter> x) + f ((space M - l) \<inter> x) = f x}" |
64 \<forall>x \<in> M. f (l \<inter> x) + f ((\<Omega> - l) \<inter> x) = f x}" |
80 |
65 |
81 definition outer_measure_space where "outer_measure_space M f \<longleftrightarrow> |
66 definition outer_measure_space where "outer_measure_space M f \<longleftrightarrow> |
82 positive M f \<and> increasing M f \<and> countably_subadditive M f" |
67 positive M f \<and> increasing M f \<and> countably_subadditive M f" |
83 |
68 |
84 definition measure_set where "measure_set M f X = {r. |
69 definition measure_set where "measure_set M f X = {r. |
85 \<exists>A. range A \<subseteq> sets M \<and> disjoint_family A \<and> X \<subseteq> (\<Union>i. A i) \<and> (\<Sum>i. f (A i)) = r}" |
70 \<exists>A. range A \<subseteq> M \<and> disjoint_family A \<and> X \<subseteq> (\<Union>i. A i) \<and> (\<Sum>i. f (A i)) = r}" |
86 |
|
87 locale measure_space = sigma_algebra M for M :: "('a, 'b) measure_space_scheme" + |
|
88 assumes measure_positive: "positive M (measure M)" |
|
89 and ca: "countably_additive M (measure M)" |
|
90 |
|
91 abbreviation (in measure_space) "\<mu> \<equiv> measure M" |
|
92 |
|
93 lemma (in measure_space) |
|
94 shows empty_measure[simp, intro]: "\<mu> {} = 0" |
|
95 and positive_measure[simp, intro!]: "\<And>A. A \<in> sets M \<Longrightarrow> 0 \<le> \<mu> A" |
|
96 using measure_positive unfolding positive_def by auto |
|
97 |
|
98 lemma increasingD: |
|
99 "increasing M f \<Longrightarrow> x \<subseteq> y \<Longrightarrow> x\<in>sets M \<Longrightarrow> y\<in>sets M \<Longrightarrow> f x \<le> f y" |
|
100 by (auto simp add: increasing_def) |
|
101 |
71 |
102 lemma subadditiveD: |
72 lemma subadditiveD: |
103 "subadditive M f \<Longrightarrow> x \<inter> y = {} \<Longrightarrow> x \<in> sets M \<Longrightarrow> y \<in> sets M |
73 "subadditive M f \<Longrightarrow> x \<inter> y = {} \<Longrightarrow> x \<in> M \<Longrightarrow> y \<in> M \<Longrightarrow> f (x \<union> y) \<le> f x + f y" |
104 \<Longrightarrow> f (x \<union> y) \<le> f x + f y" |
|
105 by (auto simp add: subadditive_def) |
74 by (auto simp add: subadditive_def) |
106 |
75 |
107 lemma additiveD: |
|
108 "additive M f \<Longrightarrow> x \<inter> y = {} \<Longrightarrow> x \<in> sets M \<Longrightarrow> y \<in> sets M |
|
109 \<Longrightarrow> f (x \<union> y) = f x + f y" |
|
110 by (auto simp add: additive_def) |
|
111 |
|
112 lemma countably_additiveI: |
|
113 assumes "\<And>A x. range A \<subseteq> sets M \<Longrightarrow> disjoint_family A \<Longrightarrow> (\<Union>i. A i) \<in> sets M |
|
114 \<Longrightarrow> (\<Sum>i. f (A i)) = f (\<Union>i. A i)" |
|
115 shows "countably_additive M f" |
|
116 using assms by (simp add: countably_additive_def) |
|
117 |
|
118 section "Extend binary sets" |
|
119 |
|
120 lemma LIMSEQ_binaryset: |
|
121 assumes f: "f {} = 0" |
|
122 shows "(\<lambda>n. \<Sum>i<n. f (binaryset A B i)) ----> f A + f B" |
|
123 proof - |
|
124 have "(\<lambda>n. \<Sum>i < Suc (Suc n). f (binaryset A B i)) = (\<lambda>n. f A + f B)" |
|
125 proof |
|
126 fix n |
|
127 show "(\<Sum>i < Suc (Suc n). f (binaryset A B i)) = f A + f B" |
|
128 by (induct n) (auto simp add: binaryset_def f) |
|
129 qed |
|
130 moreover |
|
131 have "... ----> f A + f B" by (rule tendsto_const) |
|
132 ultimately |
|
133 have "(\<lambda>n. \<Sum>i< Suc (Suc n). f (binaryset A B i)) ----> f A + f B" |
|
134 by metis |
|
135 hence "(\<lambda>n. \<Sum>i< n+2. f (binaryset A B i)) ----> f A + f B" |
|
136 by simp |
|
137 thus ?thesis by (rule LIMSEQ_offset [where k=2]) |
|
138 qed |
|
139 |
|
140 lemma binaryset_sums: |
|
141 assumes f: "f {} = 0" |
|
142 shows "(\<lambda>n. f (binaryset A B n)) sums (f A + f B)" |
|
143 by (simp add: sums_def LIMSEQ_binaryset [where f=f, OF f] atLeast0LessThan) |
|
144 |
|
145 lemma suminf_binaryset_eq: |
|
146 fixes f :: "'a set \<Rightarrow> 'b::{comm_monoid_add, t2_space}" |
|
147 shows "f {} = 0 \<Longrightarrow> (\<Sum>n. f (binaryset A B n)) = f A + f B" |
|
148 by (metis binaryset_sums sums_unique) |
|
149 |
|
150 subsection {* Lambda Systems *} |
76 subsection {* Lambda Systems *} |
151 |
77 |
152 lemma (in algebra) lambda_system_eq: |
78 lemma (in algebra) lambda_system_eq: |
153 shows "lambda_system M f = {l \<in> sets M. |
79 shows "lambda_system \<Omega> M f = {l \<in> M. \<forall>x \<in> M. f (x \<inter> l) + f (x - l) = f x}" |
154 \<forall>x \<in> sets M. f (x \<inter> l) + f (x - l) = f x}" |
80 proof - |
155 proof - |
81 have [simp]: "!!l x. l \<in> M \<Longrightarrow> x \<in> M \<Longrightarrow> (\<Omega> - l) \<inter> x = x - l" |
156 have [simp]: "!!l x. l \<in> sets M \<Longrightarrow> x \<in> sets M \<Longrightarrow> (space M - l) \<inter> x = x - l" |
|
157 by (metis Int_Diff Int_absorb1 Int_commute sets_into_space) |
82 by (metis Int_Diff Int_absorb1 Int_commute sets_into_space) |
158 show ?thesis |
83 show ?thesis |
159 by (auto simp add: lambda_system_def) (metis Int_commute)+ |
84 by (auto simp add: lambda_system_def) (metis Int_commute)+ |
160 qed |
85 qed |
161 |
86 |
162 lemma (in algebra) lambda_system_empty: |
87 lemma (in algebra) lambda_system_empty: |
163 "positive M f \<Longrightarrow> {} \<in> lambda_system M f" |
88 "positive M f \<Longrightarrow> {} \<in> lambda_system \<Omega> M f" |
164 by (auto simp add: positive_def lambda_system_eq) |
89 by (auto simp add: positive_def lambda_system_eq) |
165 |
90 |
166 lemma lambda_system_sets: |
91 lemma lambda_system_sets: |
167 "x \<in> lambda_system M f \<Longrightarrow> x \<in> sets M" |
92 "x \<in> lambda_system \<Omega> M f \<Longrightarrow> x \<in> M" |
168 by (simp add: lambda_system_def) |
93 by (simp add: lambda_system_def) |
169 |
94 |
170 lemma (in algebra) lambda_system_Compl: |
95 lemma (in algebra) lambda_system_Compl: |
171 fixes f:: "'a set \<Rightarrow> ereal" |
96 fixes f:: "'a set \<Rightarrow> ereal" |
172 assumes x: "x \<in> lambda_system M f" |
97 assumes x: "x \<in> lambda_system \<Omega> M f" |
173 shows "space M - x \<in> lambda_system M f" |
98 shows "\<Omega> - x \<in> lambda_system \<Omega> M f" |
174 proof - |
99 proof - |
175 have "x \<subseteq> space M" |
100 have "x \<subseteq> \<Omega>" |
176 by (metis sets_into_space lambda_system_sets x) |
101 by (metis sets_into_space lambda_system_sets x) |
177 hence "space M - (space M - x) = x" |
102 hence "\<Omega> - (\<Omega> - x) = x" |
178 by (metis double_diff equalityE) |
103 by (metis double_diff equalityE) |
179 with x show ?thesis |
104 with x show ?thesis |
180 by (force simp add: lambda_system_def ac_simps) |
105 by (force simp add: lambda_system_def ac_simps) |
181 qed |
106 qed |
182 |
107 |
183 lemma (in algebra) lambda_system_Int: |
108 lemma (in algebra) lambda_system_Int: |
184 fixes f:: "'a set \<Rightarrow> ereal" |
109 fixes f:: "'a set \<Rightarrow> ereal" |
185 assumes xl: "x \<in> lambda_system M f" and yl: "y \<in> lambda_system M f" |
110 assumes xl: "x \<in> lambda_system \<Omega> M f" and yl: "y \<in> lambda_system \<Omega> M f" |
186 shows "x \<inter> y \<in> lambda_system M f" |
111 shows "x \<inter> y \<in> lambda_system \<Omega> M f" |
187 proof - |
112 proof - |
188 from xl yl show ?thesis |
113 from xl yl show ?thesis |
189 proof (auto simp add: positive_def lambda_system_eq Int) |
114 proof (auto simp add: positive_def lambda_system_eq Int) |
190 fix u |
115 fix u |
191 assume x: "x \<in> sets M" and y: "y \<in> sets M" and u: "u \<in> sets M" |
116 assume x: "x \<in> M" and y: "y \<in> M" and u: "u \<in> M" |
192 and fx: "\<forall>z\<in>sets M. f (z \<inter> x) + f (z - x) = f z" |
117 and fx: "\<forall>z\<in>M. f (z \<inter> x) + f (z - x) = f z" |
193 and fy: "\<forall>z\<in>sets M. f (z \<inter> y) + f (z - y) = f z" |
118 and fy: "\<forall>z\<in>M. f (z \<inter> y) + f (z - y) = f z" |
194 have "u - x \<inter> y \<in> sets M" |
119 have "u - x \<inter> y \<in> M" |
195 by (metis Diff Diff_Int Un u x y) |
120 by (metis Diff Diff_Int Un u x y) |
196 moreover |
121 moreover |
197 have "(u - (x \<inter> y)) \<inter> y = u \<inter> y - x" by blast |
122 have "(u - (x \<inter> y)) \<inter> y = u \<inter> y - x" by blast |
198 moreover |
123 moreover |
199 have "u - x \<inter> y - y = u - y" by blast |
124 have "u - x \<inter> y - y = u - y" by blast |
214 qed |
139 qed |
215 qed |
140 qed |
216 |
141 |
217 lemma (in algebra) lambda_system_Un: |
142 lemma (in algebra) lambda_system_Un: |
218 fixes f:: "'a set \<Rightarrow> ereal" |
143 fixes f:: "'a set \<Rightarrow> ereal" |
219 assumes xl: "x \<in> lambda_system M f" and yl: "y \<in> lambda_system M f" |
144 assumes xl: "x \<in> lambda_system \<Omega> M f" and yl: "y \<in> lambda_system \<Omega> M f" |
220 shows "x \<union> y \<in> lambda_system M f" |
145 shows "x \<union> y \<in> lambda_system \<Omega> M f" |
221 proof - |
146 proof - |
222 have "(space M - x) \<inter> (space M - y) \<in> sets M" |
147 have "(\<Omega> - x) \<inter> (\<Omega> - y) \<in> M" |
223 by (metis Diff_Un Un compl_sets lambda_system_sets xl yl) |
148 by (metis Diff_Un Un compl_sets lambda_system_sets xl yl) |
224 moreover |
149 moreover |
225 have "x \<union> y = space M - ((space M - x) \<inter> (space M - y))" |
150 have "x \<union> y = \<Omega> - ((\<Omega> - x) \<inter> (\<Omega> - y))" |
226 by auto (metis subsetD lambda_system_sets sets_into_space xl yl)+ |
151 by auto (metis subsetD lambda_system_sets sets_into_space xl yl)+ |
227 ultimately show ?thesis |
152 ultimately show ?thesis |
228 by (metis lambda_system_Compl lambda_system_Int xl yl) |
153 by (metis lambda_system_Compl lambda_system_Int xl yl) |
229 qed |
154 qed |
230 |
155 |
231 lemma (in algebra) lambda_system_algebra: |
156 lemma (in algebra) lambda_system_algebra: |
232 "positive M f \<Longrightarrow> algebra (M\<lparr>sets := lambda_system M f\<rparr>)" |
157 "positive M f \<Longrightarrow> algebra \<Omega> (lambda_system \<Omega> M f)" |
233 apply (auto simp add: algebra_iff_Un) |
158 apply (auto simp add: algebra_iff_Un) |
234 apply (metis lambda_system_sets set_mp sets_into_space) |
159 apply (metis lambda_system_sets set_mp sets_into_space) |
235 apply (metis lambda_system_empty) |
160 apply (metis lambda_system_empty) |
236 apply (metis lambda_system_Compl) |
161 apply (metis lambda_system_Compl) |
237 apply (metis lambda_system_Un) |
162 apply (metis lambda_system_Un) |
238 done |
163 done |
239 |
164 |
240 lemma (in algebra) lambda_system_strong_additive: |
165 lemma (in algebra) lambda_system_strong_additive: |
241 assumes z: "z \<in> sets M" and disj: "x \<inter> y = {}" |
166 assumes z: "z \<in> M" and disj: "x \<inter> y = {}" |
242 and xl: "x \<in> lambda_system M f" and yl: "y \<in> lambda_system M f" |
167 and xl: "x \<in> lambda_system \<Omega> M f" and yl: "y \<in> lambda_system \<Omega> M f" |
243 shows "f (z \<inter> (x \<union> y)) = f (z \<inter> x) + f (z \<inter> y)" |
168 shows "f (z \<inter> (x \<union> y)) = f (z \<inter> x) + f (z \<inter> y)" |
244 proof - |
169 proof - |
245 have "z \<inter> x = (z \<inter> (x \<union> y)) \<inter> x" using disj by blast |
170 have "z \<inter> x = (z \<inter> (x \<union> y)) \<inter> x" using disj by blast |
246 moreover |
171 moreover |
247 have "z \<inter> y = (z \<inter> (x \<union> y)) - x" using disj by blast |
172 have "z \<inter> y = (z \<inter> (x \<union> y)) - x" using disj by blast |
248 moreover |
173 moreover |
249 have "(z \<inter> (x \<union> y)) \<in> sets M" |
174 have "(z \<inter> (x \<union> y)) \<in> M" |
250 by (metis Int Un lambda_system_sets xl yl z) |
175 by (metis Int Un lambda_system_sets xl yl z) |
251 ultimately show ?thesis using xl yl |
176 ultimately show ?thesis using xl yl |
252 by (simp add: lambda_system_eq) |
177 by (simp add: lambda_system_eq) |
253 qed |
178 qed |
254 |
179 |
255 lemma (in algebra) lambda_system_additive: |
180 lemma (in algebra) lambda_system_additive: "additive (lambda_system \<Omega> M f) f" |
256 "additive (M (|sets := lambda_system M f|)) f" |
|
257 proof (auto simp add: additive_def) |
181 proof (auto simp add: additive_def) |
258 fix x and y |
182 fix x and y |
259 assume disj: "x \<inter> y = {}" |
183 assume disj: "x \<inter> y = {}" |
260 and xl: "x \<in> lambda_system M f" and yl: "y \<in> lambda_system M f" |
184 and xl: "x \<in> lambda_system \<Omega> M f" and yl: "y \<in> lambda_system \<Omega> M f" |
261 hence "x \<in> sets M" "y \<in> sets M" by (blast intro: lambda_system_sets)+ |
185 hence "x \<in> M" "y \<in> M" by (blast intro: lambda_system_sets)+ |
262 thus "f (x \<union> y) = f x + f y" |
186 thus "f (x \<union> y) = f x + f y" |
263 using lambda_system_strong_additive [OF top disj xl yl] |
187 using lambda_system_strong_additive [OF top disj xl yl] |
264 by (simp add: Un) |
188 by (simp add: Un) |
265 qed |
189 qed |
266 |
|
267 lemma (in ring_of_sets) disjointed_additive: |
|
268 assumes f: "positive M f" "additive M f" and A: "range A \<subseteq> sets M" "incseq A" |
|
269 shows "(\<Sum>i\<le>n. f (disjointed A i)) = f (A n)" |
|
270 proof (induct n) |
|
271 case (Suc n) |
|
272 then have "(\<Sum>i\<le>Suc n. f (disjointed A i)) = f (A n) + f (disjointed A (Suc n))" |
|
273 by simp |
|
274 also have "\<dots> = f (A n \<union> disjointed A (Suc n))" |
|
275 using A by (subst f(2)[THEN additiveD]) (auto simp: disjointed_incseq) |
|
276 also have "A n \<union> disjointed A (Suc n) = A (Suc n)" |
|
277 using `incseq A` by (auto dest: incseq_SucD simp: disjointed_incseq) |
|
278 finally show ?case . |
|
279 qed simp |
|
280 |
190 |
281 lemma (in ring_of_sets) countably_subadditive_subadditive: |
191 lemma (in ring_of_sets) countably_subadditive_subadditive: |
282 assumes f: "positive M f" and cs: "countably_subadditive M f" |
192 assumes f: "positive M f" and cs: "countably_subadditive M f" |
283 shows "subadditive M f" |
193 shows "subadditive M f" |
284 proof (auto simp add: subadditive_def) |
194 proof (auto simp add: subadditive_def) |
285 fix x y |
195 fix x y |
286 assume x: "x \<in> sets M" and y: "y \<in> sets M" and "x \<inter> y = {}" |
196 assume x: "x \<in> M" and y: "y \<in> M" and "x \<inter> y = {}" |
287 hence "disjoint_family (binaryset x y)" |
197 hence "disjoint_family (binaryset x y)" |
288 by (auto simp add: disjoint_family_on_def binaryset_def) |
198 by (auto simp add: disjoint_family_on_def binaryset_def) |
289 hence "range (binaryset x y) \<subseteq> sets M \<longrightarrow> |
199 hence "range (binaryset x y) \<subseteq> M \<longrightarrow> |
290 (\<Union>i. binaryset x y i) \<in> sets M \<longrightarrow> |
200 (\<Union>i. binaryset x y i) \<in> M \<longrightarrow> |
291 f (\<Union>i. binaryset x y i) \<le> (\<Sum> n. f (binaryset x y n))" |
201 f (\<Union>i. binaryset x y i) \<le> (\<Sum> n. f (binaryset x y n))" |
292 using cs by (auto simp add: countably_subadditive_def) |
202 using cs by (auto simp add: countably_subadditive_def) |
293 hence "{x,y,{}} \<subseteq> sets M \<longrightarrow> x \<union> y \<in> sets M \<longrightarrow> |
203 hence "{x,y,{}} \<subseteq> M \<longrightarrow> x \<union> y \<in> M \<longrightarrow> |
294 f (x \<union> y) \<le> (\<Sum> n. f (binaryset x y n))" |
204 f (x \<union> y) \<le> (\<Sum> n. f (binaryset x y n))" |
295 by (simp add: range_binaryset_eq UN_binaryset_eq) |
205 by (simp add: range_binaryset_eq UN_binaryset_eq) |
296 thus "f (x \<union> y) \<le> f x + f y" using f x y |
206 thus "f (x \<union> y) \<le> f x + f y" using f x y |
297 by (auto simp add: Un o_def suminf_binaryset_eq positive_def) |
207 by (auto simp add: Un o_def suminf_binaryset_eq positive_def) |
298 qed |
208 qed |
299 |
209 |
300 lemma (in ring_of_sets) additive_sum: |
|
301 fixes A:: "nat \<Rightarrow> 'a set" |
|
302 assumes f: "positive M f" and ad: "additive M f" and "finite S" |
|
303 and A: "range A \<subseteq> sets M" |
|
304 and disj: "disjoint_family_on A S" |
|
305 shows "(\<Sum>i\<in>S. f (A i)) = f (\<Union>i\<in>S. A i)" |
|
306 using `finite S` disj proof induct |
|
307 case empty show ?case using f by (simp add: positive_def) |
|
308 next |
|
309 case (insert s S) |
|
310 then have "A s \<inter> (\<Union>i\<in>S. A i) = {}" |
|
311 by (auto simp add: disjoint_family_on_def neq_iff) |
|
312 moreover |
|
313 have "A s \<in> sets M" using A by blast |
|
314 moreover have "(\<Union>i\<in>S. A i) \<in> sets M" |
|
315 using A `finite S` by auto |
|
316 moreover |
|
317 ultimately have "f (A s \<union> (\<Union>i\<in>S. A i)) = f (A s) + f(\<Union>i\<in>S. A i)" |
|
318 using ad UNION_in_sets A by (auto simp add: additive_def) |
|
319 with insert show ?case using ad disjoint_family_on_mono[of S "insert s S" A] |
|
320 by (auto simp add: additive_def subset_insertI) |
|
321 qed |
|
322 |
|
323 lemma (in algebra) increasing_additive_bound: |
|
324 fixes A:: "nat \<Rightarrow> 'a set" and f :: "'a set \<Rightarrow> ereal" |
|
325 assumes f: "positive M f" and ad: "additive M f" |
|
326 and inc: "increasing M f" |
|
327 and A: "range A \<subseteq> sets M" |
|
328 and disj: "disjoint_family A" |
|
329 shows "(\<Sum>i. f (A i)) \<le> f (space M)" |
|
330 proof (safe intro!: suminf_bound) |
|
331 fix N |
|
332 note disj_N = disjoint_family_on_mono[OF _ disj, of "{..<N}"] |
|
333 have "(\<Sum>i<N. f (A i)) = f (\<Union>i\<in>{..<N}. A i)" |
|
334 by (rule additive_sum [OF f ad _ A]) (auto simp: disj_N) |
|
335 also have "... \<le> f (space M)" using space_closed A |
|
336 by (intro increasingD[OF inc] finite_UN) auto |
|
337 finally show "(\<Sum>i<N. f (A i)) \<le> f (space M)" by simp |
|
338 qed (insert f A, auto simp: positive_def) |
|
339 |
|
340 lemma lambda_system_increasing: |
210 lemma lambda_system_increasing: |
341 "increasing M f \<Longrightarrow> increasing (M (|sets := lambda_system M f|)) f" |
211 "increasing M f \<Longrightarrow> increasing (lambda_system \<Omega> M f) f" |
342 by (simp add: increasing_def lambda_system_def) |
212 by (simp add: increasing_def lambda_system_def) |
343 |
213 |
344 lemma lambda_system_positive: |
214 lemma lambda_system_positive: |
345 "positive M f \<Longrightarrow> positive (M (|sets := lambda_system M f|)) f" |
215 "positive M f \<Longrightarrow> positive (lambda_system \<Omega> M f) f" |
346 by (simp add: positive_def lambda_system_def) |
216 by (simp add: positive_def lambda_system_def) |
347 |
217 |
348 lemma (in algebra) lambda_system_strong_sum: |
218 lemma (in algebra) lambda_system_strong_sum: |
349 fixes A:: "nat \<Rightarrow> 'a set" and f :: "'a set \<Rightarrow> ereal" |
219 fixes A:: "nat \<Rightarrow> 'a set" and f :: "'a set \<Rightarrow> ereal" |
350 assumes f: "positive M f" and a: "a \<in> sets M" |
220 assumes f: "positive M f" and a: "a \<in> M" |
351 and A: "range A \<subseteq> lambda_system M f" |
221 and A: "range A \<subseteq> lambda_system \<Omega> M f" |
352 and disj: "disjoint_family A" |
222 and disj: "disjoint_family A" |
353 shows "(\<Sum>i = 0..<n. f (a \<inter>A i)) = f (a \<inter> (\<Union>i\<in>{0..<n}. A i))" |
223 shows "(\<Sum>i = 0..<n. f (a \<inter>A i)) = f (a \<inter> (\<Union>i\<in>{0..<n}. A i))" |
354 proof (induct n) |
224 proof (induct n) |
355 case 0 show ?case using f by (simp add: positive_def) |
225 case 0 show ?case using f by (simp add: positive_def) |
356 next |
226 next |
357 case (Suc n) |
227 case (Suc n) |
358 have 2: "A n \<inter> UNION {0..<n} A = {}" using disj |
228 have 2: "A n \<inter> UNION {0..<n} A = {}" using disj |
359 by (force simp add: disjoint_family_on_def neq_iff) |
229 by (force simp add: disjoint_family_on_def neq_iff) |
360 have 3: "A n \<in> lambda_system M f" using A |
230 have 3: "A n \<in> lambda_system \<Omega> M f" using A |
361 by blast |
231 by blast |
362 interpret l: algebra "M\<lparr>sets := lambda_system M f\<rparr>" |
232 interpret l: algebra \<Omega> "lambda_system \<Omega> M f" |
363 using f by (rule lambda_system_algebra) |
233 using f by (rule lambda_system_algebra) |
364 have 4: "UNION {0..<n} A \<in> lambda_system M f" |
234 have 4: "UNION {0..<n} A \<in> lambda_system \<Omega> M f" |
365 using A l.UNION_in_sets by simp |
235 using A l.UNION_in_sets by simp |
366 from Suc.hyps show ?case |
236 from Suc.hyps show ?case |
367 by (simp add: atLeastLessThanSuc lambda_system_strong_additive [OF a 2 3 4]) |
237 by (simp add: atLeastLessThanSuc lambda_system_strong_additive [OF a 2 3 4]) |
368 qed |
238 qed |
369 |
239 |
370 lemma (in sigma_algebra) lambda_system_caratheodory: |
240 lemma (in sigma_algebra) lambda_system_caratheodory: |
371 assumes oms: "outer_measure_space M f" |
241 assumes oms: "outer_measure_space M f" |
372 and A: "range A \<subseteq> lambda_system M f" |
242 and A: "range A \<subseteq> lambda_system \<Omega> M f" |
373 and disj: "disjoint_family A" |
243 and disj: "disjoint_family A" |
374 shows "(\<Union>i. A i) \<in> lambda_system M f \<and> (\<Sum>i. f (A i)) = f (\<Union>i. A i)" |
244 shows "(\<Union>i. A i) \<in> lambda_system \<Omega> M f \<and> (\<Sum>i. f (A i)) = f (\<Union>i. A i)" |
375 proof - |
245 proof - |
376 have pos: "positive M f" and inc: "increasing M f" |
246 have pos: "positive M f" and inc: "increasing M f" |
377 and csa: "countably_subadditive M f" |
247 and csa: "countably_subadditive M f" |
378 by (metis oms outer_measure_space_def)+ |
248 by (metis oms outer_measure_space_def)+ |
379 have sa: "subadditive M f" |
249 have sa: "subadditive M f" |
380 by (metis countably_subadditive_subadditive csa pos) |
250 by (metis countably_subadditive_subadditive csa pos) |
381 have A': "range A \<subseteq> sets (M(|sets := lambda_system M f|))" using A |
251 have A': "\<And>S. A`S \<subseteq> (lambda_system \<Omega> M f)" using A |
382 by simp |
252 by auto |
383 interpret ls: algebra "M\<lparr>sets := lambda_system M f\<rparr>" |
253 interpret ls: algebra \<Omega> "lambda_system \<Omega> M f" |
384 using pos by (rule lambda_system_algebra) |
254 using pos by (rule lambda_system_algebra) |
385 have A'': "range A \<subseteq> sets M" |
255 have A'': "range A \<subseteq> M" |
386 by (metis A image_subset_iff lambda_system_sets) |
256 by (metis A image_subset_iff lambda_system_sets) |
387 |
257 |
388 have U_in: "(\<Union>i. A i) \<in> sets M" |
258 have U_in: "(\<Union>i. A i) \<in> M" |
389 by (metis A'' countable_UN) |
259 by (metis A'' countable_UN) |
390 have U_eq: "f (\<Union>i. A i) = (\<Sum>i. f (A i))" |
260 have U_eq: "f (\<Union>i. A i) = (\<Sum>i. f (A i))" |
391 proof (rule antisym) |
261 proof (rule antisym) |
392 show "f (\<Union>i. A i) \<le> (\<Sum>i. f (A i))" |
262 show "f (\<Union>i. A i) \<le> (\<Sum>i. f (A i))" |
393 using csa[unfolded countably_subadditive_def] A'' disj U_in by auto |
263 using csa[unfolded countably_subadditive_def] A'' disj U_in by auto |
394 have *: "\<And>i. 0 \<le> f (A i)" using pos A'' unfolding positive_def by auto |
264 have *: "\<And>i. 0 \<le> f (A i)" using pos A'' unfolding positive_def by auto |
395 have dis: "\<And>N. disjoint_family_on A {..<N}" by (intro disjoint_family_on_mono[OF _ disj]) auto |
265 have dis: "\<And>N. disjoint_family_on A {..<N}" by (intro disjoint_family_on_mono[OF _ disj]) auto |
396 show "(\<Sum>i. f (A i)) \<le> f (\<Union>i. A i)" |
266 show "(\<Sum>i. f (A i)) \<le> f (\<Union>i. A i)" |
397 using ls.additive_sum [OF lambda_system_positive[OF pos] lambda_system_additive _ A' dis] |
267 using ls.additive_sum [OF lambda_system_positive[OF pos] lambda_system_additive _ A' dis] |
398 using A'' |
268 using A'' |
399 by (intro suminf_bound[OF _ *]) (auto intro!: increasingD[OF inc] allI countable_UN) |
269 by (intro suminf_bound[OF _ *]) (auto intro!: increasingD[OF inc] countable_UN) |
400 qed |
270 qed |
401 { |
271 { |
402 fix a |
272 fix a |
403 assume a [iff]: "a \<in> sets M" |
273 assume a [iff]: "a \<in> M" |
404 have "f (a \<inter> (\<Union>i. A i)) + f (a - (\<Union>i. A i)) = f a" |
274 have "f (a \<inter> (\<Union>i. A i)) + f (a - (\<Union>i. A i)) = f a" |
405 proof - |
275 proof - |
406 show ?thesis |
276 show ?thesis |
407 proof (rule antisym) |
277 proof (rule antisym) |
408 have "range (\<lambda>i. a \<inter> A i) \<subseteq> sets M" using A'' |
278 have "range (\<lambda>i. a \<inter> A i) \<subseteq> M" using A'' |
409 by blast |
279 by blast |
410 moreover |
280 moreover |
411 have "disjoint_family (\<lambda>i. a \<inter> A i)" using disj |
281 have "disjoint_family (\<lambda>i. a \<inter> A i)" using disj |
412 by (auto simp add: disjoint_family_on_def) |
282 by (auto simp add: disjoint_family_on_def) |
413 moreover |
283 moreover |
414 have "a \<inter> (\<Union>i. A i) \<in> sets M" |
284 have "a \<inter> (\<Union>i. A i) \<in> M" |
415 by (metis Int U_in a) |
285 by (metis Int U_in a) |
416 ultimately |
286 ultimately |
417 have "f (a \<inter> (\<Union>i. A i)) \<le> (\<Sum>i. f (a \<inter> A i))" |
287 have "f (a \<inter> (\<Union>i. A i)) \<le> (\<Sum>i. f (a \<inter> A i))" |
418 using csa[unfolded countably_subadditive_def, rule_format, of "(\<lambda>i. a \<inter> A i)"] |
288 using csa[unfolded countably_subadditive_def, rule_format, of "(\<lambda>i. a \<inter> A i)"] |
419 by (simp add: o_def) |
289 by (simp add: o_def) |
458 by (simp add: lambda_system_eq sums_iff U_eq U_in) |
328 by (simp add: lambda_system_eq sums_iff U_eq U_in) |
459 qed |
329 qed |
460 |
330 |
461 lemma (in sigma_algebra) caratheodory_lemma: |
331 lemma (in sigma_algebra) caratheodory_lemma: |
462 assumes oms: "outer_measure_space M f" |
332 assumes oms: "outer_measure_space M f" |
463 shows "measure_space \<lparr> space = space M, sets = lambda_system M f, measure = f \<rparr>" |
333 defines "L \<equiv> lambda_system \<Omega> M f" |
464 (is "measure_space ?M") |
334 shows "measure_space \<Omega> L f" |
465 proof - |
335 proof - |
466 have pos: "positive M f" |
336 have pos: "positive M f" |
467 by (metis oms outer_measure_space_def) |
337 by (metis oms outer_measure_space_def) |
468 have alg: "algebra ?M" |
338 have alg: "algebra \<Omega> L" |
469 using lambda_system_algebra [of f, OF pos] |
339 using lambda_system_algebra [of f, OF pos] |
470 by (simp add: algebra_iff_Un) |
340 by (simp add: algebra_iff_Un L_def) |
471 then |
341 then |
472 have "sigma_algebra ?M" |
342 have "sigma_algebra \<Omega> L" |
473 using lambda_system_caratheodory [OF oms] |
343 using lambda_system_caratheodory [OF oms] |
474 by (simp add: sigma_algebra_disjoint_iff) |
344 by (simp add: sigma_algebra_disjoint_iff L_def) |
475 moreover |
345 moreover |
476 have "measure_space_axioms ?M" |
346 have "countably_additive L f" "positive L f" |
477 using pos lambda_system_caratheodory [OF oms] |
347 using pos lambda_system_caratheodory [OF oms] |
478 by (simp add: measure_space_axioms_def positive_def lambda_system_sets |
348 by (auto simp add: lambda_system_sets L_def countably_additive_def positive_def) |
479 countably_additive_def o_def) |
|
480 ultimately |
349 ultimately |
481 show ?thesis |
350 show ?thesis |
482 by (simp add: measure_space_def) |
351 using pos by (simp add: measure_space_def) |
483 qed |
|
484 |
|
485 lemma (in ring_of_sets) additive_increasing: |
|
486 assumes posf: "positive M f" and addf: "additive M f" |
|
487 shows "increasing M f" |
|
488 proof (auto simp add: increasing_def) |
|
489 fix x y |
|
490 assume xy: "x \<in> sets M" "y \<in> sets M" "x \<subseteq> y" |
|
491 then have "y - x \<in> sets M" by auto |
|
492 then have "0 \<le> f (y-x)" using posf[unfolded positive_def] by auto |
|
493 then have "f x + 0 \<le> f x + f (y-x)" by (intro add_left_mono) auto |
|
494 also have "... = f (x \<union> (y-x))" using addf |
|
495 by (auto simp add: additive_def) (metis Diff_disjoint Un_Diff_cancel Diff xy(1,2)) |
|
496 also have "... = f y" |
|
497 by (metis Un_Diff_cancel Un_absorb1 xy(3)) |
|
498 finally show "f x \<le> f y" by simp |
|
499 qed |
|
500 |
|
501 lemma (in ring_of_sets) countably_additive_additive: |
|
502 assumes posf: "positive M f" and ca: "countably_additive M f" |
|
503 shows "additive M f" |
|
504 proof (auto simp add: additive_def) |
|
505 fix x y |
|
506 assume x: "x \<in> sets M" and y: "y \<in> sets M" and "x \<inter> y = {}" |
|
507 hence "disjoint_family (binaryset x y)" |
|
508 by (auto simp add: disjoint_family_on_def binaryset_def) |
|
509 hence "range (binaryset x y) \<subseteq> sets M \<longrightarrow> |
|
510 (\<Union>i. binaryset x y i) \<in> sets M \<longrightarrow> |
|
511 f (\<Union>i. binaryset x y i) = (\<Sum> n. f (binaryset x y n))" |
|
512 using ca |
|
513 by (simp add: countably_additive_def) |
|
514 hence "{x,y,{}} \<subseteq> sets M \<longrightarrow> x \<union> y \<in> sets M \<longrightarrow> |
|
515 f (x \<union> y) = (\<Sum>n. f (binaryset x y n))" |
|
516 by (simp add: range_binaryset_eq UN_binaryset_eq) |
|
517 thus "f (x \<union> y) = f x + f y" using posf x y |
|
518 by (auto simp add: Un suminf_binaryset_eq positive_def) |
|
519 qed |
352 qed |
520 |
353 |
521 lemma inf_measure_nonempty: |
354 lemma inf_measure_nonempty: |
522 assumes f: "positive M f" and b: "b \<in> sets M" and a: "a \<subseteq> b" "{} \<in> sets M" |
355 assumes f: "positive M f" and b: "b \<in> M" and a: "a \<subseteq> b" "{} \<in> M" |
523 shows "f b \<in> measure_set M f a" |
356 shows "f b \<in> measure_set M f a" |
524 proof - |
357 proof - |
525 let ?A = "\<lambda>i::nat. (if i = 0 then b else {})" |
358 let ?A = "\<lambda>i::nat. (if i = 0 then b else {})" |
526 have "(\<Sum>i. f (?A i)) = (\<Sum>i<1::nat. f (?A i))" |
359 have "(\<Sum>i. f (?A i)) = (\<Sum>i<1::nat. f (?A i))" |
527 by (rule suminf_finite) (simp add: f[unfolded positive_def]) |
360 by (rule suminf_finite) (simp add: f[unfolded positive_def]) |
532 simp: measure_set_def disjoint_family_on_def split_if_mem2 comp_def) |
365 simp: measure_set_def disjoint_family_on_def split_if_mem2 comp_def) |
533 qed |
366 qed |
534 |
367 |
535 lemma (in ring_of_sets) inf_measure_agrees: |
368 lemma (in ring_of_sets) inf_measure_agrees: |
536 assumes posf: "positive M f" and ca: "countably_additive M f" |
369 assumes posf: "positive M f" and ca: "countably_additive M f" |
537 and s: "s \<in> sets M" |
370 and s: "s \<in> M" |
538 shows "Inf (measure_set M f s) = f s" |
371 shows "Inf (measure_set M f s) = f s" |
539 unfolding Inf_ereal_def |
372 unfolding Inf_ereal_def |
540 proof (safe intro!: Greatest_equality) |
373 proof (safe intro!: Greatest_equality) |
541 fix z |
374 fix z |
542 assume z: "z \<in> measure_set M f s" |
375 assume z: "z \<in> measure_set M f s" |
543 from this obtain A where |
376 from this obtain A where |
544 A: "range A \<subseteq> sets M" and disj: "disjoint_family A" |
377 A: "range A \<subseteq> M" and disj: "disjoint_family A" |
545 and "s \<subseteq> (\<Union>x. A x)" and si: "(\<Sum>i. f (A i)) = z" |
378 and "s \<subseteq> (\<Union>x. A x)" and si: "(\<Sum>i. f (A i)) = z" |
546 by (auto simp add: measure_set_def comp_def) |
379 by (auto simp add: measure_set_def comp_def) |
547 hence seq: "s = (\<Union>i. A i \<inter> s)" by blast |
380 hence seq: "s = (\<Union>i. A i \<inter> s)" by blast |
548 have inc: "increasing M f" |
381 have inc: "increasing M f" |
549 by (metis additive_increasing ca countably_additive_additive posf) |
382 by (metis additive_increasing ca countably_additive_additive posf) |
550 have sums: "(\<Sum>i. f (A i \<inter> s)) = f (\<Union>i. A i \<inter> s)" |
383 have sums: "(\<Sum>i. f (A i \<inter> s)) = f (\<Union>i. A i \<inter> s)" |
551 proof (rule ca[unfolded countably_additive_def, rule_format]) |
384 proof (rule ca[unfolded countably_additive_def, rule_format]) |
552 show "range (\<lambda>n. A n \<inter> s) \<subseteq> sets M" using A s |
385 show "range (\<lambda>n. A n \<inter> s) \<subseteq> M" using A s |
553 by blast |
386 by blast |
554 show "disjoint_family (\<lambda>n. A n \<inter> s)" using disj |
387 show "disjoint_family (\<lambda>n. A n \<inter> s)" using disj |
555 by (auto simp add: disjoint_family_on_def) |
388 by (auto simp add: disjoint_family_on_def) |
556 show "(\<Union>i. A i \<inter> s) \<in> sets M" using A s |
389 show "(\<Union>i. A i \<inter> s) \<in> M" using A s |
557 by (metis UN_extend_simps(4) s seq) |
390 by (metis UN_extend_simps(4) s seq) |
558 qed |
391 qed |
559 hence "f s = (\<Sum>i. f (A i \<inter> s))" |
392 hence "f s = (\<Sum>i. f (A i \<inter> s))" |
560 using seq [symmetric] by (simp add: sums_iff) |
393 using seq [symmetric] by (simp add: sums_iff) |
561 also have "... \<le> (\<Sum>i. f (A i))" |
394 also have "... \<le> (\<Sum>i. f (A i))" |
562 proof (rule suminf_le_pos) |
395 proof (rule suminf_le_pos) |
563 fix n show "f (A n \<inter> s) \<le> f (A n)" using A s |
396 fix n show "f (A n \<inter> s) \<le> f (A n)" using A s |
564 by (force intro: increasingD [OF inc]) |
397 by (force intro: increasingD [OF inc]) |
565 fix N have "A N \<inter> s \<in> sets M" using A s by auto |
398 fix N have "A N \<inter> s \<in> M" using A s by auto |
566 then show "0 \<le> f (A N \<inter> s)" using posf unfolding positive_def by auto |
399 then show "0 \<le> f (A N \<inter> s)" using posf unfolding positive_def by auto |
567 qed |
400 qed |
568 also have "... = z" by (rule si) |
401 also have "... = z" by (rule si) |
569 finally show "f s \<le> z" . |
402 finally show "f s \<le> z" . |
570 next |
403 next |
591 fix r assume "r \<in> measure_set M f X" with posf show "0 \<le> r" |
424 fix r assume "r \<in> measure_set M f X" with posf show "0 \<le> r" |
592 by (rule measure_set_pos) |
425 by (rule measure_set_pos) |
593 qed |
426 qed |
594 |
427 |
595 lemma inf_measure_empty: |
428 lemma inf_measure_empty: |
596 assumes posf: "positive M f" and "{} \<in> sets M" |
429 assumes posf: "positive M f" and "{} \<in> M" |
597 shows "Inf (measure_set M f {}) = 0" |
430 shows "Inf (measure_set M f {}) = 0" |
598 proof (rule antisym) |
431 proof (rule antisym) |
599 show "Inf (measure_set M f {}) \<le> 0" |
432 show "Inf (measure_set M f {}) \<le> 0" |
600 by (metis complete_lattice_class.Inf_lower `{} \<in> sets M` |
433 by (metis complete_lattice_class.Inf_lower `{} \<in> M` |
601 inf_measure_nonempty[OF posf] subset_refl posf[unfolded positive_def]) |
434 inf_measure_nonempty[OF posf] subset_refl posf[unfolded positive_def]) |
602 qed (rule inf_measure_pos[OF posf]) |
435 qed (rule inf_measure_pos[OF posf]) |
603 |
436 |
604 lemma (in ring_of_sets) inf_measure_positive: |
437 lemma (in ring_of_sets) inf_measure_positive: |
605 assumes p: "positive M f" and "{} \<in> sets M" |
438 assumes p: "positive M f" and "{} \<in> M" |
606 shows "positive M (\<lambda>x. Inf (measure_set M f x))" |
439 shows "positive M (\<lambda>x. Inf (measure_set M f x))" |
607 proof (unfold positive_def, intro conjI ballI) |
440 proof (unfold positive_def, intro conjI ballI) |
608 show "Inf (measure_set M f {}) = 0" using inf_measure_empty[OF assms] by auto |
441 show "Inf (measure_set M f {}) = 0" using inf_measure_empty[OF assms] by auto |
609 fix A assume "A \<in> sets M" |
442 fix A assume "A \<in> M" |
610 qed (rule inf_measure_pos[OF p]) |
443 qed (rule inf_measure_pos[OF p]) |
611 |
444 |
612 lemma (in ring_of_sets) inf_measure_increasing: |
445 lemma (in ring_of_sets) inf_measure_increasing: |
613 assumes posf: "positive M f" |
446 assumes posf: "positive M f" |
614 shows "increasing \<lparr> space = space M, sets = Pow (space M) \<rparr> |
447 shows "increasing (Pow \<Omega>) (\<lambda>x. Inf (measure_set M f x))" |
615 (\<lambda>x. Inf (measure_set M f x))" |
|
616 apply (clarsimp simp add: increasing_def) |
448 apply (clarsimp simp add: increasing_def) |
617 apply (rule complete_lattice_class.Inf_greatest) |
449 apply (rule complete_lattice_class.Inf_greatest) |
618 apply (rule complete_lattice_class.Inf_lower) |
450 apply (rule complete_lattice_class.Inf_lower) |
619 apply (clarsimp simp add: measure_set_def, rule_tac x=A in exI, blast) |
451 apply (clarsimp simp add: measure_set_def, rule_tac x=A in exI, blast) |
620 done |
452 done |
621 |
453 |
622 lemma (in ring_of_sets) inf_measure_le: |
454 lemma (in ring_of_sets) inf_measure_le: |
623 assumes posf: "positive M f" and inc: "increasing M f" |
455 assumes posf: "positive M f" and inc: "increasing M f" |
624 and x: "x \<in> {r . \<exists>A. range A \<subseteq> sets M \<and> s \<subseteq> (\<Union>i. A i) \<and> (\<Sum>i. f (A i)) = r}" |
456 and x: "x \<in> {r . \<exists>A. range A \<subseteq> M \<and> s \<subseteq> (\<Union>i. A i) \<and> (\<Sum>i. f (A i)) = r}" |
625 shows "Inf (measure_set M f s) \<le> x" |
457 shows "Inf (measure_set M f s) \<le> x" |
626 proof - |
458 proof - |
627 obtain A where A: "range A \<subseteq> sets M" and ss: "s \<subseteq> (\<Union>i. A i)" |
459 obtain A where A: "range A \<subseteq> M" and ss: "s \<subseteq> (\<Union>i. A i)" |
628 and xeq: "(\<Sum>i. f (A i)) = x" |
460 and xeq: "(\<Sum>i. f (A i)) = x" |
629 using x by auto |
461 using x by auto |
630 have dA: "range (disjointed A) \<subseteq> sets M" |
462 have dA: "range (disjointed A) \<subseteq> M" |
631 by (metis A range_disjointed_sets) |
463 by (metis A range_disjointed_sets) |
632 have "\<forall>n. f (disjointed A n) \<le> f (A n)" |
464 have "\<forall>n. f (disjointed A n) \<le> f (A n)" |
633 by (metis increasingD [OF inc] UNIV_I dA image_subset_iff disjointed_subset A comp_def) |
465 by (metis increasingD [OF inc] UNIV_I dA image_subset_iff disjointed_subset A comp_def) |
634 moreover have "\<forall>i. 0 \<le> f (disjointed A i)" |
466 moreover have "\<forall>i. 0 \<le> f (disjointed A i)" |
635 using posf dA unfolding positive_def by auto |
467 using posf dA unfolding positive_def by auto |
820 = Inf (measure_set M f s)" |
649 = Inf (measure_set M f s)" |
821 by (rule order_antisym) |
650 by (rule order_antisym) |
822 qed |
651 qed |
823 |
652 |
824 lemma measure_down: |
653 lemma measure_down: |
825 "measure_space N \<Longrightarrow> sigma_algebra M \<Longrightarrow> sets M \<subseteq> sets N \<Longrightarrow> measure N = measure M \<Longrightarrow> measure_space M" |
654 "measure_space \<Omega> N \<mu> \<Longrightarrow> sigma_algebra \<Omega> M \<Longrightarrow> M \<subseteq> N \<Longrightarrow> measure_space \<Omega> M \<mu>" |
826 by (simp add: measure_space_def measure_space_axioms_def positive_def |
655 by (simp add: measure_space_def positive_def countably_additive_def) |
827 countably_additive_def) |
|
828 blast |
656 blast |
829 |
657 |
830 theorem (in ring_of_sets) caratheodory: |
658 theorem (in ring_of_sets) caratheodory: |
831 assumes posf: "positive M f" and ca: "countably_additive M f" |
659 assumes posf: "positive M f" and ca: "countably_additive M f" |
832 shows "\<exists>\<mu> :: 'a set \<Rightarrow> ereal. (\<forall>s \<in> sets M. \<mu> s = f s) \<and> |
660 shows "\<exists>\<mu> :: 'a set \<Rightarrow> ereal. (\<forall>s \<in> M. \<mu> s = f s) \<and> measure_space \<Omega> (sigma_sets \<Omega> M) \<mu>" |
833 measure_space \<lparr> space = space M, sets = sets (sigma M), measure = \<mu> \<rparr>" |
|
834 proof - |
661 proof - |
835 have inc: "increasing M f" |
662 have inc: "increasing M f" |
836 by (metis additive_increasing ca countably_additive_additive posf) |
663 by (metis additive_increasing ca countably_additive_additive posf) |
837 let ?infm = "(\<lambda>x. Inf (measure_set M f x))" |
664 let ?infm = "(\<lambda>x. Inf (measure_set M f x))" |
838 def ls \<equiv> "lambda_system (|space = space M, sets = Pow (space M)|) ?infm" |
665 def ls \<equiv> "lambda_system \<Omega> (Pow \<Omega>) ?infm" |
839 have mls: "measure_space \<lparr>space = space M, sets = ls, measure = ?infm\<rparr>" |
666 have mls: "measure_space \<Omega> ls ?infm" |
840 using sigma_algebra.caratheodory_lemma |
667 using sigma_algebra.caratheodory_lemma |
841 [OF sigma_algebra_Pow inf_measure_outer [OF posf inc]] |
668 [OF sigma_algebra_Pow inf_measure_outer [OF posf inc]] |
842 by (simp add: ls_def) |
669 by (simp add: ls_def) |
843 hence sls: "sigma_algebra (|space = space M, sets = ls, measure = ?infm|)" |
670 hence sls: "sigma_algebra \<Omega> ls" |
844 by (simp add: measure_space_def) |
671 by (simp add: measure_space_def) |
845 have "sets M \<subseteq> ls" |
672 have "M \<subseteq> ls" |
846 by (simp add: ls_def) |
673 by (simp add: ls_def) |
847 (metis ca posf inc countably_additive_additive algebra_subset_lambda_system) |
674 (metis ca posf inc countably_additive_additive algebra_subset_lambda_system) |
848 hence sgs_sb: "sigma_sets (space M) (sets M) \<subseteq> ls" |
675 hence sgs_sb: "sigma_sets (\<Omega>) (M) \<subseteq> ls" |
849 using sigma_algebra.sigma_sets_subset [OF sls, of "sets M"] |
676 using sigma_algebra.sigma_sets_subset [OF sls, of "M"] |
850 by simp |
677 by simp |
851 have "measure_space \<lparr> space = space M, sets = sets (sigma M), measure = ?infm \<rparr>" |
678 have "measure_space \<Omega> (sigma_sets \<Omega> M) ?infm" |
852 unfolding sigma_def |
|
853 by (rule measure_down [OF mls], rule sigma_algebra_sigma_sets) |
679 by (rule measure_down [OF mls], rule sigma_algebra_sigma_sets) |
854 (simp_all add: sgs_sb space_closed) |
680 (simp_all add: sgs_sb space_closed) |
855 thus ?thesis using inf_measure_agrees [OF posf ca] |
681 thus ?thesis using inf_measure_agrees [OF posf ca] |
856 by (intro exI[of _ ?infm]) auto |
682 by (intro exI[of _ ?infm]) auto |
857 qed |
683 qed |