837 "LBINT x:A. f" == "CONST set_lebesgue_integral CONST lborel A (\<lambda>x. f)" |
837 "LBINT x:A. f" == "CONST set_lebesgue_integral CONST lborel A (\<lambda>x. f)" |
838 |
838 |
839 lemma set_integral_reflect: |
839 lemma set_integral_reflect: |
840 fixes S and f :: "real \<Rightarrow> 'a :: {banach, second_countable_topology}" |
840 fixes S and f :: "real \<Rightarrow> 'a :: {banach, second_countable_topology}" |
841 shows "(LBINT x : S. f x) = (LBINT x : {x. - x \<in> S}. f (- x))" |
841 shows "(LBINT x : S. f x) = (LBINT x : {x. - x \<in> S}. f (- x))" |
|
842 unfolding set_lebesgue_integral_def |
842 by (subst lborel_integral_real_affine[where c="-1" and t=0]) |
843 by (subst lborel_integral_real_affine[where c="-1" and t=0]) |
843 (auto intro!: Bochner_Integration.integral_cong split: split_indicator) |
844 (auto intro!: Bochner_Integration.integral_cong split: split_indicator) |
844 |
845 |
845 lemma borel_integrable_atLeastAtMost': |
846 lemma borel_integrable_atLeastAtMost': |
846 fixes f :: "real \<Rightarrow> 'a::{banach, second_countable_topology}" |
847 fixes f :: "real \<Rightarrow> 'a::{banach, second_countable_topology}" |
847 assumes f: "continuous_on {a..b} f" |
848 assumes f: "continuous_on {a..b} f" |
848 shows "set_integrable lborel {a..b} f" (is "integrable _ ?f") |
849 shows "set_integrable lborel {a..b} f" |
|
850 unfolding set_integrable_def |
849 by (intro borel_integrable_compact compact_Icc f) |
851 by (intro borel_integrable_compact compact_Icc f) |
850 |
852 |
851 lemma integral_FTC_atLeastAtMost: |
853 lemma integral_FTC_atLeastAtMost: |
852 fixes f :: "real \<Rightarrow> 'a :: euclidean_space" |
854 fixes f :: "real \<Rightarrow> 'a :: euclidean_space" |
853 assumes "a \<le> b" |
855 assumes "a \<le> b" |
891 |
895 |
892 lemma has_integral_set_lebesgue: |
896 lemma has_integral_set_lebesgue: |
893 fixes f :: "'a::euclidean_space \<Rightarrow> 'b::euclidean_space" |
897 fixes f :: "'a::euclidean_space \<Rightarrow> 'b::euclidean_space" |
894 assumes f: "set_integrable lebesgue S f" |
898 assumes f: "set_integrable lebesgue S f" |
895 shows "(f has_integral (LINT x:S|lebesgue. f x)) S" |
899 shows "(f has_integral (LINT x:S|lebesgue. f x)) S" |
896 using has_integral_integral_lebesgue[OF f] |
900 using has_integral_integral_lebesgue f |
897 by (simp_all add: indicator_def if_distrib[of "\<lambda>x. x *\<^sub>R f _"] has_integral_restrict_UNIV cong: if_cong) |
901 by (fastforce simp add: set_integrable_def set_lebesgue_integral_def indicator_def if_distrib[of "\<lambda>x. x *\<^sub>R f _"] cong: if_cong) |
898 |
902 |
899 lemma set_lebesgue_integral_eq_integral: |
903 lemma set_lebesgue_integral_eq_integral: |
900 fixes f :: "'a::euclidean_space \<Rightarrow> 'b::euclidean_space" |
904 fixes f :: "'a::euclidean_space \<Rightarrow> 'b::euclidean_space" |
901 assumes f: "set_integrable lebesgue S f" |
905 assumes f: "set_integrable lebesgue S f" |
902 shows "f integrable_on S" "LINT x:S | lebesgue. f x = integral S f" |
906 shows "f integrable_on S" "LINT x:S | lebesgue. f x = integral S f" |
913 where "f absolutely_integrable_on s \<equiv> set_integrable lebesgue s f" |
917 where "f absolutely_integrable_on s \<equiv> set_integrable lebesgue s f" |
914 |
918 |
915 |
919 |
916 lemma absolutely_integrable_on_def: |
920 lemma absolutely_integrable_on_def: |
917 fixes f :: "'a::euclidean_space \<Rightarrow> 'b::euclidean_space" |
921 fixes f :: "'a::euclidean_space \<Rightarrow> 'b::euclidean_space" |
918 shows "f absolutely_integrable_on s \<longleftrightarrow> f integrable_on s \<and> (\<lambda>x. norm (f x)) integrable_on s" |
922 shows "f absolutely_integrable_on S \<longleftrightarrow> f integrable_on S \<and> (\<lambda>x. norm (f x)) integrable_on S" |
919 proof safe |
923 proof safe |
920 assume f: "f absolutely_integrable_on s" |
924 assume f: "f absolutely_integrable_on S" |
921 then have nf: "integrable lebesgue (\<lambda>x. norm (indicator s x *\<^sub>R f x))" |
925 then have nf: "integrable lebesgue (\<lambda>x. norm (indicator S x *\<^sub>R f x))" |
922 by (intro integrable_norm) |
926 using integrable_norm set_integrable_def by blast |
923 note integrable_on_lebesgue[OF f] integrable_on_lebesgue[OF nf] |
927 show "f integrable_on S" |
924 moreover have |
928 by (rule set_lebesgue_integral_eq_integral[OF f]) |
925 "(\<lambda>x. indicator s x *\<^sub>R f x) = (\<lambda>x. if x \<in> s then f x else 0)" |
929 have "(\<lambda>x. norm (indicator S x *\<^sub>R f x)) = (\<lambda>x. if x \<in> S then norm (f x) else 0)" |
926 "(\<lambda>x. norm (indicator s x *\<^sub>R f x)) = (\<lambda>x. if x \<in> s then norm (f x) else 0)" |
|
927 by auto |
930 by auto |
928 ultimately show "f integrable_on s" "(\<lambda>x. norm (f x)) integrable_on s" |
931 with integrable_on_lebesgue[OF nf] show "(\<lambda>x. norm (f x)) integrable_on S" |
929 by (simp_all add: integrable_restrict_UNIV) |
932 by (simp add: integrable_restrict_UNIV) |
930 next |
933 next |
931 assume f: "f integrable_on s" and nf: "(\<lambda>x. norm (f x)) integrable_on s" |
934 assume f: "f integrable_on S" and nf: "(\<lambda>x. norm (f x)) integrable_on S" |
932 show "f absolutely_integrable_on s" |
935 show "f absolutely_integrable_on S" |
|
936 unfolding set_integrable_def |
933 proof (rule integrableI_bounded) |
937 proof (rule integrableI_bounded) |
934 show "(\<lambda>x. indicator s x *\<^sub>R f x) \<in> borel_measurable lebesgue" |
938 show "(\<lambda>x. indicator S x *\<^sub>R f x) \<in> borel_measurable lebesgue" |
935 using f has_integral_implies_lebesgue_measurable[of f _ s] by (auto simp: integrable_on_def) |
939 using f has_integral_implies_lebesgue_measurable[of f _ S] by (auto simp: integrable_on_def) |
936 show "(\<integral>\<^sup>+ x. ennreal (norm (indicator s x *\<^sub>R f x)) \<partial>lebesgue) < \<infinity>" |
940 show "(\<integral>\<^sup>+ x. ennreal (norm (indicator S x *\<^sub>R f x)) \<partial>lebesgue) < \<infinity>" |
937 using nf nn_integral_has_integral_lebesgue[of "\<lambda>x. norm (f x)" _ s] |
941 using nf nn_integral_has_integral_lebesgue[of "\<lambda>x. norm (f x)" _ S] |
938 by (auto simp: integrable_on_def nn_integral_completion) |
942 by (auto simp: integrable_on_def nn_integral_completion) |
939 qed |
943 qed |
940 qed |
944 qed |
941 |
945 |
942 lemma absolutely_integrable_on_null [intro]: |
946 lemma absolutely_integrable_on_null [intro]: |
949 shows "f absolutely_integrable_on box a b \<longleftrightarrow> |
953 shows "f absolutely_integrable_on box a b \<longleftrightarrow> |
950 f absolutely_integrable_on cbox a b" |
954 f absolutely_integrable_on cbox a b" |
951 by (auto simp: integrable_on_open_interval absolutely_integrable_on_def) |
955 by (auto simp: integrable_on_open_interval absolutely_integrable_on_def) |
952 |
956 |
953 lemma absolutely_integrable_restrict_UNIV: |
957 lemma absolutely_integrable_restrict_UNIV: |
954 "(\<lambda>x. if x \<in> s then f x else 0) absolutely_integrable_on UNIV \<longleftrightarrow> f absolutely_integrable_on s" |
958 "(\<lambda>x. if x \<in> S then f x else 0) absolutely_integrable_on UNIV \<longleftrightarrow> f absolutely_integrable_on S" |
|
959 unfolding set_integrable_def |
955 by (intro arg_cong2[where f=integrable]) auto |
960 by (intro arg_cong2[where f=integrable]) auto |
956 |
961 |
957 lemma absolutely_integrable_onI: |
962 lemma absolutely_integrable_onI: |
958 fixes f :: "'a::euclidean_space \<Rightarrow> 'b::euclidean_space" |
963 fixes f :: "'a::euclidean_space \<Rightarrow> 'b::euclidean_space" |
959 shows "f integrable_on s \<Longrightarrow> (\<lambda>x. norm (f x)) integrable_on s \<Longrightarrow> f absolutely_integrable_on s" |
964 shows "f integrable_on S \<Longrightarrow> (\<lambda>x. norm (f x)) integrable_on S \<Longrightarrow> f absolutely_integrable_on S" |
960 unfolding absolutely_integrable_on_def by auto |
965 unfolding absolutely_integrable_on_def by auto |
961 |
966 |
962 lemma nonnegative_absolutely_integrable_1: |
967 lemma nonnegative_absolutely_integrable_1: |
963 fixes f :: "'a :: euclidean_space \<Rightarrow> real" |
968 fixes f :: "'a :: euclidean_space \<Rightarrow> real" |
964 assumes f: "f integrable_on A" and "\<And>x. x \<in> A \<Longrightarrow> 0 \<le> f x" |
969 assumes f: "f integrable_on A" and "\<And>x. x \<in> A \<Longrightarrow> 0 \<le> f x" |
1555 then have "AE x\<in>A i in M. \<forall>xa\<in>I'. x \<notin> A xa " |
1561 then have "AE x\<in>A i in M. \<forall>xa\<in>I'. x \<notin> A xa " |
1556 by auto |
1562 by auto |
1557 with insert.hyps insert.IH[symmetric] |
1563 with insert.hyps insert.IH[symmetric] |
1558 show ?case |
1564 show ?case |
1559 by (auto intro!: set_integral_Un_AE sets.finite_UN f set_integrable_UN) |
1565 by (auto intro!: set_integral_Un_AE sets.finite_UN f set_integrable_UN) |
1560 qed simp |
1566 qed (simp add: set_lebesgue_integral_def) |
1561 |
1567 |
1562 lemma set_integrable_norm: |
1568 lemma set_integrable_norm: |
1563 fixes f :: "'a \<Rightarrow> 'b::{banach, second_countable_topology}" |
1569 fixes f :: "'a \<Rightarrow> 'b::{banach, second_countable_topology}" |
1564 assumes f: "set_integrable M k f" shows "set_integrable M k (\<lambda>x. norm (f x))" |
1570 assumes f: "set_integrable M k f" shows "set_integrable M k (\<lambda>x. norm (f x))" |
1565 using integrable_norm[OF f] by simp |
1571 using integrable_norm f by (force simp add: set_integrable_def) |
1566 |
1572 |
1567 lemma absolutely_integrable_bounded_variation: |
1573 lemma absolutely_integrable_bounded_variation: |
1568 fixes f :: "'a::euclidean_space \<Rightarrow> 'b::euclidean_space" |
1574 fixes f :: "'a::euclidean_space \<Rightarrow> 'b::euclidean_space" |
1569 assumes f: "f absolutely_integrable_on UNIV" |
1575 assumes f: "f absolutely_integrable_on UNIV" |
1570 obtains B where "\<forall>d. d division_of (\<Union>d) \<longrightarrow> sum (\<lambda>k. norm (integral k f)) d \<le> B" |
1576 obtains B where "\<forall>d. d division_of (\<Union>d) \<longrightarrow> sum (\<lambda>k. norm (integral k f)) d \<le> B" |
1571 proof (rule that[of "integral UNIV (\<lambda>x. norm (f x))"]; safe) |
1577 proof (rule that[of "integral UNIV (\<lambda>x. norm (f x))"]; safe) |
2118 lemma absolutely_integrable_linear: |
2124 lemma absolutely_integrable_linear: |
2119 fixes f :: "'m::euclidean_space \<Rightarrow> 'n::euclidean_space" |
2125 fixes f :: "'m::euclidean_space \<Rightarrow> 'n::euclidean_space" |
2120 and h :: "'n::euclidean_space \<Rightarrow> 'p::euclidean_space" |
2126 and h :: "'n::euclidean_space \<Rightarrow> 'p::euclidean_space" |
2121 shows "f absolutely_integrable_on s \<Longrightarrow> bounded_linear h \<Longrightarrow> (h \<circ> f) absolutely_integrable_on s" |
2127 shows "f absolutely_integrable_on s \<Longrightarrow> bounded_linear h \<Longrightarrow> (h \<circ> f) absolutely_integrable_on s" |
2122 using integrable_bounded_linear[of h lebesgue "\<lambda>x. indicator s x *\<^sub>R f x"] |
2128 using integrable_bounded_linear[of h lebesgue "\<lambda>x. indicator s x *\<^sub>R f x"] |
2123 by (simp add: linear_simps[of h]) |
2129 by (simp add: linear_simps[of h] set_integrable_def) |
|
2130 |
|
2131 lemma absolutely_integrable_zero [simp]: "(\<lambda>x. 0) absolutely_integrable_on S" |
|
2132 by (simp add: set_integrable_def) |
2124 |
2133 |
2125 lemma absolutely_integrable_sum: |
2134 lemma absolutely_integrable_sum: |
2126 fixes f :: "'a \<Rightarrow> 'n::euclidean_space \<Rightarrow> 'm::euclidean_space" |
2135 fixes f :: "'a \<Rightarrow> 'n::euclidean_space \<Rightarrow> 'm::euclidean_space" |
2127 assumes "finite t" and "\<And>a. a \<in> t \<Longrightarrow> (f a) absolutely_integrable_on s" |
2136 assumes "finite T" and "\<And>a. a \<in> T \<Longrightarrow> (f a) absolutely_integrable_on S" |
2128 shows "(\<lambda>x. sum (\<lambda>a. f a x) t) absolutely_integrable_on s" |
2137 shows "(\<lambda>x. sum (\<lambda>a. f a x) T) absolutely_integrable_on S" |
2129 using assms(1,2) by induct auto |
2138 using assms by induction auto |
2130 |
2139 |
2131 lemma absolutely_integrable_integrable_bound: |
2140 lemma absolutely_integrable_integrable_bound: |
2132 fixes f :: "'n::euclidean_space \<Rightarrow> 'm::euclidean_space" |
2141 fixes f :: "'n::euclidean_space \<Rightarrow> 'm::euclidean_space" |
2133 assumes le: "\<forall>x\<in>s. norm (f x) \<le> g x" and f: "f integrable_on s" and g: "g integrable_on s" |
2142 assumes le: "\<And>x. x\<in>S \<Longrightarrow> norm (f x) \<le> g x" and f: "f integrable_on S" and g: "g integrable_on S" |
2134 shows "f absolutely_integrable_on s" |
2143 shows "f absolutely_integrable_on S" |
|
2144 unfolding set_integrable_def |
2135 proof (rule Bochner_Integration.integrable_bound) |
2145 proof (rule Bochner_Integration.integrable_bound) |
2136 show "g absolutely_integrable_on s" |
2146 have "g absolutely_integrable_on S" |
2137 unfolding absolutely_integrable_on_def |
2147 unfolding absolutely_integrable_on_def |
2138 proof |
2148 proof |
2139 show "(\<lambda>x. norm (g x)) integrable_on s" |
2149 show "(\<lambda>x. norm (g x)) integrable_on S" |
2140 using le norm_ge_zero[of "f _"] |
2150 using le norm_ge_zero[of "f _"] |
2141 by (intro integrable_spike_finite[OF _ _ g, of "{}"]) |
2151 by (intro integrable_spike_finite[OF _ _ g, of "{}"]) |
2142 (auto intro!: abs_of_nonneg intro: order_trans simp del: norm_ge_zero) |
2152 (auto intro!: abs_of_nonneg intro: order_trans simp del: norm_ge_zero) |
2143 qed fact |
2153 qed fact |
2144 show "set_borel_measurable lebesgue s f" |
2154 then show "integrable lebesgue (\<lambda>x. indicat_real S x *\<^sub>R g x)" |
|
2155 by (simp add: set_integrable_def) |
|
2156 show "(\<lambda>x. indicat_real S x *\<^sub>R f x) \<in> borel_measurable lebesgue" |
2145 using f by (auto intro: has_integral_implies_lebesgue_measurable simp: integrable_on_def) |
2157 using f by (auto intro: has_integral_implies_lebesgue_measurable simp: integrable_on_def) |
2146 qed (use le in \<open>auto intro!: always_eventually split: split_indicator\<close>) |
2158 qed (use le in \<open>force intro!: always_eventually split: split_indicator\<close>) |
2147 |
2159 |
2148 subsection \<open>Componentwise\<close> |
2160 subsection \<open>Componentwise\<close> |
2149 |
2161 |
2150 proposition absolutely_integrable_componentwise_iff: |
2162 proposition absolutely_integrable_componentwise_iff: |
2151 shows "f absolutely_integrable_on A \<longleftrightarrow> (\<forall>b\<in>Basis. (\<lambda>x. f x \<bullet> b) absolutely_integrable_on A)" |
2163 shows "f absolutely_integrable_on A \<longleftrightarrow> (\<forall>b\<in>Basis. (\<lambda>x. f x \<bullet> b) absolutely_integrable_on A)" |
2403 |
2416 |
2404 subsection \<open>Dominated convergence\<close> |
2417 subsection \<open>Dominated convergence\<close> |
2405 |
2418 |
2406 lemma dominated_convergence: |
2419 lemma dominated_convergence: |
2407 fixes f :: "nat \<Rightarrow> 'n::euclidean_space \<Rightarrow> 'm::euclidean_space" |
2420 fixes f :: "nat \<Rightarrow> 'n::euclidean_space \<Rightarrow> 'm::euclidean_space" |
2408 assumes f: "\<And>k. (f k) integrable_on s" and h: "h integrable_on s" |
2421 assumes f: "\<And>k. (f k) integrable_on S" and h: "h integrable_on S" |
2409 and le: "\<And>k. \<forall>x \<in> s. norm (f k x) \<le> h x" |
2422 and le: "\<And>k x. x \<in> S \<Longrightarrow> norm (f k x) \<le> h x" |
2410 and conv: "\<forall>x \<in> s. (\<lambda>k. f k x) \<longlonglongrightarrow> g x" |
2423 and conv: "\<forall>x \<in> S. (\<lambda>k. f k x) \<longlonglongrightarrow> g x" |
2411 shows "g integrable_on s" "(\<lambda>k. integral s (f k)) \<longlonglongrightarrow> integral s g" |
2424 shows "g integrable_on S" "(\<lambda>k. integral S (f k)) \<longlonglongrightarrow> integral S g" |
2412 proof - |
2425 proof - |
2413 have 3: "h absolutely_integrable_on s" |
2426 have 3: "h absolutely_integrable_on S" |
2414 unfolding absolutely_integrable_on_def |
2427 unfolding absolutely_integrable_on_def |
2415 proof |
2428 proof |
2416 show "(\<lambda>x. norm (h x)) integrable_on s" |
2429 show "(\<lambda>x. norm (h x)) integrable_on S" |
2417 proof (intro integrable_spike_finite[OF _ _ h, of "{}"] ballI) |
2430 proof (intro integrable_spike_finite[OF _ _ h, of "{}"] ballI) |
2418 fix x assume "x \<in> s - {}" then show "norm (h x) = h x" |
2431 fix x assume "x \<in> S - {}" then show "norm (h x) = h x" |
2419 by (metis Diff_empty abs_of_nonneg bot_set_def le norm_ge_zero order_trans real_norm_def) |
2432 by (metis Diff_empty abs_of_nonneg bot_set_def le norm_ge_zero order_trans real_norm_def) |
2420 qed auto |
2433 qed auto |
2421 qed fact |
2434 qed fact |
2422 have 2: "set_borel_measurable lebesgue s (f k)" for k |
2435 have 2: "set_borel_measurable lebesgue S (f k)" for k |
|
2436 unfolding set_borel_measurable_def |
2423 using f by (auto intro: has_integral_implies_lebesgue_measurable simp: integrable_on_def) |
2437 using f by (auto intro: has_integral_implies_lebesgue_measurable simp: integrable_on_def) |
2424 then have 1: "set_borel_measurable lebesgue s g" |
2438 then have 1: "set_borel_measurable lebesgue S g" |
|
2439 unfolding set_borel_measurable_def |
2425 by (rule borel_measurable_LIMSEQ_metric) (use conv in \<open>auto split: split_indicator\<close>) |
2440 by (rule borel_measurable_LIMSEQ_metric) (use conv in \<open>auto split: split_indicator\<close>) |
2426 have 4: "AE x in lebesgue. (\<lambda>i. indicator s x *\<^sub>R f i x) \<longlonglongrightarrow> indicator s x *\<^sub>R g x" |
2441 have 4: "AE x in lebesgue. (\<lambda>i. indicator S x *\<^sub>R f i x) \<longlonglongrightarrow> indicator S x *\<^sub>R g x" |
2427 "AE x in lebesgue. norm (indicator s x *\<^sub>R f k x) \<le> indicator s x *\<^sub>R h x" for k |
2442 "AE x in lebesgue. norm (indicator S x *\<^sub>R f k x) \<le> indicator S x *\<^sub>R h x" for k |
2428 using conv le by (auto intro!: always_eventually split: split_indicator) |
2443 using conv le by (auto intro!: always_eventually split: split_indicator) |
2429 |
2444 have g: "g absolutely_integrable_on S" |
2430 have g: "g absolutely_integrable_on s" |
2445 using 1 2 3 4 unfolding set_borel_measurable_def set_integrable_def |
2431 using 1 2 3 4 by (rule integrable_dominated_convergence) |
2446 by (rule integrable_dominated_convergence) |
2432 then show "g integrable_on s" |
2447 then show "g integrable_on S" |
2433 by (auto simp: absolutely_integrable_on_def) |
2448 by (auto simp: absolutely_integrable_on_def) |
2434 have "(\<lambda>k. (LINT x:s|lebesgue. f k x)) \<longlonglongrightarrow> (LINT x:s|lebesgue. g x)" |
2449 have "(\<lambda>k. (LINT x:S|lebesgue. f k x)) \<longlonglongrightarrow> (LINT x:S|lebesgue. g x)" |
2435 using 1 2 3 4 by (rule integral_dominated_convergence) |
2450 unfolding set_borel_measurable_def set_lebesgue_integral_def |
2436 then show "(\<lambda>k. integral s (f k)) \<longlonglongrightarrow> integral s g" |
2451 using 1 2 3 4 unfolding set_borel_measurable_def set_lebesgue_integral_def set_integrable_def |
|
2452 by (rule integral_dominated_convergence) |
|
2453 then show "(\<lambda>k. integral S (f k)) \<longlonglongrightarrow> integral S g" |
2437 using g absolutely_integrable_integrable_bound[OF le f h] |
2454 using g absolutely_integrable_integrable_bound[OF le f h] |
2438 by (subst (asm) (1 2) set_lebesgue_integral_eq_integral) auto |
2455 by (subst (asm) (1 2) set_lebesgue_integral_eq_integral) auto |
2439 qed |
2456 qed |
2440 |
2457 |
2441 lemma has_integral_dominated_convergence: |
2458 lemma has_integral_dominated_convergence: |
2442 fixes f :: "nat \<Rightarrow> 'n::euclidean_space \<Rightarrow> 'm::euclidean_space" |
2459 fixes f :: "nat \<Rightarrow> 'n::euclidean_space \<Rightarrow> 'm::euclidean_space" |
2443 assumes "\<And>k. (f k has_integral y k) s" "h integrable_on s" |
2460 assumes "\<And>k. (f k has_integral y k) S" "h integrable_on S" |
2444 "\<And>k. \<forall>x\<in>s. norm (f k x) \<le> h x" "\<forall>x\<in>s. (\<lambda>k. f k x) \<longlonglongrightarrow> g x" |
2461 "\<And>k. \<forall>x\<in>S. norm (f k x) \<le> h x" "\<forall>x\<in>S. (\<lambda>k. f k x) \<longlonglongrightarrow> g x" |
2445 and x: "y \<longlonglongrightarrow> x" |
2462 and x: "y \<longlonglongrightarrow> x" |
2446 shows "(g has_integral x) s" |
2463 shows "(g has_integral x) S" |
2447 proof - |
2464 proof - |
2448 have int_f: "\<And>k. (f k) integrable_on s" |
2465 have int_f: "\<And>k. (f k) integrable_on S" |
2449 using assms by (auto simp: integrable_on_def) |
2466 using assms by (auto simp: integrable_on_def) |
2450 have "(g has_integral (integral s g)) s" |
2467 have "(g has_integral (integral S g)) S" |
2451 by (intro integrable_integral dominated_convergence[OF int_f assms(2)]) fact+ |
2468 by (metis assms(2-4) dominated_convergence(1) has_integral_integral int_f) |
2452 moreover have "integral s g = x" |
2469 moreover have "integral S g = x" |
2453 proof (rule LIMSEQ_unique) |
2470 proof (rule LIMSEQ_unique) |
2454 show "(\<lambda>i. integral s (f i)) \<longlonglongrightarrow> x" |
2471 show "(\<lambda>i. integral S (f i)) \<longlonglongrightarrow> x" |
2455 using integral_unique[OF assms(1)] x by simp |
2472 using integral_unique[OF assms(1)] x by simp |
2456 show "(\<lambda>i. integral s (f i)) \<longlonglongrightarrow> integral s g" |
2473 show "(\<lambda>i. integral S (f i)) \<longlonglongrightarrow> integral S g" |
2457 by (intro dominated_convergence[OF int_f assms(2)]) fact+ |
2474 by (metis assms(2) assms(3) assms(4) dominated_convergence(2) int_f) |
2458 qed |
2475 qed |
2459 ultimately show ?thesis |
2476 ultimately show ?thesis |
2460 by simp |
2477 by simp |
2461 qed |
2478 qed |
2462 |
2479 |
2718 using nonneg |
2735 using nonneg |
2719 by (intro absolutely_integrable_onI intl integrable_eq[OF intl]) simp |
2736 by (intro absolutely_integrable_onI intl integrable_eq[OF intl]) simp |
2720 then have "integral (closure S) f = set_lebesgue_integral lebesgue (closure S) f" |
2737 then have "integral (closure S) f = set_lebesgue_integral lebesgue (closure S) f" |
2721 by (intro set_lebesgue_integral_eq_integral(2)[symmetric]) |
2738 by (intro set_lebesgue_integral_eq_integral(2)[symmetric]) |
2722 also have "\<dots> = 0 \<longleftrightarrow> (AE x in lebesgue. indicator (closure S) x *\<^sub>R f x = 0)" |
2739 also have "\<dots> = 0 \<longleftrightarrow> (AE x in lebesgue. indicator (closure S) x *\<^sub>R f x = 0)" |
2723 by (rule integral_nonneg_eq_0_iff_AE[OF af]) (use nonneg in \<open>auto simp: indicator_def\<close>) |
2740 unfolding set_lebesgue_integral_def |
|
2741 proof (rule integral_nonneg_eq_0_iff_AE) |
|
2742 show "integrable lebesgue (\<lambda>x. indicat_real (closure S) x *\<^sub>R f x)" |
|
2743 by (metis af set_integrable_def) |
|
2744 qed (use nonneg in \<open>auto simp: indicator_def\<close>) |
2724 also have "\<dots> \<longleftrightarrow> (AE x in lebesgue. x \<in> {x. x \<in> closure S \<longrightarrow> f x = 0})" |
2745 also have "\<dots> \<longleftrightarrow> (AE x in lebesgue. x \<in> {x. x \<in> closure S \<longrightarrow> f x = 0})" |
2725 by (auto simp: indicator_def) |
2746 by (auto simp: indicator_def) |
2726 finally have "(AE x in lebesgue. x \<in> {x. x \<in> closure S \<longrightarrow> f x = 0})" by simp |
2747 finally have "(AE x in lebesgue. x \<in> {x. x \<in> closure S \<longrightarrow> f x = 0})" by simp |
2727 moreover have "(AE x in lebesgue. x \<in> - frontier S)" |
2748 moreover have "(AE x in lebesgue. x \<in> - frontier S)" |
2728 using zero |
2749 using zero |