@@ -30,7 +30,7 @@ integrate, integration, integrable, integrability
30
30
-/
31
31
32
32
open real nat set finset
33
- open_locale real big_operators
33
+ open_locale real big_operators interval
34
34
variables {a b : ℝ} (n : ℕ)
35
35
36
36
namespace interval_integral
@@ -66,14 +66,14 @@ lemma interval_integrable.div (h : interval_integrable f ν a b) :
66
66
interval_integrable (λ x, f x / c) ν a b :=
67
67
interval_integrable.mul_const c⁻¹ h
68
68
69
- lemma interval_integrable_one_div (h : ∀ x : ℝ, x ∈ interval a b → f x ≠ 0 )
70
- (hf : continuous_on f (interval a b) ) :
69
+ lemma interval_integrable_one_div (h : ∀ x : ℝ, x ∈ [a, b] → f x ≠ 0 )
70
+ (hf : continuous_on f [a, b] ) :
71
71
interval_integrable (λ x, 1 / f x) μ a b :=
72
72
(continuous_on_const.div hf h).interval_integrable
73
73
74
74
@[simp]
75
- lemma interval_integrable_inv (h : ∀ x : ℝ, x ∈ interval a b → f x ≠ 0 )
76
- (hf : continuous_on f (interval a b) ) :
75
+ lemma interval_integrable_inv (h : ∀ x : ℝ, x ∈ [a, b] → f x ≠ 0 )
76
+ (hf : continuous_on f [a, b] ) :
77
77
interval_integrable (λ x, (f x)⁻¹) μ a b :=
78
78
by simpa only [one_div] using interval_integrable_one_div h hf
79
79
@@ -83,12 +83,12 @@ continuous_exp.interval_integrable a b
83
83
84
84
@[simp]
85
85
lemma interval_integrable.log
86
- (hf : continuous_on f (interval a b)) (h : ∀ x : ℝ, x ∈ interval a b → f x ≠ 0 ) :
86
+ (hf : continuous_on f [a, b]) (h : ∀ x : ℝ, x ∈ [a, b] → f x ≠ 0 ) :
87
87
interval_integrable (λ x, log (f x)) μ a b :=
88
88
(continuous_on.log hf h).interval_integrable
89
89
90
90
@[simp]
91
- lemma interval_integrable_log (h : (0 :ℝ) ∉ interval a b ) :
91
+ lemma interval_integrable_log (h : (0 :ℝ) ∉ [a, b] ) :
92
92
interval_integrable log μ a b :=
93
93
interval_integrable.log continuous_on_id $ λ x hx, ne_of_mem_of_not_mem hx h
94
94
@@ -188,6 +188,35 @@ begin
188
188
norm_num [div_sub_div_same, continuous_on_pow],
189
189
end
190
190
191
+ /-- Integral of `|x - a| ^ n` over `Ι a b`. This integral appears in the proof of the
192
+ Picard-Lindelöf/Cauchy-Lipschitz theorem. -/
193
+ lemma integral_pow_abs_sub_interval_oc :
194
+ ∫ x in Ι a b, |x - a| ^ n = |b - a| ^ (n + 1 ) / (n + 1 ) :=
195
+ begin
196
+ cases le_or_lt a b with hab hab,
197
+ { calc ∫ x in Ι a b, |x - a| ^ n = ∫ x in a..b, |x - a| ^ n :
198
+ by rw [interval_oc_of_le hab, ← integral_of_le hab]
199
+ ... = ∫ x in 0 ..(b - a), x ^ n :
200
+ begin
201
+ simp only [integral_comp_sub_right (λ x, |x| ^ n), sub_self],
202
+ refine integral_congr (λ x hx, congr_arg2 has_pow.pow (abs_of_nonneg $ _) rfl),
203
+ rw interval_of_le (sub_nonneg.2 hab) at hx,
204
+ exact hx.1
205
+ end
206
+ ... = |b - a| ^ (n + 1 ) / (n + 1 ) : by simp [abs_of_nonneg (sub_nonneg.2 hab)] },
207
+ { calc ∫ x in Ι a b, |x - a| ^ n = ∫ x in b..a, |x - a| ^ n :
208
+ by rw [interval_oc_of_lt hab, ← integral_of_le hab.le]
209
+ ... = ∫ x in b - a..0 , (-x) ^ n :
210
+ begin
211
+ simp only [integral_comp_sub_right (λ x, |x| ^ n), sub_self],
212
+ refine integral_congr (λ x hx, congr_arg2 has_pow.pow (abs_of_nonpos $ _) rfl),
213
+ rw interval_of_le (sub_nonpos.2 hab.le) at hx,
214
+ exact hx.2
215
+ end
216
+ ... = |b - a| ^ (n + 1 ) / (n + 1 ) :
217
+ by simp [integral_comp_neg (λ x, x ^ n), abs_of_neg (sub_neg.2 hab)] }
218
+ end
219
+
191
220
@[simp]
192
221
lemma integral_id : ∫ x in a..b, x = (b ^ 2 - a ^ 2 ) / 2 :=
193
222
by simpa using integral_pow 1
@@ -197,7 +226,7 @@ lemma integral_one : ∫ x in a..b, (1 : ℝ) = b - a :=
197
226
by simp only [mul_one, smul_eq_mul, integral_const]
198
227
199
228
@[simp]
200
- lemma integral_inv (h : (0 :ℝ) ∉ interval a b ) : ∫ x in a..b, x⁻¹ = log (b / a) :=
229
+ lemma integral_inv (h : (0 :ℝ) ∉ [a, b] ) : ∫ x in a..b, x⁻¹ = log (b / a) :=
201
230
begin
202
231
have h' := λ x hx, ne_of_mem_of_not_mem hx h,
203
232
rw [integral_deriv_eq_sub' _ deriv_log' (λ x hx, differentiable_at_log (h' x hx))
@@ -213,7 +242,7 @@ integral_inv $ not_mem_interval_of_lt ha hb
213
242
lemma integral_inv_of_neg (ha : a < 0 ) (hb : b < 0 ) : ∫ x in a..b, x⁻¹ = log (b / a) :=
214
243
integral_inv $ not_mem_interval_of_gt ha hb
215
244
216
- lemma integral_one_div (h : (0 :ℝ) ∉ interval a b ) : ∫ x : ℝ in a..b, 1 /x = log (b / a) :=
245
+ lemma integral_one_div (h : (0 :ℝ) ∉ [a, b] ) : ∫ x : ℝ in a..b, 1 /x = log (b / a) :=
217
246
by simp only [one_div, integral_inv h]
218
247
219
248
lemma integral_one_div_of_pos (ha : 0 < a) (hb : 0 < b) : ∫ x : ℝ in a..b, 1 /x = log (b / a) :=
@@ -227,7 +256,7 @@ lemma integral_exp : ∫ x in a..b, exp x = exp b - exp a :=
227
256
by rw integral_deriv_eq_sub'; norm_num [continuous_on_exp]
228
257
229
258
@[simp]
230
- lemma integral_log (h : (0 :ℝ) ∉ interval a b ) :
259
+ lemma integral_log (h : (0 :ℝ) ∉ [a, b] ) :
231
260
∫ x in a..b, log x = b * log b - a * log a - b + a :=
232
261
begin
233
262
obtain ⟨h', heq⟩ := ⟨λ x hx, ne_of_mem_of_not_mem hx h, λ x hx, mul_inv_cancel (h' x hx)⟩,
@@ -286,7 +315,7 @@ begin
286
315
have h : ∀ α β γ : ℝ, α * (β * α * γ) = β * (α * α * γ) := λ α β γ, by ring,
287
316
have hu : ∀ x ∈ _, has_deriv_at (λ y, sin y ^ (n + 1 )) ((n + 1 ) * cos x * sin x ^ n) x :=
288
317
λ x hx, by simpa [mul_right_comm] using (has_deriv_at_sin x).pow,
289
- have hv : ∀ x ∈ interval a b , has_deriv_at (-cos) (sin x) x :=
318
+ have hv : ∀ x ∈ [a, b] , has_deriv_at (-cos) (sin x) x :=
290
319
λ x hx, by simpa only [neg_neg] using (has_deriv_at_cos x).neg,
291
320
have H := integral_mul_deriv_eq_deriv_mul hu hv _ _,
292
321
calc ∫ x in a..b, sin x ^ (n + 2 )
@@ -358,7 +387,7 @@ begin
358
387
have h : ∀ α β γ : ℝ, α * (β * α * γ) = β * (α * α * γ) := λ α β γ, by ring,
359
388
have hu : ∀ x ∈ _, has_deriv_at (λ y, cos y ^ (n + 1 )) (-(n + 1 ) * sin x * cos x ^ n) x :=
360
389
λ x hx, by simpa [mul_right_comm, -neg_add_rev] using (has_deriv_at_cos x).pow,
361
- have hv : ∀ x ∈ interval a b , has_deriv_at sin (cos x) x := λ x hx, has_deriv_at_sin x,
390
+ have hv : ∀ x ∈ [a, b] , has_deriv_at sin (cos x) x := λ x hx, has_deriv_at_sin x,
362
391
have H := integral_mul_deriv_eq_deriv_mul hu hv _ _,
363
392
calc ∫ x in a..b, cos x ^ (n + 2 )
364
393
= ∫ x in a..b, cos x ^ (n + 1 ) * cos x : by simp only [pow_succ']
0 commit comments