127 by (intro that) fact+ |
127 by (intro that) fact+ |
128 qed |
128 qed |
129 |
129 |
130 (* TODO: in this definition, it would be more natural if einterval a b included a and b when |
130 (* TODO: in this definition, it would be more natural if einterval a b included a and b when |
131 they are real. *) |
131 they are real. *) |
132 definition%important interval_lebesgue_integral :: "real measure \<Rightarrow> ereal \<Rightarrow> ereal \<Rightarrow> (real \<Rightarrow> 'a) \<Rightarrow> 'a::{banach, second_countable_topology}" where |
132 definition\<^marker>\<open>tag important\<close> interval_lebesgue_integral :: "real measure \<Rightarrow> ereal \<Rightarrow> ereal \<Rightarrow> (real \<Rightarrow> 'a) \<Rightarrow> 'a::{banach, second_countable_topology}" where |
133 "interval_lebesgue_integral M a b f = |
133 "interval_lebesgue_integral M a b f = |
134 (if a \<le> b then (LINT x:einterval a b|M. f x) else - (LINT x:einterval b a|M. f x))" |
134 (if a \<le> b then (LINT x:einterval a b|M. f x) else - (LINT x:einterval b a|M. f x))" |
135 |
135 |
136 syntax |
136 syntax |
137 "_ascii_interval_lebesgue_integral" :: "pttrn \<Rightarrow> real \<Rightarrow> real \<Rightarrow> real measure \<Rightarrow> real \<Rightarrow> real" |
137 "_ascii_interval_lebesgue_integral" :: "pttrn \<Rightarrow> real \<Rightarrow> real \<Rightarrow> real measure \<Rightarrow> real \<Rightarrow> real" |
138 ("(5LINT _=_.._|_. _)" [0,60,60,61,100] 60) |
138 ("(5LINT _=_.._|_. _)" [0,60,60,61,100] 60) |
139 |
139 |
140 translations |
140 translations |
141 "LINT x=a..b|M. f" == "CONST interval_lebesgue_integral M a b (\<lambda>x. f)" |
141 "LINT x=a..b|M. f" == "CONST interval_lebesgue_integral M a b (\<lambda>x. f)" |
142 |
142 |
143 definition%important interval_lebesgue_integrable :: "real measure \<Rightarrow> ereal \<Rightarrow> ereal \<Rightarrow> (real \<Rightarrow> 'a::{banach, second_countable_topology}) \<Rightarrow> bool" where |
143 definition\<^marker>\<open>tag important\<close> interval_lebesgue_integrable :: "real measure \<Rightarrow> ereal \<Rightarrow> ereal \<Rightarrow> (real \<Rightarrow> 'a::{banach, second_countable_topology}) \<Rightarrow> bool" where |
144 "interval_lebesgue_integrable M a b f = |
144 "interval_lebesgue_integrable M a b f = |
145 (if a \<le> b then set_integrable M (einterval a b) f else set_integrable M (einterval b a) f)" |
145 (if a \<le> b then set_integrable M (einterval a b) f else set_integrable M (einterval b a) f)" |
146 |
146 |
147 syntax |
147 syntax |
148 "_ascii_interval_lebesgue_borel_integral" :: "pttrn \<Rightarrow> real \<Rightarrow> real \<Rightarrow> real \<Rightarrow> real" |
148 "_ascii_interval_lebesgue_borel_integral" :: "pttrn \<Rightarrow> real \<Rightarrow> real \<Rightarrow> real \<Rightarrow> real" |
299 lemma interval_integral_to_infinity_eq: "(LINT x=ereal a..\<infinity> | M. f x) = (LINT x : {a<..} | M. f x)" |
299 lemma interval_integral_to_infinity_eq: "(LINT x=ereal a..\<infinity> | M. f x) = (LINT x : {a<..} | M. f x)" |
300 unfolding interval_lebesgue_integral_def by auto |
300 unfolding interval_lebesgue_integral_def by auto |
301 |
301 |
302 proposition interval_integrable_to_infinity_eq: "(interval_lebesgue_integrable M a \<infinity> f) = |
302 proposition interval_integrable_to_infinity_eq: "(interval_lebesgue_integrable M a \<infinity> f) = |
303 (set_integrable M {a<..} f)" |
303 (set_integrable M {a<..} f)" |
304 unfolding%unimportant interval_lebesgue_integrable_def by auto |
304 unfolding interval_lebesgue_integrable_def by auto |
305 |
305 |
306 subsection\<open>Basic properties of integration over an interval wrt lebesgue measure\<close> |
306 subsection\<open>Basic properties of integration over an interval wrt lebesgue measure\<close> |
307 |
307 |
308 lemma interval_integral_zero [simp]: |
308 lemma interval_integral_zero [simp]: |
309 fixes a b :: ereal |
309 fixes a b :: ereal |
1081 |
1081 |
1082 proposition interval_integral_norm: |
1082 proposition interval_integral_norm: |
1083 fixes f :: "real \<Rightarrow> 'a :: {banach, second_countable_topology}" |
1083 fixes f :: "real \<Rightarrow> 'a :: {banach, second_countable_topology}" |
1084 shows "interval_lebesgue_integrable lborel a b f \<Longrightarrow> a \<le> b \<Longrightarrow> |
1084 shows "interval_lebesgue_integrable lborel a b f \<Longrightarrow> a \<le> b \<Longrightarrow> |
1085 norm (LBINT t=a..b. f t) \<le> LBINT t=a..b. norm (f t)" |
1085 norm (LBINT t=a..b. f t) \<le> LBINT t=a..b. norm (f t)" |
1086 using%unimportant integral_norm_bound[of lborel "\<lambda>x. indicator (einterval a b) x *\<^sub>R f x"] |
1086 using integral_norm_bound[of lborel "\<lambda>x. indicator (einterval a b) x *\<^sub>R f x"] |
1087 by%unimportant (auto simp: interval_lebesgue_integral_def interval_lebesgue_integrable_def set_lebesgue_integral_def) |
1087 by (auto simp: interval_lebesgue_integral_def interval_lebesgue_integrable_def set_lebesgue_integral_def) |
1088 |
1088 |
1089 proposition interval_integral_norm2: |
1089 proposition interval_integral_norm2: |
1090 "interval_lebesgue_integrable lborel a b f \<Longrightarrow> |
1090 "interval_lebesgue_integrable lborel a b f \<Longrightarrow> |
1091 norm (LBINT t=a..b. f t) \<le> \<bar>LBINT t=a..b. norm (f t)\<bar>" |
1091 norm (LBINT t=a..b. f t) \<le> \<bar>LBINT t=a..b. norm (f t)\<bar>" |
1092 proof (induct a b rule: linorder_wlog) |
1092 proof (induct a b rule: linorder_wlog) |