measure_theory.integral.fund_thm_calculus
⟷
Mathlib.MeasureTheory.Integral.FundThmCalculus
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -3,7 +3,7 @@ Copyright (c) 2020 Yury G. Kudryashov. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yury G. Kudryashov, Patrick Massot, Sébastien Gouëzel
-/
-import Analysis.Calculus.FderivMeasurable
+import Analysis.Calculus.FDeriv.Measurable
import Analysis.Calculus.Deriv.Comp
import Analysis.Calculus.Deriv.Add
import Analysis.Calculus.Deriv.Slope
@@ -1493,7 +1493,7 @@ theorem integral_mul_deriv_eq_deriv_mul {u v u' v' : ℝ → A}
∫ x in a..b, u x * v' x = u b * v b - u a * v a - ∫ x in a..b, u' x * v x :=
by
rw [← integral_deriv_mul_eq_sub hu hv hu' hv', ← integral_sub]
- · exact integral_congr fun x hx => by simp only [add_sub_cancel']
+ · exact integral_congr fun x hx => by simp only [add_sub_cancel_left]
·
exact
(hu'.mul_continuous_on (HasDerivAt.continuousOn hv)).add
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -1191,7 +1191,7 @@ theorem sub_le_integral_of_hasDeriv_right_of_le_Ico (hab : a ≤ b) (hcont : Con
filter_upwards [(hderiv t ⟨ht.2.1, ht.2.2⟩).limsup_slope_le' (not_mem_Ioi.2 le_rfl) g'_lt_y,
self_mem_nhdsWithin] with u hu t_lt_u
have := mul_le_mul_of_nonneg_left hu.le (sub_pos.2 t_lt_u).le
- rwa [← smul_eq_mul, sub_smul_slope] at this
+ rwa [← smul_eq_mul, sub_smul_slope] at this
-- combine the previous two bounds to show that `g u - g a` increases less quickly than
-- `∫ x in a..u, G' x`.
have I3 : ∀ᶠ u in 𝓝[>] t, g u - g t ≤ ∫ w in t..u, (G' w).toReal := by
@@ -1261,7 +1261,7 @@ theorem sub_le_integral_of_hasDeriv_right_of_le (hab : a ≤ b) (hcont : Continu
sub_le_integral_of_has_deriv_right_of_le_Ico ht.2 (hcont.mono (Icc_subset_Icc ht.1.le le_rfl))
(fun x hx => hderiv x ⟨ht.1.trans_le hx.1, hx.2⟩)
(φint.mono_set (Icc_subset_Icc ht.1.le le_rfl)) fun x hx => hφg x ⟨ht.1.trans_le hx.1, hx.2⟩
- rw [closure_Ioc a_lt_b.ne] at A
+ rw [closure_Ioc a_lt_b.ne] at A
exact (A (left_mem_Icc.2 hab)).1
#align interval_integral.sub_le_integral_of_has_deriv_right_of_le intervalIntegral.sub_le_integral_of_hasDeriv_right_of_le
-/
@@ -1319,9 +1319,9 @@ theorem integral_eq_sub_of_hasDeriv_right (hcont : ContinuousOn f (uIcc a b))
(hint : IntervalIntegrable f' volume a b) : ∫ y in a..b, f' y = f b - f a :=
by
cases' le_total a b with hab hab
- · simp only [uIcc_of_le, min_eq_left, max_eq_right, hab] at hcont hderiv hint
+ · simp only [uIcc_of_le, min_eq_left, max_eq_right, hab] at hcont hderiv hint
apply integral_eq_sub_of_has_deriv_right_of_le hab hcont hderiv hint
- · simp only [uIcc_of_ge, min_eq_right, max_eq_left, hab] at hcont hderiv
+ · simp only [uIcc_of_ge, min_eq_right, max_eq_left, hab] at hcont hderiv
rw [integral_symm, integral_eq_sub_of_has_deriv_right_of_le hab hcont hderiv hint.symm, neg_sub]
#align interval_integral.integral_eq_sub_of_has_deriv_right intervalIntegral.integral_eq_sub_of_hasDeriv_right
-/
@@ -1427,7 +1427,7 @@ theorem integrableOn_deriv_right_of_nonneg (hcont : ContinuousOn g (Icc a b))
simpa only [has_finite_integral, NNReal.nnnorm_eq] using fint
have A : ∫⁻ x : ℝ in Ioo a b, f x = ENNReal.ofReal (∫ x in Ioo a b, F x) :=
lintegral_coe_eq_integral _ intF
- rw [A] at hf
+ rw [A] at hf
have B : ∫ x : ℝ in Ioo a b, F x ≤ g b - g a :=
by
rw [← integral_Ioc_eq_integral_Ioo, ← intervalIntegral.integral_of_le hab.le]
@@ -1523,7 +1523,7 @@ theorem integral_comp_smul_deriv''' {f f' : ℝ → ℝ} {g : ℝ → E} (hf : C
(hg2 : IntegrableOn (fun x => f' x • (g ∘ f) x) [a, b]) :
∫ x in a..b, f' x • (g ∘ f) x = ∫ u in f a..f b, g u :=
by
- rw [hf.image_uIcc, ← intervalIntegrable_iff'] at hg1
+ rw [hf.image_uIcc, ← intervalIntegrable_iff'] at hg1
have h_cont : ContinuousOn (fun u => ∫ t in f a..f u, g t) [a, b] :=
by
refine' (continuous_on_primitive_interval' hg1 _).comp hf _
@@ -1541,7 +1541,7 @@ theorem integral_comp_smul_deriv''' {f f' : ℝ → ℝ} {g : ℝ → E} (hf : C
replace hg_cont := hg_cont.mono (image_subset f cdsub)
let J := [Inf (f '' [c, d]), Sup (f '' [c, d])]
have hJ : f '' [c, d] = J := (hf.mono (cdsub.trans Ioo_subset_Icc_self)).image_uIcc
- rw [hJ] at hg_cont
+ rw [hJ] at hg_cont
have h2x : f x ∈ J := by rw [← hJ]; exact mem_image_of_mem _ (mem_uIcc_of_le hc.2.le hd.1.le)
have h2g : IntervalIntegrable g volume (f a) (f x) :=
by
@@ -1556,7 +1556,7 @@ theorem integral_comp_smul_deriv''' {f f' : ℝ → ℝ} {g : ℝ → E} (hf : C
rw [← hJ]
refine' (maps_to_image _ _).mono _ subset.rfl
exact Ioo_subset_Icc_self.trans ((Icc_subset_Icc_left hc.2.le).trans Icc_subset_uIcc)
- rw [← intervalIntegrable_iff'] at hg2
+ rw [← intervalIntegrable_iff'] at hg2
simp_rw [integral_eq_sub_of_has_deriv_right h_cont h_der hg2, integral_same, sub_zero]
#align interval_integral.integral_comp_smul_deriv''' intervalIntegral.integral_comp_smul_deriv'''
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -1211,11 +1211,11 @@ theorem sub_le_integral_of_hasDeriv_right_of_le_Ico (hab : a ≤ b) (hcont : Con
_ = ∫ w in a..x, (G' w).toReal :=
by
apply integral_add_adjacent_intervals
- · rw [intervalIntegrable_iff_integrable_Ioc_of_le ht.2.1]
+ · rw [intervalIntegrable_iff_integrableOn_Ioc_of_le ht.2.1]
exact
integrable_on.mono_set G'int
(Ioc_subset_Icc_self.trans (Icc_subset_Icc le_rfl ht.2.2.le))
- · rw [intervalIntegrable_iff_integrable_Ioc_of_le h'x.1.le]
+ · rw [intervalIntegrable_iff_integrableOn_Ioc_of_le h'x.1.le]
apply integrable_on.mono_set G'int
refine' Ioc_subset_Icc_self.trans (Icc_subset_Icc ht.2.1 (h'x.2.trans (min_le_right _ _)))
-- now that we know that `s` contains `[a, b]`, we get the desired result by applying this to `b`.
@@ -1306,7 +1306,7 @@ theorem integral_eq_sub_of_hasDeriv_right_of_le (hab : a ≤ b) (hcont : Continu
exact
integral_eq_sub_of_has_deriv_right_of_le_real hab (g.continuous.comp_continuous_on hcont)
(fun x hx => g.has_fderiv_at.comp_has_deriv_within_at x (hderiv x hx))
- (g.integrable_comp ((intervalIntegrable_iff_integrable_Icc_of_le hab).1 f'int))
+ (g.integrable_comp ((intervalIntegrable_iff_integrableOn_Icc_of_le hab).1 f'int))
#align interval_integral.integral_eq_sub_of_has_deriv_right_of_le intervalIntegral.integral_eq_sub_of_hasDeriv_right_of_le
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -1414,7 +1414,7 @@ theorem integrableOn_deriv_right_of_nonneg (hcont : ContinuousOn g (Icc a b))
exact (hderiv x hx).derivWithin (uniqueDiffWithinAt_Ioi _)
suffices H : ∫⁻ x in Ioo a b, ‖g' x‖₊ ≤ ENNReal.ofReal (g b - g a)
exact ⟨meas_g'.ae_strongly_measurable, H.trans_lt ENNReal.ofReal_lt_top⟩
- by_contra' H
+ by_contra! H
obtain ⟨f, fle, fint, hf⟩ :
∃ f : simple_func ℝ ℝ≥0,
(∀ x, f x ≤ ‖g' x‖₊) ∧
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,14 +3,14 @@ Copyright (c) 2020 Yury G. Kudryashov. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yury G. Kudryashov, Patrick Massot, Sébastien Gouëzel
-/
-import Mathbin.Analysis.Calculus.FderivMeasurable
-import Mathbin.Analysis.Calculus.Deriv.Comp
-import Mathbin.Analysis.Calculus.Deriv.Add
-import Mathbin.Analysis.Calculus.Deriv.Slope
-import Mathbin.Analysis.Calculus.Deriv.Mul
-import Mathbin.Analysis.NormedSpace.Dual
-import Mathbin.MeasureTheory.Integral.IntervalIntegral
-import Mathbin.MeasureTheory.Integral.VitaliCaratheodory
+import Analysis.Calculus.FderivMeasurable
+import Analysis.Calculus.Deriv.Comp
+import Analysis.Calculus.Deriv.Add
+import Analysis.Calculus.Deriv.Slope
+import Analysis.Calculus.Deriv.Mul
+import Analysis.NormedSpace.Dual
+import MeasureTheory.Integral.IntervalIntegral
+import MeasureTheory.Integral.VitaliCaratheodory
#align_import measure_theory.integral.fund_thm_calculus from "leanprover-community/mathlib"@"6b31d1eebd64eab86d5bd9936bfaada6ca8b5842"
@@ -946,7 +946,7 @@ theorem integral_hasFDerivWithinAt (hf : IntervalIntegrable f volume a b)
#align interval_integral.integral_has_fderiv_within_at intervalIntegral.integral_hasFDerivWithinAt
-/
-/- ./././Mathport/Syntax/Translate/Expr.lean:336:4: warning: unsupported (TODO): `[tacs] -/
+/- ./././Mathport/Syntax/Translate/Expr.lean:337:4: warning: unsupported (TODO): `[tacs] -/
/-- An auxiliary tactic closing goals `unique_diff_within_at ℝ s a` where
`s ∈ {Iic a, Ici a, univ}`. -/
unsafe def unique_diff_within_at_Ici_Iic_univ : tactic Unit :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/442a83d738cb208d3600056c489be16900ba701d
@@ -221,11 +221,11 @@ instance nhdsWithinSingleton (a : ℝ) : FTCFilter a (𝓝[{a}] a) ⊥ := by
#align interval_integral.FTC_filter.nhds_within_singleton intervalIntegral.FTCFilter.nhdsWithinSingleton
-/
-#print intervalIntegral.FTCFilter.finite_at_inner /-
-theorem finite_at_inner {a : ℝ} (l : Filter ℝ) {l'} [h : FTCFilter a l l'] {μ : Measure ℝ}
+#print intervalIntegral.FTCFilter.finiteAt_inner /-
+theorem finiteAt_inner {a : ℝ} (l : Filter ℝ) {l'} [h : FTCFilter a l l'] {μ : Measure ℝ}
[IsLocallyFiniteMeasure μ] : μ.FiniteAtFilter l' :=
(μ.finiteAtNhds a).filter_mono h.le_nhds
-#align interval_integral.FTC_filter.finite_at_inner intervalIntegral.FTCFilter.finite_at_inner
+#align interval_integral.FTC_filter.finite_at_inner intervalIntegral.FTCFilter.finiteAt_inner
-/
#print intervalIntegral.FTCFilter.nhds /-
@@ -381,7 +381,7 @@ theorem measure_integral_sub_linear_isLittleO_of_tendsto_ae
(hu : Tendsto u lt l) (hv : Tendsto v lt l) :
(fun t => ∫ x in u t..v t, f x ∂μ - ∫ x in u t..v t, c ∂μ) =o[lt] fun t =>
∫ x in u t..v t, (1 : ℝ) ∂μ :=
- measure_integral_sub_linear_isLittleO_of_tendsto_ae' hfm hf (FTCFilter.finite_at_inner l) hu hv
+ measure_integral_sub_linear_isLittleO_of_tendsto_ae' hfm hf (FTCFilter.finiteAt_inner l) hu hv
#align interval_integral.measure_integral_sub_linear_is_o_of_tendsto_ae intervalIntegral.measure_integral_sub_linear_isLittleO_of_tendsto_ae
-/
@@ -398,7 +398,7 @@ theorem measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_le
(hu : Tendsto u lt l) (hv : Tendsto v lt l) (huv : u ≤ᶠ[lt] v) :
(fun t => ∫ x in u t..v t, f x ∂μ - (μ (Ioc (u t) (v t))).toReal • c) =o[lt] fun t =>
(μ <| Ioc (u t) (v t)).toReal :=
- measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_le' hfm hf (FTCFilter.finite_at_inner l) hu
+ measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_le' hfm hf (FTCFilter.finiteAt_inner l) hu
hv huv
#align interval_integral.measure_integral_sub_linear_is_o_of_tendsto_ae_of_le intervalIntegral.measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_le
-/
@@ -416,7 +416,7 @@ theorem measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_ge
(hu : Tendsto u lt l) (hv : Tendsto v lt l) (huv : v ≤ᶠ[lt] u) :
(fun t => ∫ x in u t..v t, f x ∂μ + (μ (Ioc (v t) (u t))).toReal • c) =o[lt] fun t =>
(μ <| Ioc (v t) (u t)).toReal :=
- measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_ge' hfm hf (FTCFilter.finite_at_inner l) hu
+ measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_ge' hfm hf (FTCFilter.finiteAt_inner l) hu
hv huv
#align interval_integral.measure_integral_sub_linear_is_o_of_tendsto_ae_of_ge intervalIntegral.measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_ge
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,11 +2,6 @@
Copyright (c) 2020 Yury G. Kudryashov. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yury G. Kudryashov, Patrick Massot, Sébastien Gouëzel
-
-! This file was ported from Lean 3 source module measure_theory.integral.fund_thm_calculus
-! leanprover-community/mathlib commit 6b31d1eebd64eab86d5bd9936bfaada6ca8b5842
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Analysis.Calculus.FderivMeasurable
import Mathbin.Analysis.Calculus.Deriv.Comp
@@ -17,6 +12,8 @@ import Mathbin.Analysis.NormedSpace.Dual
import Mathbin.MeasureTheory.Integral.IntervalIntegral
import Mathbin.MeasureTheory.Integral.VitaliCaratheodory
+#align_import measure_theory.integral.fund_thm_calculus from "leanprover-community/mathlib"@"6b31d1eebd64eab86d5bd9936bfaada6ca8b5842"
+
/-!
# Fundamental Theorem of Calculus
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -210,15 +210,19 @@ attribute [nolint dangerous_instance] FTC_filter.to_tendsto_Ixx_class
namespace FTCFilter
+#print intervalIntegral.FTCFilter.pure /-
instance pure (a : ℝ) : FTCFilter a (pure a) ⊥
where
pure_le := le_rfl
le_nhds := bot_le
#align interval_integral.FTC_filter.pure intervalIntegral.FTCFilter.pure
+-/
+#print intervalIntegral.FTCFilter.nhdsWithinSingleton /-
instance nhdsWithinSingleton (a : ℝ) : FTCFilter a (𝓝[{a}] a) ⊥ := by
rw [nhdsWithin, principal_singleton, inf_eq_right.2 (pure_le_nhds a)]; infer_instance
#align interval_integral.FTC_filter.nhds_within_singleton intervalIntegral.FTCFilter.nhdsWithinSingleton
+-/
#print intervalIntegral.FTCFilter.finite_at_inner /-
theorem finite_at_inner {a : ℝ} (l : Filter ℝ) {l'} [h : FTCFilter a l l'] {μ : Measure ℝ}
@@ -362,10 +366,9 @@ section
variable [IsLocallyFiniteMeasure μ] [FTCFilter a l l']
-include a
-
attribute [local instance] FTC_filter.meas_gen
+#print intervalIntegral.measure_integral_sub_linear_isLittleO_of_tendsto_ae /-
/-- Fundamental theorem of calculus-1, local version for any measure.
Let filters `l` and `l'` be related by `[FTC_filter a l l']`; let `μ` be a locally finite measure.
If `f` has a finite limit `c` at `l' ⊓ μ.ae`, then
@@ -383,7 +386,9 @@ theorem measure_integral_sub_linear_isLittleO_of_tendsto_ae
∫ x in u t..v t, (1 : ℝ) ∂μ :=
measure_integral_sub_linear_isLittleO_of_tendsto_ae' hfm hf (FTCFilter.finite_at_inner l) hu hv
#align interval_integral.measure_integral_sub_linear_is_o_of_tendsto_ae intervalIntegral.measure_integral_sub_linear_isLittleO_of_tendsto_ae
+-/
+#print intervalIntegral.measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_le /-
/-- Fundamental theorem of calculus-1, local version for any measure.
Let filters `l` and `l'` be related by `[FTC_filter a l l']`; let `μ` be a locally finite measure.
If `f` has a finite limit `c` at `l' ⊓ μ.ae`, then
@@ -399,7 +404,9 @@ theorem measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_le
measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_le' hfm hf (FTCFilter.finite_at_inner l) hu
hv huv
#align interval_integral.measure_integral_sub_linear_is_o_of_tendsto_ae_of_le intervalIntegral.measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_le
+-/
+#print intervalIntegral.measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_ge /-
/-- Fundamental theorem of calculus-1, local version for any measure.
Let filters `l` and `l'` be related by `[FTC_filter a l l']`; let `μ` be a locally finite measure.
If `f` has a finite limit `c` at `l' ⊓ μ.ae`, then
@@ -415,6 +422,7 @@ theorem measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_ge
measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_ge' hfm hf (FTCFilter.finite_at_inner l) hu
hv huv
#align interval_integral.measure_integral_sub_linear_is_o_of_tendsto_ae_of_ge intervalIntegral.measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_ge
+-/
end
@@ -422,6 +430,7 @@ attribute [local instance] FTC_filter.meas_gen
variable [FTCFilter a la la'] [FTCFilter b lb lb'] [IsLocallyFiniteMeasure μ]
+#print intervalIntegral.measure_integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae /-
/-- Fundamental theorem of calculus-1, strict derivative in both limits for a locally finite
measure.
@@ -462,7 +471,9 @@ theorem measure_integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae
· dsimp only; abel
exacts [ub_vb, ua_va, b_ub.symm.trans <| hab.symm.trans a_ua]
#align interval_integral.measure_integral_sub_integral_sub_linear_is_o_of_tendsto_ae intervalIntegral.measure_integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae
+-/
+#print intervalIntegral.measure_integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae_right /-
/-- Fundamental theorem of calculus-1, strict derivative in right endpoint for a locally finite
measure.
@@ -483,7 +494,9 @@ theorem measure_integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae_right
((tendsto_bot : tendsto _ ⊥ (𝓝 0)).mono_left inf_le_left) hf
(tendsto_const_pure : tendsto _ _ (pure a)) tendsto_const_pure hu hv
#align interval_integral.measure_integral_sub_integral_sub_linear_is_o_of_tendsto_ae_right intervalIntegral.measure_integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae_right
+-/
+#print intervalIntegral.measure_integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae_left /-
/-- Fundamental theorem of calculus-1, strict derivative in left endpoint for a locally finite
measure.
@@ -504,6 +517,7 @@ theorem measure_integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae_left
hf ((tendsto_bot : tendsto _ ⊥ (𝓝 0)).mono_left inf_le_left) hu hv
(tendsto_const_pure : tendsto _ _ (pure b)) tendsto_const_pure
#align interval_integral.measure_integral_sub_integral_sub_linear_is_o_of_tendsto_ae_left intervalIntegral.measure_integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae_left
+-/
end
@@ -528,6 +542,7 @@ we have no definition of `has_strict_(f)deriv_at_filter` in the library.
-/
+#print intervalIntegral.integral_sub_linear_isLittleO_of_tendsto_ae /-
/-- Fundamental theorem of calculus-1, local version. If `f` has a finite limit `c` almost surely at
`l'`, where `(l, l')` is an `FTC_filter` pair around `a`, then
`∫ x in u..v, f x ∂μ = (v - u) • c + o (v - u)` as both `u` and `v` tend to `l`. -/
@@ -537,7 +552,9 @@ theorem integral_sub_linear_isLittleO_of_tendsto_ae [FTCFilter a l l']
(fun t => (∫ x in u t..v t, f x) - (v t - u t) • c) =o[lt] (v - u) := by
simpa [integral_const] using measure_integral_sub_linear_is_o_of_tendsto_ae hfm hf hu hv
#align interval_integral.integral_sub_linear_is_o_of_tendsto_ae intervalIntegral.integral_sub_linear_isLittleO_of_tendsto_ae
+-/
+#print intervalIntegral.integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae /-
/-- Fundamental theorem of calculus-1, strict differentiability at filter in both endpoints.
If `f` is a measurable function integrable on `a..b`, `(la, la')` is an `FTC_filter` pair around
`a`, and `(lb, lb')` is an `FTC_filter` pair around `b`, and `f` has finite limits `ca` and `cb`
@@ -561,7 +578,9 @@ theorem integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae
measure_integral_sub_integral_sub_linear_is_o_of_tendsto_ae hab hmeas_a hmeas_b ha_lim hb_lim
hua hva hub hvb
#align interval_integral.integral_sub_integral_sub_linear_is_o_of_tendsto_ae intervalIntegral.integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae
+-/
+#print intervalIntegral.integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae_right /-
/-- Fundamental theorem of calculus-1, strict differentiability at filter in both endpoints.
If `f` is a measurable function integrable on `a..b`, `(lb, lb')` is an `FTC_filter` pair
around `b`, and `f` has a finite limit `c` almost surely at `lb'`, then
@@ -575,7 +594,9 @@ theorem integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae_right
simpa only [integral_const, smul_eq_mul, mul_one] using
measure_integral_sub_integral_sub_linear_is_o_of_tendsto_ae_right hab hmeas hf hu hv
#align interval_integral.integral_sub_integral_sub_linear_is_o_of_tendsto_ae_right intervalIntegral.integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae_right
+-/
+#print intervalIntegral.integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae_left /-
/-- Fundamental theorem of calculus-1, strict differentiability at filter in both endpoints.
If `f` is a measurable function integrable on `a..b`, `(la, la')` is an `FTC_filter` pair
around `a`, and `f` has a finite limit `c` almost surely at `la'`, then
@@ -589,6 +610,7 @@ theorem integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae_left
simpa only [integral_const, smul_eq_mul, mul_one] using
measure_integral_sub_integral_sub_linear_is_o_of_tendsto_ae_left hab hmeas hf hu hv
#align interval_integral.integral_sub_integral_sub_linear_is_o_of_tendsto_ae_left intervalIntegral.integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae_left
+-/
open ContinuousLinearMap (fst snd smul_right sub_apply smulRight_apply coe_fst' coe_snd' map_sub)
@@ -622,6 +644,7 @@ In this section we prove that for a measurable function `f` integrable on `a..b`
-/
+#print intervalIntegral.integral_hasStrictFDerivAt_of_tendsto_ae /-
/-- Fundamental theorem of calculus-1: if `f : ℝ → E` is integrable on `a..b` and `f x` has finite
limits `ca` and `cb` almost surely as `x` tends to `a` and `b`, respectively, then
`(u, v) ↦ ∫ x in u..v, f x` has derivative `(u, v) ↦ v • cb - u • ca` at `(a, b)`
@@ -642,6 +665,7 @@ theorem integral_hasStrictFDerivAt_of_tendsto_ae (hf : IntervalIntegrable f volu
· intro x; simp [sub_smul]
· exact is_O_fst_prod.norm_left.add is_O_snd_prod.norm_left
#align interval_integral.integral_has_strict_fderiv_at_of_tendsto_ae intervalIntegral.integral_hasStrictFDerivAt_of_tendsto_ae
+-/
#print intervalIntegral.integral_hasStrictFDerivAt /-
/-- Fundamental theorem of calculus-1: if `f : ℝ → E` is integrable on `a..b` and `f` is continuous
@@ -657,6 +681,7 @@ theorem integral_hasStrictFDerivAt (hf : IntervalIntegrable f volume a b)
#align interval_integral.integral_has_strict_fderiv_at intervalIntegral.integral_hasStrictFDerivAt
-/
+#print intervalIntegral.integral_hasStrictDerivAt_of_tendsto_ae_right /-
/-- **First Fundamental Theorem of Calculus**: if `f : ℝ → E` is integrable on `a..b` and `f x` has
a finite limit `c` almost surely at `b`, then `u ↦ ∫ x in a..u, f x` has derivative `c` at `b` in
the sense of strict differentiability. -/
@@ -666,6 +691,7 @@ theorem integral_hasStrictDerivAt_of_tendsto_ae_right (hf : IntervalIntegrable f
integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae_right hf hmeas hb continuousAt_snd
continuousAt_fst
#align interval_integral.integral_has_strict_deriv_at_of_tendsto_ae_right intervalIntegral.integral_hasStrictDerivAt_of_tendsto_ae_right
+-/
#print intervalIntegral.integral_hasStrictDerivAt_right /-
/-- Fundamental theorem of calculus-1: if `f : ℝ → E` is integrable on `a..b` and `f` is continuous
@@ -678,6 +704,7 @@ theorem integral_hasStrictDerivAt_right (hf : IntervalIntegrable f volume a b)
#align interval_integral.integral_has_strict_deriv_at_right intervalIntegral.integral_hasStrictDerivAt_right
-/
+#print intervalIntegral.integral_hasStrictDerivAt_of_tendsto_ae_left /-
/-- Fundamental theorem of calculus-1: if `f : ℝ → E` is integrable on `a..b` and `f x` has a finite
limit `c` almost surely at `a`, then `u ↦ ∫ x in u..b, f x` has derivative `-c` at `a` in the sense
of strict differentiability. -/
@@ -687,7 +714,9 @@ theorem integral_hasStrictDerivAt_of_tendsto_ae_left (hf : IntervalIntegrable f
simpa only [← integral_symm] using
(integral_has_strict_deriv_at_of_tendsto_ae_right hf.symm hmeas ha).neg
#align interval_integral.integral_has_strict_deriv_at_of_tendsto_ae_left intervalIntegral.integral_hasStrictDerivAt_of_tendsto_ae_left
+-/
+#print intervalIntegral.integral_hasStrictDerivAt_left /-
/-- Fundamental theorem of calculus-1: if `f : ℝ → E` is integrable on `a..b` and `f` is continuous
at `a`, then `u ↦ ∫ x in u..b, f x` has derivative `-f a` at `a` in the sense of strict
differentiability. -/
@@ -696,6 +725,7 @@ theorem integral_hasStrictDerivAt_left (hf : IntervalIntegrable f volume a b)
HasStrictDerivAt (fun u => ∫ x in u..b, f x) (-f a) a := by
simpa only [← integral_symm] using (integral_has_strict_deriv_at_right hf.symm hmeas ha).neg
#align interval_integral.integral_has_strict_deriv_at_left intervalIntegral.integral_hasStrictDerivAt_left
+-/
#print Continuous.integral_hasStrictDerivAt /-
/-- Fundamental theorem of calculus-1: if `f : ℝ → E` is continuous, then `u ↦ ∫ x in a..u, f x`
@@ -724,6 +754,7 @@ In this subsection we restate results from the previous subsection in terms of `
-/
+#print intervalIntegral.integral_hasFDerivAt_of_tendsto_ae /-
/-- Fundamental theorem of calculus-1: if `f : ℝ → E` is integrable on `a..b` and `f x` has finite
limits `ca` and `cb` almost surely as `x` tends to `a` and `b`, respectively, then
`(u, v) ↦ ∫ x in u..v, f x` has derivative `(u, v) ↦ v • cb - u • ca` at `(a, b)`. -/
@@ -734,6 +765,7 @@ theorem integral_hasFDerivAt_of_tendsto_ae (hf : IntervalIntegrable f volume a b
((snd ℝ ℝ ℝ).smul_right cb - (fst ℝ ℝ ℝ).smul_right ca) (a, b) :=
(integral_hasStrictFDerivAt_of_tendsto_ae hf hmeas_a hmeas_b ha hb).HasFDerivAt
#align interval_integral.integral_has_fderiv_at_of_tendsto_ae intervalIntegral.integral_hasFDerivAt_of_tendsto_ae
+-/
#print intervalIntegral.integral_hasFDerivAt /-
/-- Fundamental theorem of calculus-1: if `f : ℝ → E` is integrable on `a..b` and `f` is continuous
@@ -748,6 +780,7 @@ theorem integral_hasFDerivAt (hf : IntervalIntegrable f volume a b)
#align interval_integral.integral_has_fderiv_at intervalIntegral.integral_hasFDerivAt
-/
+#print intervalIntegral.fderiv_integral_of_tendsto_ae /-
/-- Fundamental theorem of calculus-1: if `f : ℝ → E` is integrable on `a..b` and `f x` has finite
limits `ca` and `cb` almost surely as `x` tends to `a` and `b`, respectively, then `fderiv`
derivative of `(u, v) ↦ ∫ x in u..v, f x` at `(a, b)` equals `(u, v) ↦ v • cb - u • ca`. -/
@@ -758,7 +791,9 @@ theorem fderiv_integral_of_tendsto_ae (hf : IntervalIntegrable f volume a b)
(snd ℝ ℝ ℝ).smul_right cb - (fst ℝ ℝ ℝ).smul_right ca :=
(integral_hasFDerivAt_of_tendsto_ae hf hmeas_a hmeas_b ha hb).fderiv
#align interval_integral.fderiv_integral_of_tendsto_ae intervalIntegral.fderiv_integral_of_tendsto_ae
+-/
+#print intervalIntegral.fderiv_integral /-
/-- Fundamental theorem of calculus-1: if `f : ℝ → E` is integrable on `a..b` and `f` is continuous
at `a` and `b`, then `fderiv` derivative of `(u, v) ↦ ∫ x in u..v, f x` at `(a, b)` equals `(u, v) ↦
v • cb - u • ca`. -/
@@ -769,7 +804,9 @@ theorem fderiv_integral (hf : IntervalIntegrable f volume a b)
(snd ℝ ℝ ℝ).smul_right (f b) - (fst ℝ ℝ ℝ).smul_right (f a) :=
(integral_hasFDerivAt hf hmeas_a hmeas_b ha hb).fderiv
#align interval_integral.fderiv_integral intervalIntegral.fderiv_integral
+-/
+#print intervalIntegral.integral_hasDerivAt_of_tendsto_ae_right /-
/-- Fundamental theorem of calculus-1: if `f : ℝ → E` is integrable on `a..b` and `f x` has a finite
limit `c` almost surely at `b`, then `u ↦ ∫ x in a..u, f x` has derivative `c` at `b`. -/
theorem integral_hasDerivAt_of_tendsto_ae_right (hf : IntervalIntegrable f volume a b)
@@ -777,6 +814,7 @@ theorem integral_hasDerivAt_of_tendsto_ae_right (hf : IntervalIntegrable f volum
HasDerivAt (fun u => ∫ x in a..u, f x) c b :=
(integral_hasStrictDerivAt_of_tendsto_ae_right hf hmeas hb).HasDerivAt
#align interval_integral.integral_has_deriv_at_of_tendsto_ae_right intervalIntegral.integral_hasDerivAt_of_tendsto_ae_right
+-/
#print intervalIntegral.integral_hasDerivAt_right /-
/-- Fundamental theorem of calculus-1: if `f : ℝ → E` is integrable on `a..b` and `f` is continuous
@@ -788,6 +826,7 @@ theorem integral_hasDerivAt_right (hf : IntervalIntegrable f volume a b)
#align interval_integral.integral_has_deriv_at_right intervalIntegral.integral_hasDerivAt_right
-/
+#print intervalIntegral.deriv_integral_of_tendsto_ae_right /-
/-- Fundamental theorem of calculus: if `f : ℝ → E` is integrable on `a..b` and `f` has a finite
limit `c` almost surely at `b`, then the derivative of `u ↦ ∫ x in a..u, f x` at `b` equals `c`. -/
theorem deriv_integral_of_tendsto_ae_right (hf : IntervalIntegrable f volume a b)
@@ -795,6 +834,7 @@ theorem deriv_integral_of_tendsto_ae_right (hf : IntervalIntegrable f volume a b
deriv (fun u => ∫ x in a..u, f x) b = c :=
(integral_hasDerivAt_of_tendsto_ae_right hf hmeas hb).deriv
#align interval_integral.deriv_integral_of_tendsto_ae_right intervalIntegral.deriv_integral_of_tendsto_ae_right
+-/
#print intervalIntegral.deriv_integral_right /-
/-- Fundamental theorem of calculus: if `f : ℝ → E` is integrable on `a..b` and `f` is continuous
@@ -806,6 +846,7 @@ theorem deriv_integral_right (hf : IntervalIntegrable f volume a b)
#align interval_integral.deriv_integral_right intervalIntegral.deriv_integral_right
-/
+#print intervalIntegral.integral_hasDerivAt_of_tendsto_ae_left /-
/-- Fundamental theorem of calculus-1: if `f : ℝ → E` is integrable on `a..b` and `f x` has a finite
limit `c` almost surely at `a`, then `u ↦ ∫ x in u..b, f x` has derivative `-c` at `a`. -/
theorem integral_hasDerivAt_of_tendsto_ae_left (hf : IntervalIntegrable f volume a b)
@@ -813,7 +854,9 @@ theorem integral_hasDerivAt_of_tendsto_ae_left (hf : IntervalIntegrable f volume
HasDerivAt (fun u => ∫ x in u..b, f x) (-c) a :=
(integral_hasStrictDerivAt_of_tendsto_ae_left hf hmeas ha).HasDerivAt
#align interval_integral.integral_has_deriv_at_of_tendsto_ae_left intervalIntegral.integral_hasDerivAt_of_tendsto_ae_left
+-/
+#print intervalIntegral.integral_hasDerivAt_left /-
/-- Fundamental theorem of calculus-1: if `f : ℝ → E` is integrable on `a..b` and `f` is continuous
at `a`, then `u ↦ ∫ x in u..b, f x` has derivative `-f a` at `a`. -/
theorem integral_hasDerivAt_left (hf : IntervalIntegrable f volume a b)
@@ -821,7 +864,9 @@ theorem integral_hasDerivAt_left (hf : IntervalIntegrable f volume a b)
HasDerivAt (fun u => ∫ x in u..b, f x) (-f a) a :=
(integral_hasStrictDerivAt_left hf hmeas ha).HasDerivAt
#align interval_integral.integral_has_deriv_at_left intervalIntegral.integral_hasDerivAt_left
+-/
+#print intervalIntegral.deriv_integral_of_tendsto_ae_left /-
/-- Fundamental theorem of calculus: if `f : ℝ → E` is integrable on `a..b` and `f` has a finite
limit `c` almost surely at `a`, then the derivative of `u ↦ ∫ x in u..b, f x` at `a` equals `-c`. -/
theorem deriv_integral_of_tendsto_ae_left (hf : IntervalIntegrable f volume a b)
@@ -829,7 +874,9 @@ theorem deriv_integral_of_tendsto_ae_left (hf : IntervalIntegrable f volume a b)
deriv (fun u => ∫ x in u..b, f x) a = -c :=
(integral_hasDerivAt_of_tendsto_ae_left hf hmeas hb).deriv
#align interval_integral.deriv_integral_of_tendsto_ae_left intervalIntegral.deriv_integral_of_tendsto_ae_left
+-/
+#print intervalIntegral.deriv_integral_left /-
/-- Fundamental theorem of calculus: if `f : ℝ → E` is integrable on `a..b` and `f` is continuous
at `a`, then the derivative of `u ↦ ∫ x in u..b, f x` at `a` equals `-f a`. -/
theorem deriv_integral_left (hf : IntervalIntegrable f volume a b)
@@ -837,6 +884,7 @@ theorem deriv_integral_left (hf : IntervalIntegrable f volume a b)
deriv (fun u => ∫ x in u..b, f x) a = -f a :=
(integral_hasDerivAt_left hf hmeas hb).deriv
#align interval_integral.deriv_integral_left intervalIntegral.deriv_integral_left
+-/
/-!
#### One-sided derivatives
@@ -844,6 +892,7 @@ theorem deriv_integral_left (hf : IntervalIntegrable f volume a b)
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print intervalIntegral.integral_hasFDerivWithinAt_of_tendsto_ae /-
/-- Let `f` be a measurable function integrable on `a..b`. The function `(u, v) ↦ ∫ x in u..v, f x`
has derivative `(u, v) ↦ v • cb - u • ca` within `s × t` at `(a, b)`, where
`s ∈ {Iic a, {a}, Ici a, univ}` and `t ∈ {Iic b, {b}, Ici b, univ}` provided that `f` tends to `ca`
@@ -872,6 +921,7 @@ theorem integral_hasFDerivWithinAt_of_tendsto_ae (hf : IntervalIntegrable f volu
· intro x; simp [sub_smul]
· exact is_O_fst_prod.norm_left.add is_O_snd_prod.norm_left
#align interval_integral.integral_has_fderiv_within_at_of_tendsto_ae intervalIntegral.integral_hasFDerivWithinAt_of_tendsto_ae
+-/
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
#print intervalIntegral.integral_hasFDerivWithinAt /-
@@ -907,6 +957,7 @@ unsafe def unique_diff_within_at_Ici_Iic_univ : tactic Unit :=
#align interval_integral.unique_diff_within_at_Ici_Iic_univ interval_integral.unique_diff_within_at_Ici_Iic_univ
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print intervalIntegral.fderivWithin_integral_of_tendsto_ae /-
/-- Let `f` be a measurable function integrable on `a..b`. Choose `s ∈ {Iic a, Ici a, univ}`
and `t ∈ {Iic b, Ici b, univ}`. Suppose that `f` tends to `ca` and `cb` almost surely at the filters
`la` and `lb` from the table below. Then `fderiv_within ℝ (λ p, ∫ x in p.1..p.2, f x) (s ×ˢ t)`
@@ -929,7 +980,9 @@ theorem fderivWithin_integral_of_tendsto_ae (hf : IntervalIntegrable f volume a
(snd ℝ ℝ ℝ).smul_right cb - (fst ℝ ℝ ℝ).smul_right ca :=
(integral_hasFDerivWithinAt_of_tendsto_ae hf hmeas_a hmeas_b ha hb).fderivWithin <| hs.Prod ht
#align interval_integral.fderiv_within_integral_of_tendsto_ae intervalIntegral.fderivWithin_integral_of_tendsto_ae
+-/
+#print intervalIntegral.integral_hasDerivWithinAt_of_tendsto_ae_right /-
/-- Fundamental theorem of calculus: if `f : ℝ → E` is integrable on `a..b` and `f x` has a finite
limit `c` almost surely as `x` tends to `b` from the right or from the left,
then `u ↦ ∫ x in a..u, f x` has right (resp., left) derivative `c` at `b`. -/
@@ -940,6 +993,7 @@ theorem integral_hasDerivWithinAt_of_tendsto_ae_right (hf : IntervalIntegrable f
integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae_right hf hmeas hb
(tendsto_const_pure.mono_right FTCFilter.pure_le) tendsto_id
#align interval_integral.integral_has_deriv_within_at_of_tendsto_ae_right intervalIntegral.integral_hasDerivWithinAt_of_tendsto_ae_right
+-/
#print intervalIntegral.integral_hasDerivWithinAt_right /-
/-- Fundamental theorem of calculus: if `f : ℝ → E` is integrable on `a..b` and `f x` is continuous
@@ -952,6 +1006,7 @@ theorem integral_hasDerivWithinAt_right (hf : IntervalIntegrable f volume a b) {
#align interval_integral.integral_has_deriv_within_at_right intervalIntegral.integral_hasDerivWithinAt_right
-/
+#print intervalIntegral.derivWithin_integral_of_tendsto_ae_right /-
/-- Fundamental theorem of calculus: if `f : ℝ → E` is integrable on `a..b` and `f x` has a finite
limit `c` almost surely as `x` tends to `b` from the right or from the left, then the right
(resp., left) derivative of `u ↦ ∫ x in a..u, f x` at `b` equals `c`. -/
@@ -962,6 +1017,7 @@ theorem derivWithin_integral_of_tendsto_ae_right (hf : IntervalIntegrable f volu
derivWithin (fun u => ∫ x in a..u, f x) s b = c :=
(integral_hasDerivWithinAt_of_tendsto_ae_right hf hmeas hb).derivWithin hs
#align interval_integral.deriv_within_integral_of_tendsto_ae_right intervalIntegral.derivWithin_integral_of_tendsto_ae_right
+-/
#print intervalIntegral.derivWithin_integral_right /-
/-- Fundamental theorem of calculus: if `f : ℝ → E` is integrable on `a..b` and `f x` is continuous
@@ -976,6 +1032,7 @@ theorem derivWithin_integral_right (hf : IntervalIntegrable f volume a b) {s t :
#align interval_integral.deriv_within_integral_right intervalIntegral.derivWithin_integral_right
-/
+#print intervalIntegral.integral_hasDerivWithinAt_of_tendsto_ae_left /-
/-- Fundamental theorem of calculus: if `f : ℝ → E` is integrable on `a..b` and `f x` has a finite
limit `c` almost surely as `x` tends to `a` from the right or from the left,
then `u ↦ ∫ x in u..b, f x` has right (resp., left) derivative `-c` at `a`. -/
@@ -987,7 +1044,9 @@ theorem integral_hasDerivWithinAt_of_tendsto_ae_left (hf : IntervalIntegrable f
simp only [integral_symm b]
exact (integral_has_deriv_within_at_of_tendsto_ae_right hf.symm hmeas ha).neg
#align interval_integral.integral_has_deriv_within_at_of_tendsto_ae_left intervalIntegral.integral_hasDerivWithinAt_of_tendsto_ae_left
+-/
+#print intervalIntegral.integral_hasDerivWithinAt_left /-
/-- Fundamental theorem of calculus: if `f : ℝ → E` is integrable on `a..b` and `f x` is continuous
from the left or from the right at `a`, then `u ↦ ∫ x in u..b, f x` has left (resp., right)
derivative `-f a` at `a`. -/
@@ -996,7 +1055,9 @@ theorem integral_hasDerivWithinAt_left (hf : IntervalIntegrable f volume a b) {s
(ha : ContinuousWithinAt f t a) : HasDerivWithinAt (fun u => ∫ x in u..b, f x) (-f a) s a :=
integral_hasDerivWithinAt_of_tendsto_ae_left hf hmeas (ha.mono_left inf_le_left)
#align interval_integral.integral_has_deriv_within_at_left intervalIntegral.integral_hasDerivWithinAt_left
+-/
+#print intervalIntegral.derivWithin_integral_of_tendsto_ae_left /-
/-- Fundamental theorem of calculus: if `f : ℝ → E` is integrable on `a..b` and `f x` has a finite
limit `c` almost surely as `x` tends to `a` from the right or from the left, then the right
(resp., left) derivative of `u ↦ ∫ x in u..b, f x` at `a` equals `-c`. -/
@@ -1007,7 +1068,9 @@ theorem derivWithin_integral_of_tendsto_ae_left (hf : IntervalIntegrable f volum
derivWithin (fun u => ∫ x in u..b, f x) s a = -c :=
(integral_hasDerivWithinAt_of_tendsto_ae_left hf hmeas ha).derivWithin hs
#align interval_integral.deriv_within_integral_of_tendsto_ae_left intervalIntegral.derivWithin_integral_of_tendsto_ae_left
+-/
+#print intervalIntegral.derivWithin_integral_left /-
/-- Fundamental theorem of calculus: if `f : ℝ → E` is integrable on `a..b` and `f x` is continuous
on the right or on the left at `a`, then the right (resp., left) derivative of
`u ↦ ∫ x in u..b, f x` at `a` equals `-f a`. -/
@@ -1018,6 +1081,7 @@ theorem derivWithin_integral_left (hf : IntervalIntegrable f volume a b) {s t :
derivWithin (fun u => ∫ x in u..b, f x) s a = -f a :=
(integral_hasDerivWithinAt_left hf hmeas ha).derivWithin hs
#align interval_integral.deriv_within_integral_left intervalIntegral.derivWithin_integral_left
+-/
#print intervalIntegral.differentiableOn_integral_of_continuous /-
/-- The integral of a continuous function is differentiable on a real set `s`. -/
@@ -1053,6 +1117,7 @@ this inequality to the right until the point `b`, where it gives the desired con
variable {g' g φ : ℝ → ℝ}
+#print intervalIntegral.sub_le_integral_of_hasDeriv_right_of_le_Ico /-
/-- Hard part of FTC-2 for integrable derivatives, real-valued functions: one has
`g b - g a ≤ ∫ y in a..b, g' y` when `g'` is integrable.
Auxiliary lemma in the proof of `integral_eq_sub_of_has_deriv_right_of_le`.
@@ -1164,7 +1229,9 @@ theorem sub_le_integral_of_hasDeriv_right_of_le_Ico (hab : a ≤ b) (hcont : Con
· rw [intervalIntegral.integral_of_le hab]
simp only [integral_Icc_eq_integral_Ioc', Real.volume_singleton]
#align interval_integral.sub_le_integral_of_has_deriv_right_of_le_Ico intervalIntegral.sub_le_integral_of_hasDeriv_right_of_le_Ico
+-/
+#print intervalIntegral.sub_le_integral_of_hasDeriv_right_of_le /-
/-- Hard part of FTC-2 for integrable derivatives, real-valued functions: one has
`g b - g a ≤ ∫ y in a..b, g' y` when `g'` is integrable.
Auxiliary lemma in the proof of `integral_eq_sub_of_has_deriv_right_of_le`.
@@ -1200,7 +1267,9 @@ theorem sub_le_integral_of_hasDeriv_right_of_le (hab : a ≤ b) (hcont : Continu
rw [closure_Ioc a_lt_b.ne] at A
exact (A (left_mem_Icc.2 hab)).1
#align interval_integral.sub_le_integral_of_has_deriv_right_of_le intervalIntegral.sub_le_integral_of_hasDeriv_right_of_le
+-/
+#print intervalIntegral.integral_le_sub_of_hasDeriv_right_of_le /-
/-- Auxiliary lemma in the proof of `integral_eq_sub_of_has_deriv_right_of_le`. -/
theorem integral_le_sub_of_hasDeriv_right_of_le (hab : a ≤ b) (hcont : ContinuousOn g (Icc a b))
(hderiv : ∀ x ∈ Ioo a b, HasDerivWithinAt g (g' x) (Ioi x) x) (φint : IntegrableOn φ (Icc a b))
@@ -1213,7 +1282,9 @@ theorem integral_le_sub_of_hasDeriv_right_of_le (hab : a ≤ b) (hcont : Continu
· abel
· simp only [← integral_neg]; rfl
#align interval_integral.integral_le_sub_of_has_deriv_right_of_le intervalIntegral.integral_le_sub_of_hasDeriv_right_of_le
+-/
+#print intervalIntegral.integral_eq_sub_of_hasDeriv_right_of_le_real /-
/-- Auxiliary lemma in the proof of `integral_eq_sub_of_has_deriv_right_of_le`: real version -/
theorem integral_eq_sub_of_hasDeriv_right_of_le_real (hab : a ≤ b)
(hcont : ContinuousOn g (Icc a b)) (hderiv : ∀ x ∈ Ioo a b, HasDerivWithinAt g (g' x) (Ioi x) x)
@@ -1221,9 +1292,11 @@ theorem integral_eq_sub_of_hasDeriv_right_of_le_real (hab : a ≤ b)
le_antisymm (integral_le_sub_of_hasDeriv_right_of_le hab hcont hderiv g'int fun x hx => le_rfl)
(sub_le_integral_of_hasDeriv_right_of_le hab hcont hderiv g'int fun x hx => le_rfl)
#align interval_integral.integral_eq_sub_of_has_deriv_right_of_le_real intervalIntegral.integral_eq_sub_of_hasDeriv_right_of_le_real
+-/
variable {f' : ℝ → E}
+#print intervalIntegral.integral_eq_sub_of_hasDeriv_right_of_le /-
/-- **Fundamental theorem of calculus-2**: If `f : ℝ → E` is continuous on `[a, b]` (where `a ≤ b`)
and has a right derivative at `f' x` for all `x` in `(a, b)`, and `f'` is integrable on `[a, b]`,
then `∫ y in a..b, f' y` equals `f b - f a`. -/
@@ -1238,7 +1311,9 @@ theorem integral_eq_sub_of_hasDeriv_right_of_le (hab : a ≤ b) (hcont : Continu
(fun x hx => g.has_fderiv_at.comp_has_deriv_within_at x (hderiv x hx))
(g.integrable_comp ((intervalIntegrable_iff_integrable_Icc_of_le hab).1 f'int))
#align interval_integral.integral_eq_sub_of_has_deriv_right_of_le intervalIntegral.integral_eq_sub_of_hasDeriv_right_of_le
+-/
+#print intervalIntegral.integral_eq_sub_of_hasDeriv_right /-
/-- Fundamental theorem of calculus-2: If `f : ℝ → E` is continuous on `[a, b]` and
has a right derivative at `f' x` for all `x` in `[a, b)`, and `f'` is integrable on `[a, b]` then
`∫ y in a..b, f' y` equals `f b - f a`. -/
@@ -1252,7 +1327,9 @@ theorem integral_eq_sub_of_hasDeriv_right (hcont : ContinuousOn f (uIcc a b))
· simp only [uIcc_of_ge, min_eq_right, max_eq_left, hab] at hcont hderiv
rw [integral_symm, integral_eq_sub_of_has_deriv_right_of_le hab hcont hderiv hint.symm, neg_sub]
#align interval_integral.integral_eq_sub_of_has_deriv_right intervalIntegral.integral_eq_sub_of_hasDeriv_right
+-/
+#print intervalIntegral.integral_eq_sub_of_hasDerivAt_of_le /-
/-- Fundamental theorem of calculus-2: If `f : ℝ → E` is continuous on `[a, b]` (where `a ≤ b`) and
has a derivative at `f' x` for all `x` in `(a, b)`, and `f'` is integrable on `[a, b]`, then
`∫ y in a..b, f' y` equals `f b - f a`. -/
@@ -1262,7 +1339,9 @@ theorem integral_eq_sub_of_hasDerivAt_of_le (hab : a ≤ b) (hcont : ContinuousO
integral_eq_sub_of_hasDeriv_right_of_le hab hcont (fun x hx => (hderiv x hx).HasDerivWithinAt)
hint
#align interval_integral.integral_eq_sub_of_has_deriv_at_of_le intervalIntegral.integral_eq_sub_of_hasDerivAt_of_le
+-/
+#print intervalIntegral.integral_eq_sub_of_hasDerivAt /-
/-- Fundamental theorem of calculus-2: If `f : ℝ → E` has a derivative at `f' x` for all `x` in
`[a, b]` and `f'` is integrable on `[a, b]`, then `∫ y in a..b, f' y` equals `f b - f a`. -/
theorem integral_eq_sub_of_hasDerivAt (hderiv : ∀ x ∈ uIcc a b, HasDerivAt f (f' x) x)
@@ -1270,7 +1349,9 @@ theorem integral_eq_sub_of_hasDerivAt (hderiv : ∀ x ∈ uIcc a b, HasDerivAt f
integral_eq_sub_of_hasDeriv_right (HasDerivAt.continuousOn hderiv)
(fun x hx => (hderiv _ (mem_Icc_of_Ioo hx)).HasDerivWithinAt) hint
#align interval_integral.integral_eq_sub_of_has_deriv_at intervalIntegral.integral_eq_sub_of_hasDerivAt
+-/
+#print intervalIntegral.integral_eq_sub_of_hasDerivAt_of_tendsto /-
theorem integral_eq_sub_of_hasDerivAt_of_tendsto (hab : a < b) {fa fb}
(hderiv : ∀ x ∈ Ioo a b, HasDerivAt f (f' x) x) (hint : IntervalIntegrable f' volume a b)
(ha : Tendsto f (𝓝[>] a) (𝓝 fa)) (hb : Tendsto f (𝓝[<] b) (𝓝 fb)) :
@@ -1293,14 +1374,18 @@ theorem integral_eq_sub_of_hasDerivAt_of_tendsto (hab : a < b) {fa fb}
(update_noteq hz.1.ne' _ _).symm
simpa [F, hab.ne, hab.ne'] using integral_eq_sub_of_has_deriv_at_of_le hab.le hcont Fderiv hint
#align interval_integral.integral_eq_sub_of_has_deriv_at_of_tendsto intervalIntegral.integral_eq_sub_of_hasDerivAt_of_tendsto
+-/
+#print intervalIntegral.integral_deriv_eq_sub /-
/-- Fundamental theorem of calculus-2: If `f : ℝ → E` is differentiable at every `x` in `[a, b]` and
its derivative is integrable on `[a, b]`, then `∫ y in a..b, deriv f y` equals `f b - f a`. -/
theorem integral_deriv_eq_sub (hderiv : ∀ x ∈ uIcc a b, DifferentiableAt ℝ f x)
(hint : IntervalIntegrable (deriv f) volume a b) : ∫ y in a..b, deriv f y = f b - f a :=
integral_eq_sub_of_hasDerivAt (fun x hx => (hderiv x hx).HasDerivAt) hint
#align interval_integral.integral_deriv_eq_sub intervalIntegral.integral_deriv_eq_sub
+-/
+#print intervalIntegral.integral_deriv_eq_sub' /-
theorem integral_deriv_eq_sub' (f) (hderiv : deriv f = f')
(hdiff : ∀ x ∈ uIcc a b, DifferentiableAt ℝ f x) (hcont : ContinuousOn f' (uIcc a b)) :
∫ y in a..b, f' y = f b - f a :=
@@ -1309,12 +1394,14 @@ theorem integral_deriv_eq_sub' (f) (hderiv : deriv f = f')
rw [hderiv]
exact hcont.interval_integrable
#align interval_integral.integral_deriv_eq_sub' intervalIntegral.integral_deriv_eq_sub'
+-/
/-!
### Automatic integrability for nonnegative derivatives
-/
+#print intervalIntegral.integrableOn_deriv_right_of_nonneg /-
/-- When the right derivative of a function is nonnegative, then it is automatically integrable. -/
theorem integrableOn_deriv_right_of_nonneg (hcont : ContinuousOn g (Icc a b))
(hderiv : ∀ x ∈ Ioo a b, HasDerivWithinAt g (g' x) (Ioi x) x)
@@ -1353,7 +1440,9 @@ theorem integrableOn_deriv_right_of_nonneg (hcont : ContinuousOn g (Icc a b))
simp only [Real.norm_of_nonneg (g'pos x hx), coe_nnnorm]
exact lt_irrefl _ (hf.trans_le (ENNReal.ofReal_le_ofReal B))
#align interval_integral.integrable_on_deriv_right_of_nonneg intervalIntegral.integrableOn_deriv_right_of_nonneg
+-/
+#print intervalIntegral.integrableOn_deriv_of_nonneg /-
/-- When the derivative of a function is nonnegative, then it is automatically integrable,
Ioc version. -/
theorem integrableOn_deriv_of_nonneg (hcont : ContinuousOn g (Icc a b))
@@ -1361,7 +1450,9 @@ theorem integrableOn_deriv_of_nonneg (hcont : ContinuousOn g (Icc a b))
IntegrableOn g' (Ioc a b) :=
integrableOn_deriv_right_of_nonneg hcont (fun x hx => (hderiv x hx).HasDerivWithinAt) g'pos
#align interval_integral.integrable_on_deriv_of_nonneg intervalIntegral.integrableOn_deriv_of_nonneg
+-/
+#print intervalIntegral.intervalIntegrable_deriv_of_nonneg /-
/-- When the derivative of a function is nonnegative, then it is automatically integrable,
interval version. -/
theorem intervalIntegrable_deriv_of_nonneg (hcont : ContinuousOn g (uIcc a b))
@@ -1376,6 +1467,7 @@ theorem intervalIntegrable_deriv_of_nonneg (hcont : ContinuousOn g (uIcc a b))
integrable_on_empty, true_and_iff] at hcont hderiv hpos ⊢
exact integrable_on_deriv_of_nonneg hcont hderiv hpos
#align interval_integral.interval_integrable_deriv_of_nonneg intervalIntegral.intervalIntegrable_deriv_of_nonneg
+-/
/-!
### Integration by parts
@@ -1386,6 +1478,7 @@ section Parts
variable [NormedRing A] [NormedAlgebra ℝ A] [CompleteSpace A]
+#print intervalIntegral.integral_deriv_mul_eq_sub /-
theorem integral_deriv_mul_eq_sub {u v u' v' : ℝ → A} (hu : ∀ x ∈ uIcc a b, HasDerivAt u (u' x) x)
(hv : ∀ x ∈ uIcc a b, HasDerivAt v (v' x) x) (hu' : IntervalIntegrable u' volume a b)
(hv' : IntervalIntegrable v' volume a b) :
@@ -1394,7 +1487,9 @@ theorem integral_deriv_mul_eq_sub {u v u' v' : ℝ → A} (hu : ∀ x ∈ uIcc a
(hu'.mul_continuousOn (HasDerivAt.continuousOn hv)).add
(hv'.continuousOn_mul (HasDerivAt.continuousOn hu))
#align interval_integral.integral_deriv_mul_eq_sub intervalIntegral.integral_deriv_mul_eq_sub
+-/
+#print intervalIntegral.integral_mul_deriv_eq_deriv_mul /-
theorem integral_mul_deriv_eq_deriv_mul {u v u' v' : ℝ → A}
(hu : ∀ x ∈ uIcc a b, HasDerivAt u (u' x) x) (hv : ∀ x ∈ uIcc a b, HasDerivAt v (v' x) x)
(hu' : IntervalIntegrable u' volume a b) (hv' : IntervalIntegrable v' volume a b) :
@@ -1408,6 +1503,7 @@ theorem integral_mul_deriv_eq_deriv_mul {u v u' v' : ℝ → A}
(hv'.continuous_on_mul (HasDerivAt.continuousOn hu))
· exact hu'.mul_continuous_on (HasDerivAt.continuousOn hv)
#align interval_integral.integral_mul_deriv_eq_deriv_mul intervalIntegral.integral_mul_deriv_eq_deriv_mul
+-/
end Parts
@@ -1418,6 +1514,7 @@ end Parts
section Smul
+#print intervalIntegral.integral_comp_smul_deriv''' /-
/-- Change of variables, general form. If `f` is continuous on `[a, b]` and has
right-derivative `f'` in `(a, b)`, `g` is continuous on `f '' (a, b)` and integrable on
`f '' [a, b]`, and `f' x • (g ∘ f) x` is integrable on `[a, b]`,
@@ -1465,7 +1562,9 @@ theorem integral_comp_smul_deriv''' {f f' : ℝ → ℝ} {g : ℝ → E} (hf : C
rw [← intervalIntegrable_iff'] at hg2
simp_rw [integral_eq_sub_of_has_deriv_right h_cont h_der hg2, integral_same, sub_zero]
#align interval_integral.integral_comp_smul_deriv''' intervalIntegral.integral_comp_smul_deriv'''
+-/
+#print intervalIntegral.integral_comp_smul_deriv'' /-
/-- Change of variables for continuous integrands. If `f` is continuous on `[a, b]` and has
continuous right-derivative `f'` in `(a, b)`, and `g` is continuous on `f '' [a, b]` then we can
substitute `u = f x` to get `∫ x in a..b, f' x • (g ∘ f) x = ∫ u in f a..f b, g u`.
@@ -1481,6 +1580,7 @@ theorem integral_comp_smul_deriv'' {f f' : ℝ → ℝ} {g : ℝ → E} (hf : Co
rw [hf.image_uIcc] at hg ⊢
exact hg.integrable_on_Icc
#align interval_integral.integral_comp_smul_deriv'' intervalIntegral.integral_comp_smul_deriv''
+-/
#print intervalIntegral.integral_comp_smul_deriv' /-
/-- Change of variables. If `f` is has continuous derivative `f'` on `[a, b]`,
@@ -1509,6 +1609,7 @@ theorem integral_comp_smul_deriv {f f' : ℝ → ℝ} {g : ℝ → E}
#align interval_integral.integral_comp_smul_deriv intervalIntegral.integral_comp_smul_deriv
-/
+#print intervalIntegral.integral_deriv_comp_smul_deriv' /-
theorem integral_deriv_comp_smul_deriv' {f f' : ℝ → ℝ} {g g' : ℝ → E} (hf : ContinuousOn f [a, b])
(hff' : ∀ x ∈ Ioo (min a b) (max a b), HasDerivWithinAt f (f' x) (Ioi x) x)
(hf' : ContinuousOn f' [a, b]) (hg : ContinuousOn g [f a, f b])
@@ -1520,7 +1621,9 @@ theorem integral_deriv_comp_smul_deriv' {f f' : ℝ → ℝ} {g g' : ℝ → E}
integral_eq_sub_of_has_deriv_right hg hgg' (hg'.mono _).IntervalIntegrable]
exact intermediate_value_uIcc hf
#align interval_integral.integral_deriv_comp_smul_deriv' intervalIntegral.integral_deriv_comp_smul_deriv'
+-/
+#print intervalIntegral.integral_deriv_comp_smul_deriv /-
theorem integral_deriv_comp_smul_deriv {f f' : ℝ → ℝ} {g g' : ℝ → E}
(hf : ∀ x ∈ uIcc a b, HasDerivAt f (f' x) x)
(hg : ∀ x ∈ uIcc a b, HasDerivAt g (g' (f x)) (f x)) (hf' : ContinuousOn f' (uIcc a b))
@@ -1528,11 +1631,13 @@ theorem integral_deriv_comp_smul_deriv {f f' : ℝ → ℝ} {g g' : ℝ → E}
integral_eq_sub_of_hasDerivAt (fun x hx => (hg x hx).scomp x <| hf x hx)
(hf'.smul (hg'.comp_continuousOn <| HasDerivAt.continuousOn hf)).IntervalIntegrable
#align interval_integral.integral_deriv_comp_smul_deriv intervalIntegral.integral_deriv_comp_smul_deriv
+-/
end Smul
section Mul
+#print intervalIntegral.integral_comp_mul_deriv''' /-
/-- Change of variables, general form for scalar functions. If `f` is continuous on `[a, b]` and has
continuous right-derivative `f'` in `(a, b)`, `g` is continuous on `f '' (a, b)` and integrable on
`f '' [a, b]`, and `(g ∘ f) x * f' x` is integrable on `[a, b]`, then we can substitute `u = f x`
@@ -1547,7 +1652,9 @@ theorem integral_comp_mul_deriv''' {a b : ℝ} {f f' : ℝ → ℝ} {g : ℝ →
have hg2' : integrable_on (fun x => f' x • (g ∘ f) x) [a, b] := by simpa [mul_comm] using hg2
simpa [mul_comm] using integral_comp_smul_deriv''' hf hff' hg_cont hg1 hg2'
#align interval_integral.integral_comp_mul_deriv''' intervalIntegral.integral_comp_mul_deriv'''
+-/
+#print intervalIntegral.integral_comp_mul_deriv'' /-
/-- Change of variables for continuous integrands. If `f` is continuous on `[a, b]` and has
continuous right-derivative `f'` in `(a, b)`, and `g` is continuous on `f '' [a, b]` then we can
substitute `u = f x` to get `∫ x in a..b, (g ∘ f) x * f' x = ∫ u in f a..f b, g u`.
@@ -1558,7 +1665,9 @@ theorem integral_comp_mul_deriv'' {f f' g : ℝ → ℝ} (hf : ContinuousOn f [a
∫ x in a..b, (g ∘ f) x * f' x = ∫ u in f a..f b, g u := by
simpa [mul_comm] using integral_comp_smul_deriv'' hf hff' hf' hg
#align interval_integral.integral_comp_mul_deriv'' intervalIntegral.integral_comp_mul_deriv''
+-/
+#print intervalIntegral.integral_comp_mul_deriv' /-
/-- Change of variables. If `f` is has continuous derivative `f'` on `[a, b]`,
and `g` is continuous on `f '' [a, b]`, then we can substitute `u = f x` to get
`∫ x in a..b, (g ∘ f) x * f' x = ∫ u in f a..f b, g u`.
@@ -1570,7 +1679,9 @@ theorem integral_comp_mul_deriv' {f f' g : ℝ → ℝ} (h : ∀ x ∈ uIcc a b,
∫ x in a..b, (g ∘ f) x * f' x = ∫ x in f a..f b, g x := by
simpa [mul_comm] using integral_comp_smul_deriv' h h' hg
#align interval_integral.integral_comp_mul_deriv' intervalIntegral.integral_comp_mul_deriv'
+-/
+#print intervalIntegral.integral_comp_mul_deriv /-
/-- Change of variables, most common version. If `f` is has continuous derivative `f'` on `[a, b]`,
and `g` is continuous, then we can substitute `u = f x` to get
`∫ x in a..b, (g ∘ f) x * f' x = ∫ u in f a..f b, g u`.
@@ -1580,7 +1691,9 @@ theorem integral_comp_mul_deriv {f f' g : ℝ → ℝ} (h : ∀ x ∈ uIcc a b,
∫ x in a..b, (g ∘ f) x * f' x = ∫ x in f a..f b, g x :=
integral_comp_mul_deriv' h h' hg.ContinuousOn
#align interval_integral.integral_comp_mul_deriv intervalIntegral.integral_comp_mul_deriv
+-/
+#print intervalIntegral.integral_deriv_comp_mul_deriv' /-
theorem integral_deriv_comp_mul_deriv' {f f' g g' : ℝ → ℝ} (hf : ContinuousOn f [a, b])
(hff' : ∀ x ∈ Ioo (min a b) (max a b), HasDerivWithinAt f (f' x) (Ioi x) x)
(hf' : ContinuousOn f' [a, b]) (hg : ContinuousOn g [f a, f b])
@@ -1589,13 +1702,16 @@ theorem integral_deriv_comp_mul_deriv' {f f' g g' : ℝ → ℝ} (hf : Continuou
∫ x in a..b, (g' ∘ f) x * f' x = (g ∘ f) b - (g ∘ f) a := by
simpa [mul_comm] using integral_deriv_comp_smul_deriv' hf hff' hf' hg hgg' hg'
#align interval_integral.integral_deriv_comp_mul_deriv' intervalIntegral.integral_deriv_comp_mul_deriv'
+-/
+#print intervalIntegral.integral_deriv_comp_mul_deriv /-
theorem integral_deriv_comp_mul_deriv {f f' g g' : ℝ → ℝ}
(hf : ∀ x ∈ uIcc a b, HasDerivAt f (f' x) x)
(hg : ∀ x ∈ uIcc a b, HasDerivAt g (g' (f x)) (f x)) (hf' : ContinuousOn f' (uIcc a b))
(hg' : Continuous g') : ∫ x in a..b, (g' ∘ f) x * f' x = (g ∘ f) b - (g ∘ f) a := by
simpa [mul_comm] using integral_deriv_comp_smul_deriv hf hg hf' hg'
#align interval_integral.integral_deriv_comp_mul_deriv intervalIntegral.integral_deriv_comp_mul_deriv
+-/
end Mul
mathlib commit https://github.com/leanprover-community/mathlib/commit/a3e83f0fa4391c8740f7d773a7a9b74e311ae2a3
@@ -298,7 +298,7 @@ theorem measure_integral_sub_linear_isLittleO_of_tendsto_ae' [IsMeasurablyGenera
[TendstoIxxClass Ioc l l'] (hfm : StronglyMeasurableAtFilter f l' μ)
(hf : Tendsto f (l' ⊓ μ.ae) (𝓝 c)) (hl : μ.FiniteAtFilter l') (hu : Tendsto u lt l)
(hv : Tendsto v lt l) :
- (fun t => (∫ x in u t..v t, f x ∂μ) - ∫ x in u t..v t, c ∂μ) =o[lt] fun t =>
+ (fun t => ∫ x in u t..v t, f x ∂μ - ∫ x in u t..v t, c ∂μ) =o[lt] fun t =>
∫ x in u t..v t, (1 : ℝ) ∂μ :=
by
have A := hf.integral_sub_linear_is_o_ae hfm hl (hu.Ioc hv)
@@ -327,7 +327,7 @@ theorem measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_le' [IsMeasurably
[TendstoIxxClass Ioc l l'] (hfm : StronglyMeasurableAtFilter f l' μ)
(hf : Tendsto f (l' ⊓ μ.ae) (𝓝 c)) (hl : μ.FiniteAtFilter l') (hu : Tendsto u lt l)
(hv : Tendsto v lt l) (huv : u ≤ᶠ[lt] v) :
- (fun t => (∫ x in u t..v t, f x ∂μ) - (μ (Ioc (u t) (v t))).toReal • c) =o[lt] fun t =>
+ (fun t => ∫ x in u t..v t, f x ∂μ - (μ (Ioc (u t) (v t))).toReal • c) =o[lt] fun t =>
(μ <| Ioc (u t) (v t)).toReal :=
(measure_integral_sub_linear_isLittleO_of_tendsto_ae' hfm hf hl hu hv).congr'
(huv.mono fun x hx => by simp [integral_const', hx])
@@ -350,7 +350,7 @@ theorem measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_ge' [IsMeasurably
[TendstoIxxClass Ioc l l'] (hfm : StronglyMeasurableAtFilter f l' μ)
(hf : Tendsto f (l' ⊓ μ.ae) (𝓝 c)) (hl : μ.FiniteAtFilter l') (hu : Tendsto u lt l)
(hv : Tendsto v lt l) (huv : v ≤ᶠ[lt] u) :
- (fun t => (∫ x in u t..v t, f x ∂μ) + (μ (Ioc (v t) (u t))).toReal • c) =o[lt] fun t =>
+ (fun t => ∫ x in u t..v t, f x ∂μ + (μ (Ioc (v t) (u t))).toReal • c) =o[lt] fun t =>
(μ <| Ioc (v t) (u t)).toReal :=
(measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_le' hfm hf hl hv hu
huv).neg_left.congr_left
@@ -379,7 +379,7 @@ a statement that works in both cases `u ≤ v` and `v ≤ u`. -/
theorem measure_integral_sub_linear_isLittleO_of_tendsto_ae
(hfm : StronglyMeasurableAtFilter f l' μ) (hf : Tendsto f (l' ⊓ μ.ae) (𝓝 c))
(hu : Tendsto u lt l) (hv : Tendsto v lt l) :
- (fun t => (∫ x in u t..v t, f x ∂μ) - ∫ x in u t..v t, c ∂μ) =o[lt] fun t =>
+ (fun t => ∫ x in u t..v t, f x ∂μ - ∫ x in u t..v t, c ∂μ) =o[lt] fun t =>
∫ x in u t..v t, (1 : ℝ) ∂μ :=
measure_integral_sub_linear_isLittleO_of_tendsto_ae' hfm hf (FTCFilter.finite_at_inner l) hu hv
#align interval_integral.measure_integral_sub_linear_is_o_of_tendsto_ae intervalIntegral.measure_integral_sub_linear_isLittleO_of_tendsto_ae
@@ -394,7 +394,7 @@ e.g., for `l = l' = at_top`. -/
theorem measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_le
(hfm : StronglyMeasurableAtFilter f l' μ) (hf : Tendsto f (l' ⊓ μ.ae) (𝓝 c))
(hu : Tendsto u lt l) (hv : Tendsto v lt l) (huv : u ≤ᶠ[lt] v) :
- (fun t => (∫ x in u t..v t, f x ∂μ) - (μ (Ioc (u t) (v t))).toReal • c) =o[lt] fun t =>
+ (fun t => ∫ x in u t..v t, f x ∂μ - (μ (Ioc (u t) (v t))).toReal • c) =o[lt] fun t =>
(μ <| Ioc (u t) (v t)).toReal :=
measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_le' hfm hf (FTCFilter.finite_at_inner l) hu
hv huv
@@ -410,7 +410,7 @@ e.g., for `l = l' = at_top`. -/
theorem measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_ge
(hfm : StronglyMeasurableAtFilter f l' μ) (hf : Tendsto f (l' ⊓ μ.ae) (𝓝 c))
(hu : Tendsto u lt l) (hv : Tendsto v lt l) (huv : v ≤ᶠ[lt] u) :
- (fun t => (∫ x in u t..v t, f x ∂μ) + (μ (Ioc (v t) (u t))).toReal • c) =o[lt] fun t =>
+ (fun t => ∫ x in u t..v t, f x ∂μ + (μ (Ioc (v t) (u t))).toReal • c) =o[lt] fun t =>
(μ <| Ioc (v t) (u t)).toReal :=
measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_ge' hfm hf (FTCFilter.finite_at_inner l) hu
hv huv
@@ -439,8 +439,8 @@ theorem measure_integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae
(hb_lim : Tendsto f (lb' ⊓ μ.ae) (𝓝 cb)) (hua : Tendsto ua lt la) (hva : Tendsto va lt la)
(hub : Tendsto ub lt lb) (hvb : Tendsto vb lt lb) :
(fun t =>
- ((∫ x in va t..vb t, f x ∂μ) - ∫ x in ua t..ub t, f x ∂μ) -
- ((∫ x in ub t..vb t, cb ∂μ) - ∫ x in ua t..va t, ca ∂μ)) =o[lt]
+ ∫ x in va t..vb t, f x ∂μ - ∫ x in ua t..ub t, f x ∂μ -
+ (∫ x in ub t..vb t, cb ∂μ - ∫ x in ua t..va t, ca ∂μ)) =o[lt]
fun t => ‖∫ x in ua t..va t, (1 : ℝ) ∂μ‖ + ‖∫ x in ub t..vb t, (1 : ℝ) ∂μ‖ :=
by
refine'
@@ -475,8 +475,8 @@ as `u` and `v` tend to `lb`.
theorem measure_integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae_right
(hab : IntervalIntegrable f μ a b) (hmeas : StronglyMeasurableAtFilter f lb' μ)
(hf : Tendsto f (lb' ⊓ μ.ae) (𝓝 c)) (hu : Tendsto u lt lb) (hv : Tendsto v lt lb) :
- (fun t => ((∫ x in a..v t, f x ∂μ) - ∫ x in a..u t, f x ∂μ) - ∫ x in u t..v t, c ∂μ) =o[lt]
- fun t => ∫ x in u t..v t, (1 : ℝ) ∂μ :=
+ (fun t => ∫ x in a..v t, f x ∂μ - ∫ x in a..u t, f x ∂μ - ∫ x in u t..v t, c ∂μ) =o[lt] fun t =>
+ ∫ x in u t..v t, (1 : ℝ) ∂μ :=
by
simpa using
measure_integral_sub_integral_sub_linear_is_o_of_tendsto_ae hab stronglyMeasurableAt_bot hmeas
@@ -496,8 +496,8 @@ as `u` and `v` tend to `la`.
theorem measure_integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae_left
(hab : IntervalIntegrable f μ a b) (hmeas : StronglyMeasurableAtFilter f la' μ)
(hf : Tendsto f (la' ⊓ μ.ae) (𝓝 c)) (hu : Tendsto u lt la) (hv : Tendsto v lt la) :
- (fun t => ((∫ x in v t..b, f x ∂μ) - ∫ x in u t..b, f x ∂μ) + ∫ x in u t..v t, c ∂μ) =o[lt]
- fun t => ∫ x in u t..v t, (1 : ℝ) ∂μ :=
+ (fun t => ∫ x in v t..b, f x ∂μ - ∫ x in u t..b, f x ∂μ + ∫ x in u t..v t, c ∂μ) =o[lt] fun t =>
+ ∫ x in u t..v t, (1 : ℝ) ∂μ :=
by
simpa using
measure_integral_sub_integral_sub_linear_is_o_of_tendsto_ae hab hmeas stronglyMeasurableAt_bot
@@ -1204,7 +1204,7 @@ theorem sub_le_integral_of_hasDeriv_right_of_le (hab : a ≤ b) (hcont : Continu
/-- Auxiliary lemma in the proof of `integral_eq_sub_of_has_deriv_right_of_le`. -/
theorem integral_le_sub_of_hasDeriv_right_of_le (hab : a ≤ b) (hcont : ContinuousOn g (Icc a b))
(hderiv : ∀ x ∈ Ioo a b, HasDerivWithinAt g (g' x) (Ioi x) x) (φint : IntegrableOn φ (Icc a b))
- (hφg : ∀ x ∈ Ioo a b, φ x ≤ g' x) : (∫ y in a..b, φ y) ≤ g b - g a :=
+ (hφg : ∀ x ∈ Ioo a b, φ x ≤ g' x) : ∫ y in a..b, φ y ≤ g b - g a :=
by
rw [← neg_le_neg_iff]
convert
@@ -1217,7 +1217,7 @@ theorem integral_le_sub_of_hasDeriv_right_of_le (hab : a ≤ b) (hcont : Continu
/-- Auxiliary lemma in the proof of `integral_eq_sub_of_has_deriv_right_of_le`: real version -/
theorem integral_eq_sub_of_hasDeriv_right_of_le_real (hab : a ≤ b)
(hcont : ContinuousOn g (Icc a b)) (hderiv : ∀ x ∈ Ioo a b, HasDerivWithinAt g (g' x) (Ioi x) x)
- (g'int : IntegrableOn g' (Icc a b)) : (∫ y in a..b, g' y) = g b - g a :=
+ (g'int : IntegrableOn g' (Icc a b)) : ∫ y in a..b, g' y = g b - g a :=
le_antisymm (integral_le_sub_of_hasDeriv_right_of_le hab hcont hderiv g'int fun x hx => le_rfl)
(sub_le_integral_of_hasDeriv_right_of_le hab hcont hderiv g'int fun x hx => le_rfl)
#align interval_integral.integral_eq_sub_of_has_deriv_right_of_le_real intervalIntegral.integral_eq_sub_of_hasDeriv_right_of_le_real
@@ -1229,7 +1229,7 @@ variable {f' : ℝ → E}
then `∫ y in a..b, f' y` equals `f b - f a`. -/
theorem integral_eq_sub_of_hasDeriv_right_of_le (hab : a ≤ b) (hcont : ContinuousOn f (Icc a b))
(hderiv : ∀ x ∈ Ioo a b, HasDerivWithinAt f (f' x) (Ioi x) x)
- (f'int : IntervalIntegrable f' volume a b) : (∫ y in a..b, f' y) = f b - f a :=
+ (f'int : IntervalIntegrable f' volume a b) : ∫ y in a..b, f' y = f b - f a :=
by
refine' (NormedSpace.eq_iff_forall_dual_eq ℝ).2 fun g => _
rw [← g.interval_integral_comp_comm f'int, g.map_sub]
@@ -1244,7 +1244,7 @@ theorem integral_eq_sub_of_hasDeriv_right_of_le (hab : a ≤ b) (hcont : Continu
`∫ y in a..b, f' y` equals `f b - f a`. -/
theorem integral_eq_sub_of_hasDeriv_right (hcont : ContinuousOn f (uIcc a b))
(hderiv : ∀ x ∈ Ioo (min a b) (max a b), HasDerivWithinAt f (f' x) (Ioi x) x)
- (hint : IntervalIntegrable f' volume a b) : (∫ y in a..b, f' y) = f b - f a :=
+ (hint : IntervalIntegrable f' volume a b) : ∫ y in a..b, f' y = f b - f a :=
by
cases' le_total a b with hab hab
· simp only [uIcc_of_le, min_eq_left, max_eq_right, hab] at hcont hderiv hint
@@ -1258,7 +1258,7 @@ theorem integral_eq_sub_of_hasDeriv_right (hcont : ContinuousOn f (uIcc a b))
`∫ y in a..b, f' y` equals `f b - f a`. -/
theorem integral_eq_sub_of_hasDerivAt_of_le (hab : a ≤ b) (hcont : ContinuousOn f (Icc a b))
(hderiv : ∀ x ∈ Ioo a b, HasDerivAt f (f' x) x) (hint : IntervalIntegrable f' volume a b) :
- (∫ y in a..b, f' y) = f b - f a :=
+ ∫ y in a..b, f' y = f b - f a :=
integral_eq_sub_of_hasDeriv_right_of_le hab hcont (fun x hx => (hderiv x hx).HasDerivWithinAt)
hint
#align interval_integral.integral_eq_sub_of_has_deriv_at_of_le intervalIntegral.integral_eq_sub_of_hasDerivAt_of_le
@@ -1266,7 +1266,7 @@ theorem integral_eq_sub_of_hasDerivAt_of_le (hab : a ≤ b) (hcont : ContinuousO
/-- Fundamental theorem of calculus-2: If `f : ℝ → E` has a derivative at `f' x` for all `x` in
`[a, b]` and `f'` is integrable on `[a, b]`, then `∫ y in a..b, f' y` equals `f b - f a`. -/
theorem integral_eq_sub_of_hasDerivAt (hderiv : ∀ x ∈ uIcc a b, HasDerivAt f (f' x) x)
- (hint : IntervalIntegrable f' volume a b) : (∫ y in a..b, f' y) = f b - f a :=
+ (hint : IntervalIntegrable f' volume a b) : ∫ y in a..b, f' y = f b - f a :=
integral_eq_sub_of_hasDeriv_right (HasDerivAt.continuousOn hderiv)
(fun x hx => (hderiv _ (mem_Icc_of_Ioo hx)).HasDerivWithinAt) hint
#align interval_integral.integral_eq_sub_of_has_deriv_at intervalIntegral.integral_eq_sub_of_hasDerivAt
@@ -1274,7 +1274,7 @@ theorem integral_eq_sub_of_hasDerivAt (hderiv : ∀ x ∈ uIcc a b, HasDerivAt f
theorem integral_eq_sub_of_hasDerivAt_of_tendsto (hab : a < b) {fa fb}
(hderiv : ∀ x ∈ Ioo a b, HasDerivAt f (f' x) x) (hint : IntervalIntegrable f' volume a b)
(ha : Tendsto f (𝓝[>] a) (𝓝 fa)) (hb : Tendsto f (𝓝[<] b) (𝓝 fb)) :
- (∫ y in a..b, f' y) = fb - fa :=
+ ∫ y in a..b, f' y = fb - fa :=
by
set F : ℝ → E := update (update f a fa) b fb
have Fderiv : ∀ x ∈ Ioo a b, HasDerivAt F (f' x) x :=
@@ -1297,13 +1297,13 @@ theorem integral_eq_sub_of_hasDerivAt_of_tendsto (hab : a < b) {fa fb}
/-- Fundamental theorem of calculus-2: If `f : ℝ → E` is differentiable at every `x` in `[a, b]` and
its derivative is integrable on `[a, b]`, then `∫ y in a..b, deriv f y` equals `f b - f a`. -/
theorem integral_deriv_eq_sub (hderiv : ∀ x ∈ uIcc a b, DifferentiableAt ℝ f x)
- (hint : IntervalIntegrable (deriv f) volume a b) : (∫ y in a..b, deriv f y) = f b - f a :=
+ (hint : IntervalIntegrable (deriv f) volume a b) : ∫ y in a..b, deriv f y = f b - f a :=
integral_eq_sub_of_hasDerivAt (fun x hx => (hderiv x hx).HasDerivAt) hint
#align interval_integral.integral_deriv_eq_sub intervalIntegral.integral_deriv_eq_sub
theorem integral_deriv_eq_sub' (f) (hderiv : deriv f = f')
(hdiff : ∀ x ∈ uIcc a b, DifferentiableAt ℝ f x) (hcont : ContinuousOn f' (uIcc a b)) :
- (∫ y in a..b, f' y) = f b - f a :=
+ ∫ y in a..b, f' y = f b - f a :=
by
rw [← hderiv, integral_deriv_eq_sub hdiff]
rw [hderiv]
@@ -1328,23 +1328,23 @@ theorem integrableOn_deriv_right_of_nonneg (hcont : ContinuousOn g (Icc a b))
apply (aemeasurable_derivWithin_Ioi g _).congr
refine' (ae_restrict_mem measurableSet_Ioo).mono fun x hx => _
exact (hderiv x hx).derivWithin (uniqueDiffWithinAt_Ioi _)
- suffices H : (∫⁻ x in Ioo a b, ‖g' x‖₊) ≤ ENNReal.ofReal (g b - g a)
+ suffices H : ∫⁻ x in Ioo a b, ‖g' x‖₊ ≤ ENNReal.ofReal (g b - g a)
exact ⟨meas_g'.ae_strongly_measurable, H.trans_lt ENNReal.ofReal_lt_top⟩
by_contra' H
obtain ⟨f, fle, fint, hf⟩ :
∃ f : simple_func ℝ ℝ≥0,
(∀ x, f x ≤ ‖g' x‖₊) ∧
- (∫⁻ x : ℝ in Ioo a b, f x) < ∞ ∧ ENNReal.ofReal (g b - g a) < ∫⁻ x : ℝ in Ioo a b, f x :=
+ ∫⁻ x : ℝ in Ioo a b, f x < ∞ ∧ ENNReal.ofReal (g b - g a) < ∫⁻ x : ℝ in Ioo a b, f x :=
exists_lt_lintegral_simple_func_of_lt_lintegral H
let F : ℝ → ℝ := coe ∘ f
have intF : integrable_on F (Ioo a b) :=
by
refine' ⟨f.measurable.coe_nnreal_real.ae_strongly_measurable, _⟩
simpa only [has_finite_integral, NNReal.nnnorm_eq] using fint
- have A : (∫⁻ x : ℝ in Ioo a b, f x) = ENNReal.ofReal (∫ x in Ioo a b, F x) :=
+ have A : ∫⁻ x : ℝ in Ioo a b, f x = ENNReal.ofReal (∫ x in Ioo a b, F x) :=
lintegral_coe_eq_integral _ intF
rw [A] at hf
- have B : (∫ x : ℝ in Ioo a b, F x) ≤ g b - g a :=
+ have B : ∫ x : ℝ in Ioo a b, F x ≤ g b - g a :=
by
rw [← integral_Ioc_eq_integral_Ioo, ← intervalIntegral.integral_of_le hab.le]
apply integral_le_sub_of_has_deriv_right_of_le hab.le hcont hderiv _ fun x hx => _
@@ -1389,7 +1389,7 @@ variable [NormedRing A] [NormedAlgebra ℝ A] [CompleteSpace A]
theorem integral_deriv_mul_eq_sub {u v u' v' : ℝ → A} (hu : ∀ x ∈ uIcc a b, HasDerivAt u (u' x) x)
(hv : ∀ x ∈ uIcc a b, HasDerivAt v (v' x) x) (hu' : IntervalIntegrable u' volume a b)
(hv' : IntervalIntegrable v' volume a b) :
- (∫ x in a..b, u' x * v x + u x * v' x) = u b * v b - u a * v a :=
+ ∫ x in a..b, u' x * v x + u x * v' x = u b * v b - u a * v a :=
(integral_eq_sub_of_hasDerivAt fun x hx => (hu x hx).mul (hv x hx)) <|
(hu'.mul_continuousOn (HasDerivAt.continuousOn hv)).add
(hv'.continuousOn_mul (HasDerivAt.continuousOn hu))
@@ -1398,7 +1398,7 @@ theorem integral_deriv_mul_eq_sub {u v u' v' : ℝ → A} (hu : ∀ x ∈ uIcc a
theorem integral_mul_deriv_eq_deriv_mul {u v u' v' : ℝ → A}
(hu : ∀ x ∈ uIcc a b, HasDerivAt u (u' x) x) (hv : ∀ x ∈ uIcc a b, HasDerivAt v (v' x) x)
(hu' : IntervalIntegrable u' volume a b) (hv' : IntervalIntegrable v' volume a b) :
- (∫ x in a..b, u x * v' x) = u b * v b - u a * v a - ∫ x in a..b, u' x * v x :=
+ ∫ x in a..b, u x * v' x = u b * v b - u a * v a - ∫ x in a..b, u' x * v x :=
by
rw [← integral_deriv_mul_eq_sub hu hv hu' hv', ← integral_sub]
· exact integral_congr fun x hx => by simp only [add_sub_cancel']
@@ -1427,7 +1427,7 @@ theorem integral_comp_smul_deriv''' {f f' : ℝ → ℝ} {g : ℝ → E} (hf : C
(hff' : ∀ x ∈ Ioo (min a b) (max a b), HasDerivWithinAt f (f' x) (Ioi x) x)
(hg_cont : ContinuousOn g (f '' Ioo (min a b) (max a b))) (hg1 : IntegrableOn g (f '' [a, b]))
(hg2 : IntegrableOn (fun x => f' x • (g ∘ f) x) [a, b]) :
- (∫ x in a..b, f' x • (g ∘ f) x) = ∫ u in f a..f b, g u :=
+ ∫ x in a..b, f' x • (g ∘ f) x = ∫ u in f a..f b, g u :=
by
rw [hf.image_uIcc, ← intervalIntegrable_iff'] at hg1
have h_cont : ContinuousOn (fun u => ∫ t in f a..f u, g t) [a, b] :=
@@ -1473,7 +1473,7 @@ substitute `u = f x` to get `∫ x in a..b, f' x • (g ∘ f) x = ∫ u in f a.
theorem integral_comp_smul_deriv'' {f f' : ℝ → ℝ} {g : ℝ → E} (hf : ContinuousOn f [a, b])
(hff' : ∀ x ∈ Ioo (min a b) (max a b), HasDerivWithinAt f (f' x) (Ioi x) x)
(hf' : ContinuousOn f' [a, b]) (hg : ContinuousOn g (f '' [a, b])) :
- (∫ x in a..b, f' x • (g ∘ f) x) = ∫ u in f a..f b, g u :=
+ ∫ x in a..b, f' x • (g ∘ f) x = ∫ u in f a..f b, g u :=
by
refine'
integral_comp_smul_deriv''' hf hff' (hg.mono <| image_subset _ Ioo_subset_Icc_self) _
@@ -1491,7 +1491,7 @@ Compared to `interval_integral.integral_comp_smul_deriv` we only require that `g
-/
theorem integral_comp_smul_deriv' {f f' : ℝ → ℝ} {g : ℝ → E}
(h : ∀ x ∈ uIcc a b, HasDerivAt f (f' x) x) (h' : ContinuousOn f' (uIcc a b))
- (hg : ContinuousOn g (f '' [a, b])) : (∫ x in a..b, f' x • (g ∘ f) x) = ∫ x in f a..f b, g x :=
+ (hg : ContinuousOn g (f '' [a, b])) : ∫ x in a..b, f' x • (g ∘ f) x = ∫ x in f a..f b, g x :=
integral_comp_smul_deriv'' (fun x hx => (h x hx).ContinuousAt.ContinuousWithinAt)
(fun x hx => (h x <| Ioo_subset_Icc_self hx).HasDerivWithinAt) h' hg
#align interval_integral.integral_comp_smul_deriv' intervalIntegral.integral_comp_smul_deriv'
@@ -1504,7 +1504,7 @@ and `g` is continuous, then we can substitute `u = f x` to get
-/
theorem integral_comp_smul_deriv {f f' : ℝ → ℝ} {g : ℝ → E}
(h : ∀ x ∈ uIcc a b, HasDerivAt f (f' x) x) (h' : ContinuousOn f' (uIcc a b))
- (hg : Continuous g) : (∫ x in a..b, f' x • (g ∘ f) x) = ∫ x in f a..f b, g x :=
+ (hg : Continuous g) : ∫ x in a..b, f' x • (g ∘ f) x = ∫ x in f a..f b, g x :=
integral_comp_smul_deriv' h h' hg.ContinuousOn
#align interval_integral.integral_comp_smul_deriv intervalIntegral.integral_comp_smul_deriv
-/
@@ -1514,7 +1514,7 @@ theorem integral_deriv_comp_smul_deriv' {f f' : ℝ → ℝ} {g g' : ℝ → E}
(hf' : ContinuousOn f' [a, b]) (hg : ContinuousOn g [f a, f b])
(hgg' : ∀ x ∈ Ioo (min (f a) (f b)) (max (f a) (f b)), HasDerivWithinAt g (g' x) (Ioi x) x)
(hg' : ContinuousOn g' (f '' [a, b])) :
- (∫ x in a..b, f' x • (g' ∘ f) x) = (g ∘ f) b - (g ∘ f) a :=
+ ∫ x in a..b, f' x • (g' ∘ f) x = (g ∘ f) b - (g ∘ f) a :=
by
rw [integral_comp_smul_deriv'' hf hff' hf' hg',
integral_eq_sub_of_has_deriv_right hg hgg' (hg'.mono _).IntervalIntegrable]
@@ -1524,7 +1524,7 @@ theorem integral_deriv_comp_smul_deriv' {f f' : ℝ → ℝ} {g g' : ℝ → E}
theorem integral_deriv_comp_smul_deriv {f f' : ℝ → ℝ} {g g' : ℝ → E}
(hf : ∀ x ∈ uIcc a b, HasDerivAt f (f' x) x)
(hg : ∀ x ∈ uIcc a b, HasDerivAt g (g' (f x)) (f x)) (hf' : ContinuousOn f' (uIcc a b))
- (hg' : Continuous g') : (∫ x in a..b, f' x • (g' ∘ f) x) = (g ∘ f) b - (g ∘ f) a :=
+ (hg' : Continuous g') : ∫ x in a..b, f' x • (g' ∘ f) x = (g ∘ f) b - (g ∘ f) a :=
integral_eq_sub_of_hasDerivAt (fun x hx => (hg x hx).scomp x <| hf x hx)
(hf'.smul (hg'.comp_continuousOn <| HasDerivAt.continuousOn hf)).IntervalIntegrable
#align interval_integral.integral_deriv_comp_smul_deriv intervalIntegral.integral_deriv_comp_smul_deriv
@@ -1542,7 +1542,7 @@ theorem integral_comp_mul_deriv''' {a b : ℝ} {f f' : ℝ → ℝ} {g : ℝ →
(hff' : ∀ x ∈ Ioo (min a b) (max a b), HasDerivWithinAt f (f' x) (Ioi x) x)
(hg_cont : ContinuousOn g (f '' Ioo (min a b) (max a b))) (hg1 : IntegrableOn g (f '' [a, b]))
(hg2 : IntegrableOn (fun x => (g ∘ f) x * f' x) [a, b]) :
- (∫ x in a..b, (g ∘ f) x * f' x) = ∫ u in f a..f b, g u :=
+ ∫ x in a..b, (g ∘ f) x * f' x = ∫ u in f a..f b, g u :=
by
have hg2' : integrable_on (fun x => f' x • (g ∘ f) x) [a, b] := by simpa [mul_comm] using hg2
simpa [mul_comm] using integral_comp_smul_deriv''' hf hff' hg_cont hg1 hg2'
@@ -1555,7 +1555,7 @@ substitute `u = f x` to get `∫ x in a..b, (g ∘ f) x * f' x = ∫ u in f a..f
theorem integral_comp_mul_deriv'' {f f' g : ℝ → ℝ} (hf : ContinuousOn f [a, b])
(hff' : ∀ x ∈ Ioo (min a b) (max a b), HasDerivWithinAt f (f' x) (Ioi x) x)
(hf' : ContinuousOn f' [a, b]) (hg : ContinuousOn g (f '' [a, b])) :
- (∫ x in a..b, (g ∘ f) x * f' x) = ∫ u in f a..f b, g u := by
+ ∫ x in a..b, (g ∘ f) x * f' x = ∫ u in f a..f b, g u := by
simpa [mul_comm] using integral_comp_smul_deriv'' hf hff' hf' hg
#align interval_integral.integral_comp_mul_deriv'' intervalIntegral.integral_comp_mul_deriv''
@@ -1567,7 +1567,7 @@ Compared to `interval_integral.integral_comp_mul_deriv` we only require that `g`
-/
theorem integral_comp_mul_deriv' {f f' g : ℝ → ℝ} (h : ∀ x ∈ uIcc a b, HasDerivAt f (f' x) x)
(h' : ContinuousOn f' (uIcc a b)) (hg : ContinuousOn g (f '' [a, b])) :
- (∫ x in a..b, (g ∘ f) x * f' x) = ∫ x in f a..f b, g x := by
+ ∫ x in a..b, (g ∘ f) x * f' x = ∫ x in f a..f b, g x := by
simpa [mul_comm] using integral_comp_smul_deriv' h h' hg
#align interval_integral.integral_comp_mul_deriv' intervalIntegral.integral_comp_mul_deriv'
@@ -1577,7 +1577,7 @@ and `g` is continuous, then we can substitute `u = f x` to get
-/
theorem integral_comp_mul_deriv {f f' g : ℝ → ℝ} (h : ∀ x ∈ uIcc a b, HasDerivAt f (f' x) x)
(h' : ContinuousOn f' (uIcc a b)) (hg : Continuous g) :
- (∫ x in a..b, (g ∘ f) x * f' x) = ∫ x in f a..f b, g x :=
+ ∫ x in a..b, (g ∘ f) x * f' x = ∫ x in f a..f b, g x :=
integral_comp_mul_deriv' h h' hg.ContinuousOn
#align interval_integral.integral_comp_mul_deriv intervalIntegral.integral_comp_mul_deriv
@@ -1586,14 +1586,14 @@ theorem integral_deriv_comp_mul_deriv' {f f' g g' : ℝ → ℝ} (hf : Continuou
(hf' : ContinuousOn f' [a, b]) (hg : ContinuousOn g [f a, f b])
(hgg' : ∀ x ∈ Ioo (min (f a) (f b)) (max (f a) (f b)), HasDerivWithinAt g (g' x) (Ioi x) x)
(hg' : ContinuousOn g' (f '' [a, b])) :
- (∫ x in a..b, (g' ∘ f) x * f' x) = (g ∘ f) b - (g ∘ f) a := by
+ ∫ x in a..b, (g' ∘ f) x * f' x = (g ∘ f) b - (g ∘ f) a := by
simpa [mul_comm] using integral_deriv_comp_smul_deriv' hf hff' hf' hg hgg' hg'
#align interval_integral.integral_deriv_comp_mul_deriv' intervalIntegral.integral_deriv_comp_mul_deriv'
theorem integral_deriv_comp_mul_deriv {f f' g g' : ℝ → ℝ}
(hf : ∀ x ∈ uIcc a b, HasDerivAt f (f' x) x)
(hg : ∀ x ∈ uIcc a b, HasDerivAt g (g' (f x)) (f x)) (hf' : ContinuousOn f' (uIcc a b))
- (hg' : Continuous g') : (∫ x in a..b, (g' ∘ f) x * f' x) = (g ∘ f) b - (g ∘ f) a := by
+ (hg' : Continuous g') : ∫ x in a..b, (g' ∘ f) x * f' x = (g ∘ f) b - (g ∘ f) a := by
simpa [mul_comm] using integral_deriv_comp_smul_deriv hf hg hf' hg'
#align interval_integral.integral_deriv_comp_mul_deriv intervalIntegral.integral_deriv_comp_mul_deriv
mathlib commit https://github.com/leanprover-community/mathlib/commit/a3e83f0fa4391c8740f7d773a7a9b74e311ae2a3
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yury G. Kudryashov, Patrick Massot, Sébastien Gouëzel
! This file was ported from Lean 3 source module measure_theory.integral.fund_thm_calculus
-! leanprover-community/mathlib commit 3bce8d800a6f2b8f63fe1e588fd76a9ff4adcebe
+! leanprover-community/mathlib commit 6b31d1eebd64eab86d5bd9936bfaada6ca8b5842
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -20,6 +20,9 @@ import Mathbin.MeasureTheory.Integral.VitaliCaratheodory
/-!
# Fundamental Theorem of Calculus
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
We prove various versions of the
[fundamental theorem of calculus](https://en.wikipedia.org/wiki/Fundamental_theorem_of_calculus)
for interval integrals in `ℝ`.
mathlib commit https://github.com/leanprover-community/mathlib/commit/7e5137f579de09a059a5ce98f364a04e221aabf0
@@ -896,7 +896,7 @@ theorem integral_hasFDerivWithinAt (hf : IntervalIntegrable f volume a b)
#align interval_integral.integral_has_fderiv_within_at intervalIntegral.integral_hasFDerivWithinAt
-/
-/- ./././Mathport/Syntax/Translate/Expr.lean:330:4: warning: unsupported (TODO): `[tacs] -/
+/- ./././Mathport/Syntax/Translate/Expr.lean:336:4: warning: unsupported (TODO): `[tacs] -/
/-- An auxiliary tactic closing goals `unique_diff_within_at ℝ s a` where
`s ∈ {Iic a, Ici a, univ}`. -/
unsafe def unique_diff_within_at_Ici_Iic_univ : tactic Unit :=
@@ -1119,7 +1119,6 @@ theorem sub_le_integral_of_hasDeriv_right_of_le_Ico (hab : a ≤ b) (hcont : Con
(hx.right.trans_lt hu.right).trans_le (min_le_left M b), mem_Ioo, and_self_iff]
convert le_of_lt (H this)
exact EReal.coe_toReal G'x.ne (ne_bot_of_gt (f_lt_G' x))
-
-- bound from above the increase of `g u - g a` on the right of `t`, using the derivative at `t`
have I2 : ∀ᶠ u in 𝓝[>] t, g u - g t ≤ (u - t) * y :=
by
@@ -1154,7 +1153,6 @@ theorem sub_le_integral_of_hasDeriv_right_of_le_Ico (hab : a ≤ b) (hcont : Con
· rw [intervalIntegrable_iff_integrable_Ioc_of_le h'x.1.le]
apply integrable_on.mono_set G'int
refine' Ioc_subset_Icc_self.trans (Icc_subset_Icc ht.2.1 (h'x.2.trans (min_le_right _ _)))
-
-- now that we know that `s` contains `[a, b]`, we get the desired result by applying this to `b`.
calc
g b - g a ≤ ∫ y in a..b, (G' y).toReal := main (right_mem_Icc.2 hab)
@@ -1162,7 +1160,6 @@ theorem sub_le_integral_of_hasDeriv_right_of_le_Ico (hab : a ≤ b) (hcont : Con
convert hG'.le <;>
· rw [intervalIntegral.integral_of_le hab]
simp only [integral_Icc_eq_integral_Ioc', Real.volume_singleton]
-
#align interval_integral.sub_le_integral_of_has_deriv_right_of_le_Ico intervalIntegral.sub_le_integral_of_hasDeriv_right_of_le_Ico
/-- Hard part of FTC-2 for integrable derivatives, real-valued functions: one has
mathlib commit https://github.com/leanprover-community/mathlib/commit/58a272265b5e05f258161260dd2c5d247213cbd3
@@ -189,6 +189,7 @@ In the next subsection we apply this theorem to prove various theorems about dif
of the integral w.r.t. Lebesgue measure. -/
+#print intervalIntegral.FTCFilter /-
/-- An auxiliary typeclass for the Fundamental theorem of calculus, part 1. It is used to formulate
theorems that work simultaneously for left and right one-sided derivatives of `∫ x in u..v, f x`. -/
class FTCFilter (a : outParam ℝ) (outer : Filter ℝ) (inner : outParam <| Filter ℝ) extends
@@ -197,6 +198,7 @@ class FTCFilter (a : outParam ℝ) (outer : Filter ℝ) (inner : outParam <| Fil
le_nhds : inner ≤ 𝓝 a
[meas_gen : IsMeasurablyGenerated inner]
#align interval_integral.FTC_filter intervalIntegral.FTCFilter
+-/
/- The `dangerous_instance` linter doesn't take `out_param`s into account, so it thinks that
`FTC_filter.to_tendsto_Ixx_class` is dangerous. Disable this linter using `nolint`.
@@ -215,42 +217,56 @@ instance nhdsWithinSingleton (a : ℝ) : FTCFilter a (𝓝[{a}] a) ⊥ := by
rw [nhdsWithin, principal_singleton, inf_eq_right.2 (pure_le_nhds a)]; infer_instance
#align interval_integral.FTC_filter.nhds_within_singleton intervalIntegral.FTCFilter.nhdsWithinSingleton
+#print intervalIntegral.FTCFilter.finite_at_inner /-
theorem finite_at_inner {a : ℝ} (l : Filter ℝ) {l'} [h : FTCFilter a l l'] {μ : Measure ℝ}
[IsLocallyFiniteMeasure μ] : μ.FiniteAtFilter l' :=
(μ.finiteAtNhds a).filter_mono h.le_nhds
#align interval_integral.FTC_filter.finite_at_inner intervalIntegral.FTCFilter.finite_at_inner
+-/
+#print intervalIntegral.FTCFilter.nhds /-
instance nhds (a : ℝ) : FTCFilter a (𝓝 a) (𝓝 a)
where
pure_le := pure_le_nhds a
le_nhds := le_rfl
#align interval_integral.FTC_filter.nhds intervalIntegral.FTCFilter.nhds
+-/
+#print intervalIntegral.FTCFilter.nhdsUniv /-
instance nhdsUniv (a : ℝ) : FTCFilter a (𝓝[univ] a) (𝓝 a) := by rw [nhdsWithin_univ]; infer_instance
#align interval_integral.FTC_filter.nhds_univ intervalIntegral.FTCFilter.nhdsUniv
+-/
+#print intervalIntegral.FTCFilter.nhdsLeft /-
instance nhdsLeft (a : ℝ) : FTCFilter a (𝓝[≤] a) (𝓝[≤] a)
where
pure_le := pure_le_nhdsWithin right_mem_Iic
le_nhds := inf_le_left
#align interval_integral.FTC_filter.nhds_left intervalIntegral.FTCFilter.nhdsLeft
+-/
+#print intervalIntegral.FTCFilter.nhdsRight /-
instance nhdsRight (a : ℝ) : FTCFilter a (𝓝[≥] a) (𝓝[>] a)
where
pure_le := pure_le_nhdsWithin left_mem_Ici
le_nhds := inf_le_left
#align interval_integral.FTC_filter.nhds_right intervalIntegral.FTCFilter.nhdsRight
+-/
+#print intervalIntegral.FTCFilter.nhdsIcc /-
instance nhdsIcc {x a b : ℝ} [h : Fact (x ∈ Icc a b)] : FTCFilter x (𝓝[Icc a b] x) (𝓝[Icc a b] x)
where
pure_le := pure_le_nhdsWithin h.out
le_nhds := inf_le_left
#align interval_integral.FTC_filter.nhds_Icc intervalIntegral.FTCFilter.nhdsIcc
+-/
+#print intervalIntegral.FTCFilter.nhdsUIcc /-
instance nhdsUIcc {x a b : ℝ} [h : Fact (x ∈ [a, b])] : FTCFilter x (𝓝[[a, b]] x) (𝓝[[a, b]] x) :=
haveI : Fact (x ∈ Set.Icc (min a b) (max a b)) := h
FTC_filter.nhds_Icc
#align interval_integral.FTC_filter.nhds_uIcc intervalIntegral.FTCFilter.nhdsUIcc
+-/
end FTCFilter
@@ -261,6 +277,7 @@ section
variable {f : ℝ → E} {a b : ℝ} {c ca cb : E} {l l' la la' lb lb' : Filter ℝ} {lt : Filter ι}
{μ : Measure ℝ} {u v ua va ub vb : ι → ℝ}
+#print intervalIntegral.measure_integral_sub_linear_isLittleO_of_tendsto_ae' /-
/-- Fundamental theorem of calculus-1, local version for any measure.
Let filters `l` and `l'` be related by `tendsto_Ixx_class Ioc`.
If `f` has a finite limit `c` at `l' ⊓ μ.ae`, where `μ` is a measure
@@ -290,7 +307,9 @@ theorem measure_integral_sub_linear_isLittleO_of_tendsto_ae' [IsMeasurablyGenera
abel
all_goals intro t; cases' le_total (u t) (v t) with huv huv <;> simp [huv]
#align interval_integral.measure_integral_sub_linear_is_o_of_tendsto_ae' intervalIntegral.measure_integral_sub_linear_isLittleO_of_tendsto_ae'
+-/
+#print intervalIntegral.measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_le' /-
/-- Fundamental theorem of calculus-1, local version for any measure.
Let filters `l` and `l'` be related by `tendsto_Ixx_class Ioc`.
If `f` has a finite limit `c` at `l ⊓ μ.ae`, where `μ` is a measure
@@ -311,7 +330,9 @@ theorem measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_le' [IsMeasurably
(huv.mono fun x hx => by simp [integral_const', hx])
(huv.mono fun x hx => by simp [integral_const', hx])
#align interval_integral.measure_integral_sub_linear_is_o_of_tendsto_ae_of_le' intervalIntegral.measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_le'
+-/
+#print intervalIntegral.measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_ge' /-
/-- Fundamental theorem of calculus-1, local version for any measure.
Let filters `l` and `l'` be related by `tendsto_Ixx_class Ioc`.
If `f` has a finite limit `c` at `l ⊓ μ.ae`, where `μ` is a measure
@@ -332,6 +353,7 @@ theorem measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_ge' [IsMeasurably
huv).neg_left.congr_left
fun t => by simp [integral_symm (u t), add_comm]
#align interval_integral.measure_integral_sub_linear_is_o_of_tendsto_ae_of_ge' intervalIntegral.measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_ge'
+-/
section
@@ -618,6 +640,7 @@ theorem integral_hasStrictFDerivAt_of_tendsto_ae (hf : IntervalIntegrable f volu
· exact is_O_fst_prod.norm_left.add is_O_snd_prod.norm_left
#align interval_integral.integral_has_strict_fderiv_at_of_tendsto_ae intervalIntegral.integral_hasStrictFDerivAt_of_tendsto_ae
+#print intervalIntegral.integral_hasStrictFDerivAt /-
/-- Fundamental theorem of calculus-1: if `f : ℝ → E` is integrable on `a..b` and `f` is continuous
at `a` and `b`, then `(u, v) ↦ ∫ x in u..v, f x` has derivative `(u, v) ↦ v • cb - u • ca`
at `(a, b)` in the sense of strict differentiability. -/
@@ -629,6 +652,7 @@ theorem integral_hasStrictFDerivAt (hf : IntervalIntegrable f volume a b)
integral_hasStrictFDerivAt_of_tendsto_ae hf hmeas_a hmeas_b (ha.mono_left inf_le_left)
(hb.mono_left inf_le_left)
#align interval_integral.integral_has_strict_fderiv_at intervalIntegral.integral_hasStrictFDerivAt
+-/
/-- **First Fundamental Theorem of Calculus**: if `f : ℝ → E` is integrable on `a..b` and `f x` has
a finite limit `c` almost surely at `b`, then `u ↦ ∫ x in a..u, f x` has derivative `c` at `b` in
@@ -640,6 +664,7 @@ theorem integral_hasStrictDerivAt_of_tendsto_ae_right (hf : IntervalIntegrable f
continuousAt_fst
#align interval_integral.integral_has_strict_deriv_at_of_tendsto_ae_right intervalIntegral.integral_hasStrictDerivAt_of_tendsto_ae_right
+#print intervalIntegral.integral_hasStrictDerivAt_right /-
/-- Fundamental theorem of calculus-1: if `f : ℝ → E` is integrable on `a..b` and `f` is continuous
at `b`, then `u ↦ ∫ x in a..u, f x` has derivative `f b` at `b` in the sense of strict
differentiability. -/
@@ -648,6 +673,7 @@ theorem integral_hasStrictDerivAt_right (hf : IntervalIntegrable f volume a b)
HasStrictDerivAt (fun u => ∫ x in a..u, f x) (f b) b :=
integral_hasStrictDerivAt_of_tendsto_ae_right hf hmeas (hb.mono_left inf_le_left)
#align interval_integral.integral_has_strict_deriv_at_right intervalIntegral.integral_hasStrictDerivAt_right
+-/
/-- Fundamental theorem of calculus-1: if `f : ℝ → E` is integrable on `a..b` and `f x` has a finite
limit `c` almost surely at `a`, then `u ↦ ∫ x in u..b, f x` has derivative `-c` at `a` in the sense
@@ -668,6 +694,7 @@ theorem integral_hasStrictDerivAt_left (hf : IntervalIntegrable f volume a b)
simpa only [← integral_symm] using (integral_has_strict_deriv_at_right hf.symm hmeas ha).neg
#align interval_integral.integral_has_strict_deriv_at_left intervalIntegral.integral_hasStrictDerivAt_left
+#print Continuous.integral_hasStrictDerivAt /-
/-- Fundamental theorem of calculus-1: if `f : ℝ → E` is continuous, then `u ↦ ∫ x in a..u, f x`
has derivative `f b` at `b` in the sense of strict differentiability. -/
theorem Continuous.integral_hasStrictDerivAt {f : ℝ → E} (hf : Continuous f) (a b : ℝ) :
@@ -675,13 +702,16 @@ theorem Continuous.integral_hasStrictDerivAt {f : ℝ → E} (hf : Continuous f)
integral_hasStrictDerivAt_right (hf.IntervalIntegrable _ _) (hf.StronglyMeasurableAtFilter _ _)
hf.ContinuousAt
#align continuous.integral_has_strict_deriv_at Continuous.integral_hasStrictDerivAt
+-/
+#print Continuous.deriv_integral /-
/-- Fundamental theorem of calculus-1: if `f : ℝ → E` is continuous, then the derivative
of `u ↦ ∫ x in a..u, f x` at `b` is `f b`. -/
theorem Continuous.deriv_integral (f : ℝ → E) (hf : Continuous f) (a b : ℝ) :
deriv (fun u => ∫ x : ℝ in a..u, f x) b = f b :=
(hf.integral_hasStrictDerivAt a b).HasDerivAt.deriv
#align continuous.deriv_integral Continuous.deriv_integral
+-/
/-!
#### Fréchet differentiability
@@ -702,6 +732,7 @@ theorem integral_hasFDerivAt_of_tendsto_ae (hf : IntervalIntegrable f volume a b
(integral_hasStrictFDerivAt_of_tendsto_ae hf hmeas_a hmeas_b ha hb).HasFDerivAt
#align interval_integral.integral_has_fderiv_at_of_tendsto_ae intervalIntegral.integral_hasFDerivAt_of_tendsto_ae
+#print intervalIntegral.integral_hasFDerivAt /-
/-- Fundamental theorem of calculus-1: if `f : ℝ → E` is integrable on `a..b` and `f` is continuous
at `a` and `b`, then `(u, v) ↦ ∫ x in u..v, f x` has derivative `(u, v) ↦ v • cb - u • ca`
at `(a, b)`. -/
@@ -712,6 +743,7 @@ theorem integral_hasFDerivAt (hf : IntervalIntegrable f volume a b)
((snd ℝ ℝ ℝ).smul_right (f b) - (fst ℝ ℝ ℝ).smul_right (f a)) (a, b) :=
(integral_hasStrictFDerivAt hf hmeas_a hmeas_b ha hb).HasFDerivAt
#align interval_integral.integral_has_fderiv_at intervalIntegral.integral_hasFDerivAt
+-/
/-- Fundamental theorem of calculus-1: if `f : ℝ → E` is integrable on `a..b` and `f x` has finite
limits `ca` and `cb` almost surely as `x` tends to `a` and `b`, respectively, then `fderiv`
@@ -743,6 +775,7 @@ theorem integral_hasDerivAt_of_tendsto_ae_right (hf : IntervalIntegrable f volum
(integral_hasStrictDerivAt_of_tendsto_ae_right hf hmeas hb).HasDerivAt
#align interval_integral.integral_has_deriv_at_of_tendsto_ae_right intervalIntegral.integral_hasDerivAt_of_tendsto_ae_right
+#print intervalIntegral.integral_hasDerivAt_right /-
/-- Fundamental theorem of calculus-1: if `f : ℝ → E` is integrable on `a..b` and `f` is continuous
at `b`, then `u ↦ ∫ x in a..u, f x` has derivative `f b` at `b`. -/
theorem integral_hasDerivAt_right (hf : IntervalIntegrable f volume a b)
@@ -750,6 +783,7 @@ theorem integral_hasDerivAt_right (hf : IntervalIntegrable f volume a b)
HasDerivAt (fun u => ∫ x in a..u, f x) (f b) b :=
(integral_hasStrictDerivAt_right hf hmeas hb).HasDerivAt
#align interval_integral.integral_has_deriv_at_right intervalIntegral.integral_hasDerivAt_right
+-/
/-- Fundamental theorem of calculus: if `f : ℝ → E` is integrable on `a..b` and `f` has a finite
limit `c` almost surely at `b`, then the derivative of `u ↦ ∫ x in a..u, f x` at `b` equals `c`. -/
@@ -759,6 +793,7 @@ theorem deriv_integral_of_tendsto_ae_right (hf : IntervalIntegrable f volume a b
(integral_hasDerivAt_of_tendsto_ae_right hf hmeas hb).deriv
#align interval_integral.deriv_integral_of_tendsto_ae_right intervalIntegral.deriv_integral_of_tendsto_ae_right
+#print intervalIntegral.deriv_integral_right /-
/-- Fundamental theorem of calculus: if `f : ℝ → E` is integrable on `a..b` and `f` is continuous
at `b`, then the derivative of `u ↦ ∫ x in a..u, f x` at `b` equals `f b`. -/
theorem deriv_integral_right (hf : IntervalIntegrable f volume a b)
@@ -766,6 +801,7 @@ theorem deriv_integral_right (hf : IntervalIntegrable f volume a b)
deriv (fun u => ∫ x in a..u, f x) b = f b :=
(integral_hasDerivAt_right hf hmeas hb).deriv
#align interval_integral.deriv_integral_right intervalIntegral.deriv_integral_right
+-/
/-- Fundamental theorem of calculus-1: if `f : ℝ → E` is integrable on `a..b` and `f x` has a finite
limit `c` almost surely at `a`, then `u ↦ ∫ x in u..b, f x` has derivative `-c` at `a`. -/
@@ -835,6 +871,7 @@ theorem integral_hasFDerivWithinAt_of_tendsto_ae (hf : IntervalIntegrable f volu
#align interval_integral.integral_has_fderiv_within_at_of_tendsto_ae intervalIntegral.integral_hasFDerivWithinAt_of_tendsto_ae
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print intervalIntegral.integral_hasFDerivWithinAt /-
/-- Let `f` be a measurable function integrable on `a..b`. The function `(u, v) ↦ ∫ x in u..v, f x`
has derivative `(u, v) ↦ v • f b - u • f a` within `s × t` at `(a, b)`, where
`s ∈ {Iic a, {a}, Ici a, univ}` and `t ∈ {Iic b, {b}, Ici b, univ}` provided that `f` tends to
@@ -857,6 +894,7 @@ theorem integral_hasFDerivWithinAt (hf : IntervalIntegrable f volume a b)
integral_hasFDerivWithinAt_of_tendsto_ae hf hmeas_a hmeas_b (ha.mono_left inf_le_left)
(hb.mono_left inf_le_left)
#align interval_integral.integral_has_fderiv_within_at intervalIntegral.integral_hasFDerivWithinAt
+-/
/- ./././Mathport/Syntax/Translate/Expr.lean:330:4: warning: unsupported (TODO): `[tacs] -/
/-- An auxiliary tactic closing goals `unique_diff_within_at ℝ s a` where
@@ -900,6 +938,7 @@ theorem integral_hasDerivWithinAt_of_tendsto_ae_right (hf : IntervalIntegrable f
(tendsto_const_pure.mono_right FTCFilter.pure_le) tendsto_id
#align interval_integral.integral_has_deriv_within_at_of_tendsto_ae_right intervalIntegral.integral_hasDerivWithinAt_of_tendsto_ae_right
+#print intervalIntegral.integral_hasDerivWithinAt_right /-
/-- Fundamental theorem of calculus: if `f : ℝ → E` is integrable on `a..b` and `f x` is continuous
from the left or from the right at `b`, then `u ↦ ∫ x in a..u, f x` has left (resp., right)
derivative `f b` at `b`. -/
@@ -908,6 +947,7 @@ theorem integral_hasDerivWithinAt_right (hf : IntervalIntegrable f volume a b) {
(hb : ContinuousWithinAt f t b) : HasDerivWithinAt (fun u => ∫ x in a..u, f x) (f b) s b :=
integral_hasDerivWithinAt_of_tendsto_ae_right hf hmeas (hb.mono_left inf_le_left)
#align interval_integral.integral_has_deriv_within_at_right intervalIntegral.integral_hasDerivWithinAt_right
+-/
/-- Fundamental theorem of calculus: if `f : ℝ → E` is integrable on `a..b` and `f x` has a finite
limit `c` almost surely as `x` tends to `b` from the right or from the left, then the right
@@ -920,6 +960,7 @@ theorem derivWithin_integral_of_tendsto_ae_right (hf : IntervalIntegrable f volu
(integral_hasDerivWithinAt_of_tendsto_ae_right hf hmeas hb).derivWithin hs
#align interval_integral.deriv_within_integral_of_tendsto_ae_right intervalIntegral.derivWithin_integral_of_tendsto_ae_right
+#print intervalIntegral.derivWithin_integral_right /-
/-- Fundamental theorem of calculus: if `f : ℝ → E` is integrable on `a..b` and `f x` is continuous
on the right or on the left at `b`, then the right (resp., left) derivative of
`u ↦ ∫ x in a..u, f x` at `b` equals `f b`. -/
@@ -930,6 +971,7 @@ theorem derivWithin_integral_right (hf : IntervalIntegrable f volume a b) {s t :
derivWithin (fun u => ∫ x in a..u, f x) s b = f b :=
(integral_hasDerivWithinAt_right hf hmeas hb).derivWithin hs
#align interval_integral.deriv_within_integral_right intervalIntegral.derivWithin_integral_right
+-/
/-- Fundamental theorem of calculus: if `f : ℝ → E` is integrable on `a..b` and `f x` has a finite
limit `c` almost surely as `x` tends to `a` from the right or from the left,
@@ -974,6 +1016,7 @@ theorem derivWithin_integral_left (hf : IntervalIntegrable f volume a b) {s t :
(integral_hasDerivWithinAt_left hf hmeas ha).derivWithin hs
#align interval_integral.deriv_within_integral_left intervalIntegral.derivWithin_integral_left
+#print intervalIntegral.differentiableOn_integral_of_continuous /-
/-- The integral of a continuous function is differentiable on a real set `s`. -/
theorem differentiableOn_integral_of_continuous {s : Set ℝ}
(hintg : ∀ x ∈ s, IntervalIntegrable f volume a x) (hcont : Continuous f) :
@@ -981,6 +1024,7 @@ theorem differentiableOn_integral_of_continuous {s : Set ℝ}
(integral_hasDerivAt_right (hintg y hy) hcont.AEStronglyMeasurable.StronglyMeasurableAtFilter
hcont.ContinuousAt).DifferentiableAt.DifferentiableWithinAt
#align interval_integral.differentiable_on_integral_of_continuous intervalIntegral.differentiableOn_integral_of_continuous
+-/
/-!
### Fundamental theorem of calculus, part 2
@@ -1012,10 +1056,9 @@ Auxiliary lemma in the proof of `integral_eq_sub_of_has_deriv_right_of_le`.
We give the slightly more general version that `g b - g a ≤ ∫ y in a..b, φ y` when `g' ≤ φ` and
`φ` is integrable (even if `g'` is not known to be integrable).
Version assuming that `g` is differentiable on `[a, b)`. -/
-theorem sub_le_integral_of_has_deriv_right_of_le_Ico (hab : a ≤ b)
- (hcont : ContinuousOn g (Icc a b)) (hderiv : ∀ x ∈ Ico a b, HasDerivWithinAt g (g' x) (Ioi x) x)
- (φint : IntegrableOn φ (Icc a b)) (hφg : ∀ x ∈ Ico a b, g' x ≤ φ x) :
- g b - g a ≤ ∫ y in a..b, φ y :=
+theorem sub_le_integral_of_hasDeriv_right_of_le_Ico (hab : a ≤ b) (hcont : ContinuousOn g (Icc a b))
+ (hderiv : ∀ x ∈ Ico a b, HasDerivWithinAt g (g' x) (Ioi x) x) (φint : IntegrableOn φ (Icc a b))
+ (hφg : ∀ x ∈ Ico a b, g' x ≤ φ x) : g b - g a ≤ ∫ y in a..b, φ y :=
by
refine' le_of_forall_pos_le_add fun ε εpos => _
-- Bound from above `g'` by a lower-semicontinuous function `G'`.
@@ -1120,7 +1163,7 @@ theorem sub_le_integral_of_has_deriv_right_of_le_Ico (hab : a ≤ b)
· rw [intervalIntegral.integral_of_le hab]
simp only [integral_Icc_eq_integral_Ioc', Real.volume_singleton]
-#align interval_integral.sub_le_integral_of_has_deriv_right_of_le_Ico intervalIntegral.sub_le_integral_of_has_deriv_right_of_le_Ico
+#align interval_integral.sub_le_integral_of_has_deriv_right_of_le_Ico intervalIntegral.sub_le_integral_of_hasDeriv_right_of_le_Ico
/-- Hard part of FTC-2 for integrable derivatives, real-valued functions: one has
`g b - g a ≤ ∫ y in a..b, g' y` when `g'` is integrable.
@@ -1128,7 +1171,7 @@ Auxiliary lemma in the proof of `integral_eq_sub_of_has_deriv_right_of_le`.
We give the slightly more general version that `g b - g a ≤ ∫ y in a..b, φ y` when `g' ≤ φ` and
`φ` is integrable (even if `g'` is not known to be integrable).
Version assuming that `g` is differentiable on `(a, b)`. -/
-theorem sub_le_integral_of_has_deriv_right_of_le (hab : a ≤ b) (hcont : ContinuousOn g (Icc a b))
+theorem sub_le_integral_of_hasDeriv_right_of_le (hab : a ≤ b) (hcont : ContinuousOn g (Icc a b))
(hderiv : ∀ x ∈ Ioo a b, HasDerivWithinAt g (g' x) (Ioi x) x) (φint : IntegrableOn φ (Icc a b))
(hφg : ∀ x ∈ Ioo a b, g' x ≤ φ x) : g b - g a ≤ ∫ y in a..b, φ y :=
by
@@ -1156,10 +1199,10 @@ theorem sub_le_integral_of_has_deriv_right_of_le (hab : a ≤ b) (hcont : Contin
(φint.mono_set (Icc_subset_Icc ht.1.le le_rfl)) fun x hx => hφg x ⟨ht.1.trans_le hx.1, hx.2⟩
rw [closure_Ioc a_lt_b.ne] at A
exact (A (left_mem_Icc.2 hab)).1
-#align interval_integral.sub_le_integral_of_has_deriv_right_of_le intervalIntegral.sub_le_integral_of_has_deriv_right_of_le
+#align interval_integral.sub_le_integral_of_has_deriv_right_of_le intervalIntegral.sub_le_integral_of_hasDeriv_right_of_le
/-- Auxiliary lemma in the proof of `integral_eq_sub_of_has_deriv_right_of_le`. -/
-theorem integral_le_sub_of_has_deriv_right_of_le (hab : a ≤ b) (hcont : ContinuousOn g (Icc a b))
+theorem integral_le_sub_of_hasDeriv_right_of_le (hab : a ≤ b) (hcont : ContinuousOn g (Icc a b))
(hderiv : ∀ x ∈ Ioo a b, HasDerivWithinAt g (g' x) (Ioi x) x) (φint : IntegrableOn φ (Icc a b))
(hφg : ∀ x ∈ Ioo a b, φ x ≤ g' x) : (∫ y in a..b, φ y) ≤ g b - g a :=
by
@@ -1169,22 +1212,22 @@ theorem integral_le_sub_of_has_deriv_right_of_le (hab : a ≤ b) (hcont : Contin
fun x hx => neg_le_neg (hφg x hx)
· abel
· simp only [← integral_neg]; rfl
-#align interval_integral.integral_le_sub_of_has_deriv_right_of_le intervalIntegral.integral_le_sub_of_has_deriv_right_of_le
+#align interval_integral.integral_le_sub_of_has_deriv_right_of_le intervalIntegral.integral_le_sub_of_hasDeriv_right_of_le
/-- Auxiliary lemma in the proof of `integral_eq_sub_of_has_deriv_right_of_le`: real version -/
-theorem integral_eq_sub_of_has_deriv_right_of_le_real (hab : a ≤ b)
+theorem integral_eq_sub_of_hasDeriv_right_of_le_real (hab : a ≤ b)
(hcont : ContinuousOn g (Icc a b)) (hderiv : ∀ x ∈ Ioo a b, HasDerivWithinAt g (g' x) (Ioi x) x)
(g'int : IntegrableOn g' (Icc a b)) : (∫ y in a..b, g' y) = g b - g a :=
- le_antisymm (integral_le_sub_of_has_deriv_right_of_le hab hcont hderiv g'int fun x hx => le_rfl)
- (sub_le_integral_of_has_deriv_right_of_le hab hcont hderiv g'int fun x hx => le_rfl)
-#align interval_integral.integral_eq_sub_of_has_deriv_right_of_le_real intervalIntegral.integral_eq_sub_of_has_deriv_right_of_le_real
+ le_antisymm (integral_le_sub_of_hasDeriv_right_of_le hab hcont hderiv g'int fun x hx => le_rfl)
+ (sub_le_integral_of_hasDeriv_right_of_le hab hcont hderiv g'int fun x hx => le_rfl)
+#align interval_integral.integral_eq_sub_of_has_deriv_right_of_le_real intervalIntegral.integral_eq_sub_of_hasDeriv_right_of_le_real
variable {f' : ℝ → E}
/-- **Fundamental theorem of calculus-2**: If `f : ℝ → E` is continuous on `[a, b]` (where `a ≤ b`)
and has a right derivative at `f' x` for all `x` in `(a, b)`, and `f'` is integrable on `[a, b]`,
then `∫ y in a..b, f' y` equals `f b - f a`. -/
-theorem integral_eq_sub_of_has_deriv_right_of_le (hab : a ≤ b) (hcont : ContinuousOn f (Icc a b))
+theorem integral_eq_sub_of_hasDeriv_right_of_le (hab : a ≤ b) (hcont : ContinuousOn f (Icc a b))
(hderiv : ∀ x ∈ Ioo a b, HasDerivWithinAt f (f' x) (Ioi x) x)
(f'int : IntervalIntegrable f' volume a b) : (∫ y in a..b, f' y) = f b - f a :=
by
@@ -1194,12 +1237,12 @@ theorem integral_eq_sub_of_has_deriv_right_of_le (hab : a ≤ b) (hcont : Contin
integral_eq_sub_of_has_deriv_right_of_le_real hab (g.continuous.comp_continuous_on hcont)
(fun x hx => g.has_fderiv_at.comp_has_deriv_within_at x (hderiv x hx))
(g.integrable_comp ((intervalIntegrable_iff_integrable_Icc_of_le hab).1 f'int))
-#align interval_integral.integral_eq_sub_of_has_deriv_right_of_le intervalIntegral.integral_eq_sub_of_has_deriv_right_of_le
+#align interval_integral.integral_eq_sub_of_has_deriv_right_of_le intervalIntegral.integral_eq_sub_of_hasDeriv_right_of_le
/-- Fundamental theorem of calculus-2: If `f : ℝ → E` is continuous on `[a, b]` and
has a right derivative at `f' x` for all `x` in `[a, b)`, and `f'` is integrable on `[a, b]` then
`∫ y in a..b, f' y` equals `f b - f a`. -/
-theorem integral_eq_sub_of_has_deriv_right (hcont : ContinuousOn f (uIcc a b))
+theorem integral_eq_sub_of_hasDeriv_right (hcont : ContinuousOn f (uIcc a b))
(hderiv : ∀ x ∈ Ioo (min a b) (max a b), HasDerivWithinAt f (f' x) (Ioi x) x)
(hint : IntervalIntegrable f' volume a b) : (∫ y in a..b, f' y) = f b - f a :=
by
@@ -1208,7 +1251,7 @@ theorem integral_eq_sub_of_has_deriv_right (hcont : ContinuousOn f (uIcc a b))
apply integral_eq_sub_of_has_deriv_right_of_le hab hcont hderiv hint
· simp only [uIcc_of_ge, min_eq_right, max_eq_left, hab] at hcont hderiv
rw [integral_symm, integral_eq_sub_of_has_deriv_right_of_le hab hcont hderiv hint.symm, neg_sub]
-#align interval_integral.integral_eq_sub_of_has_deriv_right intervalIntegral.integral_eq_sub_of_has_deriv_right
+#align interval_integral.integral_eq_sub_of_has_deriv_right intervalIntegral.integral_eq_sub_of_hasDeriv_right
/-- Fundamental theorem of calculus-2: If `f : ℝ → E` is continuous on `[a, b]` (where `a ≤ b`) and
has a derivative at `f' x` for all `x` in `(a, b)`, and `f'` is integrable on `[a, b]`, then
@@ -1216,7 +1259,7 @@ theorem integral_eq_sub_of_has_deriv_right (hcont : ContinuousOn f (uIcc a b))
theorem integral_eq_sub_of_hasDerivAt_of_le (hab : a ≤ b) (hcont : ContinuousOn f (Icc a b))
(hderiv : ∀ x ∈ Ioo a b, HasDerivAt f (f' x) x) (hint : IntervalIntegrable f' volume a b) :
(∫ y in a..b, f' y) = f b - f a :=
- integral_eq_sub_of_has_deriv_right_of_le hab hcont (fun x hx => (hderiv x hx).HasDerivWithinAt)
+ integral_eq_sub_of_hasDeriv_right_of_le hab hcont (fun x hx => (hderiv x hx).HasDerivWithinAt)
hint
#align interval_integral.integral_eq_sub_of_has_deriv_at_of_le intervalIntegral.integral_eq_sub_of_hasDerivAt_of_le
@@ -1224,7 +1267,7 @@ theorem integral_eq_sub_of_hasDerivAt_of_le (hab : a ≤ b) (hcont : ContinuousO
`[a, b]` and `f'` is integrable on `[a, b]`, then `∫ y in a..b, f' y` equals `f b - f a`. -/
theorem integral_eq_sub_of_hasDerivAt (hderiv : ∀ x ∈ uIcc a b, HasDerivAt f (f' x) x)
(hint : IntervalIntegrable f' volume a b) : (∫ y in a..b, f' y) = f b - f a :=
- integral_eq_sub_of_has_deriv_right (HasDerivAt.continuousOn hderiv)
+ integral_eq_sub_of_hasDeriv_right (HasDerivAt.continuousOn hderiv)
(fun x hx => (hderiv _ (mem_Icc_of_Ioo hx)).HasDerivWithinAt) hint
#align interval_integral.integral_eq_sub_of_has_deriv_at intervalIntegral.integral_eq_sub_of_hasDerivAt
@@ -1439,6 +1482,7 @@ theorem integral_comp_smul_deriv'' {f f' : ℝ → ℝ} {g : ℝ → E} (hf : Co
exact hg.integrable_on_Icc
#align interval_integral.integral_comp_smul_deriv'' intervalIntegral.integral_comp_smul_deriv''
+#print intervalIntegral.integral_comp_smul_deriv' /-
/-- Change of variables. If `f` is has continuous derivative `f'` on `[a, b]`,
and `g` is continuous on `f '' [a, b]`, then we can substitute `u = f x` to get
`∫ x in a..b, f' x • (g ∘ f) x = ∫ u in f a..f b, g u`.
@@ -1451,7 +1495,9 @@ theorem integral_comp_smul_deriv' {f f' : ℝ → ℝ} {g : ℝ → E}
integral_comp_smul_deriv'' (fun x hx => (h x hx).ContinuousAt.ContinuousWithinAt)
(fun x hx => (h x <| Ioo_subset_Icc_self hx).HasDerivWithinAt) h' hg
#align interval_integral.integral_comp_smul_deriv' intervalIntegral.integral_comp_smul_deriv'
+-/
+#print intervalIntegral.integral_comp_smul_deriv /-
/-- Change of variables, most common version. If `f` is has continuous derivative `f'` on `[a, b]`,
and `g` is continuous, then we can substitute `u = f x` to get
`∫ x in a..b, f' x • (g ∘ f) x = ∫ u in f a..f b, g u`.
@@ -1461,6 +1507,7 @@ theorem integral_comp_smul_deriv {f f' : ℝ → ℝ} {g : ℝ → E}
(hg : Continuous g) : (∫ x in a..b, f' x • (g ∘ f) x) = ∫ x in f a..f b, g x :=
integral_comp_smul_deriv' h h' hg.ContinuousOn
#align interval_integral.integral_comp_smul_deriv intervalIntegral.integral_comp_smul_deriv
+-/
theorem integral_deriv_comp_smul_deriv' {f f' : ℝ → ℝ} {g g' : ℝ → E} (hf : ContinuousOn f [a, b])
(hff' : ∀ x ∈ Ioo (min a b) (max a b), HasDerivWithinAt f (f' x) (Ioi x) x)
mathlib commit https://github.com/leanprover-community/mathlib/commit/5f25c089cb34db4db112556f23c50d12da81b297
@@ -216,7 +216,7 @@ instance nhdsWithinSingleton (a : ℝ) : FTCFilter a (𝓝[{a}] a) ⊥ := by
#align interval_integral.FTC_filter.nhds_within_singleton intervalIntegral.FTCFilter.nhdsWithinSingleton
theorem finite_at_inner {a : ℝ} (l : Filter ℝ) {l'} [h : FTCFilter a l l'] {μ : Measure ℝ}
- [LocallyFiniteMeasure μ] : μ.FiniteAtFilter l' :=
+ [IsLocallyFiniteMeasure μ] : μ.FiniteAtFilter l' :=
(μ.finiteAtNhds a).filter_mono h.le_nhds
#align interval_integral.FTC_filter.finite_at_inner intervalIntegral.FTCFilter.finite_at_inner
@@ -284,7 +284,7 @@ theorem measure_integral_sub_linear_isLittleO_of_tendsto_ae' [IsMeasurablyGenera
have A := hf.integral_sub_linear_is_o_ae hfm hl (hu.Ioc hv)
have B := hf.integral_sub_linear_is_o_ae hfm hl (hv.Ioc hu)
simp only [integral_const']
- convert(A.trans_le _).sub (B.trans_le _)
+ convert (A.trans_le _).sub (B.trans_le _)
· ext t
simp_rw [intervalIntegral, sub_smul]
abel
@@ -335,7 +335,7 @@ theorem measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_ge' [IsMeasurably
section
-variable [LocallyFiniteMeasure μ] [FTCFilter a l l']
+variable [IsLocallyFiniteMeasure μ] [FTCFilter a l l']
include a
@@ -395,7 +395,7 @@ end
attribute [local instance] FTC_filter.meas_gen
-variable [FTCFilter a la la'] [FTCFilter b lb lb'] [LocallyFiniteMeasure μ]
+variable [FTCFilter a la la'] [FTCFilter b lb lb'] [IsLocallyFiniteMeasure μ]
/-- Fundamental theorem of calculus-1, strict derivative in both limits for a locally finite
measure.
@@ -432,7 +432,7 @@ theorem measure_integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae
have B' : ∀ᶠ t in lt, IntervalIntegrable f μ b (ub t) :=
hb_lim.eventually_interval_integrable_ae hmeas_b (FTC_filter.finite_at_inner lb)
(tendsto_const_pure.mono_right FTC_filter.pure_le) hub
- filter_upwards [A, A', B, B']with _ ua_va a_ua ub_vb b_ub
+ filter_upwards [A, A', B, B'] with _ ua_va a_ua ub_vb b_ub
rw [← integral_interval_sub_interval_comm']
· dsimp only; abel
exacts [ub_vb, ua_va, b_ub.symm.trans <| hab.symm.trans a_ua]
@@ -1022,7 +1022,7 @@ theorem sub_le_integral_of_has_deriv_right_of_le_Ico (hab : a ≤ b)
rcases exists_lt_lower_semicontinuous_integral_lt φ φint εpos with
⟨G', f_lt_G', G'cont, G'int, G'lt_top, hG'⟩
-- we will show by "induction" that `g t - g a ≤ ∫ u in a..t, G' u` for all `t ∈ [a, b]`.
- set s := { t | g t - g a ≤ ∫ u in a..t, (G' u).toReal } ∩ Icc a b
+ set s := {t | g t - g a ≤ ∫ u in a..t, (G' u).toReal} ∩ Icc a b
-- the set `s` of points where this property holds is closed.
have s_closed : IsClosed s :=
by
@@ -1032,7 +1032,7 @@ theorem sub_le_integral_of_has_deriv_right_of_le_Ico (hab : a ≤ b)
exact (hcont.sub continuousOn_const).Prod (continuous_on_primitive_interval G'int)
simp only [s, inter_comm]
exact this.preimage_closed_of_closed isClosed_Icc OrderClosedTopology.isClosed_le'
- have main : Icc a b ⊆ { t | g t - g a ≤ ∫ u in a..t, (G' u).toReal } :=
+ have main : Icc a b ⊆ {t | g t - g a ≤ ∫ u in a..t, (G' u).toReal} :=
by
-- to show that the set `s` is all `[a, b]`, it suffices to show that any point `t` in `s`
-- with `t < b` admits another point in `s` slightly to its right
@@ -1052,7 +1052,7 @@ theorem sub_le_integral_of_has_deriv_right_of_le_Ico (hab : a ≤ b)
mem_nhdsWithin_Ioi_iff_exists_Ioo_subset.2
⟨min M b, by simp only [hM, ht.right.right, lt_min_iff, mem_Ioi, and_self_iff],
subset.refl _⟩
- filter_upwards [this]with u hu
+ filter_upwards [this] with u hu
have I : Icc t u ⊆ Icc a b := Icc_subset_Icc ht.2.1 (hu.2.le.trans (min_le_right _ _))
calc
(u - t) * y = ∫ v in Icc t u, y := by
@@ -1069,7 +1069,7 @@ theorem sub_le_integral_of_has_deriv_right_of_le_Ico (hab : a ≤ b)
ae_mono (measure.restrict_mono I le_rfl) G'lt_top
have C2 : ∀ᵐ x : ℝ ∂volume.restrict (Icc t u), x ∈ Icc t u :=
ae_restrict_mem measurableSet_Icc
- filter_upwards [C1, C2]with x G'x hx
+ filter_upwards [C1, C2] with x G'x hx
apply EReal.coe_le_coe_iff.1
have : x ∈ Ioo m M := by
simp only [hm.trans_le hx.left,
@@ -1082,13 +1082,13 @@ theorem sub_le_integral_of_has_deriv_right_of_le_Ico (hab : a ≤ b)
by
have g'_lt_y : g' t < y := EReal.coe_lt_coe_iff.1 g'_lt_y'
filter_upwards [(hderiv t ⟨ht.2.1, ht.2.2⟩).limsup_slope_le' (not_mem_Ioi.2 le_rfl) g'_lt_y,
- self_mem_nhdsWithin]with u hu t_lt_u
+ self_mem_nhdsWithin] with u hu t_lt_u
have := mul_le_mul_of_nonneg_left hu.le (sub_pos.2 t_lt_u).le
rwa [← smul_eq_mul, sub_smul_slope] at this
-- combine the previous two bounds to show that `g u - g a` increases less quickly than
-- `∫ x in a..u, G' x`.
have I3 : ∀ᶠ u in 𝓝[>] t, g u - g t ≤ ∫ w in t..u, (G' w).toReal := by
- filter_upwards [I1, I2]with u hu1 hu2 using hu2.trans hu1
+ filter_upwards [I1, I2] with u hu1 hu2 using hu2.trans hu1
have I4 : ∀ᶠ u in 𝓝[>] t, u ∈ Ioc t (min v b) :=
by
refine' mem_nhdsWithin_Ioi_iff_exists_Ioc_subset.2 ⟨min v b, _, subset.refl _⟩
@@ -1136,7 +1136,7 @@ theorem sub_le_integral_of_has_deriv_right_of_le (hab : a ≤ b) (hcont : Contin
-- `a`) and a continuity argument.
obtain rfl | a_lt_b := hab.eq_or_lt;
· simp
- set s := { t | g b - g t ≤ ∫ u in t..b, φ u } ∩ Icc a b
+ set s := {t | g b - g t ≤ ∫ u in t..b, φ u} ∩ Icc a b
have s_closed : IsClosed s :=
by
have : ContinuousOn (fun t => (g b - g t, ∫ u in t..b, φ u)) (Icc a b) :=
@@ -1164,8 +1164,9 @@ theorem integral_le_sub_of_has_deriv_right_of_le (hab : a ≤ b) (hcont : Contin
(hφg : ∀ x ∈ Ioo a b, φ x ≤ g' x) : (∫ y in a..b, φ y) ≤ g b - g a :=
by
rw [← neg_le_neg_iff]
- convert sub_le_integral_of_has_deriv_right_of_le hab hcont.neg (fun x hx => (hderiv x hx).neg)
- φint.neg fun x hx => neg_le_neg (hφg x hx)
+ convert
+ sub_le_integral_of_has_deriv_right_of_le hab hcont.neg (fun x hx => (hderiv x hx).neg) φint.neg
+ fun x hx => neg_le_neg (hφg x hx)
· abel
· simp only [← integral_neg]; rfl
#align interval_integral.integral_le_sub_of_has_deriv_right_of_le intervalIntegral.integral_le_sub_of_has_deriv_right_of_le
@@ -1236,7 +1237,7 @@ theorem integral_eq_sub_of_hasDerivAt_of_tendsto (hab : a < b) {fa fb}
have Fderiv : ∀ x ∈ Ioo a b, HasDerivAt F (f' x) x :=
by
refine' fun x hx => (hderiv x hx).congr_of_eventuallyEq _
- filter_upwards [Ioo_mem_nhds hx.1 hx.2]with _ hy; simp only [F]
+ filter_upwards [Ioo_mem_nhds hx.1 hx.2] with _ hy; simp only [F]
rw [update_noteq hy.2.Ne, update_noteq hy.1.ne']
have hcont : ContinuousOn F (Icc a b) :=
by
@@ -1245,8 +1246,8 @@ theorem integral_eq_sub_of_hasDerivAt_of_tendsto (hab : a < b) {fa fb}
· exact fun _ => ha.mono_left (nhdsWithin_mono _ Ioo_subset_Ioi_self)
· rintro -
refine' (hb.congr' _).mono_left (nhdsWithin_mono _ Ico_subset_Iio_self)
- filter_upwards [Ioo_mem_nhdsWithin_Iio
- (right_mem_Ioc.2 hab)]with _ hz using(update_noteq hz.1.ne' _ _).symm
+ filter_upwards [Ioo_mem_nhdsWithin_Iio (right_mem_Ioc.2 hab)] with _ hz using
+ (update_noteq hz.1.ne' _ _).symm
simpa [F, hab.ne, hab.ne'] using integral_eq_sub_of_has_deriv_at_of_le hab.le hcont Fderiv hint
#align interval_integral.integral_eq_sub_of_has_deriv_at_of_tendsto intervalIntegral.integral_eq_sub_of_hasDerivAt_of_tendsto
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -192,7 +192,7 @@ of the integral w.r.t. Lebesgue measure. -/
/-- An auxiliary typeclass for the Fundamental theorem of calculus, part 1. It is used to formulate
theorems that work simultaneously for left and right one-sided derivatives of `∫ x in u..v, f x`. -/
class FTCFilter (a : outParam ℝ) (outer : Filter ℝ) (inner : outParam <| Filter ℝ) extends
- TendstoIxxClass Ioc outer inner : Prop where
+ TendstoIxxClass Ioc outer inner : Prop where
pure_le : pure a ≤ outer
le_nhds : inner ≤ 𝓝 a
[meas_gen : IsMeasurablyGenerated inner]
@@ -435,7 +435,7 @@ theorem measure_integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae
filter_upwards [A, A', B, B']with _ ua_va a_ua ub_vb b_ub
rw [← integral_interval_sub_interval_comm']
· dsimp only; abel
- exacts[ub_vb, ua_va, b_ub.symm.trans <| hab.symm.trans a_ua]
+ exacts [ub_vb, ua_va, b_ub.symm.trans <| hab.symm.trans a_ua]
#align interval_integral.measure_integral_sub_integral_sub_linear_is_o_of_tendsto_ae intervalIntegral.measure_integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae
/-- Fundamental theorem of calculus-1, strict derivative in right endpoint for a locally finite
@@ -1028,7 +1028,7 @@ theorem sub_le_integral_of_has_deriv_right_of_le_Ico (hab : a ≤ b)
by
have : ContinuousOn (fun t => (g t - g a, ∫ u in a..t, (G' u).toReal)) (Icc a b) :=
by
- rw [← uIcc_of_le hab] at G'int hcont⊢
+ rw [← uIcc_of_le hab] at G'int hcont ⊢
exact (hcont.sub continuousOn_const).Prod (continuous_on_primitive_interval G'int)
simp only [s, inter_comm]
exact this.preimage_closed_of_closed isClosed_Icc OrderClosedTopology.isClosed_le'
@@ -1084,7 +1084,7 @@ theorem sub_le_integral_of_has_deriv_right_of_le_Ico (hab : a ≤ b)
filter_upwards [(hderiv t ⟨ht.2.1, ht.2.2⟩).limsup_slope_le' (not_mem_Ioi.2 le_rfl) g'_lt_y,
self_mem_nhdsWithin]with u hu t_lt_u
have := mul_le_mul_of_nonneg_left hu.le (sub_pos.2 t_lt_u).le
- rwa [← smul_eq_mul, sub_smul_slope] at this
+ rwa [← smul_eq_mul, sub_smul_slope] at this
-- combine the previous two bounds to show that `g u - g a` increases less quickly than
-- `∫ x in a..u, G' x`.
have I3 : ∀ᶠ u in 𝓝[>] t, g u - g t ≤ ∫ w in t..u, (G' w).toReal := by
@@ -1141,7 +1141,7 @@ theorem sub_le_integral_of_has_deriv_right_of_le (hab : a ≤ b) (hcont : Contin
by
have : ContinuousOn (fun t => (g b - g t, ∫ u in t..b, φ u)) (Icc a b) :=
by
- rw [← uIcc_of_le hab] at hcont φint⊢
+ rw [← uIcc_of_le hab] at hcont φint ⊢
exact (continuous_on_const.sub hcont).Prod (continuous_on_primitive_interval_left φint)
simp only [s, inter_comm]
exact this.preimage_closed_of_closed isClosed_Icc isClosed_le_prod
@@ -1154,7 +1154,7 @@ theorem sub_le_integral_of_has_deriv_right_of_le (hab : a ≤ b) (hcont : Contin
sub_le_integral_of_has_deriv_right_of_le_Ico ht.2 (hcont.mono (Icc_subset_Icc ht.1.le le_rfl))
(fun x hx => hderiv x ⟨ht.1.trans_le hx.1, hx.2⟩)
(φint.mono_set (Icc_subset_Icc ht.1.le le_rfl)) fun x hx => hφg x ⟨ht.1.trans_le hx.1, hx.2⟩
- rw [closure_Ioc a_lt_b.ne] at A
+ rw [closure_Ioc a_lt_b.ne] at A
exact (A (left_mem_Icc.2 hab)).1
#align interval_integral.sub_le_integral_of_has_deriv_right_of_le intervalIntegral.sub_le_integral_of_has_deriv_right_of_le
@@ -1203,9 +1203,9 @@ theorem integral_eq_sub_of_has_deriv_right (hcont : ContinuousOn f (uIcc a b))
(hint : IntervalIntegrable f' volume a b) : (∫ y in a..b, f' y) = f b - f a :=
by
cases' le_total a b with hab hab
- · simp only [uIcc_of_le, min_eq_left, max_eq_right, hab] at hcont hderiv hint
+ · simp only [uIcc_of_le, min_eq_left, max_eq_right, hab] at hcont hderiv hint
apply integral_eq_sub_of_has_deriv_right_of_le hab hcont hderiv hint
- · simp only [uIcc_of_ge, min_eq_right, max_eq_left, hab] at hcont hderiv
+ · simp only [uIcc_of_ge, min_eq_right, max_eq_left, hab] at hcont hderiv
rw [integral_symm, integral_eq_sub_of_has_deriv_right_of_le hab hcont hderiv hint.symm, neg_sub]
#align interval_integral.integral_eq_sub_of_has_deriv_right intervalIntegral.integral_eq_sub_of_has_deriv_right
@@ -1299,7 +1299,7 @@ theorem integrableOn_deriv_right_of_nonneg (hcont : ContinuousOn g (Icc a b))
simpa only [has_finite_integral, NNReal.nnnorm_eq] using fint
have A : (∫⁻ x : ℝ in Ioo a b, f x) = ENNReal.ofReal (∫ x in Ioo a b, F x) :=
lintegral_coe_eq_integral _ intF
- rw [A] at hf
+ rw [A] at hf
have B : (∫ x : ℝ in Ioo a b, F x) ≤ g b - g a :=
by
rw [← integral_Ioc_eq_integral_Ioo, ← intervalIntegral.integral_of_le hab.le]
@@ -1326,10 +1326,10 @@ theorem intervalIntegrable_deriv_of_nonneg (hcont : ContinuousOn g (uIcc a b))
by
cases' le_total a b with hab hab
· simp only [uIcc_of_le, min_eq_left, max_eq_right, hab, IntervalIntegrable, hab,
- Ioc_eq_empty_of_le, integrable_on_empty, and_true_iff] at hcont hderiv hpos⊢
+ Ioc_eq_empty_of_le, integrable_on_empty, and_true_iff] at hcont hderiv hpos ⊢
exact integrable_on_deriv_of_nonneg hcont hderiv hpos
· simp only [uIcc_of_ge, min_eq_right, max_eq_left, hab, IntervalIntegrable, Ioc_eq_empty_of_le,
- integrable_on_empty, true_and_iff] at hcont hderiv hpos⊢
+ integrable_on_empty, true_and_iff] at hcont hderiv hpos ⊢
exact integrable_on_deriv_of_nonneg hcont hderiv hpos
#align interval_integral.interval_integrable_deriv_of_nonneg intervalIntegral.intervalIntegrable_deriv_of_nonneg
@@ -1385,7 +1385,7 @@ theorem integral_comp_smul_deriv''' {f f' : ℝ → ℝ} {g : ℝ → E} (hf : C
(hg2 : IntegrableOn (fun x => f' x • (g ∘ f) x) [a, b]) :
(∫ x in a..b, f' x • (g ∘ f) x) = ∫ u in f a..f b, g u :=
by
- rw [hf.image_uIcc, ← intervalIntegrable_iff'] at hg1
+ rw [hf.image_uIcc, ← intervalIntegrable_iff'] at hg1
have h_cont : ContinuousOn (fun u => ∫ t in f a..f u, g t) [a, b] :=
by
refine' (continuous_on_primitive_interval' hg1 _).comp hf _
@@ -1403,7 +1403,7 @@ theorem integral_comp_smul_deriv''' {f f' : ℝ → ℝ} {g : ℝ → E} (hf : C
replace hg_cont := hg_cont.mono (image_subset f cdsub)
let J := [Inf (f '' [c, d]), Sup (f '' [c, d])]
have hJ : f '' [c, d] = J := (hf.mono (cdsub.trans Ioo_subset_Icc_self)).image_uIcc
- rw [hJ] at hg_cont
+ rw [hJ] at hg_cont
have h2x : f x ∈ J := by rw [← hJ]; exact mem_image_of_mem _ (mem_uIcc_of_le hc.2.le hd.1.le)
have h2g : IntervalIntegrable g volume (f a) (f x) :=
by
@@ -1418,7 +1418,7 @@ theorem integral_comp_smul_deriv''' {f f' : ℝ → ℝ} {g : ℝ → E} (hf : C
rw [← hJ]
refine' (maps_to_image _ _).mono _ subset.rfl
exact Ioo_subset_Icc_self.trans ((Icc_subset_Icc_left hc.2.le).trans Icc_subset_uIcc)
- rw [← intervalIntegrable_iff'] at hg2
+ rw [← intervalIntegrable_iff'] at hg2
simp_rw [integral_eq_sub_of_has_deriv_right h_cont h_der hg2, integral_same, sub_zero]
#align interval_integral.integral_comp_smul_deriv''' intervalIntegral.integral_comp_smul_deriv'''
@@ -1434,7 +1434,7 @@ theorem integral_comp_smul_deriv'' {f f' : ℝ → ℝ} {g : ℝ → E} (hf : Co
refine'
integral_comp_smul_deriv''' hf hff' (hg.mono <| image_subset _ Ioo_subset_Icc_self) _
(hf'.smul (hg.comp hf <| subset_preimage_image f _)).integrableOn_Icc
- rw [hf.image_uIcc] at hg⊢
+ rw [hf.image_uIcc] at hg ⊢
exact hg.integrable_on_Icc
#align interval_integral.integral_comp_smul_deriv'' intervalIntegral.integral_comp_smul_deriv''
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -454,7 +454,7 @@ theorem measure_integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae_right
fun t => ∫ x in u t..v t, (1 : ℝ) ∂μ :=
by
simpa using
- measure_integral_sub_integral_sub_linear_is_o_of_tendsto_ae hab strongly_measurable_at_bot hmeas
+ measure_integral_sub_integral_sub_linear_is_o_of_tendsto_ae hab stronglyMeasurableAt_bot hmeas
((tendsto_bot : tendsto _ ⊥ (𝓝 0)).mono_left inf_le_left) hf
(tendsto_const_pure : tendsto _ _ (pure a)) tendsto_const_pure hu hv
#align interval_integral.measure_integral_sub_integral_sub_linear_is_o_of_tendsto_ae_right intervalIntegral.measure_integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae_right
@@ -475,7 +475,7 @@ theorem measure_integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae_left
fun t => ∫ x in u t..v t, (1 : ℝ) ∂μ :=
by
simpa using
- measure_integral_sub_integral_sub_linear_is_o_of_tendsto_ae hab hmeas strongly_measurable_at_bot
+ measure_integral_sub_integral_sub_linear_is_o_of_tendsto_ae hab hmeas stronglyMeasurableAt_bot
hf ((tendsto_bot : tendsto _ ⊥ (𝓝 0)).mono_left inf_le_left) hu hv
(tendsto_const_pure : tendsto _ _ (pure b)) tendsto_const_pure
#align interval_integral.measure_integral_sub_integral_sub_linear_is_o_of_tendsto_ae_left intervalIntegral.measure_integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae_left
@@ -1281,7 +1281,7 @@ theorem integrableOn_deriv_right_of_nonneg (hcont : ContinuousOn g (Icc a b))
rw [integrableOn_Ioc_iff_integrableOn_Ioo]
have meas_g' : AEMeasurable g' (volume.restrict (Ioo a b)) :=
by
- apply (aEMeasurable_derivWithin_Ioi g _).congr
+ apply (aemeasurable_derivWithin_Ioi g _).congr
refine' (ae_restrict_mem measurableSet_Ioo).mono fun x hx => _
exact (hderiv x hx).derivWithin (uniqueDiffWithinAt_Ioi _)
suffices H : (∫⁻ x in Ioo a b, ‖g' x‖₊) ≤ ENNReal.ofReal (g b - g a)
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -148,7 +148,7 @@ open TopologicalSpace (SecondCountableTopology)
open MeasureTheory Set Classical Filter Function
-open Classical Topology Filter ENNReal BigOperators Interval NNReal
+open scoped Classical Topology Filter ENNReal BigOperators Interval NNReal
variable {ι 𝕜 E F A : Type _} [NormedAddCommGroup E] [CompleteSpace E] [NormedSpace ℝ E]
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -211,10 +211,8 @@ instance pure (a : ℝ) : FTCFilter a (pure a) ⊥
le_nhds := bot_le
#align interval_integral.FTC_filter.pure intervalIntegral.FTCFilter.pure
-instance nhdsWithinSingleton (a : ℝ) : FTCFilter a (𝓝[{a}] a) ⊥ :=
- by
- rw [nhdsWithin, principal_singleton, inf_eq_right.2 (pure_le_nhds a)]
- infer_instance
+instance nhdsWithinSingleton (a : ℝ) : FTCFilter a (𝓝[{a}] a) ⊥ := by
+ rw [nhdsWithin, principal_singleton, inf_eq_right.2 (pure_le_nhds a)]; infer_instance
#align interval_integral.FTC_filter.nhds_within_singleton intervalIntegral.FTCFilter.nhdsWithinSingleton
theorem finite_at_inner {a : ℝ} (l : Filter ℝ) {l'} [h : FTCFilter a l l'] {μ : Measure ℝ}
@@ -228,10 +226,7 @@ instance nhds (a : ℝ) : FTCFilter a (𝓝 a) (𝓝 a)
le_nhds := le_rfl
#align interval_integral.FTC_filter.nhds intervalIntegral.FTCFilter.nhds
-instance nhdsUniv (a : ℝ) : FTCFilter a (𝓝[univ] a) (𝓝 a) :=
- by
- rw [nhdsWithin_univ]
- infer_instance
+instance nhdsUniv (a : ℝ) : FTCFilter a (𝓝[univ] a) (𝓝 a) := by rw [nhdsWithin_univ]; infer_instance
#align interval_integral.FTC_filter.nhds_univ intervalIntegral.FTCFilter.nhdsUniv
instance nhdsLeft (a : ℝ) : FTCFilter a (𝓝[≤] a) (𝓝[≤] a)
@@ -439,8 +434,7 @@ theorem measure_integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae
(tendsto_const_pure.mono_right FTC_filter.pure_le) hub
filter_upwards [A, A', B, B']with _ ua_va a_ua ub_vb b_ub
rw [← integral_interval_sub_interval_comm']
- · dsimp only
- abel
+ · dsimp only; abel
exacts[ub_vb, ua_va, b_ub.symm.trans <| hab.symm.trans a_ua]
#align interval_integral.measure_integral_sub_integral_sub_linear_is_o_of_tendsto_ae intervalIntegral.measure_integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae
@@ -620,8 +614,7 @@ theorem integral_hasStrictFDerivAt_of_tendsto_ae (hf : IntervalIntegrable f volu
((continuous_snd.comp continuous_snd).Tendsto ((a, b), (a, b)))
((continuous_snd.comp continuous_fst).Tendsto ((a, b), (a, b)))
refine' (this.congr_left _).trans_isBigO _
- · intro x
- simp [sub_smul]
+ · intro x; simp [sub_smul]
· exact is_O_fst_prod.norm_left.add is_O_snd_prod.norm_left
#align interval_integral.integral_has_strict_fderiv_at_of_tendsto_ae intervalIntegral.integral_hasStrictFDerivAt_of_tendsto_ae
@@ -837,8 +830,7 @@ theorem integral_hasFDerivWithinAt_of_tendsto_ae (hf : IntervalIntegrable f volu
(tendsto_const_pure.mono_right FTC_filter.pure_le : tendsto _ _ (𝓝[s] a)) tendsto_fst
(tendsto_const_pure.mono_right FTC_filter.pure_le : tendsto _ _ (𝓝[t] b)) tendsto_snd
refine' (this.congr_left _).trans_isBigO _
- · intro x
- simp [sub_smul]
+ · intro x; simp [sub_smul]
· exact is_O_fst_prod.norm_left.add is_O_snd_prod.norm_left
#align interval_integral.integral_has_fderiv_within_at_of_tendsto_ae intervalIntegral.integral_hasFDerivWithinAt_of_tendsto_ae
@@ -1142,7 +1134,7 @@ theorem sub_le_integral_of_has_deriv_right_of_le (hab : a ≤ b) (hcont : Contin
by
-- This follows from the version on a closed-open interval (applied to `[t, b)` for `t` close to
-- `a`) and a continuity argument.
- obtain rfl | a_lt_b := hab.eq_or_lt
+ obtain rfl | a_lt_b := hab.eq_or_lt;
· simp
set s := { t | g b - g t ≤ ∫ u in t..b, φ u } ∩ Icc a b
have s_closed : IsClosed s :=
@@ -1175,8 +1167,7 @@ theorem integral_le_sub_of_has_deriv_right_of_le (hab : a ≤ b) (hcont : Contin
convert sub_le_integral_of_has_deriv_right_of_le hab hcont.neg (fun x hx => (hderiv x hx).neg)
φint.neg fun x hx => neg_le_neg (hφg x hx)
· abel
- · simp only [← integral_neg]
- rfl
+ · simp only [← integral_neg]; rfl
#align interval_integral.integral_le_sub_of_has_deriv_right_of_le intervalIntegral.integral_le_sub_of_has_deriv_right_of_le
/-- Auxiliary lemma in the proof of `integral_eq_sub_of_has_deriv_right_of_le`: real version -/
@@ -1245,8 +1236,7 @@ theorem integral_eq_sub_of_hasDerivAt_of_tendsto (hab : a < b) {fa fb}
have Fderiv : ∀ x ∈ Ioo a b, HasDerivAt F (f' x) x :=
by
refine' fun x hx => (hderiv x hx).congr_of_eventuallyEq _
- filter_upwards [Ioo_mem_nhds hx.1 hx.2]with _ hy
- simp only [F]
+ filter_upwards [Ioo_mem_nhds hx.1 hx.2]with _ hy; simp only [F]
rw [update_noteq hy.2.Ne, update_noteq hy.1.ne']
have hcont : ContinuousOn F (Icc a b) :=
by
@@ -1286,8 +1276,7 @@ theorem integrableOn_deriv_right_of_nonneg (hcont : ContinuousOn g (Icc a b))
(hderiv : ∀ x ∈ Ioo a b, HasDerivWithinAt g (g' x) (Ioi x) x)
(g'pos : ∀ x ∈ Ioo a b, 0 ≤ g' x) : IntegrableOn g' (Ioc a b) :=
by
- by_cases hab : a < b
- swap
+ by_cases hab : a < b; swap
· simp [Ioc_eq_empty hab]
rw [integrableOn_Ioc_iff_integrableOn_Ioo]
have meas_g' : AEMeasurable g' (volume.restrict (Ioo a b)) :=
@@ -1400,10 +1389,8 @@ theorem integral_comp_smul_deriv''' {f f' : ℝ → ℝ} {g : ℝ → E} (hf : C
have h_cont : ContinuousOn (fun u => ∫ t in f a..f u, g t) [a, b] :=
by
refine' (continuous_on_primitive_interval' hg1 _).comp hf _
- · rw [← hf.image_uIcc]
- exact mem_image_of_mem f left_mem_uIcc
- · rw [← hf.image_uIcc]
- exact maps_to_image _ _
+ · rw [← hf.image_uIcc]; exact mem_image_of_mem f left_mem_uIcc
+ · rw [← hf.image_uIcc]; exact maps_to_image _ _
have h_der :
∀ x ∈ Ioo (min a b) (max a b),
HasDerivWithinAt (fun u => ∫ t in f a..f u, g t) (f' x • (g ∘ f) x) (Ioi x) x :=
@@ -1411,17 +1398,13 @@ theorem integral_comp_smul_deriv''' {f f' : ℝ → ℝ} {g : ℝ → E} (hf : C
intro x hx
obtain ⟨c, hc⟩ := nonempty_Ioo.mpr hx.1
obtain ⟨d, hd⟩ := nonempty_Ioo.mpr hx.2
- have cdsub : [c, d] ⊆ Ioo (min a b) (max a b) :=
- by
- rw [uIcc_of_le (hc.2.trans hd.1).le]
+ have cdsub : [c, d] ⊆ Ioo (min a b) (max a b) := by rw [uIcc_of_le (hc.2.trans hd.1).le];
exact Icc_subset_Ioo hc.1 hd.2
replace hg_cont := hg_cont.mono (image_subset f cdsub)
let J := [Inf (f '' [c, d]), Sup (f '' [c, d])]
have hJ : f '' [c, d] = J := (hf.mono (cdsub.trans Ioo_subset_Icc_self)).image_uIcc
rw [hJ] at hg_cont
- have h2x : f x ∈ J := by
- rw [← hJ]
- exact mem_image_of_mem _ (mem_uIcc_of_le hc.2.le hd.1.le)
+ have h2x : f x ∈ J := by rw [← hJ]; exact mem_image_of_mem _ (mem_uIcc_of_le hc.2.le hd.1.le)
have h2g : IntervalIntegrable g volume (f a) (f x) :=
by
refine' hg1.mono_set _
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -4,11 +4,15 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yury G. Kudryashov, Patrick Massot, Sébastien Gouëzel
! This file was ported from Lean 3 source module measure_theory.integral.fund_thm_calculus
-! leanprover-community/mathlib commit 011cafb4a5bc695875d186e245d6b3df03bf6c40
+! leanprover-community/mathlib commit 3bce8d800a6f2b8f63fe1e588fd76a9ff4adcebe
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
import Mathbin.Analysis.Calculus.FderivMeasurable
+import Mathbin.Analysis.Calculus.Deriv.Comp
+import Mathbin.Analysis.Calculus.Deriv.Add
+import Mathbin.Analysis.Calculus.Deriv.Slope
+import Mathbin.Analysis.Calculus.Deriv.Mul
import Mathbin.Analysis.NormedSpace.Dual
import Mathbin.MeasureTheory.Integral.IntervalIntegral
import Mathbin.MeasureTheory.Integral.VitaliCaratheodory
mathlib commit https://github.com/leanprover-community/mathlib/commit/75e7fca56381d056096ce5d05e938f63a6567828
@@ -982,7 +982,7 @@ theorem derivWithin_integral_left (hf : IntervalIntegrable f volume a b) {s t :
theorem differentiableOn_integral_of_continuous {s : Set ℝ}
(hintg : ∀ x ∈ s, IntervalIntegrable f volume a x) (hcont : Continuous f) :
DifferentiableOn ℝ (fun u => ∫ x in a..u, f x) s := fun y hy =>
- (integral_hasDerivAt_right (hintg y hy) hcont.AeStronglyMeasurable.StronglyMeasurableAtFilter
+ (integral_hasDerivAt_right (hintg y hy) hcont.AEStronglyMeasurable.StronglyMeasurableAtFilter
hcont.ContinuousAt).DifferentiableAt.DifferentiableWithinAt
#align interval_integral.differentiable_on_integral_of_continuous intervalIntegral.differentiableOn_integral_of_continuous
mathlib commit https://github.com/leanprover-community/mathlib/commit/33c67ae661dd8988516ff7f247b0be3018cdd952
@@ -603,10 +603,10 @@ In this section we prove that for a measurable function `f` integrable on `a..b`
limits `ca` and `cb` almost surely as `x` tends to `a` and `b`, respectively, then
`(u, v) ↦ ∫ x in u..v, f x` has derivative `(u, v) ↦ v • cb - u • ca` at `(a, b)`
in the sense of strict differentiability. -/
-theorem integral_hasStrictFderivAt_of_tendsto_ae (hf : IntervalIntegrable f volume a b)
+theorem integral_hasStrictFDerivAt_of_tendsto_ae (hf : IntervalIntegrable f volume a b)
(hmeas_a : StronglyMeasurableAtFilter f (𝓝 a)) (hmeas_b : StronglyMeasurableAtFilter f (𝓝 b))
(ha : Tendsto f (𝓝 a ⊓ volume.ae) (𝓝 ca)) (hb : Tendsto f (𝓝 b ⊓ volume.ae) (𝓝 cb)) :
- HasStrictFderivAt (fun p : ℝ × ℝ => ∫ x in p.1 ..p.2, f x)
+ HasStrictFDerivAt (fun p : ℝ × ℝ => ∫ x in p.1 ..p.2, f x)
((snd ℝ ℝ ℝ).smul_right cb - (fst ℝ ℝ ℝ).smul_right ca) (a, b) :=
by
have :=
@@ -619,19 +619,19 @@ theorem integral_hasStrictFderivAt_of_tendsto_ae (hf : IntervalIntegrable f volu
· intro x
simp [sub_smul]
· exact is_O_fst_prod.norm_left.add is_O_snd_prod.norm_left
-#align interval_integral.integral_has_strict_fderiv_at_of_tendsto_ae intervalIntegral.integral_hasStrictFderivAt_of_tendsto_ae
+#align interval_integral.integral_has_strict_fderiv_at_of_tendsto_ae intervalIntegral.integral_hasStrictFDerivAt_of_tendsto_ae
/-- Fundamental theorem of calculus-1: if `f : ℝ → E` is integrable on `a..b` and `f` is continuous
at `a` and `b`, then `(u, v) ↦ ∫ x in u..v, f x` has derivative `(u, v) ↦ v • cb - u • ca`
at `(a, b)` in the sense of strict differentiability. -/
-theorem integral_hasStrictFderivAt (hf : IntervalIntegrable f volume a b)
+theorem integral_hasStrictFDerivAt (hf : IntervalIntegrable f volume a b)
(hmeas_a : StronglyMeasurableAtFilter f (𝓝 a)) (hmeas_b : StronglyMeasurableAtFilter f (𝓝 b))
(ha : ContinuousAt f a) (hb : ContinuousAt f b) :
- HasStrictFderivAt (fun p : ℝ × ℝ => ∫ x in p.1 ..p.2, f x)
+ HasStrictFDerivAt (fun p : ℝ × ℝ => ∫ x in p.1 ..p.2, f x)
((snd ℝ ℝ ℝ).smul_right (f b) - (fst ℝ ℝ ℝ).smul_right (f a)) (a, b) :=
- integral_hasStrictFderivAt_of_tendsto_ae hf hmeas_a hmeas_b (ha.mono_left inf_le_left)
+ integral_hasStrictFDerivAt_of_tendsto_ae hf hmeas_a hmeas_b (ha.mono_left inf_le_left)
(hb.mono_left inf_le_left)
-#align interval_integral.integral_has_strict_fderiv_at intervalIntegral.integral_hasStrictFderivAt
+#align interval_integral.integral_has_strict_fderiv_at intervalIntegral.integral_hasStrictFDerivAt
/-- **First Fundamental Theorem of Calculus**: if `f : ℝ → E` is integrable on `a..b` and `f x` has
a finite limit `c` almost surely at `b`, then `u ↦ ∫ x in a..u, f x` has derivative `c` at `b` in
@@ -697,24 +697,24 @@ In this subsection we restate results from the previous subsection in terms of `
/-- Fundamental theorem of calculus-1: if `f : ℝ → E` is integrable on `a..b` and `f x` has finite
limits `ca` and `cb` almost surely as `x` tends to `a` and `b`, respectively, then
`(u, v) ↦ ∫ x in u..v, f x` has derivative `(u, v) ↦ v • cb - u • ca` at `(a, b)`. -/
-theorem integral_hasFderivAt_of_tendsto_ae (hf : IntervalIntegrable f volume a b)
+theorem integral_hasFDerivAt_of_tendsto_ae (hf : IntervalIntegrable f volume a b)
(hmeas_a : StronglyMeasurableAtFilter f (𝓝 a)) (hmeas_b : StronglyMeasurableAtFilter f (𝓝 b))
(ha : Tendsto f (𝓝 a ⊓ volume.ae) (𝓝 ca)) (hb : Tendsto f (𝓝 b ⊓ volume.ae) (𝓝 cb)) :
- HasFderivAt (fun p : ℝ × ℝ => ∫ x in p.1 ..p.2, f x)
+ HasFDerivAt (fun p : ℝ × ℝ => ∫ x in p.1 ..p.2, f x)
((snd ℝ ℝ ℝ).smul_right cb - (fst ℝ ℝ ℝ).smul_right ca) (a, b) :=
- (integral_hasStrictFderivAt_of_tendsto_ae hf hmeas_a hmeas_b ha hb).HasFderivAt
-#align interval_integral.integral_has_fderiv_at_of_tendsto_ae intervalIntegral.integral_hasFderivAt_of_tendsto_ae
+ (integral_hasStrictFDerivAt_of_tendsto_ae hf hmeas_a hmeas_b ha hb).HasFDerivAt
+#align interval_integral.integral_has_fderiv_at_of_tendsto_ae intervalIntegral.integral_hasFDerivAt_of_tendsto_ae
/-- Fundamental theorem of calculus-1: if `f : ℝ → E` is integrable on `a..b` and `f` is continuous
at `a` and `b`, then `(u, v) ↦ ∫ x in u..v, f x` has derivative `(u, v) ↦ v • cb - u • ca`
at `(a, b)`. -/
-theorem integral_hasFderivAt (hf : IntervalIntegrable f volume a b)
+theorem integral_hasFDerivAt (hf : IntervalIntegrable f volume a b)
(hmeas_a : StronglyMeasurableAtFilter f (𝓝 a)) (hmeas_b : StronglyMeasurableAtFilter f (𝓝 b))
(ha : ContinuousAt f a) (hb : ContinuousAt f b) :
- HasFderivAt (fun p : ℝ × ℝ => ∫ x in p.1 ..p.2, f x)
+ HasFDerivAt (fun p : ℝ × ℝ => ∫ x in p.1 ..p.2, f x)
((snd ℝ ℝ ℝ).smul_right (f b) - (fst ℝ ℝ ℝ).smul_right (f a)) (a, b) :=
- (integral_hasStrictFderivAt hf hmeas_a hmeas_b ha hb).HasFderivAt
-#align interval_integral.integral_has_fderiv_at intervalIntegral.integral_hasFderivAt
+ (integral_hasStrictFDerivAt hf hmeas_a hmeas_b ha hb).HasFDerivAt
+#align interval_integral.integral_has_fderiv_at intervalIntegral.integral_hasFDerivAt
/-- Fundamental theorem of calculus-1: if `f : ℝ → E` is integrable on `a..b` and `f x` has finite
limits `ca` and `cb` almost surely as `x` tends to `a` and `b`, respectively, then `fderiv`
@@ -724,7 +724,7 @@ theorem fderiv_integral_of_tendsto_ae (hf : IntervalIntegrable f volume a b)
(ha : Tendsto f (𝓝 a ⊓ volume.ae) (𝓝 ca)) (hb : Tendsto f (𝓝 b ⊓ volume.ae) (𝓝 cb)) :
fderiv ℝ (fun p : ℝ × ℝ => ∫ x in p.1 ..p.2, f x) (a, b) =
(snd ℝ ℝ ℝ).smul_right cb - (fst ℝ ℝ ℝ).smul_right ca :=
- (integral_hasFderivAt_of_tendsto_ae hf hmeas_a hmeas_b ha hb).fderiv
+ (integral_hasFDerivAt_of_tendsto_ae hf hmeas_a hmeas_b ha hb).fderiv
#align interval_integral.fderiv_integral_of_tendsto_ae intervalIntegral.fderiv_integral_of_tendsto_ae
/-- Fundamental theorem of calculus-1: if `f : ℝ → E` is integrable on `a..b` and `f` is continuous
@@ -735,7 +735,7 @@ theorem fderiv_integral (hf : IntervalIntegrable f volume a b)
(ha : ContinuousAt f a) (hb : ContinuousAt f b) :
fderiv ℝ (fun p : ℝ × ℝ => ∫ x in p.1 ..p.2, f x) (a, b) =
(snd ℝ ℝ ℝ).smul_right (f b) - (fst ℝ ℝ ℝ).smul_right (f a) :=
- (integral_hasFderivAt hf hmeas_a hmeas_b ha hb).fderiv
+ (integral_hasFDerivAt hf hmeas_a hmeas_b ha hb).fderiv
#align interval_integral.fderiv_integral intervalIntegral.fderiv_integral
/-- Fundamental theorem of calculus-1: if `f : ℝ → E` is integrable on `a..b` and `f x` has a finite
@@ -820,14 +820,14 @@ and `cb` almost surely at the filters `la` and `lb` from the following table.
| `{a}` | `⊥` | `{b}` | `⊥` |
| `univ` | `𝓝 a` | `univ` | `𝓝 b` |
-/
-theorem integral_hasFderivWithinAt_of_tendsto_ae (hf : IntervalIntegrable f volume a b)
+theorem integral_hasFDerivWithinAt_of_tendsto_ae (hf : IntervalIntegrable f volume a b)
{s t : Set ℝ} [FTCFilter a (𝓝[s] a) la] [FTCFilter b (𝓝[t] b) lb]
(hmeas_a : StronglyMeasurableAtFilter f la) (hmeas_b : StronglyMeasurableAtFilter f lb)
(ha : Tendsto f (la ⊓ volume.ae) (𝓝 ca)) (hb : Tendsto f (lb ⊓ volume.ae) (𝓝 cb)) :
- HasFderivWithinAt (fun p : ℝ × ℝ => ∫ x in p.1 ..p.2, f x)
+ HasFDerivWithinAt (fun p : ℝ × ℝ => ∫ x in p.1 ..p.2, f x)
((snd ℝ ℝ ℝ).smul_right cb - (fst ℝ ℝ ℝ).smul_right ca) (s ×ˢ t) (a, b) :=
by
- rw [HasFderivWithinAt, nhdsWithin_prod_eq]
+ rw [HasFDerivWithinAt, nhdsWithin_prod_eq]
have :=
integral_sub_integral_sub_linear_is_o_of_tendsto_ae hf hmeas_a hmeas_b ha hb
(tendsto_const_pure.mono_right FTC_filter.pure_le : tendsto _ _ (𝓝[s] a)) tendsto_fst
@@ -836,7 +836,7 @@ theorem integral_hasFderivWithinAt_of_tendsto_ae (hf : IntervalIntegrable f volu
· intro x
simp [sub_smul]
· exact is_O_fst_prod.norm_left.add is_O_snd_prod.norm_left
-#align interval_integral.integral_has_fderiv_within_at_of_tendsto_ae intervalIntegral.integral_hasFderivWithinAt_of_tendsto_ae
+#align interval_integral.integral_has_fderiv_within_at_of_tendsto_ae intervalIntegral.integral_hasFDerivWithinAt_of_tendsto_ae
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
/-- Let `f` be a measurable function integrable on `a..b`. The function `(u, v) ↦ ∫ x in u..v, f x`
@@ -852,15 +852,15 @@ is definitionally equal `continuous_at f _` or `continuous_within_at f _ _`.
| `{a}` | `⊥` | `{b}` | `⊥` |
| `univ` | `𝓝 a` | `univ` | `𝓝 b` |
-/
-theorem integral_hasFderivWithinAt (hf : IntervalIntegrable f volume a b)
+theorem integral_hasFDerivWithinAt (hf : IntervalIntegrable f volume a b)
(hmeas_a : StronglyMeasurableAtFilter f la) (hmeas_b : StronglyMeasurableAtFilter f lb)
{s t : Set ℝ} [FTCFilter a (𝓝[s] a) la] [FTCFilter b (𝓝[t] b) lb] (ha : Tendsto f la (𝓝 <| f a))
(hb : Tendsto f lb (𝓝 <| f b)) :
- HasFderivWithinAt (fun p : ℝ × ℝ => ∫ x in p.1 ..p.2, f x)
+ HasFDerivWithinAt (fun p : ℝ × ℝ => ∫ x in p.1 ..p.2, f x)
((snd ℝ ℝ ℝ).smul_right (f b) - (fst ℝ ℝ ℝ).smul_right (f a)) (s ×ˢ t) (a, b) :=
- integral_hasFderivWithinAt_of_tendsto_ae hf hmeas_a hmeas_b (ha.mono_left inf_le_left)
+ integral_hasFDerivWithinAt_of_tendsto_ae hf hmeas_a hmeas_b (ha.mono_left inf_le_left)
(hb.mono_left inf_le_left)
-#align interval_integral.integral_has_fderiv_within_at intervalIntegral.integral_hasFderivWithinAt
+#align interval_integral.integral_has_fderiv_within_at intervalIntegral.integral_hasFDerivWithinAt
/- ./././Mathport/Syntax/Translate/Expr.lean:330:4: warning: unsupported (TODO): `[tacs] -/
/-- An auxiliary tactic closing goals `unique_diff_within_at ℝ s a` where
@@ -890,7 +890,7 @@ theorem fderivWithin_integral_of_tendsto_ae (hf : IntervalIntegrable f volume a
(ht : UniqueDiffWithinAt ℝ t b := by uniqueDiffWithinAt_Ici_Iic_univ) :
fderivWithin ℝ (fun p : ℝ × ℝ => ∫ x in p.1 ..p.2, f x) (s ×ˢ t) (a, b) =
(snd ℝ ℝ ℝ).smul_right cb - (fst ℝ ℝ ℝ).smul_right ca :=
- (integral_hasFderivWithinAt_of_tendsto_ae hf hmeas_a hmeas_b ha hb).fderivWithin <| hs.Prod ht
+ (integral_hasFDerivWithinAt_of_tendsto_ae hf hmeas_a hmeas_b ha hb).fderivWithin <| hs.Prod ht
#align interval_integral.fderiv_within_integral_of_tendsto_ae intervalIntegral.fderivWithin_integral_of_tendsto_ae
/-- Fundamental theorem of calculus: if `f : ℝ → E` is integrable on `a..b` and `f x` has a finite
mathlib commit https://github.com/leanprover-community/mathlib/commit/95a87616d63b3cb49d3fe678d416fbe9c4217bf4
@@ -215,7 +215,7 @@ instance nhdsWithinSingleton (a : ℝ) : FTCFilter a (𝓝[{a}] a) ⊥ :=
theorem finite_at_inner {a : ℝ} (l : Filter ℝ) {l'} [h : FTCFilter a l l'] {μ : Measure ℝ}
[LocallyFiniteMeasure μ] : μ.FiniteAtFilter l' :=
- (μ.finite_at_nhds a).filter_mono h.le_nhds
+ (μ.finiteAtNhds a).filter_mono h.le_nhds
#align interval_integral.FTC_filter.finite_at_inner intervalIntegral.FTCFilter.finite_at_inner
instance nhds (a : ℝ) : FTCFilter a (𝓝 a) (𝓝 a)
mathlib commit https://github.com/leanprover-community/mathlib/commit/d4437c68c8d350fc9d4e95e1e174409db35e30d7
@@ -214,7 +214,7 @@ instance nhdsWithinSingleton (a : ℝ) : FTCFilter a (𝓝[{a}] a) ⊥ :=
#align interval_integral.FTC_filter.nhds_within_singleton intervalIntegral.FTCFilter.nhdsWithinSingleton
theorem finite_at_inner {a : ℝ} (l : Filter ℝ) {l'} [h : FTCFilter a l l'] {μ : Measure ℝ}
- [IsLocallyFiniteMeasure μ] : μ.FiniteAtFilter l' :=
+ [LocallyFiniteMeasure μ] : μ.FiniteAtFilter l' :=
(μ.finite_at_nhds a).filter_mono h.le_nhds
#align interval_integral.FTC_filter.finite_at_inner intervalIntegral.FTCFilter.finite_at_inner
@@ -336,7 +336,7 @@ theorem measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_ge' [IsMeasurably
section
-variable [IsLocallyFiniteMeasure μ] [FTCFilter a l l']
+variable [LocallyFiniteMeasure μ] [FTCFilter a l l']
include a
@@ -396,7 +396,7 @@ end
attribute [local instance] FTC_filter.meas_gen
-variable [FTCFilter a la la'] [FTCFilter b lb lb'] [IsLocallyFiniteMeasure μ]
+variable [FTCFilter a la la'] [FTCFilter b lb lb'] [LocallyFiniteMeasure μ]
/-- Fundamental theorem of calculus-1, strict derivative in both limits for a locally finite
measure.
mathlib commit https://github.com/leanprover-community/mathlib/commit/92c69b77c5a7dc0f7eeddb552508633305157caa
@@ -213,10 +213,10 @@ instance nhdsWithinSingleton (a : ℝ) : FTCFilter a (𝓝[{a}] a) ⊥ :=
infer_instance
#align interval_integral.FTC_filter.nhds_within_singleton intervalIntegral.FTCFilter.nhdsWithinSingleton
-theorem finiteAtInner {a : ℝ} (l : Filter ℝ) {l'} [h : FTCFilter a l l'] {μ : Measure ℝ}
+theorem finite_at_inner {a : ℝ} (l : Filter ℝ) {l'} [h : FTCFilter a l l'] {μ : Measure ℝ}
[IsLocallyFiniteMeasure μ] : μ.FiniteAtFilter l' :=
- (μ.finiteAtNhds a).filter_mono h.le_nhds
-#align interval_integral.FTC_filter.finite_at_inner intervalIntegral.FTCFilter.finiteAtInner
+ (μ.finite_at_nhds a).filter_mono h.le_nhds
+#align interval_integral.FTC_filter.finite_at_inner intervalIntegral.FTCFilter.finite_at_inner
instance nhds (a : ℝ) : FTCFilter a (𝓝 a) (𝓝 a)
where
@@ -357,7 +357,7 @@ theorem measure_integral_sub_linear_isLittleO_of_tendsto_ae
(hu : Tendsto u lt l) (hv : Tendsto v lt l) :
(fun t => (∫ x in u t..v t, f x ∂μ) - ∫ x in u t..v t, c ∂μ) =o[lt] fun t =>
∫ x in u t..v t, (1 : ℝ) ∂μ :=
- measure_integral_sub_linear_isLittleO_of_tendsto_ae' hfm hf (FTCFilter.finiteAtInner l) hu hv
+ measure_integral_sub_linear_isLittleO_of_tendsto_ae' hfm hf (FTCFilter.finite_at_inner l) hu hv
#align interval_integral.measure_integral_sub_linear_is_o_of_tendsto_ae intervalIntegral.measure_integral_sub_linear_isLittleO_of_tendsto_ae
/-- Fundamental theorem of calculus-1, local version for any measure.
@@ -372,7 +372,7 @@ theorem measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_le
(hu : Tendsto u lt l) (hv : Tendsto v lt l) (huv : u ≤ᶠ[lt] v) :
(fun t => (∫ x in u t..v t, f x ∂μ) - (μ (Ioc (u t) (v t))).toReal • c) =o[lt] fun t =>
(μ <| Ioc (u t) (v t)).toReal :=
- measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_le' hfm hf (FTCFilter.finiteAtInner l) hu
+ measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_le' hfm hf (FTCFilter.finite_at_inner l) hu
hv huv
#align interval_integral.measure_integral_sub_linear_is_o_of_tendsto_ae_of_le intervalIntegral.measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_le
@@ -388,7 +388,7 @@ theorem measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_ge
(hu : Tendsto u lt l) (hv : Tendsto v lt l) (huv : v ≤ᶠ[lt] u) :
(fun t => (∫ x in u t..v t, f x ∂μ) + (μ (Ioc (v t) (u t))).toReal • c) =o[lt] fun t =>
(μ <| Ioc (v t) (u t)).toReal :=
- measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_ge' hfm hf (FTCFilter.finiteAtInner l) hu
+ measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_ge' hfm hf (FTCFilter.finite_at_inner l) hu
hv huv
#align interval_integral.measure_integral_sub_linear_is_o_of_tendsto_ae_of_ge intervalIntegral.measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_ge
@@ -456,7 +456,7 @@ theorem measure_integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae_right
fun t => ∫ x in u t..v t, (1 : ℝ) ∂μ :=
by
simpa using
- measure_integral_sub_integral_sub_linear_is_o_of_tendsto_ae hab stronglyMeasurableAtBot hmeas
+ measure_integral_sub_integral_sub_linear_is_o_of_tendsto_ae hab strongly_measurable_at_bot hmeas
((tendsto_bot : tendsto _ ⊥ (𝓝 0)).mono_left inf_le_left) hf
(tendsto_const_pure : tendsto _ _ (pure a)) tendsto_const_pure hu hv
#align interval_integral.measure_integral_sub_integral_sub_linear_is_o_of_tendsto_ae_right intervalIntegral.measure_integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae_right
@@ -477,8 +477,8 @@ theorem measure_integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae_left
fun t => ∫ x in u t..v t, (1 : ℝ) ∂μ :=
by
simpa using
- measure_integral_sub_integral_sub_linear_is_o_of_tendsto_ae hab hmeas stronglyMeasurableAtBot hf
- ((tendsto_bot : tendsto _ ⊥ (𝓝 0)).mono_left inf_le_left) hu hv
+ measure_integral_sub_integral_sub_linear_is_o_of_tendsto_ae hab hmeas strongly_measurable_at_bot
+ hf ((tendsto_bot : tendsto _ ⊥ (𝓝 0)).mono_left inf_le_left) hu hv
(tendsto_const_pure : tendsto _ _ (pure b)) tendsto_const_pure
#align interval_integral.measure_integral_sub_integral_sub_linear_is_o_of_tendsto_ae_left intervalIntegral.measure_integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae_left
@@ -1278,7 +1278,7 @@ theorem integral_deriv_eq_sub' (f) (hderiv : deriv f = f')
/-- When the right derivative of a function is nonnegative, then it is automatically integrable. -/
-theorem integrableOnDerivRightOfNonneg (hcont : ContinuousOn g (Icc a b))
+theorem integrableOn_deriv_right_of_nonneg (hcont : ContinuousOn g (Icc a b))
(hderiv : ∀ x ∈ Ioo a b, HasDerivWithinAt g (g' x) (Ioi x) x)
(g'pos : ∀ x ∈ Ioo a b, 0 ≤ g' x) : IntegrableOn g' (Ioc a b) :=
by
@@ -1286,9 +1286,9 @@ theorem integrableOnDerivRightOfNonneg (hcont : ContinuousOn g (Icc a b))
swap
· simp [Ioc_eq_empty hab]
rw [integrableOn_Ioc_iff_integrableOn_Ioo]
- have meas_g' : AeMeasurable g' (volume.restrict (Ioo a b)) :=
+ have meas_g' : AEMeasurable g' (volume.restrict (Ioo a b)) :=
by
- apply (aeMeasurableDerivWithinIoi g _).congr
+ apply (aEMeasurable_derivWithin_Ioi g _).congr
refine' (ae_restrict_mem measurableSet_Ioo).mono fun x hx => _
exact (hderiv x hx).derivWithin (uniqueDiffWithinAt_Ioi _)
suffices H : (∫⁻ x in Ioo a b, ‖g' x‖₊) ≤ ENNReal.ofReal (g b - g a)
@@ -1315,19 +1315,19 @@ theorem integrableOnDerivRightOfNonneg (hcont : ContinuousOn g (Icc a b))
· convert NNReal.coe_le_coe.2 (fle x)
simp only [Real.norm_of_nonneg (g'pos x hx), coe_nnnorm]
exact lt_irrefl _ (hf.trans_le (ENNReal.ofReal_le_ofReal B))
-#align interval_integral.integrable_on_deriv_right_of_nonneg intervalIntegral.integrableOnDerivRightOfNonneg
+#align interval_integral.integrable_on_deriv_right_of_nonneg intervalIntegral.integrableOn_deriv_right_of_nonneg
/-- When the derivative of a function is nonnegative, then it is automatically integrable,
Ioc version. -/
-theorem integrableOnDerivOfNonneg (hcont : ContinuousOn g (Icc a b))
+theorem integrableOn_deriv_of_nonneg (hcont : ContinuousOn g (Icc a b))
(hderiv : ∀ x ∈ Ioo a b, HasDerivAt g (g' x) x) (g'pos : ∀ x ∈ Ioo a b, 0 ≤ g' x) :
IntegrableOn g' (Ioc a b) :=
- integrableOnDerivRightOfNonneg hcont (fun x hx => (hderiv x hx).HasDerivWithinAt) g'pos
-#align interval_integral.integrable_on_deriv_of_nonneg intervalIntegral.integrableOnDerivOfNonneg
+ integrableOn_deriv_right_of_nonneg hcont (fun x hx => (hderiv x hx).HasDerivWithinAt) g'pos
+#align interval_integral.integrable_on_deriv_of_nonneg intervalIntegral.integrableOn_deriv_of_nonneg
/-- When the derivative of a function is nonnegative, then it is automatically integrable,
interval version. -/
-theorem intervalIntegrableDerivOfNonneg (hcont : ContinuousOn g (uIcc a b))
+theorem intervalIntegrable_deriv_of_nonneg (hcont : ContinuousOn g (uIcc a b))
(hderiv : ∀ x ∈ Ioo (min a b) (max a b), HasDerivAt g (g' x) x)
(hpos : ∀ x ∈ Ioo (min a b) (max a b), 0 ≤ g' x) : IntervalIntegrable g' volume a b :=
by
@@ -1338,7 +1338,7 @@ theorem intervalIntegrableDerivOfNonneg (hcont : ContinuousOn g (uIcc a b))
· simp only [uIcc_of_ge, min_eq_right, max_eq_left, hab, IntervalIntegrable, Ioc_eq_empty_of_le,
integrable_on_empty, true_and_iff] at hcont hderiv hpos⊢
exact integrable_on_deriv_of_nonneg hcont hderiv hpos
-#align interval_integral.interval_integrable_deriv_of_nonneg intervalIntegral.intervalIntegrableDerivOfNonneg
+#align interval_integral.interval_integrable_deriv_of_nonneg intervalIntegral.intervalIntegrable_deriv_of_nonneg
/-!
### Integration by parts
@@ -1354,8 +1354,8 @@ theorem integral_deriv_mul_eq_sub {u v u' v' : ℝ → A} (hu : ∀ x ∈ uIcc a
(hv' : IntervalIntegrable v' volume a b) :
(∫ x in a..b, u' x * v x + u x * v' x) = u b * v b - u a * v a :=
(integral_eq_sub_of_hasDerivAt fun x hx => (hu x hx).mul (hv x hx)) <|
- (hu'.mulContinuousOn (HasDerivAt.continuousOn hv)).add
- (hv'.continuousOnMul (HasDerivAt.continuousOn hu))
+ (hu'.mul_continuousOn (HasDerivAt.continuousOn hv)).add
+ (hv'.continuousOn_mul (HasDerivAt.continuousOn hu))
#align interval_integral.integral_deriv_mul_eq_sub intervalIntegral.integral_deriv_mul_eq_sub
theorem integral_mul_deriv_eq_deriv_mul {u v u' v' : ℝ → A}
@@ -1446,7 +1446,7 @@ theorem integral_comp_smul_deriv'' {f f' : ℝ → ℝ} {g : ℝ → E} (hf : Co
by
refine'
integral_comp_smul_deriv''' hf hff' (hg.mono <| image_subset _ Ioo_subset_Icc_self) _
- (hf'.smul (hg.comp hf <| subset_preimage_image f _)).integrableOnIcc
+ (hf'.smul (hg.comp hf <| subset_preimage_image f _)).integrableOn_Icc
rw [hf.image_uIcc] at hg⊢
exact hg.integrable_on_Icc
#align interval_integral.integral_comp_smul_deriv'' intervalIntegral.integral_comp_smul_deriv''
mathlib commit https://github.com/leanprover-community/mathlib/commit/8b8ba04e2f326f3f7cf24ad129beda58531ada61
set_integral
with setIntegral
(#12215)
Done with a global search and replace, and then (to fix the #align
lines), replace (#align \S*)setIntegral
with $1set_integral
.
@@ -1061,7 +1061,7 @@ theorem sub_le_integral_of_hasDeriv_right_of_le_Ico (hab : a ≤ b)
ENNReal.toReal_ofReal]
_ ≤ ∫ w in t..u, (G' w).toReal := by
rw [intervalIntegral.integral_of_le hu.1.le, ← integral_Icc_eq_integral_Ioc]
- apply set_integral_mono_ae_restrict
+ apply setIntegral_mono_ae_restrict
· simp only [integrableOn_const, Real.volume_Icc, ENNReal.ofReal_lt_top, or_true_iff]
· exact IntegrableOn.mono_set G'int I
· have C1 : ∀ᵐ x : ℝ ∂volume.restrict (Icc t u), G' x < ∞ :=
@@ -1096,7 +1096,7 @@ theorem sub_le_integral_of_hasDeriv_right_of_le_Ico (hab : a ≤ b)
refine' ⟨x, _, Ioc_subset_Ioc le_rfl (min_le_left _ _) h'x⟩
calc
g x - g a = g t - g a + (g x - g t) := by abel
- _ ≤ (∫ w in a..t, (G' w).toReal) + ∫ w in t..x, (G' w).toReal := (add_le_add ht.1 hx)
+ _ ≤ (∫ w in a..t, (G' w).toReal) + ∫ w in t..x, (G' w).toReal := add_le_add ht.1 hx
_ = ∫ w in a..x, (G' w).toReal := by
apply integral_add_adjacent_intervals
· rw [intervalIntegrable_iff_integrableOn_Ioc_of_le ht.2.1]
Give versions with weaker conditions for intervalIntegrable.integral_deriv_mul_eq_sub
, intervalIntegrable.integral_mul_deriv_eq_deriv_mul
and fourierCoeffOn_of_hasDerivAt
.
@@ -1341,31 +1341,123 @@ section Parts
variable [NormedRing A] [NormedAlgebra ℝ A] [CompleteSpace A]
-/-- For improper integrals, see `MeasureTheory.integral_deriv_mul_eq_sub`,
+/-- The integral of the derivative of a product of two maps.
+For improper integrals, see `MeasureTheory.integral_deriv_mul_eq_sub`,
`MeasureTheory.integral_Ioi_deriv_mul_eq_sub`, and `MeasureTheory.integral_Iic_deriv_mul_eq_sub`. -/
-theorem integral_deriv_mul_eq_sub {u v u' v' : ℝ → A} (hu : ∀ x ∈ uIcc a b, HasDerivAt u (u' x) x)
- (hv : ∀ x ∈ uIcc a b, HasDerivAt v (v' x) x) (hu' : IntervalIntegrable u' volume a b)
+theorem integral_deriv_mul_eq_sub_of_hasDeriv_right {u v u' v' : ℝ → A}
+ (hu : ContinuousOn u [[a, b]])
+ (hv : ContinuousOn v [[a, b]])
+ (huu' : ∀ x ∈ Ioo (min a b) (max a b), HasDerivWithinAt u (u' x) (Ioi x) x)
+ (hvv' : ∀ x ∈ Ioo (min a b) (max a b), HasDerivWithinAt v (v' x) (Ioi x) x)
+ (hu' : IntervalIntegrable u' volume a b)
+ (hv' : IntervalIntegrable v' volume a b) :
+ ∫ x in a..b, u' x * v x + u x * v' x = u b * v b - u a * v a := by
+ apply integral_eq_sub_of_hasDeriv_right (hu.mul hv) fun x hx ↦ (huu' x hx).mul (hvv' x hx)
+ exact (hu'.mul_continuousOn hv).add (hv'.continuousOn_mul hu)
+
+/-- The integral of the derivative of a product of two maps.
+Special case of `integral_deriv_mul_eq_sub_of_hasDeriv_right` where the functions have a
+two-sided derivative in the interior of the interval. -/
+theorem integral_deriv_mul_eq_sub_of_hasDerivAt {u v u' v' : ℝ → A}
+ (hu : ContinuousOn u [[a, b]])
+ (hv : ContinuousOn v [[a, b]])
+ (huu' : ∀ x ∈ Ioo (min a b) (max a b), HasDerivAt u (u' x) x)
+ (hvv' : ∀ x ∈ Ioo (min a b) (max a b), HasDerivAt v (v' x) x)
+ (hu' : IntervalIntegrable u' volume a b)
+ (hv' : IntervalIntegrable v' volume a b) :
+ ∫ x in a..b, u' x * v x + u x * v' x = u b * v b - u a * v a :=
+ integral_deriv_mul_eq_sub_of_hasDeriv_right hu hv
+ (fun x hx ↦ huu' x hx |>.hasDerivWithinAt) (fun x hx ↦ hvv' x hx |>.hasDerivWithinAt) hu' hv'
+
+/-- The integral of the derivative of a product of two maps.
+Special case of `integral_deriv_mul_eq_sub_of_hasDeriv_right` where the functions have a
+ one-sided derivative at the endpoints. -/
+theorem integral_deriv_mul_eq_sub_of_hasDerivWithinAt {u v u' v' : ℝ → A}
+ (hu : ∀ x ∈ [[a, b]], HasDerivWithinAt u (u' x) [[a, b]] x)
+ (hv : ∀ x ∈ [[a, b]], HasDerivWithinAt v (v' x) [[a, b]] x)
+ (hu' : IntervalIntegrable u' volume a b)
(hv' : IntervalIntegrable v' volume a b) :
∫ x in a..b, u' x * v x + u x * v' x = u b * v b - u a * v a :=
- (integral_eq_sub_of_hasDerivAt fun x hx => (hu x hx).mul (hv x hx)) <|
- (hu'.mul_continuousOn (HasDerivAt.continuousOn hv)).add
- (hv'.continuousOn_mul (HasDerivAt.continuousOn hu))
+ integral_deriv_mul_eq_sub_of_hasDerivAt
+ (fun x hx ↦ (hu x hx).continuousWithinAt)
+ (fun x hx ↦ (hv x hx).continuousWithinAt)
+ (fun x hx ↦ hu x (mem_Icc_of_Ioo hx) |>.hasDerivAt (Icc_mem_nhds hx.1 hx.2))
+ (fun x hx ↦ hv x (mem_Icc_of_Ioo hx) |>.hasDerivAt (Icc_mem_nhds hx.1 hx.2))
+ hu' hv'
+
+/-- Special case of `integral_deriv_mul_eq_sub_of_hasDeriv_right` where the functions have a
+ derivative at the endpoints. -/
+theorem integral_deriv_mul_eq_sub {u v u' v' : ℝ → A}
+ (hu : ∀ x ∈ [[a, b]], HasDerivAt u (u' x) x)
+ (hv : ∀ x ∈ [[a, b]], HasDerivAt v (v' x) x)
+ (hu' : IntervalIntegrable u' volume a b)
+ (hv' : IntervalIntegrable v' volume a b) :
+ ∫ x in a..b, u' x * v x + u x * v' x = u b * v b - u a * v a :=
+ integral_deriv_mul_eq_sub_of_hasDerivWithinAt
+ (fun x hx ↦ hu x hx |>.hasDerivWithinAt) (fun x hx ↦ hv x hx |>.hasDerivWithinAt) hu' hv'
#align interval_integral.integral_deriv_mul_eq_sub intervalIntegral.integral_deriv_mul_eq_sub
/-- **Integration by parts**. For improper integrals, see
`MeasureTheory.integral_mul_deriv_eq_deriv_mul`,
`MeasureTheory.integral_Ioi_mul_deriv_eq_deriv_mul`,
and `MeasureTheory.integral_Iic_mul_deriv_eq_deriv_mul`. -/
-theorem integral_mul_deriv_eq_deriv_mul {u v u' v' : ℝ → A}
- (hu : ∀ x ∈ uIcc a b, HasDerivAt u (u' x) x) (hv : ∀ x ∈ uIcc a b, HasDerivAt v (v' x) x)
- (hu' : IntervalIntegrable u' volume a b) (hv' : IntervalIntegrable v' volume a b) :
+theorem integral_mul_deriv_eq_deriv_mul_of_hasDeriv_right {u v u' v' : ℝ → A}
+ (hu : ContinuousOn u [[a, b]])
+ (hv : ContinuousOn v [[a, b]])
+ (huu' : ∀ x ∈ Ioo (min a b) (max a b), HasDerivWithinAt u (u' x) (Ioi x) x)
+ (hvv' : ∀ x ∈ Ioo (min a b) (max a b), HasDerivWithinAt v (v' x) (Ioi x) x)
+ (hu' : IntervalIntegrable u' volume a b)
+ (hv' : IntervalIntegrable v' volume a b) :
∫ x in a..b, u x * v' x = u b * v b - u a * v a - ∫ x in a..b, u' x * v x := by
- rw [← integral_deriv_mul_eq_sub hu hv hu' hv', ← integral_sub]
- · exact integral_congr fun x _ => by simp only [add_sub_cancel_left]
- · exact
- (hu'.mul_continuousOn (HasDerivAt.continuousOn hv)).add
- (hv'.continuousOn_mul (HasDerivAt.continuousOn hu))
- · exact hu'.mul_continuousOn (HasDerivAt.continuousOn hv)
+ rw [← integral_deriv_mul_eq_sub_of_hasDeriv_right hu hv huu' hvv' hu' hv', ← integral_sub]
+ · simp_rw [add_sub_cancel_left]
+ · exact (hu'.mul_continuousOn hv).add (hv'.continuousOn_mul hu)
+ · exact hu'.mul_continuousOn hv
+
+/-- **Integration by parts**. Special case of `integral_mul_deriv_eq_deriv_mul_of_hasDeriv_right`
+where the functions have a two-sided derivative in the interior of the interval. -/
+theorem integral_mul_deriv_eq_deriv_mul_of_hasDerivAt {u v u' v' : ℝ → A}
+ (hu : ContinuousOn u [[a, b]])
+ (hv : ContinuousOn v [[a, b]])
+ (huu' : ∀ x ∈ Ioo (min a b) (max a b), HasDerivAt u (u' x) x)
+ (hvv' : ∀ x ∈ Ioo (min a b) (max a b), HasDerivAt v (v' x) x)
+ (hu' : IntervalIntegrable u' volume a b)
+ (hv' : IntervalIntegrable v' volume a b) :
+ ∫ x in a..b, u x * v' x = u b * v b - u a * v a - ∫ x in a..b, u' x * v x :=
+ integral_mul_deriv_eq_deriv_mul_of_hasDeriv_right hu hv
+ (fun x hx ↦ (huu' x hx).hasDerivWithinAt) (fun x hx ↦ (hvv' x hx).hasDerivWithinAt) hu' hv'
+
+/-- **Integration by parts**. Special case of
+`intervalIntegrable.integral_mul_deriv_eq_deriv_mul_of_hasDeriv_right`
+where the functions have a one-sided derivative at the endpoints. -/
+theorem integral_mul_deriv_eq_deriv_mul_of_hasDerivWithinAt {u v u' v' : ℝ → A}
+ (hu : ∀ x ∈ [[a, b]], HasDerivWithinAt u (u' x) [[a, b]] x)
+ (hv : ∀ x ∈ [[a, b]], HasDerivWithinAt v (v' x) [[a, b]] x)
+ (hu' : IntervalIntegrable u' volume a b)
+ (hv' : IntervalIntegrable v' volume a b) :
+ ∫ x in a..b, u x * v' x = u b * v b - u a * v a - ∫ x in a..b, u' x * v x :=
+ integral_mul_deriv_eq_deriv_mul_of_hasDerivAt
+ (fun x hx ↦ (hu x hx).continuousWithinAt)
+ (fun x hx ↦ (hv x hx).continuousWithinAt)
+ (fun x hx ↦ hu x (mem_Icc_of_Ioo hx) |>.hasDerivAt (Icc_mem_nhds hx.1 hx.2))
+ (fun x hx ↦ hv x (mem_Icc_of_Ioo hx) |>.hasDerivAt (Icc_mem_nhds hx.1 hx.2))
+ hu' hv'
+
+/-- **Integration by parts**. Special case of
+`intervalIntegrable.integral_mul_deriv_eq_deriv_mul_of_hasDeriv_right`
+where the functions have a derivative also at the endpoints.
+For improper integrals, see
+`MeasureTheory.integral_mul_deriv_eq_deriv_mul`,
+`MeasureTheory.integral_Ioi_mul_deriv_eq_deriv_mul`,
+and `MeasureTheory.integral_Iic_mul_deriv_eq_deriv_mul`. -/
+theorem integral_mul_deriv_eq_deriv_mul {u v u' v' : ℝ → A}
+ (hu : ∀ x ∈ [[a, b]], HasDerivAt u (u' x) x)
+ (hv : ∀ x ∈ [[a, b]], HasDerivAt v (v' x) x)
+ (hu' : IntervalIntegrable u' volume a b)
+ (hv' : IntervalIntegrable v' volume a b) :
+ ∫ x in a..b, u x * v' x = u b * v b - u a * v a - ∫ x in a..b, u' x * v x :=
+ integral_mul_deriv_eq_deriv_mul_of_hasDerivWithinAt
+ (fun x hx ↦ (hu x hx).hasDerivWithinAt) (fun x hx ↦ (hv x hx).hasDerivWithinAt) hu' hv'
#align interval_integral.integral_mul_deriv_eq_deriv_mul intervalIntegral.integral_mul_deriv_eq_deriv_mul
end Parts
IsROrC
to RCLike
(#10819)
IsROrC
contains data, which goes against the expectation that classes prefixed with Is
are prop-valued. People have been complaining about this on and off, so this PR renames IsROrC
to RCLike
.
@@ -1251,7 +1251,7 @@ theorem integral_deriv_eq_sub' (f) (hderiv : deriv f = f')
/-- A variant of `intervalIntegral.integral_deriv_eq_sub`, the Fundamental theorem
of calculus, involving integrating over the unit interval. -/
-lemma integral_unitInterval_deriv_eq_sub [IsROrC 𝕜] [NormedSpace 𝕜 E] [IsScalarTower ℝ 𝕜 E]
+lemma integral_unitInterval_deriv_eq_sub [RCLike 𝕜] [NormedSpace 𝕜 E] [IsScalarTower ℝ 𝕜 E]
{f f' : 𝕜 → E} {z₀ z₁ : 𝕜}
(hcont : ContinuousOn (fun t : ℝ ↦ f' (z₀ + t • z₁)) (Set.Icc 0 1))
(hderiv : ∀ t ∈ Set.Icc (0 : ℝ) 1, HasDerivAt f (f' (z₀ + t • z₁)) (z₀ + t • z₁)) :
mul
-div
cancellation lemmas (#11530)
Lemma names around cancellation of multiplication and division are a mess.
This PR renames a handful of them according to the following table (each big row contains the multiplicative statement, then the three rows contain the GroupWithZero
lemma name, the Group
lemma, the AddGroup
lemma name).
| Statement | New name | Old name | |
@@ -1361,7 +1361,7 @@ theorem integral_mul_deriv_eq_deriv_mul {u v u' v' : ℝ → A}
(hu' : IntervalIntegrable u' volume a b) (hv' : IntervalIntegrable v' volume a b) :
∫ x in a..b, u x * v' x = u b * v b - u a * v a - ∫ x in a..b, u' x * v x := by
rw [← integral_deriv_mul_eq_sub hu hv hu' hv', ← integral_sub]
- · exact integral_congr fun x _ => by simp only [add_sub_cancel']
+ · exact integral_congr fun x _ => by simp only [add_sub_cancel_left]
· exact
(hu'.mul_continuousOn (HasDerivAt.continuousOn hv)).add
(hv'.continuousOn_mul (HasDerivAt.continuousOn hu))
@@ -1341,6 +1341,8 @@ section Parts
variable [NormedRing A] [NormedAlgebra ℝ A] [CompleteSpace A]
+/-- For improper integrals, see `MeasureTheory.integral_deriv_mul_eq_sub`,
+`MeasureTheory.integral_Ioi_deriv_mul_eq_sub`, and `MeasureTheory.integral_Iic_deriv_mul_eq_sub`. -/
theorem integral_deriv_mul_eq_sub {u v u' v' : ℝ → A} (hu : ∀ x ∈ uIcc a b, HasDerivAt u (u' x) x)
(hv : ∀ x ∈ uIcc a b, HasDerivAt v (v' x) x) (hu' : IntervalIntegrable u' volume a b)
(hv' : IntervalIntegrable v' volume a b) :
@@ -1350,6 +1352,10 @@ theorem integral_deriv_mul_eq_sub {u v u' v' : ℝ → A} (hu : ∀ x ∈ uIcc a
(hv'.continuousOn_mul (HasDerivAt.continuousOn hu))
#align interval_integral.integral_deriv_mul_eq_sub intervalIntegral.integral_deriv_mul_eq_sub
+/-- **Integration by parts**. For improper integrals, see
+`MeasureTheory.integral_mul_deriv_eq_deriv_mul`,
+`MeasureTheory.integral_Ioi_mul_deriv_eq_deriv_mul`,
+and `MeasureTheory.integral_Iic_mul_deriv_eq_deriv_mul`. -/
theorem integral_mul_deriv_eq_deriv_mul {u v u' v' : ℝ → A}
(hu : ∀ x ∈ uIcc a b, HasDerivAt u (u' x) x) (hv : ∀ x ∈ uIcc a b, HasDerivAt v (v' x) x)
(hu' : IntervalIntegrable u' volume a b) (hv' : IntervalIntegrable v' volume a b) :
open Classical
(#11199)
We remove all but one open Classical
s, instead preferring to use open scoped Classical
. The only real side-effect this led to is moving a couple declarations to use Exists.choose
instead of Classical.choose
.
The first few commits are explicitly labelled regex replaces for ease of review.
@@ -145,7 +145,8 @@ set_option autoImplicit true
noncomputable section
-open MeasureTheory Set Classical Filter Function
+open scoped Classical
+open MeasureTheory Set Filter Function
open scoped Classical Topology Filter ENNReal BigOperators Interval NNReal
Suggested by @loefflerd. Only code motion (and cosmetic adaptions, such as minimising import and open statements).
@@ -9,7 +9,7 @@ import Mathlib.Analysis.Calculus.Deriv.Add
import Mathlib.Analysis.Calculus.Deriv.Slope
import Mathlib.Analysis.Calculus.Deriv.Mul
import Mathlib.Analysis.NormedSpace.Dual
-import Mathlib.MeasureTheory.Integral.IntervalIntegral
+import Mathlib.MeasureTheory.Integral.DominatedConvergence
import Mathlib.MeasureTheory.Integral.VitaliCaratheodory
#align_import measure_theory.integral.fund_thm_calculus from "leanprover-community/mathlib"@"3bce8d800a6f2b8f63fe1e588fd76a9ff4adcebe"
Homogenises porting notes via capitalisation and addition of whitespace.
It makes the following changes:
@@ -1113,7 +1113,7 @@ theorem sub_le_integral_of_hasDeriv_right_of_le_Ico (hab : a ≤ b)
simp only [integral_Icc_eq_integral_Ioc', Real.volume_singleton]
#align interval_integral.sub_le_integral_of_has_deriv_right_of_le_Ico intervalIntegral.sub_le_integral_of_hasDeriv_right_of_le_Ico
--- porting note: Lean was adding `lb`/`lb'` to the arguments of this theorem, so I enclosed FTC-1
+-- Porting note: Lean was adding `lb`/`lb'` to the arguments of this theorem, so I enclosed FTC-1
-- into a `section`
/-- Hard part of FTC-2 for integrable derivatives, real-valued functions: one has
`g b - g a ≤ ∫ y in a..b, g' y` when `g'` is integrable.
@@ -1035,7 +1035,7 @@ theorem sub_le_integral_of_hasDeriv_right_of_le_Ico (hab : a ≤ b)
have : ContinuousOn (fun t => (g t - g a, ∫ u in a..t, (G' u).toReal)) (Icc a b) := by
rw [← uIcc_of_le hab] at G'int hcont ⊢
exact (hcont.sub continuousOn_const).prod (continuousOn_primitive_interval G'int)
- simp only [inter_comm]
+ simp only [s, inter_comm]
exact this.preimage_isClosed_of_isClosed isClosed_Icc OrderClosedTopology.isClosed_le'
have main : Icc a b ⊆ {t | g t - g a ≤ ∫ u in a..t, (G' u).toReal} := by
-- to show that the set `s` is all `[a, b]`, it suffices to show that any point `t` in `s`
@@ -1133,7 +1133,7 @@ theorem sub_le_integral_of_hasDeriv_right_of_le (hab : a ≤ b) (hcont : Continu
have : ContinuousOn (fun t => (g b - g t, ∫ u in t..b, φ u)) (Icc a b) := by
rw [← uIcc_of_le hab] at hcont φint ⊢
exact (continuousOn_const.sub hcont).prod (continuousOn_primitive_interval_left φint)
- simp only [inter_comm]
+ simp only [s, inter_comm]
exact this.preimage_isClosed_of_isClosed isClosed_Icc isClosed_le_prod
have A : closure (Ioc a b) ⊆ s := by
apply s_closed.closure_subset_iff.2
@@ -1230,7 +1230,7 @@ theorem integral_eq_sub_of_hasDerivAt_of_tendsto (hab : a < b) {fa fb}
refine' (hb.congr' _).mono_left (nhdsWithin_mono _ Ico_subset_Iio_self)
filter_upwards [Ioo_mem_nhdsWithin_Iio (right_mem_Ioc.2 hab)] with _ hz using
(update_noteq hz.1.ne' _ _).symm
- simpa [hab.ne, hab.ne'] using integral_eq_sub_of_hasDerivAt_of_le hab.le hcont Fderiv hint
+ simpa [F, hab.ne, hab.ne'] using integral_eq_sub_of_hasDerivAt_of_le hab.le hcont Fderiv hint
#align interval_integral.integral_eq_sub_of_has_deriv_at_of_tendsto intervalIntegral.integral_eq_sub_of_hasDerivAt_of_tendsto
/-- Fundamental theorem of calculus-2: If `f : ℝ → E` is differentiable at every `x` in `[a, b]` and
@@ -1267,7 +1267,7 @@ lemma integral_unitInterval_deriv_eq_sub [IsROrC 𝕜] [NormedSpace 𝕜 E] [IsS
exact this.const_add z₀
convert (integral_eq_sub_of_hasDerivAt hderiv' hint) using 1
· simp_rw [← integral_smul, Function.comp_apply]
- · simp only [Function.comp_apply, one_smul, zero_smul, add_zero]
+ · simp only [γ, Function.comp_apply, one_smul, zero_smul, add_zero]
/-!
### Automatic integrability for nonnegative derivatives
@@ -1296,7 +1296,7 @@ theorem integrableOn_deriv_right_of_nonneg (hcont : ContinuousOn g (Icc a b))
let F : ℝ → ℝ := (↑) ∘ f
have intF : IntegrableOn F (Ioo a b) := by
refine' ⟨f.measurable.coe_nnreal_real.aestronglyMeasurable, _⟩
- simpa only [HasFiniteIntegral, comp_apply, NNReal.nnnorm_eq] using fint
+ simpa only [F, HasFiniteIntegral, comp_apply, NNReal.nnnorm_eq] using fint
have A : ∫⁻ x : ℝ in Ioo a b, f x = ENNReal.ofReal (∫ x in Ioo a b, F x) :=
lintegral_coe_eq_integral _ intF
rw [A] at hf
have
, replace
and suffices
(#10640)
No changes to tactic file, it's just boring fixes throughout the library.
This follows on from #6964.
Co-authored-by: sgouezel <sebastien.gouezel@univ-rennes1.fr> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
@@ -1258,11 +1258,11 @@ lemma integral_unitInterval_deriv_eq_sub [IsROrC 𝕜] [NormedSpace 𝕜 E] [IsS
let γ (t : ℝ) : 𝕜 := z₀ + t • z₁
have hint : IntervalIntegrable (z₁ • (f' ∘ γ)) MeasureTheory.volume 0 1 :=
(ContinuousOn.const_smul hcont z₁).intervalIntegrable_of_Icc zero_le_one
- have hderiv' : ∀ t ∈ Set.uIcc (0 : ℝ) 1, HasDerivAt (f ∘ γ) (z₁ • (f' ∘ γ) t) t
- · intro t ht
+ have hderiv' : ∀ t ∈ Set.uIcc (0 : ℝ) 1, HasDerivAt (f ∘ γ) (z₁ • (f' ∘ γ) t) t := by
+ intro t ht
refine (hderiv t <| (Set.uIcc_of_le (α := ℝ) zero_le_one).symm ▸ ht).scomp t ?_
- have : HasDerivAt (fun t : ℝ ↦ t • z₁) z₁ t
- · convert (hasDerivAt_id t).smul_const (F := 𝕜) _ using 1
+ have : HasDerivAt (fun t : ℝ ↦ t • z₁) z₁ t := by
+ convert (hasDerivAt_id t).smul_const (F := 𝕜) _ using 1
simp only [one_smul]
exact this.const_add z₀
convert (integral_eq_sub_of_hasDerivAt hderiv' hint) using 1
cases'
(#9171)
I literally went through and regex'd some uses of cases'
, replacing them with rcases
; this is meant to be a low effort PR as I hope that tools can do this in the future.
rcases
is an easier replacement than cases
, though with better tools we could in future do a second pass converting simple rcases
added here (and existing ones) to cases
.
@@ -1187,7 +1187,7 @@ theorem integral_eq_sub_of_hasDeriv_right_of_le (hab : a ≤ b) (hcont : Continu
theorem integral_eq_sub_of_hasDeriv_right (hcont : ContinuousOn f (uIcc a b))
(hderiv : ∀ x ∈ Ioo (min a b) (max a b), HasDerivWithinAt f (f' x) (Ioi x) x)
(hint : IntervalIntegrable f' volume a b) : ∫ y in a..b, f' y = f b - f a := by
- cases' le_total a b with hab hab
+ rcases le_total a b with hab | hab
· simp only [uIcc_of_le, min_eq_left, max_eq_right, hab] at hcont hderiv hint
apply integral_eq_sub_of_hasDeriv_right_of_le hab hcont hderiv hint
· simp only [uIcc_of_ge, min_eq_right, max_eq_left, hab] at hcont hderiv
@@ -1322,7 +1322,7 @@ interval version. -/
theorem intervalIntegrable_deriv_of_nonneg (hcont : ContinuousOn g (uIcc a b))
(hderiv : ∀ x ∈ Ioo (min a b) (max a b), HasDerivAt g (g' x) x)
(hpos : ∀ x ∈ Ioo (min a b) (max a b), 0 ≤ g' x) : IntervalIntegrable g' volume a b := by
- cases' le_total a b with hab hab
+ rcases le_total a b with hab | hab
· simp only [uIcc_of_le, min_eq_left, max_eq_right, hab, IntervalIntegrable, hab,
Ioc_eq_empty_of_le, integrableOn_empty, and_true_iff] at hcont hderiv hpos ⊢
exact integrableOn_deriv_of_nonneg hcont hderiv hpos
[a, +oo)
(#8712)
We have in the library the lemma not_intervalIntegrable_of_tendsto_norm_atTop_of_deriv_isBigO_filter
, saying that if a function tends to infinity at a point in an interval [a, b]
, then its derivative is not interval-integrable on [a, b]
. We generalize this result to allow for any set instead of [a, b]
, and apply it to half-infinite intervals.
In particular, we characterize integrability of x^s
on [a, +oo)
, and deduce that x^s
is never integrable on [0, +oo)
. This makes it possible to remove one assumption in Lemma mellin_comp_rpow
on the Mellin transform.
@@ -149,7 +149,7 @@ open MeasureTheory Set Classical Filter Function
open scoped Classical Topology Filter ENNReal BigOperators Interval NNReal
-variable {ι 𝕜 E F A : Type*} [NormedAddCommGroup E] [CompleteSpace E] [NormedSpace ℝ E]
+variable {ι 𝕜 E F A : Type*} [NormedAddCommGroup E] [NormedSpace ℝ E]
namespace intervalIntegral
@@ -275,6 +275,8 @@ theorem measure_integral_sub_linear_isLittleO_of_tendsto_ae' [IsMeasurablyGenera
(hv : Tendsto v lt l) :
(fun t => (∫ x in u t..v t, f x ∂μ) - ∫ _ in u t..v t, c ∂μ) =o[lt] fun t =>
∫ _ in u t..v t, (1 : ℝ) ∂μ := by
+ by_cases hE : CompleteSpace E; swap
+ · simp [intervalIntegral, integral, hE]
have A := hf.integral_sub_linear_isLittleO_ae hfm hl (hu.Ioc hv)
have B := hf.integral_sub_linear_isLittleO_ae hfm hl (hv.Ioc hu)
simp_rw [integral_const', sub_smul]
@@ -285,6 +287,8 @@ theorem measure_integral_sub_linear_isLittleO_of_tendsto_ae' [IsMeasurablyGenera
abel
#align interval_integral.measure_integral_sub_linear_is_o_of_tendsto_ae' intervalIntegral.measure_integral_sub_linear_isLittleO_of_tendsto_ae'
+variable [CompleteSpace E]
+
/-- **Fundamental theorem of calculus-1**, local version for any measure.
Let filters `l` and `l'` be related by `TendstoIxxClass Ioc`.
If `f` has a finite limit `c` at `l ⊓ μ.ae`, where `μ` is a measure
@@ -484,7 +488,8 @@ at `(a, b)` provided that `f` is integrable on `a..b` and is continuous at `a` a
-/
-variable {f : ℝ → E} {c ca cb : E} {l l' la la' lb lb' : Filter ℝ} {lt : Filter ι} {a b z : ℝ}
+variable [CompleteSpace E]
+ {f : ℝ → E} {c ca cb : E} {l l' la la' lb lb' : Filter ℝ} {lt : Filter ι} {a b z : ℝ}
{u v ua ub va vb : ι → ℝ} [FTCFilter a la la'] [FTCFilter b lb lb']
/-!
@@ -1093,10 +1098,10 @@ theorem sub_le_integral_of_hasDeriv_right_of_le_Ico (hab : a ≤ b)
_ ≤ (∫ w in a..t, (G' w).toReal) + ∫ w in t..x, (G' w).toReal := (add_le_add ht.1 hx)
_ = ∫ w in a..x, (G' w).toReal := by
apply integral_add_adjacent_intervals
- · rw [intervalIntegrable_iff_integrable_Ioc_of_le ht.2.1]
+ · rw [intervalIntegrable_iff_integrableOn_Ioc_of_le ht.2.1]
exact IntegrableOn.mono_set G'int
(Ioc_subset_Icc_self.trans (Icc_subset_Icc le_rfl ht.2.2.le))
- · rw [intervalIntegrable_iff_integrable_Ioc_of_le h'x.1.le]
+ · rw [intervalIntegrable_iff_integrableOn_Ioc_of_le h'x.1.le]
apply IntegrableOn.mono_set G'int
exact Ioc_subset_Icc_self.trans (Icc_subset_Icc ht.2.1 (h'x.2.trans (min_le_right _ _)))
-- now that we know that `s` contains `[a, b]`, we get the desired result by applying this to `b`.
@@ -1161,7 +1166,7 @@ theorem integral_eq_sub_of_hasDeriv_right_of_le_real (hab : a ≤ b)
(sub_le_integral_of_hasDeriv_right_of_le hab hcont hderiv g'int fun _ _ => le_rfl)
#align interval_integral.integral_eq_sub_of_has_deriv_right_of_le_real intervalIntegral.integral_eq_sub_of_hasDeriv_right_of_le_real
-variable {f f' : ℝ → E}
+variable [CompleteSpace E] {f f' : ℝ → E}
/-- **Fundamental theorem of calculus-2**: If `f : ℝ → E` is continuous on `[a, b]` (where `a ≤ b`)
and has a right derivative at `f' x` for all `x` in `(a, b)`, and `f'` is integrable on `[a, b]`,
@@ -1173,7 +1178,7 @@ theorem integral_eq_sub_of_hasDeriv_right_of_le (hab : a ≤ b) (hcont : Continu
rw [← g.intervalIntegral_comp_comm f'int, g.map_sub]
exact integral_eq_sub_of_hasDeriv_right_of_le_real hab (g.continuous.comp_continuousOn hcont)
(fun x hx => g.hasFDerivAt.comp_hasDerivWithinAt x (hderiv x hx))
- (g.integrable_comp ((intervalIntegrable_iff_integrable_Icc_of_le hab).1 f'int))
+ (g.integrable_comp ((intervalIntegrable_iff_integrableOn_Icc_of_le hab).1 f'int))
#align interval_integral.integral_eq_sub_of_has_deriv_right_of_le intervalIntegral.integral_eq_sub_of_hasDeriv_right_of_le
/-- Fundamental theorem of calculus-2: If `f : ℝ → E` is continuous on `[a, b]` and
@@ -1362,19 +1367,22 @@ end Parts
### Integration by substitution / Change of variables
-/
-
section SMul
+variable {G : Type*} [NormedAddCommGroup G] [NormedSpace ℝ G]
+
/-- Change of variables, general form. If `f` is continuous on `[a, b]` and has
right-derivative `f'` in `(a, b)`, `g` is continuous on `f '' (a, b)` and integrable on
`f '' [a, b]`, and `f' x • (g ∘ f) x` is integrable on `[a, b]`,
then we can substitute `u = f x` to get `∫ x in a..b, f' x • (g ∘ f) x = ∫ u in f a..f b, g u`.
-/
-theorem integral_comp_smul_deriv''' {f f' : ℝ → ℝ} {g : ℝ → E} (hf : ContinuousOn f [[a, b]])
+theorem integral_comp_smul_deriv''' {f f' : ℝ → ℝ} {g : ℝ → G} (hf : ContinuousOn f [[a, b]])
(hff' : ∀ x ∈ Ioo (min a b) (max a b), HasDerivWithinAt f (f' x) (Ioi x) x)
(hg_cont : ContinuousOn g (f '' Ioo (min a b) (max a b))) (hg1 : IntegrableOn g (f '' [[a, b]]))
(hg2 : IntegrableOn (fun x => f' x • (g ∘ f) x) [[a, b]]) :
(∫ x in a..b, f' x • (g ∘ f) x) = ∫ u in f a..f b, g u := by
+ by_cases hG : CompleteSpace G; swap
+ · simp [intervalIntegral, integral, hG]
rw [hf.image_uIcc, ← intervalIntegrable_iff'] at hg1
have h_cont : ContinuousOn (fun u => ∫ t in f a..f u, g t) [[a, b]] := by
refine' (continuousOn_primitive_interval' hg1 _).comp hf _
@@ -1415,7 +1423,7 @@ theorem integral_comp_smul_deriv''' {f f' : ℝ → ℝ} {g : ℝ → E} (hf : C
continuous right-derivative `f'` in `(a, b)`, and `g` is continuous on `f '' [a, b]` then we can
substitute `u = f x` to get `∫ x in a..b, f' x • (g ∘ f) x = ∫ u in f a..f b, g u`.
-/
-theorem integral_comp_smul_deriv'' {f f' : ℝ → ℝ} {g : ℝ → E} (hf : ContinuousOn f [[a, b]])
+theorem integral_comp_smul_deriv'' {f f' : ℝ → ℝ} {g : ℝ → G} (hf : ContinuousOn f [[a, b]])
(hff' : ∀ x ∈ Ioo (min a b) (max a b), HasDerivWithinAt f (f' x) (Ioi x) x)
(hf' : ContinuousOn f' [[a, b]]) (hg : ContinuousOn g (f '' [[a, b]])) :
(∫ x in a..b, f' x • (g ∘ f) x) = ∫ u in f a..f b, g u := by
@@ -1432,7 +1440,7 @@ and `g` is continuous on `f '' [a, b]`, then we can substitute `u = f x` to get
Compared to `intervalIntegral.integral_comp_smul_deriv` we only require that `g` is continuous on
`f '' [a, b]`.
-/
-theorem integral_comp_smul_deriv' {f f' : ℝ → ℝ} {g : ℝ → E}
+theorem integral_comp_smul_deriv' {f f' : ℝ → ℝ} {g : ℝ → G}
(h : ∀ x ∈ uIcc a b, HasDerivAt f (f' x) x) (h' : ContinuousOn f' (uIcc a b))
(hg : ContinuousOn g (f '' [[a, b]])) :
(∫ x in a..b, f' x • (g ∘ f) x) = ∫ x in f a..f b, g x :=
@@ -1444,7 +1452,7 @@ theorem integral_comp_smul_deriv' {f f' : ℝ → ℝ} {g : ℝ → E}
and `g` is continuous, then we can substitute `u = f x` to get
`∫ x in a..b, f' x • (g ∘ f) x = ∫ u in f a..f b, g u`.
-/
-theorem integral_comp_smul_deriv {f f' : ℝ → ℝ} {g : ℝ → E}
+theorem integral_comp_smul_deriv {f f' : ℝ → ℝ} {g : ℝ → G}
(h : ∀ x ∈ uIcc a b, HasDerivAt f (f' x) x) (h' : ContinuousOn f' (uIcc a b))
(hg : Continuous g) : (∫ x in a..b, f' x • (g ∘ f) x) = ∫ x in f a..f b, g x :=
integral_comp_smul_deriv' h h' hg.continuousOn
structure
(#8907)
This way we can easily change the definition so that it works for topological vector spaces without generalizing any of the theorems right away.
@@ -834,7 +834,7 @@ theorem integral_hasFDerivWithinAt_of_tendsto_ae (hf : IntervalIntegrable f volu
integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae hf hmeas_a hmeas_b ha hb
(tendsto_const_pure.mono_right FTCFilter.pure_le : Tendsto _ _ (𝓝[s] a)) tendsto_fst
(tendsto_const_pure.mono_right FTCFilter.pure_le : Tendsto _ _ (𝓝[t] b)) tendsto_snd
- refine' (this.congr_left _).trans_isBigO _
+ refine .of_isLittleO <| (this.congr_left ?_).trans_isBigO ?_
· intro x; simp [sub_smul]; abel
· exact isBigO_fst_prod.norm_left.add isBigO_snd_prod.norm_left
#align interval_integral.integral_has_fderiv_within_at_of_tendsto_ae intervalIntegral.integral_hasFDerivWithinAt_of_tendsto_ae
@@ -899,7 +899,7 @@ theorem integral_hasDerivWithinAt_of_tendsto_ae_right (hf : IntervalIntegrable f
{s t : Set ℝ} [FTCFilter b (𝓝[s] b) (𝓝[t] b)] (hmeas : StronglyMeasurableAtFilter f (𝓝[t] b))
(hb : Tendsto f (𝓝[t] b ⊓ volume.ae) (𝓝 c)) :
HasDerivWithinAt (fun u => ∫ x in a..u, f x) c s b :=
- integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae_right hf hmeas hb
+ .of_isLittleO <| integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae_right hf hmeas hb
(tendsto_const_pure.mono_right FTCFilter.pure_le) tendsto_id
#align interval_integral.integral_has_deriv_within_at_of_tendsto_ae_right intervalIntegral.integral_hasDerivWithinAt_of_tendsto_ae_right
This adds the following version of the Fundamental Theorem of Calculus:
lemma integral_unitInterval_eq_sub {C E : Type*} [IsROrC C]
[NormedAddCommGroup E] [NormedSpace ℝ E] [NormedSpace C E]
[CompleteSpace E] [IsScalarTower ℝ C E] {f f' : C → E} {z₀ z₁ : C}
(hcont : ContinuousOn (fun t : ℝ ↦ f' (z₀ + t • z₁)) (Set.Icc 0 1))
(hderiv : ∀ t ∈ Set.Icc (0 : ℝ) 1, HasDerivAt f (f' (z₀ + t • z₁)) (z₀ + t • z₁)) :
z₁ • ∫ t in (0 : ℝ)..1, f' (z₀ + t • z₁) = f (z₀ + z₁) - f z₀ := ...
This is helpful for, e.g., estimating the complex logarithm.
Co-authored-by: Michael Stoll <99838730+MichaelStollBayreuth@users.noreply.github.com>
@@ -90,7 +90,7 @@ We use FTC-1 to prove several versions of FTC-2 for the Lebesgue measure, using
scheme as for the versions of FTC-1. They include:
* `intervalIntegral.integral_eq_sub_of_hasDeriv_right_of_le` - most general version, for functions
with a right derivative
-* `intervalIntegral.integral_eq_sub_of_hasDerivAt'` - version for functions with a derivative on
+* `intervalIntegral.integral_eq_sub_of_hasDerivAt` - version for functions with a derivative on
an open set
* `intervalIntegral.integral_deriv_eq_sub'` - version that is easiest to use when computing the
integral of a specific function
@@ -1243,6 +1243,27 @@ theorem integral_deriv_eq_sub' (f) (hderiv : deriv f = f')
exact hcont.intervalIntegrable
#align interval_integral.integral_deriv_eq_sub' intervalIntegral.integral_deriv_eq_sub'
+/-- A variant of `intervalIntegral.integral_deriv_eq_sub`, the Fundamental theorem
+of calculus, involving integrating over the unit interval. -/
+lemma integral_unitInterval_deriv_eq_sub [IsROrC 𝕜] [NormedSpace 𝕜 E] [IsScalarTower ℝ 𝕜 E]
+ {f f' : 𝕜 → E} {z₀ z₁ : 𝕜}
+ (hcont : ContinuousOn (fun t : ℝ ↦ f' (z₀ + t • z₁)) (Set.Icc 0 1))
+ (hderiv : ∀ t ∈ Set.Icc (0 : ℝ) 1, HasDerivAt f (f' (z₀ + t • z₁)) (z₀ + t • z₁)) :
+ z₁ • ∫ t in (0 : ℝ)..1, f' (z₀ + t • z₁) = f (z₀ + z₁) - f z₀ := by
+ let γ (t : ℝ) : 𝕜 := z₀ + t • z₁
+ have hint : IntervalIntegrable (z₁ • (f' ∘ γ)) MeasureTheory.volume 0 1 :=
+ (ContinuousOn.const_smul hcont z₁).intervalIntegrable_of_Icc zero_le_one
+ have hderiv' : ∀ t ∈ Set.uIcc (0 : ℝ) 1, HasDerivAt (f ∘ γ) (z₁ • (f' ∘ γ) t) t
+ · intro t ht
+ refine (hderiv t <| (Set.uIcc_of_le (α := ℝ) zero_le_one).symm ▸ ht).scomp t ?_
+ have : HasDerivAt (fun t : ℝ ↦ t • z₁) z₁ t
+ · convert (hasDerivAt_id t).smul_const (F := 𝕜) _ using 1
+ simp only [one_smul]
+ exact this.const_add z₀
+ convert (integral_eq_sub_of_hasDerivAt hderiv' hint) using 1
+ · simp_rw [← integral_smul, Function.comp_apply]
+ · simp only [Function.comp_apply, one_smul, zero_smul, add_zero]
+
/-!
### Automatic integrability for nonnegative derivatives
-/
@@ -1261,7 +1261,7 @@ theorem integrableOn_deriv_right_of_nonneg (hcont : ContinuousOn g (Icc a b))
exact (hderiv x hx).derivWithin (uniqueDiffWithinAt_Ioi _)
suffices H : (∫⁻ x in Ioo a b, ‖g' x‖₊) ≤ ENNReal.ofReal (g b - g a) from
⟨meas_g'.aestronglyMeasurable, H.trans_lt ENNReal.ofReal_lt_top⟩
- by_contra' H
+ by_contra! H
obtain ⟨f, fle, fint, hf⟩ :
∃ f : SimpleFunc ℝ ℝ≥0,
(∀ x, f x ≤ ‖g' x‖₊) ∧
This PR renames the field Clopens.clopen' -> Clopens.isClopen', and the lemmas
as well as: ClopenUpperSet.clopen -> ClopenUpperSet.isClopen connectedComponent_eq_iInter_clopen -> connectedComponent_eq_iInter_isClopen connectedComponent_subset_iInter_clopen -> connectedComponent_subset_iInter_isClopen continuous_boolIndicator_iff_clopen -> continuous_boolIndicator_iff_isClopen continuousOn_boolIndicator_iff_clopen -> continuousOn_boolIndicator_iff_isClopen DiscreteQuotient.ofClopen -> DiscreteQuotient.ofIsClopen disjoint_or_subset_of_clopen -> disjoint_or_subset_of_isClopen exists_clopen_{lower,upper}of_not_le -> exists_isClopen{lower,upper}_of_not_le exists_clopen_of_cofiltered -> exists_isClopen_of_cofiltered exists_clopen_of_totally_separated -> exists_isClopen_of_totally_separated exists_clopen_upper_or_lower_of_ne -> exists_isClopen_upper_or_lower_of_ne IsPreconnected.subset_clopen -> IsPreconnected.subset_isClopen isTotallyDisconnected_of_clopen_set -> isTotallyDisconnected_of_isClopen_set LocallyConstant.ofClopen_fiber_one -> LocallyConstant.ofIsClopen_fiber_one LocallyConstant.ofClopen_fiber_zero -> LocallyConstant.ofIsClopen_fiber_zero LocallyConstant.ofClopen -> LocallyConstant.ofIsClopen preimage_clopen_of_clopen -> preimage_isClopen_of_isClopen TopologicalSpace.Clopens.clopen -> TopologicalSpace.Clopens.isClopen
@@ -1031,7 +1031,7 @@ theorem sub_le_integral_of_hasDeriv_right_of_le_Ico (hab : a ≤ b)
rw [← uIcc_of_le hab] at G'int hcont ⊢
exact (hcont.sub continuousOn_const).prod (continuousOn_primitive_interval G'int)
simp only [inter_comm]
- exact this.preimage_closed_of_closed isClosed_Icc OrderClosedTopology.isClosed_le'
+ exact this.preimage_isClosed_of_isClosed isClosed_Icc OrderClosedTopology.isClosed_le'
have main : Icc a b ⊆ {t | g t - g a ≤ ∫ u in a..t, (G' u).toReal} := by
-- to show that the set `s` is all `[a, b]`, it suffices to show that any point `t` in `s`
-- with `t < b` admits another point in `s` slightly to its right
@@ -1129,7 +1129,7 @@ theorem sub_le_integral_of_hasDeriv_right_of_le (hab : a ≤ b) (hcont : Continu
rw [← uIcc_of_le hab] at hcont φint ⊢
exact (continuousOn_const.sub hcont).prod (continuousOn_primitive_interval_left φint)
simp only [inter_comm]
- exact this.preimage_closed_of_closed isClosed_Icc isClosed_le_prod
+ exact this.preimage_isClosed_of_isClosed isClosed_Icc isClosed_le_prod
have A : closure (Ioc a b) ⊆ s := by
apply s_closed.closure_subset_iff.2
intro t ht
All the other properties of topological spaces like T0Space or RegularSpace are in the root namespace. Many files were opening TopologicalSpace
just for the sake of shortening TopologicalSpace.SecondCountableTopology
...
@@ -145,8 +145,6 @@ set_option autoImplicit true
noncomputable section
-open TopologicalSpace (SecondCountableTopology)
-
open MeasureTheory Set Classical Filter Function
open scoped Classical Topology Filter ENNReal BigOperators Interval NNReal
rcases
, convert
and congrm
(#7725)
Replace rcases(
with rcases (
. Same thing for convert(
and congrm(
. No other change.
@@ -1087,7 +1087,7 @@ theorem sub_le_integral_of_hasDeriv_right_of_le_Ico (hab : a ≤ b)
simp only [lt_min_iff, mem_Ioi]
exact ⟨t_lt_v, ht.2.2⟩
-- choose a point `x` slightly to the right of `t` which satisfies the above bound
- rcases(I3.and I4).exists with ⟨x, hx, h'x⟩
+ rcases (I3.and I4).exists with ⟨x, hx, h'x⟩
-- we check that it belongs to `s`, essentially by construction
refine' ⟨x, _, Ioc_subset_Ioc le_rfl (min_le_left _ _) h'x⟩
calc
@@ -1217,6 +1217,7 @@ theorem integral_eq_sub_of_hasDerivAt_of_tendsto (hab : a < b) {fa fb}
have Fderiv : ∀ x ∈ Ioo a b, HasDerivAt F (f' x) x := by
refine' fun x hx => (hderiv x hx).congr_of_eventuallyEq _
filter_upwards [Ioo_mem_nhds hx.1 hx.2] with _ hy
+ unfold_let F
rw [update_noteq hy.2.ne, update_noteq hy.1.ne']
have hcont : ContinuousOn F (Icc a b) := by
rw [continuousOn_update_iff, continuousOn_update_iff, Icc_diff_right, Ico_diff_left]
@@ -73,8 +73,8 @@ works for both one-sided derivatives using the same typeclass to find an appropr
Before proving FTC for the Lebesgue measure, we prove a few statements that can be seen as FTC for
any measure. The most general of them,
-`measure_integral_sub_integral_sub_linear_is_o_of_tendsto_ae`, states the following. Let `(la, la')`
-be an `intervalIntegral.FTCFilter` pair of filters around `a` (i.e.,
+`measure_integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae`, states the following.
+Let `(la, la')` be an `intervalIntegral.FTCFilter` pair of filters around `a` (i.e.,
`intervalIntegral.FTCFilter a la la'`) and let `(lb, lb')` be an `intervalIntegral.FTCFilter` pair
of filters around `b`. If `f` has finite limits `ca` and `cb` almost surely at `la'` and `lb'`,
respectively, then
@@ -100,7 +100,7 @@ We then derive additional integration techniques from FTC-2:
* `intervalIntegral.integral_comp_mul_deriv''` - integration by substitution
Many applications of these theorems can be found in the file
-`Mathlib/Analysis/SpecialFunctions/Integrals`.
+`Mathlib/Analysis/SpecialFunctions/Integrals.lean`.
Note that the assumptions of FTC-2 are formulated in the form that `f'` is integrable. To use it in
a context with the stronger assumption that `f'` is continuous, one can use
@@ -168,11 +168,11 @@ that are equal to the first and last “real” instances: `(a, 𝓝[{a}] a, ⊥
`(a, 𝓝[univ] a, 𝓝[univ] a)`. We use this approach to avoid repeating arguments in many very similar
cases. Lean can automatically find both `a` and `l'` based on `l`.
-The most general theorem `measure_integral_sub_integral_sub_linear_is_o_of_tendsto_ae` can be seen
-as a generalization of lemma `integral_has_strict_fderiv_at` below which states strict
+The most general theorem `measure_integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae` can be
+seen as a generalization of lemma `integral_hasStrictFDerivAt` below which states strict
differentiability of `∫ x in u..v, f x` in `(u, v)` at `(a, b)` for a measurable function `f` that
is integrable on `a..b` and is continuous at `a` and `b`. The lemma is generalized in three
-directions: first, `measure_integral_sub_integral_sub_linear_is_o_of_tendsto_ae` deals with any
+directions: first, `measure_integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae` deals with any
locally finite measure `μ`; second, it works for one-sided limits/derivatives; third, it assumes
only that `f` has finite limits almost surely at `a` and `b`.
@@ -215,10 +215,10 @@ instance nhdsWithinSingleton (a : ℝ) : FTCFilter a (𝓝[{a}] a) ⊥ := by
rw [nhdsWithin, principal_singleton, inf_eq_right.2 (pure_le_nhds a)]; infer_instance
#align interval_integral.FTC_filter.nhds_within_singleton intervalIntegral.FTCFilter.nhdsWithinSingleton
-theorem finite_at_inner {a : ℝ} (l : Filter ℝ) {l'} [h : FTCFilter a l l'] {μ : Measure ℝ}
+theorem finiteAt_inner {a : ℝ} (l : Filter ℝ) {l'} [h : FTCFilter a l l'] {μ : Measure ℝ}
[IsLocallyFiniteMeasure μ] : μ.FiniteAtFilter l' :=
(μ.finiteAt_nhds a).filter_mono h.le_nhds
-#align interval_integral.FTC_filter.finite_at_inner intervalIntegral.FTCFilter.finite_at_inner
+#align interval_integral.FTC_filter.finite_at_inner intervalIntegral.FTCFilter.finiteAt_inner
instance nhds (a : ℝ) : FTCFilter a (𝓝 a) (𝓝 a) where
pure_le := pure_le_nhds a
@@ -259,12 +259,12 @@ variable {f : ℝ → E} {a b : ℝ} {c ca cb : E} {l l' la la' lb lb' : Filter
{μ : Measure ℝ} {u v ua va ub vb : ι → ℝ}
/-- **Fundamental theorem of calculus-1**, local version for any measure.
-Let filters `l` and `l'` be related by `tendsto_Ixx_class Ioc`.
+Let filters `l` and `l'` be related by `TendstoIxxClass Ioc`.
If `f` has a finite limit `c` at `l' ⊓ μ.ae`, where `μ` is a measure
finite at `l'`, then `∫ x in u..v, f x ∂μ = ∫ x in u..v, c ∂μ + o(∫ x in u..v, 1 ∂μ)` as both
`u` and `v` tend to `l`.
-See also `measure_integral_sub_linear_is_o_of_tendsto_ae` for a version assuming
+See also `measure_integral_sub_linear_isLittleO_of_tendsto_ae` for a version assuming
`[intervalIntegral.FTCFilter a l l']` and `[MeasureTheory.IsLocallyFiniteMeasure μ]`. If `l` is one
of `𝓝[≥] a`, `𝓝[≤] a`, `𝓝 a`, then it's easier to apply the non-primed version. The primed version
also works, e.g., for `l = l' = atTop`.
@@ -288,12 +288,12 @@ theorem measure_integral_sub_linear_isLittleO_of_tendsto_ae' [IsMeasurablyGenera
#align interval_integral.measure_integral_sub_linear_is_o_of_tendsto_ae' intervalIntegral.measure_integral_sub_linear_isLittleO_of_tendsto_ae'
/-- **Fundamental theorem of calculus-1**, local version for any measure.
-Let filters `l` and `l'` be related by `tendsto_Ixx_class Ioc`.
+Let filters `l` and `l'` be related by `TendstoIxxClass Ioc`.
If `f` has a finite limit `c` at `l ⊓ μ.ae`, where `μ` is a measure
finite at `l`, then `∫ x in u..v, f x ∂μ = μ (Ioc u v) • c + o(μ(Ioc u v))` as both
`u` and `v` tend to `l` so that `u ≤ v`.
-See also `measure_integral_sub_linear_is_o_of_tendsto_ae_of_le` for a version assuming
+See also `measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_le` for a version assuming
`[intervalIntegral.FTCFilter a l l']` and `[MeasureTheory.IsLocallyFiniteMeasure μ]`. If `l` is one
of `𝓝[≥] a`, `𝓝[≤] a`, `𝓝 a`, then it's easier to apply the non-primed version. The primed version
also works, e.g., for `l = l' = Filter.atTop`. -/
@@ -309,7 +309,7 @@ theorem measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_le' [IsMeasurably
#align interval_integral.measure_integral_sub_linear_is_o_of_tendsto_ae_of_le' intervalIntegral.measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_le'
/-- **Fundamental theorem of calculus-1**, local version for any measure.
-Let filters `l` and `l'` be related by `tendsto_Ixx_class Ioc`.
+Let filters `l` and `l'` be related by `TendstoIxxClass Ioc`.
If `f` has a finite limit `c` at `l ⊓ μ.ae`, where `μ` is a measure
finite at `l`, then `∫ x in u..v, f x ∂μ = -μ (Ioc v u) • c + o(μ(Ioc v u))` as both
`u` and `v` tend to `l` so that `v ≤ u`.
@@ -339,8 +339,8 @@ Let filters `l` and `l'` be related by `[intervalIntegral.FTCFilter a l l']`; le
finite measure. If `f` has a finite limit `c` at `l' ⊓ μ.ae`, then
`∫ x in u..v, f x ∂μ = ∫ x in u..v, c ∂μ + o(∫ x in u..v, 1 ∂μ)` as both `u` and `v` tend to `l`.
-See also `measure_integral_sub_linear_is_o_of_tendsto_ae'` for a version that also works, e.g., for
-`l = l' = Filter.atTop`.
+See also `measure_integral_sub_linear_isLittleO_of_tendsto_ae'` for a version that also works, e.g.,
+for `l = l' = Filter.atTop`.
We use integrals of constants instead of measures because this way it is easier to formulate
a statement that works in both cases `u ≤ v` and `v ≤ u`. -/
@@ -350,7 +350,7 @@ theorem measure_integral_sub_linear_isLittleO_of_tendsto_ae
(fun t => (∫ x in u t..v t, f x ∂μ) - ∫ _ in u t..v t, c ∂μ) =o[lt] fun t =>
∫ _ in u t..v t, (1 : ℝ) ∂μ :=
haveI := FTCFilter.meas_gen l
- measure_integral_sub_linear_isLittleO_of_tendsto_ae' hfm hf (FTCFilter.finite_at_inner l) hu hv
+ measure_integral_sub_linear_isLittleO_of_tendsto_ae' hfm hf (FTCFilter.finiteAt_inner l) hu hv
#align interval_integral.measure_integral_sub_linear_is_o_of_tendsto_ae intervalIntegral.measure_integral_sub_linear_isLittleO_of_tendsto_ae
/-- **Fundamental theorem of calculus-1**, local version for any measure.
@@ -359,7 +359,7 @@ Let filters `l` and `l'` be related by `[intervalIntegral.FTCFilter a l l']`; le
finite measure. If `f` has a finite limit `c` at `l' ⊓ μ.ae`, then
`∫ x in u..v, f x ∂μ = μ (Ioc u v) • c + o(μ(Ioc u v))` as both `u` and `v` tend to `l`.
-See also `measure_integral_sub_linear_is_o_of_tendsto_ae_of_le'` for a version that also works,
+See also `measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_le'` for a version that also works,
e.g., for `l = l' = Filter.atTop`. -/
theorem measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_le
(hfm : StronglyMeasurableAtFilter f l' μ) (hf : Tendsto f (l' ⊓ μ.ae) (𝓝 c))
@@ -367,7 +367,7 @@ theorem measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_le
(fun t => (∫ x in u t..v t, f x ∂μ) - (μ (Ioc (u t) (v t))).toReal • c) =o[lt] fun t =>
(μ <| Ioc (u t) (v t)).toReal :=
haveI := FTCFilter.meas_gen l
- measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_le' hfm hf (FTCFilter.finite_at_inner l) hu
+ measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_le' hfm hf (FTCFilter.finiteAt_inner l) hu
hv huv
#align interval_integral.measure_integral_sub_linear_is_o_of_tendsto_ae_of_le intervalIntegral.measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_le
@@ -377,7 +377,7 @@ Let filters `l` and `l'` be related by `[intervalIntegral.FTCFilter a l l']`; le
finite measure. If `f` has a finite limit `c` at `l' ⊓ μ.ae`, then
`∫ x in u..v, f x ∂μ = -μ (Set.Ioc v u) • c + o(μ(Set.Ioc v u))` as both `u` and `v` tend to `l`.
-See also `measure_integral_sub_linear_is_o_of_tendsto_ae_of_ge'` for a version that also works,
+See also `measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_ge'` for a version that also works,
e.g., for `l = l' = Filter.atTop`. -/
theorem measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_ge
(hfm : StronglyMeasurableAtFilter f l' μ) (hf : Tendsto f (l' ⊓ μ.ae) (𝓝 c))
@@ -385,7 +385,7 @@ theorem measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_ge
(fun t => (∫ x in u t..v t, f x ∂μ) + (μ (Ioc (v t) (u t))).toReal • c) =o[lt] fun t =>
(μ <| Ioc (v t) (u t)).toReal :=
haveI := FTCFilter.meas_gen l
- measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_ge' hfm hf (FTCFilter.finite_at_inner l) hu
+ measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_ge' hfm hf (FTCFilter.finiteAt_inner l) hu
hv huv
#align interval_integral.measure_integral_sub_linear_is_o_of_tendsto_ae_of_ge intervalIntegral.measure_integral_sub_linear_isLittleO_of_tendsto_ae_of_ge
@@ -420,14 +420,14 @@ theorem measure_integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae
(measure_integral_sub_linear_isLittleO_of_tendsto_ae hmeas_b hb_lim hub hvb)).congr'
_ EventuallyEq.rfl
have A : ∀ᶠ t in lt, IntervalIntegrable f μ (ua t) (va t) :=
- ha_lim.eventually_intervalIntegrable_ae hmeas_a (FTCFilter.finite_at_inner la) hua hva
+ ha_lim.eventually_intervalIntegrable_ae hmeas_a (FTCFilter.finiteAt_inner la) hua hva
have A' : ∀ᶠ t in lt, IntervalIntegrable f μ a (ua t) :=
- ha_lim.eventually_intervalIntegrable_ae hmeas_a (FTCFilter.finite_at_inner la)
+ ha_lim.eventually_intervalIntegrable_ae hmeas_a (FTCFilter.finiteAt_inner la)
(tendsto_const_pure.mono_right FTCFilter.pure_le) hua
have B : ∀ᶠ t in lt, IntervalIntegrable f μ (ub t) (vb t) :=
- hb_lim.eventually_intervalIntegrable_ae hmeas_b (FTCFilter.finite_at_inner lb) hub hvb
+ hb_lim.eventually_intervalIntegrable_ae hmeas_b (FTCFilter.finiteAt_inner lb) hub hvb
have B' : ∀ᶠ t in lt, IntervalIntegrable f μ b (ub t) :=
- hb_lim.eventually_intervalIntegrable_ae hmeas_b (FTCFilter.finite_at_inner lb)
+ hb_lim.eventually_intervalIntegrable_ae hmeas_b (FTCFilter.finiteAt_inner lb)
(tendsto_const_pure.mono_right FTCFilter.pure_le) hub
filter_upwards [A, A', B, B'] with _ ua_va a_ua ub_vb b_ub
rw [← integral_interval_sub_interval_comm']
@@ -492,9 +492,9 @@ variable {f : ℝ → E} {c ca cb : E} {l l' la la' lb lb' : Filter ℝ} {lt : F
/-!
#### Auxiliary `Asymptotics.IsLittleO` statements
-In this section we prove several lemmas that can be interpreted as strict differentiability of `(u,
-v) ↦ ∫ x in u..v, f x ∂μ` in `u` and/or `v` at a filter. The statements use `Asymptotics.isLittleO`
-because we have no definition of `has_strict_(f)deriv_at_filter` in the library.
+In this section we prove several lemmas that can be interpreted as strict differentiability of
+`(u, v) ↦ ∫ x in u..v, f x ∂μ` in `u` and/or `v` at a filter. The statements use
+`Asymptotics.isLittleO` because we have no definition of `HasStrict(F)DerivAtFilter` in the library.
-/
@@ -571,27 +571,27 @@ open ContinuousLinearMap (fst snd smulRight sub_apply smulRight_apply coe_fst' c
In this section we prove that for a measurable function `f` integrable on `a..b`,
-* `integral_has_strict_fderiv_at_of_tendsto_ae`: the function `(u, v) ↦ ∫ x in u..v, f x` has
+* `integral_hasStrictFDerivAt_of_tendsto_ae`: the function `(u, v) ↦ ∫ x in u..v, f x` has
derivative `(u, v) ↦ v • cb - u • ca` at `(a, b)` in the sense of strict differentiability
provided that `f` tends to `ca` and `cb` almost surely as `x` tendsto to `a` and `b`,
respectively;
-* `integral_has_strict_fderiv_at`: the function `(u, v) ↦ ∫ x in u..v, f x` has
+* `integral_hasStrictFDerivAt`: the function `(u, v) ↦ ∫ x in u..v, f x` has
derivative `(u, v) ↦ v • f b - u • f a` at `(a, b)` in the sense of strict differentiability
provided that `f` is continuous at `a` and `b`;
-* `integral_has_strict_deriv_at_of_tendsto_ae_right`: the function `u ↦ ∫ x in a..u, f x` has
+* `integral_hasStrictDerivAt_of_tendsto_ae_right`: the function `u ↦ ∫ x in a..u, f x` has
derivative `c` at `b` in the sense of strict differentiability provided that `f` tends to `c`
almost surely as `x` tends to `b`;
-* `integral_has_strict_deriv_at_right`: the function `u ↦ ∫ x in a..u, f x` has derivative `f b` at
+* `integral_hasStrictDerivAt_right`: the function `u ↦ ∫ x in a..u, f x` has derivative `f b` at
`b` in the sense of strict differentiability provided that `f` is continuous at `b`;
-* `integral_has_strict_deriv_at_of_tendsto_ae_left`: the function `u ↦ ∫ x in u..b, f x` has
+* `integral_hasStrictDerivAt_of_tendsto_ae_left`: the function `u ↦ ∫ x in u..b, f x` has
derivative `-c` at `a` in the sense of strict differentiability provided that `f` tends to `c`
almost surely as `x` tends to `a`;
-* `integral_has_strict_deriv_at_left`: the function `u ↦ ∫ x in u..b, f x` has derivative `-f a` at
+* `integral_hasStrictDerivAt_left`: the function `u ↦ ∫ x in u..b, f x` has derivative `-f a` at
`a` in the sense of strict differentiability provided that `f` is continuous at `a`.
-/
@@ -632,7 +632,7 @@ theorem integral_hasStrictFDerivAt (hf : IntervalIntegrable f volume a b)
(hb.mono_left inf_le_left)
#align interval_integral.integral_has_strict_fderiv_at intervalIntegral.integral_hasStrictFDerivAt
-/-- **First Fundamental Theorem of Calculus**, strict differentiability in the right endpoint.
+/-- **Fundamental theorem of calculus-1**, strict differentiability in the right endpoint.
If `f : ℝ → E` is integrable on `a..b` and `f x` has a finite limit `c` almost surely at `b`, then
`u ↦ ∫ x in a..u, f x` has derivative `c` at `b` in the sense of strict differentiability. -/
@@ -1123,7 +1123,7 @@ theorem sub_le_integral_of_hasDeriv_right_of_le (hab : a ≤ b) (hcont : Continu
(hφg : ∀ x ∈ Ioo a b, g' x ≤ φ x) : g b - g a ≤ ∫ y in a..b, φ y := by
-- This follows from the version on a closed-open interval (applied to `[t, b)` for `t` close to
-- `a`) and a continuity argument.
- obtain rfl | a_lt_b := hab.eq_or_lt;
+ obtain rfl | a_lt_b := hab.eq_or_lt
· simp
set s := {t | g b - g t ≤ ∫ u in t..b, φ u} ∩ Icc a b
have s_closed : IsClosed s := by
@@ -1260,8 +1260,8 @@ theorem integrableOn_deriv_right_of_nonneg (hcont : ContinuousOn g (Icc a b))
apply (aemeasurable_derivWithin_Ioi g _).congr
refine' (ae_restrict_mem measurableSet_Ioo).mono fun x hx => _
exact (hderiv x hx).derivWithin (uniqueDiffWithinAt_Ioi _)
- suffices H : (∫⁻ x in Ioo a b, ‖g' x‖₊) ≤ ENNReal.ofReal (g b - g a)
- exact ⟨meas_g'.aestronglyMeasurable, H.trans_lt ENNReal.ofReal_lt_top⟩
+ suffices H : (∫⁻ x in Ioo a b, ‖g' x‖₊) ≤ ENNReal.ofReal (g b - g a) from
+ ⟨meas_g'.aestronglyMeasurable, H.trans_lt ENNReal.ofReal_lt_top⟩
by_contra' H
obtain ⟨f, fle, fint, hf⟩ :
∃ f : SimpleFunc ℝ ℝ≥0,
@@ -1343,7 +1343,7 @@ end Parts
-/
-section Smul
+section SMul
/-- Change of variables, general form. If `f` is continuous on `[a, b]` and has
right-derivative `f'` in `(a, b)`, `g` is continuous on `f '' (a, b)` and integrable on
@@ -1449,7 +1449,7 @@ theorem integral_deriv_comp_smul_deriv {f f' : ℝ → ℝ} {g g' : ℝ → E}
(hf'.smul (hg'.comp_continuousOn <| HasDerivAt.continuousOn hf)).intervalIntegrable
#align interval_integral.integral_deriv_comp_smul_deriv intervalIntegral.integral_deriv_comp_smul_deriv
-end Smul
+end SMul
section Mul
@@ -283,7 +283,7 @@ theorem measure_integral_sub_linear_isLittleO_of_tendsto_ae' [IsMeasurablyGenera
refine ((A.trans_le fun t ↦ ?_).sub (B.trans_le fun t ↦ ?_)).congr_left fun t ↦ ?_
· cases le_total (u t) (v t) <;> simp [*]
· cases le_total (u t) (v t) <;> simp [*]
- · simp_rw [intervalIntegral, sub_smul]
+ · simp_rw [intervalIntegral]
abel
#align interval_integral.measure_integral_sub_linear_is_o_of_tendsto_ae' intervalIntegral.measure_integral_sub_linear_isLittleO_of_tendsto_ae'
@@ -431,7 +431,7 @@ theorem measure_integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae
(tendsto_const_pure.mono_right FTCFilter.pure_le) hub
filter_upwards [A, A', B, B'] with _ ua_va a_ua ub_vb b_ub
rw [← integral_interval_sub_interval_comm']
- · dsimp only; abel
+ · abel
exacts [ub_vb, ua_va, b_ub.symm.trans <| hab.symm.trans a_ua]
#align interval_integral.measure_integral_sub_integral_sub_linear_is_o_of_tendsto_ae intervalIntegral.measure_integral_sub_integral_sub_linear_isLittleO_of_tendsto_ae
@@ -1216,7 +1216,7 @@ theorem integral_eq_sub_of_hasDerivAt_of_tendsto (hab : a < b) {fa fb}
set F : ℝ → E := update (update f a fa) b fb
have Fderiv : ∀ x ∈ Ioo a b, HasDerivAt F (f' x) x := by
refine' fun x hx => (hderiv x hx).congr_of_eventuallyEq _
- filter_upwards [Ioo_mem_nhds hx.1 hx.2] with _ hy; simp only
+ filter_upwards [Ioo_mem_nhds hx.1 hx.2] with _ hy
rw [update_noteq hy.2.ne, update_noteq hy.1.ne']
have hcont : ContinuousOn F (Icc a b) := by
rw [continuousOn_update_iff, continuousOn_update_iff, Icc_diff_right, Ico_diff_left]
Autoimplicits are highly controversial and also defeat the performance-improving work in #6474.
The intent of this PR is to make autoImplicit
opt-in on a per-file basis, by disabling it in the lakefile and enabling it again with set_option autoImplicit true
in the few files that rely on it.
That also keeps this PR small, as opposed to attempting to "fix" files to not need it any more.
I claim that many of the uses of autoImplicit
in these files are accidental; situations such as:
variables
are in scope, but pasting the lemma in the wrong sectionHaving set_option autoImplicit false
as the default prevents these types of mistake being made in the 90% of files where autoImplicit
s are not used at all, and causes them to be caught by CI during review.
I think there were various points during the port where we encouraged porters to delete the universes u v
lines; I think having autoparams for universe variables only would cover a lot of the cases we actually use them, while avoiding any real shortcomings.
A Zulip poll (after combining overlapping votes accordingly) was in favor of this change with 5:5:18
as the no:dontcare:yes
vote ratio.
While this PR was being reviewed, a handful of files gained some more likely-accidental autoImplicits. In these places, set_option autoImplicit true
has been placed locally within a section, rather than at the top of the file.
@@ -141,6 +141,8 @@ instances could be added when needed (in that case, one also needs to add instan
integral, fundamental theorem of calculus, FTC-1, FTC-2, change of variables in integrals
-/
+set_option autoImplicit true
+
noncomputable section
open TopologicalSpace (SecondCountableTopology)
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -149,7 +149,7 @@ open MeasureTheory Set Classical Filter Function
open scoped Classical Topology Filter ENNReal BigOperators Interval NNReal
-variable {ι 𝕜 E F A : Type _} [NormedAddCommGroup E] [CompleteSpace E] [NormedSpace ℝ E]
+variable {ι 𝕜 E F A : Type*} [NormedAddCommGroup E] [CompleteSpace E] [NormedSpace ℝ E]
namespace intervalIntegral
@@ -3,7 +3,7 @@ Copyright (c) 2020 Yury G. Kudryashov. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yury G. Kudryashov, Patrick Massot, Sébastien Gouëzel
-/
-import Mathlib.Analysis.Calculus.FDerivMeasurable
+import Mathlib.Analysis.Calculus.FDeriv.Measurable
import Mathlib.Analysis.Calculus.Deriv.Comp
import Mathlib.Analysis.Calculus.Deriv.Add
import Mathlib.Analysis.Calculus.Deriv.Slope
@@ -1404,7 +1404,7 @@ theorem integral_comp_smul_deriv'' {f f' : ℝ → ℝ} {g : ℝ → E} (hf : Co
exact hg.integrableOn_Icc
#align interval_integral.integral_comp_smul_deriv'' intervalIntegral.integral_comp_smul_deriv''
-/-- Change of variables. If `f` is has continuous derivative `f'` on `[a, b]`,
+/-- Change of variables. If `f` has continuous derivative `f'` on `[a, b]`,
and `g` is continuous on `f '' [a, b]`, then we can substitute `u = f x` to get
`∫ x in a..b, f' x • (g ∘ f) x = ∫ u in f a..f b, g u`.
Compared to `intervalIntegral.integral_comp_smul_deriv` we only require that `g` is continuous on
@@ -1418,7 +1418,7 @@ theorem integral_comp_smul_deriv' {f f' : ℝ → ℝ} {g : ℝ → E}
(fun x hx => (h x <| Ioo_subset_Icc_self hx).hasDerivWithinAt) h' hg
#align interval_integral.integral_comp_smul_deriv' intervalIntegral.integral_comp_smul_deriv'
-/-- Change of variables, most common version. If `f` is has continuous derivative `f'` on `[a, b]`,
+/-- Change of variables, most common version. If `f` has continuous derivative `f'` on `[a, b]`,
and `g` is continuous, then we can substitute `u = f x` to get
`∫ x in a..b, f' x • (g ∘ f) x = ∫ u in f a..f b, g u`.
-/
@@ -1477,7 +1477,7 @@ theorem integral_comp_mul_deriv'' {f f' g : ℝ → ℝ} (hf : ContinuousOn f [[
simpa [mul_comm] using integral_comp_smul_deriv'' hf hff' hf' hg
#align interval_integral.integral_comp_mul_deriv'' intervalIntegral.integral_comp_mul_deriv''
-/-- Change of variables. If `f` is has continuous derivative `f'` on `[a, b]`,
+/-- Change of variables. If `f` has continuous derivative `f'` on `[a, b]`,
and `g` is continuous on `f '' [a, b]`, then we can substitute `u = f x` to get
`∫ x in a..b, (g ∘ f) x * f' x = ∫ u in f a..f b, g u`.
Compared to `intervalIntegral.integral_comp_mul_deriv` we only require that `g` is continuous on
@@ -1489,7 +1489,7 @@ theorem integral_comp_mul_deriv' {f f' g : ℝ → ℝ} (h : ∀ x ∈ uIcc a b,
simpa [mul_comm] using integral_comp_smul_deriv' h h' hg
#align interval_integral.integral_comp_mul_deriv' intervalIntegral.integral_comp_mul_deriv'
-/-- Change of variables, most common version. If `f` is has continuous derivative `f'` on `[a, b]`,
+/-- Change of variables, most common version. If `f` has continuous derivative `f'` on `[a, b]`,
and `g` is continuous, then we can substitute `u = f x` to get
`∫ x in a..b, (g ∘ f) x * f' x = ∫ u in f a..f b, g u`.
-/
@@ -2,11 +2,6 @@
Copyright (c) 2020 Yury G. Kudryashov. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yury G. Kudryashov, Patrick Massot, Sébastien Gouëzel
-
-! This file was ported from Lean 3 source module measure_theory.integral.fund_thm_calculus
-! leanprover-community/mathlib commit 3bce8d800a6f2b8f63fe1e588fd76a9ff4adcebe
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Analysis.Calculus.FDerivMeasurable
import Mathlib.Analysis.Calculus.Deriv.Comp
@@ -17,6 +12,8 @@ import Mathlib.Analysis.NormedSpace.Dual
import Mathlib.MeasureTheory.Integral.IntervalIntegral
import Mathlib.MeasureTheory.Integral.VitaliCaratheodory
+#align_import measure_theory.integral.fund_thm_calculus from "leanprover-community/mathlib"@"3bce8d800a6f2b8f63fe1e588fd76a9ff4adcebe"
+
/-!
# Fundamental Theorem of Calculus
@@ -1159,7 +1159,7 @@ theorem integral_le_sub_of_hasDeriv_right_of_le (hab : a ≤ b) (hcont : Continu
/-- Auxiliary lemma in the proof of `integral_eq_sub_of_hasDeriv_right_of_le`: real version -/
theorem integral_eq_sub_of_hasDeriv_right_of_le_real (hab : a ≤ b)
(hcont : ContinuousOn g (Icc a b)) (hderiv : ∀ x ∈ Ioo a b, HasDerivWithinAt g (g' x) (Ioi x) x)
- (g'int : IntegrableOn g' (Icc a b)) : (∫ y in a..b, g' y) = g b - g a :=
+ (g'int : IntegrableOn g' (Icc a b)) : ∫ y in a..b, g' y = g b - g a :=
le_antisymm (integral_le_sub_of_hasDeriv_right_of_le hab hcont hderiv g'int fun _ _ => le_rfl)
(sub_le_integral_of_hasDeriv_right_of_le hab hcont hderiv g'int fun _ _ => le_rfl)
#align interval_integral.integral_eq_sub_of_has_deriv_right_of_le_real intervalIntegral.integral_eq_sub_of_hasDeriv_right_of_le_real
@@ -1171,7 +1171,7 @@ variable {f f' : ℝ → E}
then `∫ y in a..b, f' y` equals `f b - f a`. -/
theorem integral_eq_sub_of_hasDeriv_right_of_le (hab : a ≤ b) (hcont : ContinuousOn f (Icc a b))
(hderiv : ∀ x ∈ Ioo a b, HasDerivWithinAt f (f' x) (Ioi x) x)
- (f'int : IntervalIntegrable f' volume a b) : (∫ y in a..b, f' y) = f b - f a := by
+ (f'int : IntervalIntegrable f' volume a b) : ∫ y in a..b, f' y = f b - f a := by
refine' (NormedSpace.eq_iff_forall_dual_eq ℝ).2 fun g => _
rw [← g.intervalIntegral_comp_comm f'int, g.map_sub]
exact integral_eq_sub_of_hasDeriv_right_of_le_real hab (g.continuous.comp_continuousOn hcont)
@@ -1184,7 +1184,7 @@ theorem integral_eq_sub_of_hasDeriv_right_of_le (hab : a ≤ b) (hcont : Continu
`∫ y in a..b, f' y` equals `f b - f a`. -/
theorem integral_eq_sub_of_hasDeriv_right (hcont : ContinuousOn f (uIcc a b))
(hderiv : ∀ x ∈ Ioo (min a b) (max a b), HasDerivWithinAt f (f' x) (Ioi x) x)
- (hint : IntervalIntegrable f' volume a b) : (∫ y in a..b, f' y) = f b - f a := by
+ (hint : IntervalIntegrable f' volume a b) : ∫ y in a..b, f' y = f b - f a := by
cases' le_total a b with hab hab
· simp only [uIcc_of_le, min_eq_left, max_eq_right, hab] at hcont hderiv hint
apply integral_eq_sub_of_hasDeriv_right_of_le hab hcont hderiv hint
@@ -1197,7 +1197,7 @@ theorem integral_eq_sub_of_hasDeriv_right (hcont : ContinuousOn f (uIcc a b))
`∫ y in a..b, f' y` equals `f b - f a`. -/
theorem integral_eq_sub_of_hasDerivAt_of_le (hab : a ≤ b) (hcont : ContinuousOn f (Icc a b))
(hderiv : ∀ x ∈ Ioo a b, HasDerivAt f (f' x) x) (hint : IntervalIntegrable f' volume a b) :
- (∫ y in a..b, f' y) = f b - f a :=
+ ∫ y in a..b, f' y = f b - f a :=
integral_eq_sub_of_hasDeriv_right_of_le hab hcont (fun x hx => (hderiv x hx).hasDerivWithinAt)
hint
#align interval_integral.integral_eq_sub_of_has_deriv_at_of_le intervalIntegral.integral_eq_sub_of_hasDerivAt_of_le
@@ -1205,7 +1205,7 @@ theorem integral_eq_sub_of_hasDerivAt_of_le (hab : a ≤ b) (hcont : ContinuousO
/-- Fundamental theorem of calculus-2: If `f : ℝ → E` has a derivative at `f' x` for all `x` in
`[a, b]` and `f'` is integrable on `[a, b]`, then `∫ y in a..b, f' y` equals `f b - f a`. -/
theorem integral_eq_sub_of_hasDerivAt (hderiv : ∀ x ∈ uIcc a b, HasDerivAt f (f' x) x)
- (hint : IntervalIntegrable f' volume a b) : (∫ y in a..b, f' y) = f b - f a :=
+ (hint : IntervalIntegrable f' volume a b) : ∫ y in a..b, f' y = f b - f a :=
integral_eq_sub_of_hasDeriv_right (HasDerivAt.continuousOn hderiv)
(fun _x hx => (hderiv _ (mem_Icc_of_Ioo hx)).hasDerivWithinAt) hint
#align interval_integral.integral_eq_sub_of_has_deriv_at intervalIntegral.integral_eq_sub_of_hasDerivAt
@@ -1213,7 +1213,7 @@ theorem integral_eq_sub_of_hasDerivAt (hderiv : ∀ x ∈ uIcc a b, HasDerivAt f
theorem integral_eq_sub_of_hasDerivAt_of_tendsto (hab : a < b) {fa fb}
(hderiv : ∀ x ∈ Ioo a b, HasDerivAt f (f' x) x) (hint : IntervalIntegrable f' volume a b)
(ha : Tendsto f (𝓝[>] a) (𝓝 fa)) (hb : Tendsto f (𝓝[<] b) (𝓝 fb)) :
- (∫ y in a..b, f' y) = fb - fa := by
+ ∫ y in a..b, f' y = fb - fa := by
set F : ℝ → E := update (update f a fa) b fb
have Fderiv : ∀ x ∈ Ioo a b, HasDerivAt F (f' x) x := by
refine' fun x hx => (hderiv x hx).congr_of_eventuallyEq _
@@ -1233,13 +1233,13 @@ theorem integral_eq_sub_of_hasDerivAt_of_tendsto (hab : a < b) {fa fb}
/-- Fundamental theorem of calculus-2: If `f : ℝ → E` is differentiable at every `x` in `[a, b]` and
its derivative is integrable on `[a, b]`, then `∫ y in a..b, deriv f y` equals `f b - f a`. -/
theorem integral_deriv_eq_sub (hderiv : ∀ x ∈ [[a, b]], DifferentiableAt ℝ f x)
- (hint : IntervalIntegrable (deriv f) volume a b) : (∫ y in a..b, deriv f y) = f b - f a :=
+ (hint : IntervalIntegrable (deriv f) volume a b) : ∫ y in a..b, deriv f y = f b - f a :=
integral_eq_sub_of_hasDerivAt (fun x hx => (hderiv x hx).hasDerivAt) hint
#align interval_integral.integral_deriv_eq_sub intervalIntegral.integral_deriv_eq_sub
theorem integral_deriv_eq_sub' (f) (hderiv : deriv f = f')
(hdiff : ∀ x ∈ uIcc a b, DifferentiableAt ℝ f x) (hcont : ContinuousOn f' (uIcc a b)) :
- (∫ y in a..b, f' y) = f b - f a := by
+ ∫ y in a..b, f' y = f b - f a := by
rw [← hderiv, integral_deriv_eq_sub hdiff]
rw [hderiv]
exact hcont.intervalIntegrable
@@ -1273,7 +1273,7 @@ theorem integrableOn_deriv_right_of_nonneg (hcont : ContinuousOn g (Icc a b))
have intF : IntegrableOn F (Ioo a b) := by
refine' ⟨f.measurable.coe_nnreal_real.aestronglyMeasurable, _⟩
simpa only [HasFiniteIntegral, comp_apply, NNReal.nnnorm_eq] using fint
- have A : (∫⁻ x : ℝ in Ioo a b, f x) = ENNReal.ofReal (∫ x in Ioo a b, F x) :=
+ have A : ∫⁻ x : ℝ in Ioo a b, f x = ENNReal.ofReal (∫ x in Ioo a b, F x) :=
lintegral_coe_eq_integral _ intF
rw [A] at hf
have B : (∫ x : ℝ in Ioo a b, F x) ≤ g b - g a := by
@@ -1319,7 +1319,7 @@ variable [NormedRing A] [NormedAlgebra ℝ A] [CompleteSpace A]
theorem integral_deriv_mul_eq_sub {u v u' v' : ℝ → A} (hu : ∀ x ∈ uIcc a b, HasDerivAt u (u' x) x)
(hv : ∀ x ∈ uIcc a b, HasDerivAt v (v' x) x) (hu' : IntervalIntegrable u' volume a b)
(hv' : IntervalIntegrable v' volume a b) :
- (∫ x in a..b, u' x * v x + u x * v' x) = u b * v b - u a * v a :=
+ ∫ x in a..b, u' x * v x + u x * v' x = u b * v b - u a * v a :=
(integral_eq_sub_of_hasDerivAt fun x hx => (hu x hx).mul (hv x hx)) <|
(hu'.mul_continuousOn (HasDerivAt.continuousOn hv)).add
(hv'.continuousOn_mul (HasDerivAt.continuousOn hu))
@@ -1328,7 +1328,7 @@ theorem integral_deriv_mul_eq_sub {u v u' v' : ℝ → A} (hu : ∀ x ∈ uIcc a
theorem integral_mul_deriv_eq_deriv_mul {u v u' v' : ℝ → A}
(hu : ∀ x ∈ uIcc a b, HasDerivAt u (u' x) x) (hv : ∀ x ∈ uIcc a b, HasDerivAt v (v' x) x)
(hu' : IntervalIntegrable u' volume a b) (hv' : IntervalIntegrable v' volume a b) :
- (∫ x in a..b, u x * v' x) = u b * v b - u a * v a - ∫ x in a..b, u' x * v x := by
+ ∫ x in a..b, u x * v' x = u b * v b - u a * v a - ∫ x in a..b, u' x * v x := by
rw [← integral_deriv_mul_eq_sub hu hv hu' hv', ← integral_sub]
· exact integral_congr fun x _ => by simp only [add_sub_cancel']
· exact
I wrote a script to find lines that contain an odd number of backticks
@@ -133,9 +133,9 @@ atom at one of the endpoints.
### Combining one-sided and two-sided derivatives
There are some `intervalIntegral.FTCFilter` instances where the fact that it is one-sided or
-two-sided depends on the point, namely `(x, 𝓝[Set.Icc a b] x, 𝓝[Set.Icc a b] x)` (resp. `(x,
-𝓝[Set.uIcc a b] x, 𝓝[Set.uIcc a b] x), with `x ∈ Icc a b` (resp. `x ∈ uIcc a b`). This results in a
-two-sided derivatives for `x ∈ Set.Ioo a b` and one-sided derivatives for `x ∈ {a, b}`. Other
+two-sided depends on the point, namely `(x, 𝓝[Set.Icc a b] x, 𝓝[Set.Icc a b] x)` (resp.
+`(x, 𝓝[Set.uIcc a b] x, 𝓝[Set.uIcc a b] x)`, with `x ∈ Icc a b` (resp. `x ∈ uIcc a b`). This results
+in a two-sided derivatives for `x ∈ Set.Ioo a b` and one-sided derivatives for `x ∈ {a, b}`. Other
instances could be added when needed (in that case, one also needs to add instances for
`Filter.IsMeasurablyGenerated` and `Filter.TendstoIxxClass`).
@@ -874,7 +874,7 @@ macro "uniqueDiffWithinAt_Ici_Iic_univ" : tactic =>
/-- Let `f` be a measurable function integrable on `a..b`. Choose `s ∈ {Iic a, Ici a, univ}`
and `t ∈ {Iic b, Ici b, univ}`. Suppose that `f` tends to `ca` and `cb` almost surely at the filters
-`la` and `lb` from the table below. Then `fderivWithin ℝ (λ p, ∫ x in p.1..p.2, f x) (s ×ˢ t)`
+`la` and `lb` from the table below. Then `fderivWithin ℝ (fun p ↦ ∫ x in p.1..p.2, f x) (s ×ˢ t)`
is equal to `(u, v) ↦ u • cb - v • ca`.
| `s` | `la` | `t` | `lb` |
@@ -597,7 +597,7 @@ In this section we prove that for a measurable function `f` integrable on `a..b`
-/
-/-- **Fundamental theorem of calculus-1**, strict diferentiability in both endpoints.
+/-- **Fundamental theorem of calculus-1**, strict differentiability in both endpoints.
If `f : ℝ → E` is integrable on `a..b` and `f x` has finite limits `ca` and `cb` almost surely as
`x` tends to `a` and `b`, respectively, then
The unported dependencies are
algebra.order.module
init.core
linear_algebra.free_module.finite.rank
algebra.order.monoid.cancel.defs
algebra.abs
algebra.group_power.lemmas
init.data.list.basic
linear_algebra.free_module.rank
algebra.order.monoid.cancel.basic
init.data.list.default
topology.subset_properties
init.logic
The following 1 dependencies have changed in mathlib3 since they were ported, which may complicate porting this file