equal
deleted
inserted
replaced
4 Provides lemmas for integration by substitution for the basic integral types. |
4 Provides lemmas for integration by substitution for the basic integral types. |
5 Note that the substitution function must have a nonnegative derivative. |
5 Note that the substitution function must have a nonnegative derivative. |
6 This could probably be weakened somehow. |
6 This could probably be weakened somehow. |
7 *) |
7 *) |
8 |
8 |
9 section \<open>Integration by Substition\<close> |
9 section \<open>Integration by Substition for the Lebesgue integral\<close> |
10 |
10 |
11 theory Lebesgue_Integral_Substitution |
11 theory Lebesgue_Integral_Substitution |
12 imports Interval_Integral |
12 imports Interval_Integral |
13 begin |
13 begin |
14 |
14 |
276 (auto split: split_indicator simp: derivg_nonneg mult_ac) |
276 (auto split: split_indicator simp: derivg_nonneg mult_ac) |
277 finally show ?case by simp |
277 finally show ?case by simp |
278 qed |
278 qed |
279 qed |
279 qed |
280 |
280 |
281 lemma nn_integral_substitution: |
281 theorem nn_integral_substitution: |
282 fixes f :: "real \<Rightarrow> real" |
282 fixes f :: "real \<Rightarrow> real" |
283 assumes Mf[measurable]: "set_borel_measurable borel {g a..g b} f" |
283 assumes Mf[measurable]: "set_borel_measurable borel {g a..g b} f" |
284 assumes derivg: "\<And>x. x \<in> {a..b} \<Longrightarrow> (g has_real_derivative g' x) (at x)" |
284 assumes derivg: "\<And>x. x \<in> {a..b} \<Longrightarrow> (g has_real_derivative g' x) (at x)" |
285 assumes contg': "continuous_on {a..b} g'" |
285 assumes contg': "continuous_on {a..b} g'" |
286 assumes derivg_nonneg: "\<And>x. x \<in> {a..b} \<Longrightarrow> g' x \<ge> 0" |
286 assumes derivg_nonneg: "\<And>x. x \<in> {a..b} \<Longrightarrow> g' x \<ge> 0" |
315 also have "... = \<integral>\<^sup>+x. ennreal (f (g x) * g' x * indicator {a..b} x) \<partial>lborel" |
315 also have "... = \<integral>\<^sup>+x. ennreal (f (g x) * g' x * indicator {a..b} x) \<partial>lborel" |
316 by (intro nn_integral_cong) (auto simp: mult.commute derivg_nonneg ennreal_mult' split: split_indicator) |
316 by (intro nn_integral_cong) (auto simp: mult.commute derivg_nonneg ennreal_mult' split: split_indicator) |
317 finally show ?thesis . |
317 finally show ?thesis . |
318 qed auto |
318 qed auto |
319 |
319 |
320 lemma integral_substitution: |
320 theorem integral_substitution: |
321 assumes integrable: "set_integrable lborel {g a..g b} f" |
321 assumes integrable: "set_integrable lborel {g a..g b} f" |
322 assumes derivg: "\<And>x. x \<in> {a..b} \<Longrightarrow> (g has_real_derivative g' x) (at x)" |
322 assumes derivg: "\<And>x. x \<in> {a..b} \<Longrightarrow> (g has_real_derivative g' x) (at x)" |
323 assumes contg': "continuous_on {a..b} g'" |
323 assumes contg': "continuous_on {a..b} g'" |
324 assumes derivg_nonneg: "\<And>x. x \<in> {a..b} \<Longrightarrow> g' x \<ge> 0" |
324 assumes derivg_nonneg: "\<And>x. x \<in> {a..b} \<Longrightarrow> g' x \<ge> 0" |
325 assumes "a \<le> b" |
325 assumes "a \<le> b" |
382 by (subst real_lebesgue_integral_def) (simp_all add: field_simps) |
382 by (subst real_lebesgue_integral_def) (simp_all add: field_simps) |
383 finally show "(LBINT x. f x * indicator {g a..g b} x) = |
383 finally show "(LBINT x. f x * indicator {g a..g b} x) = |
384 (LBINT x. f (g x) * g' x * indicator {a..b} x)" . |
384 (LBINT x. f (g x) * g' x * indicator {a..b} x)" . |
385 qed |
385 qed |
386 |
386 |
387 lemma interval_integral_substitution: |
387 theorem interval_integral_substitution: |
388 assumes integrable: "set_integrable lborel {g a..g b} f" |
388 assumes integrable: "set_integrable lborel {g a..g b} f" |
389 assumes derivg: "\<And>x. x \<in> {a..b} \<Longrightarrow> (g has_real_derivative g' x) (at x)" |
389 assumes derivg: "\<And>x. x \<in> {a..b} \<Longrightarrow> (g has_real_derivative g' x) (at x)" |
390 assumes contg': "continuous_on {a..b} g'" |
390 assumes contg': "continuous_on {a..b} g'" |
391 assumes derivg_nonneg: "\<And>x. x \<in> {a..b} \<Longrightarrow> g' x \<ge> 0" |
391 assumes derivg_nonneg: "\<And>x. x \<in> {a..b} \<Longrightarrow> g' x \<ge> 0" |
392 assumes "a \<le> b" |
392 assumes "a \<le> b" |