equal
deleted
inserted
replaced
472 with f have "simple_bochner_integral M f = (\<integral>\<^sup>Sx. f x \<partial>M)" |
472 with f have "simple_bochner_integral M f = (\<integral>\<^sup>Sx. f x \<partial>M)" |
473 unfolding simple_integral_def |
473 unfolding simple_integral_def |
474 by (subst simple_bochner_integral_partition[OF f(1), where g="\<lambda>x. ennreal (f x)" and v=enn2real]) |
474 by (subst simple_bochner_integral_partition[OF f(1), where g="\<lambda>x. ennreal (f x)" and v=enn2real]) |
475 (auto intro: f simple_function_compose1 elim: simple_bochner_integrable.cases |
475 (auto intro: f simple_function_compose1 elim: simple_bochner_integrable.cases |
476 intro!: sum.cong ennreal_cong_mult |
476 intro!: sum.cong ennreal_cong_mult |
477 simp: sum_ennreal[symmetric] ac_simps ennreal_mult |
477 simp: ac_simps ennreal_mult |
478 simp del: sum_ennreal) |
478 reorient: sum_ennreal) |
479 also have "\<dots> = (\<integral>\<^sup>+x. f x \<partial>M)" |
479 also have "\<dots> = (\<integral>\<^sup>+x. f x \<partial>M)" |
480 using f |
480 using f |
481 by (intro nn_integral_eq_simple_integral[symmetric]) |
481 by (intro nn_integral_eq_simple_integral[symmetric]) |
482 (auto simp: simple_function_compose1 simple_bochner_integrable.simps) |
482 (auto simp: simple_function_compose1 simple_bochner_integrable.simps) |
483 finally show ?thesis . |
483 finally show ?thesis . |
501 by (auto intro!: simple_bochner_integral_norm_bound) |
501 by (auto intro!: simple_bochner_integral_norm_bound) |
502 also have "\<dots> = (\<integral>\<^sup>+x. norm (s x - t x) \<partial>M)" |
502 also have "\<dots> = (\<integral>\<^sup>+x. norm (s x - t x) \<partial>M)" |
503 using simple_bochner_integrable_compose2[of "\<lambda>x y. norm (x - y)" M "s" "t"] s t |
503 using simple_bochner_integrable_compose2[of "\<lambda>x y. norm (x - y)" M "s" "t"] s t |
504 by (auto intro!: simple_bochner_integral_eq_nn_integral) |
504 by (auto intro!: simple_bochner_integral_eq_nn_integral) |
505 also have "\<dots> \<le> (\<integral>\<^sup>+x. ennreal (norm (f x - s x)) + ennreal (norm (f x - t x)) \<partial>M)" |
505 also have "\<dots> \<le> (\<integral>\<^sup>+x. ennreal (norm (f x - s x)) + ennreal (norm (f x - t x)) \<partial>M)" |
506 by (auto intro!: nn_integral_mono simp: ennreal_plus[symmetric] simp del: ennreal_plus) |
506 by (auto intro!: nn_integral_mono reorient: ennreal_plus) |
507 (metis (erased, hide_lams) add_diff_cancel_left add_diff_eq diff_add_eq order_trans |
507 (metis (erased, hide_lams) add_diff_cancel_left add_diff_eq diff_add_eq order_trans |
508 norm_minus_commute norm_triangle_ineq4 order_refl) |
508 norm_minus_commute norm_triangle_ineq4 order_refl) |
509 also have "\<dots> = ?S + ?T" |
509 also have "\<dots> = ?S + ?T" |
510 by (rule nn_integral_add) auto |
510 by (rule nn_integral_add) auto |
511 finally show ?thesis . |
511 finally show ?thesis . |
591 show "eventually (\<lambda>i. ?f i \<le> (\<integral>\<^sup>+ x. (norm (f x - sf i x)) \<partial>M) + \<integral>\<^sup>+ x. (norm (g x - sg i x)) \<partial>M) sequentially" |
591 show "eventually (\<lambda>i. ?f i \<le> (\<integral>\<^sup>+ x. (norm (f x - sf i x)) \<partial>M) + \<integral>\<^sup>+ x. (norm (g x - sg i x)) \<partial>M) sequentially" |
592 (is "eventually (\<lambda>i. ?f i \<le> ?g i) sequentially") |
592 (is "eventually (\<lambda>i. ?f i \<le> ?g i) sequentially") |
593 proof (intro always_eventually allI) |
593 proof (intro always_eventually allI) |
594 fix i have "?f i \<le> (\<integral>\<^sup>+ x. (norm (f x - sf i x)) + ennreal (norm (g x - sg i x)) \<partial>M)" |
594 fix i have "?f i \<le> (\<integral>\<^sup>+ x. (norm (f x - sf i x)) + ennreal (norm (g x - sg i x)) \<partial>M)" |
595 by (auto intro!: nn_integral_mono norm_diff_triangle_ineq |
595 by (auto intro!: nn_integral_mono norm_diff_triangle_ineq |
596 simp del: ennreal_plus simp add: ennreal_plus[symmetric]) |
596 reorient: ennreal_plus) |
597 also have "\<dots> = ?g i" |
597 also have "\<dots> = ?g i" |
598 by (intro nn_integral_add) auto |
598 by (intro nn_integral_add) auto |
599 finally show "?f i \<le> ?g i" . |
599 finally show "?f i \<le> ?g i" . |
600 qed |
600 qed |
601 show "?g \<longlonglongrightarrow> 0" |
601 show "?g \<longlonglongrightarrow> 0" |
744 also have "\<dots> < \<infinity>" |
744 also have "\<dots> < \<infinity>" |
745 using s by (subst nn_integral_cmult_indicator) (auto simp: \<open>0 \<le> m\<close> simple_bochner_integrable.simps ennreal_mult_less_top less_top) |
745 using s by (subst nn_integral_cmult_indicator) (auto simp: \<open>0 \<le> m\<close> simple_bochner_integrable.simps ennreal_mult_less_top less_top) |
746 finally have s_fin: "(\<integral>\<^sup>+x. norm (s i x) \<partial>M) < \<infinity>" . |
746 finally have s_fin: "(\<integral>\<^sup>+x. norm (s i x) \<partial>M) < \<infinity>" . |
747 |
747 |
748 have "(\<integral>\<^sup>+ x. norm (f x) \<partial>M) \<le> (\<integral>\<^sup>+ x. ennreal (norm (f x - s i x)) + ennreal (norm (s i x)) \<partial>M)" |
748 have "(\<integral>\<^sup>+ x. norm (f x) \<partial>M) \<le> (\<integral>\<^sup>+ x. ennreal (norm (f x - s i x)) + ennreal (norm (s i x)) \<partial>M)" |
749 by (auto intro!: nn_integral_mono simp del: ennreal_plus simp add: ennreal_plus[symmetric]) |
749 by (auto intro!: nn_integral_mono reorient: ennreal_plus) |
750 (metis add.commute norm_triangle_sub) |
750 (metis add.commute norm_triangle_sub) |
751 also have "\<dots> = (\<integral>\<^sup>+x. norm (f x - s i x) \<partial>M) + (\<integral>\<^sup>+x. norm (s i x) \<partial>M)" |
751 also have "\<dots> = (\<integral>\<^sup>+x. norm (f x - s i x) \<partial>M) + (\<integral>\<^sup>+x. norm (s i x) \<partial>M)" |
752 by (rule nn_integral_add) auto |
752 by (rule nn_integral_add) auto |
753 also have "\<dots> < \<infinity>" |
753 also have "\<dots> < \<infinity>" |
754 using s_fin f_s_fin by auto |
754 using s_fin f_s_fin by auto |
780 by (auto intro!: simple_bochner_integral_norm_bound) |
780 by (auto intro!: simple_bochner_integral_norm_bound) |
781 also have "\<dots> = (\<integral>\<^sup>+x. norm (s n x) \<partial>M)" |
781 also have "\<dots> = (\<integral>\<^sup>+x. norm (s n x) \<partial>M)" |
782 by (intro simple_bochner_integral_eq_nn_integral) |
782 by (intro simple_bochner_integral_eq_nn_integral) |
783 (auto intro: s simple_bochner_integrable_compose2) |
783 (auto intro: s simple_bochner_integrable_compose2) |
784 also have "\<dots> \<le> (\<integral>\<^sup>+x. ennreal (norm (f x - s n x)) + norm (f x) \<partial>M)" |
784 also have "\<dots> \<le> (\<integral>\<^sup>+x. ennreal (norm (f x - s n x)) + norm (f x) \<partial>M)" |
785 by (auto intro!: nn_integral_mono simp del: ennreal_plus simp add: ennreal_plus[symmetric]) |
785 by (auto intro!: nn_integral_mono reorient: ennreal_plus) |
786 (metis add.commute norm_minus_commute norm_triangle_sub) |
786 (metis add.commute norm_minus_commute norm_triangle_sub) |
787 also have "\<dots> = ?t n" |
787 also have "\<dots> = ?t n" |
788 by (rule nn_integral_add) auto |
788 by (rule nn_integral_add) auto |
789 finally show "norm (?s n) \<le> ?t n" . |
789 finally show "norm (?s n) \<le> ?t n" . |
790 qed |
790 qed |
825 by (intro always_eventually allI simple_bochner_integral_bounded s t f) |
825 by (intro always_eventually allI simple_bochner_integral_bounded s t f) |
826 show "(\<lambda>i. ?S i + ?T i) \<longlonglongrightarrow> ennreal 0" |
826 show "(\<lambda>i. ?S i + ?T i) \<longlonglongrightarrow> ennreal 0" |
827 using tendsto_add[OF \<open>?S \<longlonglongrightarrow> 0\<close> \<open>?T \<longlonglongrightarrow> 0\<close>] by simp |
827 using tendsto_add[OF \<open>?S \<longlonglongrightarrow> 0\<close> \<open>?T \<longlonglongrightarrow> 0\<close>] by simp |
828 qed |
828 qed |
829 then have "(\<lambda>i. norm (?s i - ?t i)) \<longlonglongrightarrow> 0" |
829 then have "(\<lambda>i. norm (?s i - ?t i)) \<longlonglongrightarrow> 0" |
830 by (simp add: ennreal_0[symmetric] del: ennreal_0) |
830 by (simp reorient: ennreal_0) |
831 ultimately have "norm (x - y) = 0" |
831 ultimately have "norm (x - y) = 0" |
832 by (rule LIMSEQ_unique) |
832 by (rule LIMSEQ_unique) |
833 then show "x = y" by simp |
833 then show "x = y" by simp |
834 qed |
834 qed |
835 |
835 |
1171 using M[OF n] by auto |
1171 using M[OF n] by auto |
1172 have "norm (?s n - ?s m) \<le> ?S n + ?S m" |
1172 have "norm (?s n - ?s m) \<le> ?S n + ?S m" |
1173 by (intro simple_bochner_integral_bounded s f) |
1173 by (intro simple_bochner_integral_bounded s f) |
1174 also have "\<dots> < ennreal (e / 2) + e / 2" |
1174 also have "\<dots> < ennreal (e / 2) + e / 2" |
1175 by (intro add_strict_mono M n m) |
1175 by (intro add_strict_mono M n m) |
1176 also have "\<dots> = e" using \<open>0<e\<close> by (simp del: ennreal_plus add: ennreal_plus[symmetric]) |
1176 also have "\<dots> = e" using \<open>0<e\<close> by (simp reorient: ennreal_plus) |
1177 finally show "dist (?s n) (?s m) < e" |
1177 finally show "dist (?s n) (?s m) < e" |
1178 using \<open>0<e\<close> by (simp add: dist_norm ennreal_less_iff) |
1178 using \<open>0<e\<close> by (simp add: dist_norm ennreal_less_iff) |
1179 qed |
1179 qed |
1180 qed |
1180 qed |
1181 then obtain x where "?s \<longlonglongrightarrow> x" .. |
1181 then obtain x where "?s \<longlonglongrightarrow> x" .. |
1216 using u' |
1216 using u' |
1217 proof eventually_elim |
1217 proof eventually_elim |
1218 fix x assume "(\<lambda>i. u i x) \<longlonglongrightarrow> u' x" |
1218 fix x assume "(\<lambda>i. u i x) \<longlonglongrightarrow> u' x" |
1219 from tendsto_diff[OF tendsto_const[of "u' x"] this] |
1219 from tendsto_diff[OF tendsto_const[of "u' x"] this] |
1220 show "(\<lambda>i. ennreal (norm (u' x - u i x))) \<longlonglongrightarrow> 0" |
1220 show "(\<lambda>i. ennreal (norm (u' x - u i x))) \<longlonglongrightarrow> 0" |
1221 by (simp add: tendsto_norm_zero_iff ennreal_0[symmetric] del: ennreal_0) |
1221 by (simp add: tendsto_norm_zero_iff reorient: ennreal_0) |
1222 qed |
1222 qed |
1223 qed (insert bnd w_nonneg, auto) |
1223 qed (insert bnd w_nonneg, auto) |
1224 then show ?thesis by simp |
1224 then show ?thesis by simp |
1225 qed |
1225 qed |
1226 |
1226 |
2114 } |
2114 } |
2115 then show "eventually (\<lambda>n. norm((\<integral>x. u n x \<partial>M) - (\<integral>x. f x \<partial>M)) \<le> (\<integral>\<^sup>+x. norm(u n x - f x) \<partial>M)) F" |
2115 then show "eventually (\<lambda>n. norm((\<integral>x. u n x \<partial>M) - (\<integral>x. f x \<partial>M)) \<le> (\<integral>\<^sup>+x. norm(u n x - f x) \<partial>M)) F" |
2116 by auto |
2116 by auto |
2117 qed |
2117 qed |
2118 then have "((\<lambda>n. norm((\<integral>x. u n x \<partial>M) - (\<integral>x. f x \<partial>M))) \<longlongrightarrow> 0) F" |
2118 then have "((\<lambda>n. norm((\<integral>x. u n x \<partial>M) - (\<integral>x. f x \<partial>M))) \<longlongrightarrow> 0) F" |
2119 by (simp add: ennreal_0[symmetric] del: ennreal_0) |
2119 by (simp reorient: ennreal_0) |
2120 then have "((\<lambda>n. ((\<integral>x. u n x \<partial>M) - (\<integral>x. f x \<partial>M))) \<longlongrightarrow> 0) F" using tendsto_norm_zero_iff by blast |
2120 then have "((\<lambda>n. ((\<integral>x. u n x \<partial>M) - (\<integral>x. f x \<partial>M))) \<longlongrightarrow> 0) F" using tendsto_norm_zero_iff by blast |
2121 then show ?thesis using Lim_null by auto |
2121 then show ?thesis using Lim_null by auto |
2122 qed |
2122 qed |
2123 |
2123 |
2124 text \<open>The next lemma asserts that, if a sequence of functions converges in $L^1$, then |
2124 text \<open>The next lemma asserts that, if a sequence of functions converges in $L^1$, then |
2212 moreover then have "liminf (\<lambda>n. ennreal (norm(u (r n) x))) \<le> 0" |
2212 moreover then have "liminf (\<lambda>n. ennreal (norm(u (r n) x))) \<le> 0" |
2213 by (rule order_trans[rotated]) (auto intro: Liminf_le_Limsup) |
2213 by (rule order_trans[rotated]) (auto intro: Liminf_le_Limsup) |
2214 ultimately have "(\<lambda>n. ennreal (norm(u (r n) x))) \<longlonglongrightarrow> 0" |
2214 ultimately have "(\<lambda>n. ennreal (norm(u (r n) x))) \<longlonglongrightarrow> 0" |
2215 using tendsto_Limsup[of sequentially "\<lambda>n. ennreal (norm(u (r n) x))"] by auto |
2215 using tendsto_Limsup[of sequentially "\<lambda>n. ennreal (norm(u (r n) x))"] by auto |
2216 then have "(\<lambda>n. norm(u (r n) x)) \<longlonglongrightarrow> 0" |
2216 then have "(\<lambda>n. norm(u (r n) x)) \<longlonglongrightarrow> 0" |
2217 by (simp add: ennreal_0[symmetric] del: ennreal_0) |
2217 by (simp reorient: ennreal_0) |
2218 then have "(\<lambda>n. u (r n) x) \<longlonglongrightarrow> 0" |
2218 then have "(\<lambda>n. u (r n) x) \<longlonglongrightarrow> 0" |
2219 by (simp add: tendsto_norm_zero_iff) |
2219 by (simp add: tendsto_norm_zero_iff) |
2220 } |
2220 } |
2221 ultimately have "AE x in M. (\<lambda>n. u (r n) x) \<longlonglongrightarrow> 0" by auto |
2221 ultimately have "AE x in M. (\<lambda>n. u (r n) x) \<longlonglongrightarrow> 0" by auto |
2222 then show ?thesis using \<open>strict_mono r\<close> by auto |
2222 then show ?thesis using \<open>strict_mono r\<close> by auto |