1233 using pointwise by auto |
1233 using pointwise by auto |
1234 qed fact |
1234 qed fact |
1235 qed fact |
1235 qed fact |
1236 qed |
1236 qed |
1237 |
1237 |
|
1238 lemma integrableI_bounded_set: |
|
1239 fixes f :: "'a \<Rightarrow> 'b::{banach, second_countable_topology}" |
|
1240 assumes [measurable]: "A \<in> sets M" "f \<in> borel_measurable M" |
|
1241 assumes finite: "emeasure M A < \<infinity>" |
|
1242 and bnd: "AE x in M. x \<in> A \<longrightarrow> norm (f x) \<le> B" |
|
1243 and null: "AE x in M. x \<notin> A \<longrightarrow> f x = 0" |
|
1244 shows "integrable M f" |
|
1245 proof (rule integrableI_bounded) |
|
1246 { fix x :: 'b have "norm x \<le> B \<Longrightarrow> 0 \<le> B" |
|
1247 using norm_ge_zero[of x] by arith } |
|
1248 with bnd null have "(\<integral>\<^sup>+ x. ereal (norm (f x)) \<partial>M) \<le> (\<integral>\<^sup>+ x. ereal (max 0 B) * indicator A x \<partial>M)" |
|
1249 by (intro nn_integral_mono_AE) (auto split: split_indicator split_max) |
|
1250 also have "\<dots> < \<infinity>" |
|
1251 using finite by (subst nn_integral_cmult_indicator) (auto simp: max_def) |
|
1252 finally show "(\<integral>\<^sup>+ x. ereal (norm (f x)) \<partial>M) < \<infinity>" . |
|
1253 qed simp |
|
1254 |
|
1255 lemma integrableI_bounded_set_indicator: |
|
1256 fixes f :: "'a \<Rightarrow> 'b::{banach, second_countable_topology}" |
|
1257 shows "A \<in> sets M \<Longrightarrow> f \<in> borel_measurable M \<Longrightarrow> |
|
1258 emeasure M A < \<infinity> \<Longrightarrow> (AE x in M. x \<in> A \<longrightarrow> norm (f x) \<le> B) \<Longrightarrow> |
|
1259 integrable M (\<lambda>x. indicator A x *\<^sub>R f x)" |
|
1260 by (rule integrableI_bounded_set[where A=A]) auto |
|
1261 |
1238 lemma integrableI_nonneg: |
1262 lemma integrableI_nonneg: |
1239 fixes f :: "'a \<Rightarrow> real" |
1263 fixes f :: "'a \<Rightarrow> real" |
1240 assumes "f \<in> borel_measurable M" "AE x in M. 0 \<le> f x" "(\<integral>\<^sup>+x. f x \<partial>M) < \<infinity>" |
1264 assumes "f \<in> borel_measurable M" "AE x in M. 0 \<le> f x" "(\<integral>\<^sup>+x. f x \<partial>M) < \<infinity>" |
1241 shows "integrable M f" |
1265 shows "integrable M f" |
1242 proof - |
1266 proof - |
1265 by (intro nn_integral_mono_AE) auto |
1289 by (intro nn_integral_mono_AE) auto |
1266 also assume "(\<integral>\<^sup>+ x. ereal (norm (f x)) \<partial>M) < \<infinity>" |
1290 also assume "(\<integral>\<^sup>+ x. ereal (norm (f x)) \<partial>M) < \<infinity>" |
1267 finally show "(\<integral>\<^sup>+ x. ereal (norm (g x)) \<partial>M) < \<infinity>" . |
1291 finally show "(\<integral>\<^sup>+ x. ereal (norm (g x)) \<partial>M) < \<infinity>" . |
1268 qed |
1292 qed |
1269 |
1293 |
|
1294 lemma integrable_mult_indicator: |
|
1295 fixes f :: "'a \<Rightarrow> 'b::{banach, second_countable_topology}" |
|
1296 shows "A \<in> sets M \<Longrightarrow> integrable M f \<Longrightarrow> integrable M (\<lambda>x. indicator A x *\<^sub>R f x)" |
|
1297 by (rule integrable_bound[of M f]) (auto split: split_indicator) |
|
1298 |
1270 lemma integrable_abs[simp, intro]: |
1299 lemma integrable_abs[simp, intro]: |
1271 fixes f :: "'a \<Rightarrow> real" |
1300 fixes f :: "'a \<Rightarrow> real" |
1272 assumes [measurable]: "integrable M f" shows "integrable M (\<lambda>x. \<bar>f x\<bar>)" |
1301 assumes [measurable]: "integrable M f" shows "integrable M (\<lambda>x. \<bar>f x\<bar>)" |
1273 using assms by (rule integrable_bound) auto |
1302 using assms by (rule integrable_bound) auto |
1274 |
1303 |
1280 lemma integrable_norm_cancel: |
1309 lemma integrable_norm_cancel: |
1281 fixes f :: "'a \<Rightarrow> 'b::{banach, second_countable_topology}" |
1310 fixes f :: "'a \<Rightarrow> 'b::{banach, second_countable_topology}" |
1282 assumes [measurable]: "integrable M (\<lambda>x. norm (f x))" "f \<in> borel_measurable M" shows "integrable M f" |
1311 assumes [measurable]: "integrable M (\<lambda>x. norm (f x))" "f \<in> borel_measurable M" shows "integrable M f" |
1283 using assms by (rule integrable_bound) auto |
1312 using assms by (rule integrable_bound) auto |
1284 |
1313 |
|
1314 lemma integrable_norm_iff: |
|
1315 fixes f :: "'a \<Rightarrow> 'b::{banach, second_countable_topology}" |
|
1316 shows "f \<in> borel_measurable M \<Longrightarrow> integrable M (\<lambda>x. norm (f x)) \<longleftrightarrow> integrable M f" |
|
1317 by (auto intro: integrable_norm_cancel) |
|
1318 |
1285 lemma integrable_abs_cancel: |
1319 lemma integrable_abs_cancel: |
1286 fixes f :: "'a \<Rightarrow> real" |
1320 fixes f :: "'a \<Rightarrow> real" |
1287 assumes [measurable]: "integrable M (\<lambda>x. \<bar>f x\<bar>)" "f \<in> borel_measurable M" shows "integrable M f" |
1321 assumes [measurable]: "integrable M (\<lambda>x. \<bar>f x\<bar>)" "f \<in> borel_measurable M" shows "integrable M f" |
1288 using assms by (rule integrable_bound) auto |
1322 using assms by (rule integrable_bound) auto |
|
1323 |
|
1324 lemma integrable_abs_iff: |
|
1325 fixes f :: "'a \<Rightarrow> real" |
|
1326 shows "f \<in> borel_measurable M \<Longrightarrow> integrable M (\<lambda>x. \<bar>f x\<bar>) \<longleftrightarrow> integrable M f" |
|
1327 by (auto intro: integrable_abs_cancel) |
1289 |
1328 |
1290 lemma integrable_max[simp, intro]: |
1329 lemma integrable_max[simp, intro]: |
1291 fixes f :: "'a \<Rightarrow> real" |
1330 fixes f :: "'a \<Rightarrow> real" |
1292 assumes fg[measurable]: "integrable M f" "integrable M g" |
1331 assumes fg[measurable]: "integrable M f" "integrable M g" |
1293 shows "integrable M (\<lambda>x. max (f x) (g x))" |
1332 shows "integrable M (\<lambda>x. max (f x) (g x))" |
1327 using * by (subst not_integrable_integral_eq) (auto simp: integrable_indicator_iff) |
1366 using * by (subst not_integrable_integral_eq) (auto simp: integrable_indicator_iff) |
1328 also have "\<dots> = measure M (A \<inter> space M)" |
1367 also have "\<dots> = measure M (A \<inter> space M)" |
1329 using * by (auto simp: measure_def emeasure_notin_sets) |
1368 using * by (auto simp: measure_def emeasure_notin_sets) |
1330 finally show ?thesis . |
1369 finally show ?thesis . |
1331 qed |
1370 qed |
|
1371 |
|
1372 lemma integrable_discrete_difference: |
|
1373 fixes f :: "'a \<Rightarrow> 'b::{banach, second_countable_topology}" |
|
1374 assumes X: "countable X" |
|
1375 assumes null: "\<And>x. x \<in> X \<Longrightarrow> emeasure M {x} = 0" |
|
1376 assumes sets: "\<And>x. x \<in> X \<Longrightarrow> {x} \<in> sets M" |
|
1377 assumes eq: "\<And>x. x \<in> space M \<Longrightarrow> x \<notin> X \<Longrightarrow> f x = g x" |
|
1378 shows "integrable M f \<longleftrightarrow> integrable M g" |
|
1379 unfolding integrable_iff_bounded |
|
1380 proof (rule conj_cong) |
|
1381 { assume "f \<in> borel_measurable M" then have "g \<in> borel_measurable M" |
|
1382 by (rule measurable_discrete_difference[where X=X]) (auto simp: assms) } |
|
1383 moreover |
|
1384 { assume "g \<in> borel_measurable M" then have "f \<in> borel_measurable M" |
|
1385 by (rule measurable_discrete_difference[where X=X]) (auto simp: assms) } |
|
1386 ultimately show "f \<in> borel_measurable M \<longleftrightarrow> g \<in> borel_measurable M" .. |
|
1387 next |
|
1388 have "AE x in M. x \<notin> X" |
|
1389 by (rule AE_discrete_difference) fact+ |
|
1390 then have "(\<integral>\<^sup>+ x. norm (f x) \<partial>M) = (\<integral>\<^sup>+ x. norm (g x) \<partial>M)" |
|
1391 by (intro nn_integral_cong_AE) (auto simp: eq) |
|
1392 then show "(\<integral>\<^sup>+ x. norm (f x) \<partial>M) < \<infinity> \<longleftrightarrow> (\<integral>\<^sup>+ x. norm (g x) \<partial>M) < \<infinity>" |
|
1393 by simp |
|
1394 qed |
|
1395 |
|
1396 lemma integral_discrete_difference: |
|
1397 fixes f :: "'a \<Rightarrow> 'b::{banach, second_countable_topology}" |
|
1398 assumes X: "countable X" |
|
1399 assumes null: "\<And>x. x \<in> X \<Longrightarrow> emeasure M {x} = 0" |
|
1400 assumes sets: "\<And>x. x \<in> X \<Longrightarrow> {x} \<in> sets M" |
|
1401 assumes eq: "\<And>x. x \<in> space M \<Longrightarrow> x \<notin> X \<Longrightarrow> f x = g x" |
|
1402 shows "integral\<^sup>L M f = integral\<^sup>L M g" |
|
1403 proof (rule integral_eq_cases) |
|
1404 show eq: "integrable M f \<longleftrightarrow> integrable M g" |
|
1405 by (rule integrable_discrete_difference[where X=X]) fact+ |
|
1406 |
|
1407 assume f: "integrable M f" |
|
1408 show "integral\<^sup>L M f = integral\<^sup>L M g" |
|
1409 proof (rule integral_cong_AE) |
|
1410 show "f \<in> borel_measurable M" "g \<in> borel_measurable M" |
|
1411 using f eq by (auto intro: borel_measurable_integrable) |
|
1412 |
|
1413 have "AE x in M. x \<notin> X" |
|
1414 by (rule AE_discrete_difference) fact+ |
|
1415 with AE_space show "AE x in M. f x = g x" |
|
1416 by eventually_elim fact |
|
1417 qed |
|
1418 qed |
|
1419 |
|
1420 lemma has_bochner_integral_discrete_difference: |
|
1421 fixes f :: "'a \<Rightarrow> 'b::{banach, second_countable_topology}" |
|
1422 assumes X: "countable X" |
|
1423 assumes null: "\<And>x. x \<in> X \<Longrightarrow> emeasure M {x} = 0" |
|
1424 assumes sets: "\<And>x. x \<in> X \<Longrightarrow> {x} \<in> sets M" |
|
1425 assumes eq: "\<And>x. x \<in> space M \<Longrightarrow> x \<notin> X \<Longrightarrow> f x = g x" |
|
1426 shows "has_bochner_integral M f x \<longleftrightarrow> has_bochner_integral M g x" |
|
1427 using integrable_discrete_difference[of X M f g, OF assms] |
|
1428 using integral_discrete_difference[of X M f g, OF assms] |
|
1429 by (metis has_bochner_integral_iff) |
1332 |
1430 |
1333 lemma |
1431 lemma |
1334 fixes f :: "'a \<Rightarrow> 'b::{banach, second_countable_topology}" and w :: "'a \<Rightarrow> real" |
1432 fixes f :: "'a \<Rightarrow> 'b::{banach, second_countable_topology}" and w :: "'a \<Rightarrow> real" |
1335 assumes "f \<in> borel_measurable M" "\<And>i. s i \<in> borel_measurable M" "integrable M w" |
1433 assumes "f \<in> borel_measurable M" "\<And>i. s i \<in> borel_measurable M" "integrable M w" |
1336 assumes lim: "AE x in M. (\<lambda>i. s i x) ----> f x" |
1434 assumes lim: "AE x in M. (\<lambda>i. s i x) ----> f x" |
2186 assumes int: "integrable M X" "integrable M Y" |
2284 assumes int: "integrable M X" "integrable M Y" |
2187 assumes gt: "AE x in M. X x < Y x" "emeasure M (space M) \<noteq> 0" |
2285 assumes gt: "AE x in M. X x < Y x" "emeasure M (space M) \<noteq> 0" |
2188 shows "integral\<^sup>L M X < integral\<^sup>L M Y" |
2286 shows "integral\<^sup>L M X < integral\<^sup>L M Y" |
2189 using gt by (intro integral_less_AE[OF int, where A="space M"]) auto |
2287 using gt by (intro integral_less_AE[OF int, where A="space M"]) auto |
2190 |
2288 |
2191 lemma integrable_mult_indicator: |
|
2192 fixes f :: "'a \<Rightarrow> real" |
|
2193 shows "A \<in> sets M \<Longrightarrow> integrable M f \<Longrightarrow> integrable M (\<lambda>x. f x * indicator A x)" |
|
2194 by (rule integrable_bound[where f="\<lambda>x. \<bar>f x\<bar>"]) (auto split: split_indicator) |
|
2195 |
|
2196 lemma tendsto_integral_at_top: |
2289 lemma tendsto_integral_at_top: |
2197 fixes f :: "real \<Rightarrow> real" |
2290 fixes f :: "real \<Rightarrow> 'a::{banach, second_countable_topology}" |
2198 assumes M: "sets M = sets borel" and f[measurable]: "integrable M f" |
2291 assumes [simp]: "sets M = sets borel" and f[measurable]: "integrable M f" |
2199 shows "((\<lambda>y. \<integral> x. f x * indicator {.. y} x \<partial>M) ---> \<integral> x. f x \<partial>M) at_top" |
2292 shows "((\<lambda>y. \<integral> x. indicator {.. y} x *\<^sub>R f x \<partial>M) ---> \<integral> x. f x \<partial>M) at_top" |
2200 proof - |
2293 proof (rule tendsto_at_topI_sequentially) |
2201 have M_measure[simp]: "borel_measurable M = borel_measurable borel" |
2294 fix X :: "nat \<Rightarrow> real" assume "filterlim X at_top sequentially" |
2202 using M by (simp add: sets_eq_imp_space_eq measurable_def) |
2295 show "(\<lambda>n. \<integral>x. indicator {..X n} x *\<^sub>R f x \<partial>M) ----> integral\<^sup>L M f" |
2203 { fix f :: "real \<Rightarrow> real" assume f: "integrable M f" "\<And>x. 0 \<le> f x" |
2296 proof (rule integral_dominated_convergence) |
2204 then have [measurable]: "f \<in> borel_measurable borel" |
2297 show "integrable M (\<lambda>x. norm (f x))" |
2205 by (simp add: real_integrable_def) |
2298 by (rule integrable_norm) fact |
2206 have "((\<lambda>y. \<integral> x. f x * indicator {.. y} x \<partial>M) ---> \<integral> x. f x \<partial>M) at_top" |
2299 show "AE x in M. (\<lambda>n. indicator {..X n} x *\<^sub>R f x) ----> f x" |
2207 proof (rule tendsto_at_topI_sequentially) |
2300 proof |
2208 have int: "\<And>n. integrable M (\<lambda>x. f x * indicator {.. n} x)" |
2301 fix x |
2209 by (rule integrable_mult_indicator) (auto simp: M f) |
2302 from `filterlim X at_top sequentially` |
2210 show "(\<lambda>n. \<integral> x. f x * indicator {..real n} x \<partial>M) ----> integral\<^sup>L M f" |
2303 have "eventually (\<lambda>n. x \<le> X n) sequentially" |
2211 proof (rule integral_dominated_convergence) |
2304 unfolding filterlim_at_top_ge[where c=x] by auto |
2212 { fix x have "eventually (\<lambda>n. f x * indicator {..real n} x = f x) sequentially" |
2305 then show "(\<lambda>n. indicator {..X n} x *\<^sub>R f x) ----> f x" |
2213 by (rule eventually_sequentiallyI[of "natceiling x"]) |
2306 by (intro Lim_eventually) (auto split: split_indicator elim!: eventually_elim1) |
2214 (auto split: split_indicator simp: natceiling_le_eq) } |
2307 qed |
2215 from filterlim_cong[OF refl refl this] |
2308 fix n show "AE x in M. norm (indicator {..X n} x *\<^sub>R f x) \<le> norm (f x)" |
2216 show "AE x in M. (\<lambda>n. f x * indicator {..real n} x) ----> f x" |
2309 by (auto split: split_indicator) |
2217 by (simp add: tendsto_const) |
2310 qed auto |
2218 show "\<And>j. AE x in M. norm (f x * indicator {.. j} x) \<le> f x" |
|
2219 using f(2) by (intro AE_I2) (auto split: split_indicator) |
|
2220 qed (simp | fact)+ |
|
2221 show "mono (\<lambda>y. \<integral> x. f x * indicator {..y} x \<partial>M)" |
|
2222 by (intro monoI integral_mono int) (auto split: split_indicator intro: f) |
|
2223 qed } |
|
2224 note nonneg = this |
|
2225 let ?P = "\<lambda>y. \<integral> x. max 0 (f x) * indicator {..y} x \<partial>M" |
|
2226 let ?N = "\<lambda>y. \<integral> x. max 0 (- f x) * indicator {..y} x \<partial>M" |
|
2227 let ?p = "integral\<^sup>L M (\<lambda>x. max 0 (f x))" |
|
2228 let ?n = "integral\<^sup>L M (\<lambda>x. max 0 (- f x))" |
|
2229 have "(?P ---> ?p) at_top" "(?N ---> ?n) at_top" |
|
2230 by (auto intro!: nonneg f) |
|
2231 note tendsto_diff[OF this] |
|
2232 also have "(\<lambda>y. ?P y - ?N y) = (\<lambda>y. \<integral> x. f x * indicator {..y} x \<partial>M)" |
|
2233 by (subst integral_diff[symmetric]) |
|
2234 (auto intro!: integrable_mult_indicator f integral_cong |
|
2235 simp: M split: split_max) |
|
2236 also have "?p - ?n = integral\<^sup>L M f" |
|
2237 by (subst integral_diff[symmetric]) (auto intro!: f integral_cong simp: M split: split_max) |
|
2238 finally show ?thesis . |
|
2239 qed |
2311 qed |
2240 |
2312 |
2241 lemma |
2313 lemma |
2242 fixes f :: "real \<Rightarrow> real" |
2314 fixes f :: "real \<Rightarrow> real" |
2243 assumes M: "sets M = sets borel" |
2315 assumes M: "sets M = sets borel" |