measure_theory.integral.exp_decay
⟷
Mathlib.MeasureTheory.Integral.ExpDecay
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)
(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)
(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
@@ -49,7 +49,7 @@ theorem integrable_of_isBigO_exp_neg {f : ℝ → ℝ} {a b : ℝ} (h0 : 0 < b)
(h1 : ContinuousOn f (Ici a)) (h2 : f =O[atTop] fun x => exp (-b * x)) :
IntegrableOn f (Ioi a) := by
cases' h2.is_O_with with c h3
- rw [Asymptotics.isBigOWith_iff, eventually_at_top] at h3
+ rw [Asymptotics.isBigOWith_iff, eventually_at_top] at h3
cases' h3 with r bdr
let v := max a r
-- show integrable on `(a, v]` from continuity
@@ -72,7 +72,7 @@ theorem integrable_of_isBigO_exp_neg {f : ℝ → ℝ} {a b : ℝ} (h0 : 0 < b)
refine' (ae_restrict_iff' measurableSet_Ioi).mpr _
refine' ae_of_all _ fun x h1x => _
rw [norm_mul, norm_eq_abs]
- rw [mem_Ioi] at h1x
+ rw [mem_Ioi] at h1x
specialize bdr x ((le_max_right a r).trans h1x.le)
exact bdr.trans (mul_le_mul_of_nonneg_right (le_abs_self c) (norm_nonneg _))
#align integrable_of_is_O_exp_neg integrable_of_isBigO_exp_neg
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -55,7 +55,7 @@ theorem integrable_of_isBigO_exp_neg {f : ℝ → ℝ} {a b : ℝ} (h0 : 0 < b)
-- show integrable on `(a, v]` from continuity
have int_left : integrable_on f (Ioc a v) :=
by
- rw [← intervalIntegrable_iff_integrable_Ioc_of_le (le_max_left a r)]
+ rw [← intervalIntegrable_iff_integrableOn_Ioc_of_le (le_max_left a r)]
have u : Icc a v ⊆ Ici a := Icc_subset_Ici_self
exact (h1.mono u).intervalIntegrable_of_Icc (le_max_left a r)
suffices integrable_on f (Ioi v)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -33,7 +33,7 @@ open scoped Topology
theorem exp_neg_integrableOn_Ioi (a : ℝ) {b : ℝ} (h : 0 < b) :
IntegrableOn (fun x : ℝ => exp (-b * x)) (Ioi a) :=
by
- have : tendsto (fun x => -exp (-b * x) / b) at_top (𝓝 (-0 / b)) :=
+ have : tendsto (fun x => -NormedSpace.exp (-b * x) / b) at_top (𝓝 (-0 / b)) :=
by
refine' tendsto.div_const (tendsto.neg _) _
exact tendsto_exp_at_bot.comp (tendsto_id.neg_const_mul_at_top (Right.neg_neg_iff.2 h))
@@ -65,7 +65,8 @@ theorem integrable_of_isBigO_exp_neg {f : ℝ → ℝ} {a b : ℝ} (h0 : 0 < b)
-- now show integrable on `(v, ∞)` from asymptotic
constructor
· exact (h1.mono <| Ioi_subset_Ici <| le_max_left a r).AEStronglyMeasurable measurableSet_Ioi
- have : has_finite_integral (fun x : ℝ => c * exp (-b * x)) (volume.restrict (Ioi v)) :=
+ have :
+ has_finite_integral (fun x : ℝ => c * NormedSpace.exp (-b * x)) (volume.restrict (Ioi v)) :=
(exp_neg_integrableOn_Ioi v h0).HasFiniteIntegral.const_mul c
apply this.mono
refine' (ae_restrict_iff' measurableSet_Ioi).mpr _
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,8 +3,8 @@ Copyright (c) 2022 David Loeffler. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: David Loeffler
-/
-import Mathbin.MeasureTheory.Integral.IntervalIntegral
-import Mathbin.MeasureTheory.Integral.IntegralEqImproper
+import MeasureTheory.Integral.IntervalIntegral
+import MeasureTheory.Integral.IntegralEqImproper
#align_import measure_theory.integral.exp_decay from "leanprover-community/mathlib"@"fd4551cfe4b7484b81c2c9ba3405edae27659676"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,15 +2,12 @@
Copyright (c) 2022 David Loeffler. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: David Loeffler
-
-! This file was ported from Lean 3 source module measure_theory.integral.exp_decay
-! leanprover-community/mathlib commit fd4551cfe4b7484b81c2c9ba3405edae27659676
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.MeasureTheory.Integral.IntervalIntegral
import Mathbin.MeasureTheory.Integral.IntegralEqImproper
+#align_import measure_theory.integral.exp_decay from "leanprover-community/mathlib"@"fd4551cfe4b7484b81c2c9ba3405edae27659676"
+
/-!
# Integrals with exponential decay at ∞
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -31,6 +31,7 @@ open Real intervalIntegral MeasureTheory Set Filter
open scoped Topology
+#print exp_neg_integrableOn_Ioi /-
/-- `exp (-b * x)` is integrable on `(a, ∞)`. -/
theorem exp_neg_integrableOn_Ioi (a : ℝ) {b : ℝ} (h : 0 < b) :
IntegrableOn (fun x : ℝ => exp (-b * x)) (Ioi a) :=
@@ -42,7 +43,9 @@ theorem exp_neg_integrableOn_Ioi (a : ℝ) {b : ℝ} (h : 0 < b) :
refine' integrable_on_Ioi_deriv_of_nonneg' (fun x hx => _) (fun x hx => (exp_pos _).le) this
simpa [h.ne'] using ((hasDerivAt_id x).const_mul b).neg.exp.neg.div_const b
#align exp_neg_integrable_on_Ioi exp_neg_integrableOn_Ioi
+-/
+#print integrable_of_isBigO_exp_neg /-
/-- If `f` is continuous on `[a, ∞)`, and is `O (exp (-b * x))` at `∞` for some `b > 0`, then
`f` is integrable on `(a, ∞)`. -/
theorem integrable_of_isBigO_exp_neg {f : ℝ → ℝ} {a b : ℝ} (h0 : 0 < b)
@@ -75,4 +78,5 @@ theorem integrable_of_isBigO_exp_neg {f : ℝ → ℝ} {a b : ℝ} (h0 : 0 < b)
specialize bdr x ((le_max_right a r).trans h1x.le)
exact bdr.trans (mul_le_mul_of_nonneg_right (le_abs_self c) (norm_nonneg _))
#align integrable_of_is_O_exp_neg integrable_of_isBigO_exp_neg
+-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/c471da714c044131b90c133701e51b877c246677
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: David Loeffler
! This file was ported from Lean 3 source module measure_theory.integral.exp_decay
-! leanprover-community/mathlib commit d4817f8867c368d6c5571f7379b3888aaec1d95a
+! leanprover-community/mathlib commit fd4551cfe4b7484b81c2c9ba3405edae27659676
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -14,6 +14,9 @@ import Mathbin.MeasureTheory.Integral.IntegralEqImproper
/-!
# Integrals with exponential decay at ∞
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
As easy special cases of general theorems in the library, we prove the following test
for integrability:
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -46,7 +46,7 @@ theorem integrable_of_isBigO_exp_neg {f : ℝ → ℝ} {a b : ℝ} (h0 : 0 < b)
(h1 : ContinuousOn f (Ici a)) (h2 : f =O[atTop] fun x => exp (-b * x)) :
IntegrableOn f (Ioi a) := by
cases' h2.is_O_with with c h3
- rw [Asymptotics.isBigOWith_iff, eventually_at_top] at h3
+ rw [Asymptotics.isBigOWith_iff, eventually_at_top] at h3
cases' h3 with r bdr
let v := max a r
-- show integrable on `(a, v]` from continuity
@@ -68,7 +68,7 @@ theorem integrable_of_isBigO_exp_neg {f : ℝ → ℝ} {a b : ℝ} (h0 : 0 < b)
refine' (ae_restrict_iff' measurableSet_Ioi).mpr _
refine' ae_of_all _ fun x h1x => _
rw [norm_mul, norm_eq_abs]
- rw [mem_Ioi] at h1x
+ rw [mem_Ioi] at h1x
specialize bdr x ((le_max_right a r).trans h1x.le)
exact bdr.trans (mul_le_mul_of_nonneg_right (le_abs_self c) (norm_nonneg _))
#align integrable_of_is_O_exp_neg integrable_of_isBigO_exp_neg
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -26,7 +26,7 @@ noncomputable section
open Real intervalIntegral MeasureTheory Set Filter
-open Topology
+open scoped Topology
/-- `exp (-b * x)` is integrable on `(a, ∞)`. -/
theorem exp_neg_integrableOn_Ioi (a : ℝ) {b : ℝ} (h : 0 < b) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/75e7fca56381d056096ce5d05e938f63a6567828
@@ -61,7 +61,7 @@ theorem integrable_of_isBigO_exp_neg {f : ℝ → ℝ} {a b : ℝ} (h0 : 0 < b)
simpa only [Ioc_union_Ioi_eq_Ioi, le_max_iff, le_refl, true_or_iff] using t
-- now show integrable on `(v, ∞)` from asymptotic
constructor
- · exact (h1.mono <| Ioi_subset_Ici <| le_max_left a r).AeStronglyMeasurable measurableSet_Ioi
+ · exact (h1.mono <| Ioi_subset_Ici <| le_max_left a r).AEStronglyMeasurable measurableSet_Ioi
have : has_finite_integral (fun x : ℝ => c * exp (-b * x)) (volume.restrict (Ioi v)) :=
(exp_neg_integrableOn_Ioi v h0).HasFiniteIntegral.const_mul c
apply this.mono
mathlib commit https://github.com/leanprover-community/mathlib/commit/92c69b77c5a7dc0f7eeddb552508633305157caa
@@ -29,7 +29,7 @@ open Real intervalIntegral MeasureTheory Set Filter
open Topology
/-- `exp (-b * x)` is integrable on `(a, ∞)`. -/
-theorem expNegIntegrableOnIoi (a : ℝ) {b : ℝ} (h : 0 < b) :
+theorem exp_neg_integrableOn_Ioi (a : ℝ) {b : ℝ} (h : 0 < b) :
IntegrableOn (fun x : ℝ => exp (-b * x)) (Ioi a) :=
by
have : tendsto (fun x => -exp (-b * x) / b) at_top (𝓝 (-0 / b)) :=
@@ -38,13 +38,13 @@ theorem expNegIntegrableOnIoi (a : ℝ) {b : ℝ} (h : 0 < b) :
exact tendsto_exp_at_bot.comp (tendsto_id.neg_const_mul_at_top (Right.neg_neg_iff.2 h))
refine' integrable_on_Ioi_deriv_of_nonneg' (fun x hx => _) (fun x hx => (exp_pos _).le) this
simpa [h.ne'] using ((hasDerivAt_id x).const_mul b).neg.exp.neg.div_const b
-#align exp_neg_integrable_on_Ioi expNegIntegrableOnIoi
+#align exp_neg_integrable_on_Ioi exp_neg_integrableOn_Ioi
/-- If `f` is continuous on `[a, ∞)`, and is `O (exp (-b * x))` at `∞` for some `b > 0`, then
`f` is integrable on `(a, ∞)`. -/
-theorem integrableOfIsOExpNeg {f : ℝ → ℝ} {a b : ℝ} (h0 : 0 < b) (h1 : ContinuousOn f (Ici a))
- (h2 : f =O[atTop] fun x => exp (-b * x)) : IntegrableOn f (Ioi a) :=
- by
+theorem integrable_of_isBigO_exp_neg {f : ℝ → ℝ} {a b : ℝ} (h0 : 0 < b)
+ (h1 : ContinuousOn f (Ici a)) (h2 : f =O[atTop] fun x => exp (-b * x)) :
+ IntegrableOn f (Ioi a) := by
cases' h2.is_O_with with c h3
rw [Asymptotics.isBigOWith_iff, eventually_at_top] at h3
cases' h3 with r bdr
@@ -54,7 +54,7 @@ theorem integrableOfIsOExpNeg {f : ℝ → ℝ} {a b : ℝ} (h0 : 0 < b) (h1 : C
by
rw [← intervalIntegrable_iff_integrable_Ioc_of_le (le_max_left a r)]
have u : Icc a v ⊆ Ici a := Icc_subset_Ici_self
- exact (h1.mono u).intervalIntegrableOfIcc (le_max_left a r)
+ exact (h1.mono u).intervalIntegrable_of_Icc (le_max_left a r)
suffices integrable_on f (Ioi v)
by
have t : integrable_on f (Ioc a v ∪ Ioi v) := integrable_on_union.mpr ⟨int_left, this⟩
@@ -63,7 +63,7 @@ theorem integrableOfIsOExpNeg {f : ℝ → ℝ} {a b : ℝ} (h0 : 0 < b) (h1 : C
constructor
· exact (h1.mono <| Ioi_subset_Ici <| le_max_left a r).AeStronglyMeasurable measurableSet_Ioi
have : has_finite_integral (fun x : ℝ => c * exp (-b * x)) (volume.restrict (Ioi v)) :=
- (expNegIntegrableOnIoi v h0).HasFiniteIntegral.const_mul c
+ (exp_neg_integrableOn_Ioi v h0).HasFiniteIntegral.const_mul c
apply this.mono
refine' (ae_restrict_iff' measurableSet_Ioi).mpr _
refine' ae_of_all _ fun x h1x => _
@@ -71,5 +71,5 @@ theorem integrableOfIsOExpNeg {f : ℝ → ℝ} {a b : ℝ} (h0 : 0 < b) (h1 : C
rw [mem_Ioi] at h1x
specialize bdr x ((le_max_right a r).trans h1x.le)
exact bdr.trans (mul_le_mul_of_nonneg_right (le_abs_self c) (norm_nonneg _))
-#align integrable_of_is_O_exp_neg integrableOfIsOExpNeg
+#align integrable_of_is_O_exp_neg integrable_of_isBigO_exp_neg
mathlib commit https://github.com/leanprover-community/mathlib/commit/7e281deff072232a3c5b3e90034bd65dde396312
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: David Loeffler
! This file was ported from Lean 3 source module measure_theory.integral.exp_decay
-! leanprover-community/mathlib commit 70fd9563a21e7b963887c9360bd29b2393e6225a
+! leanprover-community/mathlib commit d4817f8867c368d6c5571f7379b3888aaec1d95a
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -26,37 +26,18 @@ noncomputable section
open Real intervalIntegral MeasureTheory Set Filter
-/-- Integral of `exp (-b * x)` over `(a, X)` is bounded as `X → ∞`. -/
-theorem integral_exp_neg_le {b : ℝ} (a X : ℝ) (h2 : 0 < b) :
- (∫ x in a..X, exp (-b * x)) ≤ exp (-b * a) / b :=
- by
- rw [integral_deriv_eq_sub' fun x => -exp (-b * x) / b]
- -- goal 1/4: F(X) - F(a) is bounded
- · simp only [tsub_le_iff_right]
- rw [neg_div b (exp (-b * a)), neg_div b (exp (-b * X)), add_neg_self, neg_le, neg_zero]
- exact (div_pos (exp_pos _) h2).le
- -- goal 2/4: the derivative of F is exp(-b x)
- · ext1
- simp [h2.ne']
- -- goal 3/4: F is differentiable
- · intro x hx
- simp [h2.ne']
- -- goal 4/4: exp(-b x) is continuous
- · apply Continuous.continuousOn
- continuity
-#align integral_exp_neg_le integral_exp_neg_le
+open Topology
/-- `exp (-b * x)` is integrable on `(a, ∞)`. -/
theorem expNegIntegrableOnIoi (a : ℝ) {b : ℝ} (h : 0 < b) :
IntegrableOn (fun x : ℝ => exp (-b * x)) (Ioi a) :=
by
- have : ∀ X : ℝ, integrable_on (fun x : ℝ => exp (-b * x)) (Ioc a X) :=
+ have : tendsto (fun x => -exp (-b * x) / b) at_top (𝓝 (-0 / b)) :=
by
- intro X
- exact (continuous_const.mul continuous_id).exp.integrableOnIoc
- apply integrable_on_Ioi_of_interval_integral_norm_bounded (exp (-b * a) / b) a this tendsto_id
- simp only [eventually_at_top, norm_of_nonneg (exp_pos _).le]
- exact ⟨a, fun b2 hb2 => integral_exp_neg_le a b2 h⟩
+ refine' tendsto.div_const (tendsto.neg _) _
+ exact tendsto_exp_at_bot.comp (tendsto_id.neg_const_mul_at_top (Right.neg_neg_iff.2 h))
+ refine' integrable_on_Ioi_deriv_of_nonneg' (fun x hx => _) (fun x hx => (exp_pos _).le) this
+ simpa [h.ne'] using ((hasDerivAt_id x).const_mul b).neg.exp.neg.div_const b
#align exp_neg_integrable_on_Ioi expNegIntegrableOnIoi
/-- If `f` is continuous on `[a, ∞)`, and is `O (exp (-b * x))` at `∞` for some `b > 0`, then
mathlib commit https://github.com/leanprover-community/mathlib/commit/039ef89bef6e58b32b62898dd48e9d1a4312bb65
@@ -65,7 +65,7 @@ theorem integrableOfIsOExpNeg {f : ℝ → ℝ} {a b : ℝ} (h0 : 0 < b) (h1 : C
(h2 : f =O[atTop] fun x => exp (-b * x)) : IntegrableOn f (Ioi a) :=
by
cases' h2.is_O_with with c h3
- rw [Asymptotics.isOWith_iff, eventually_at_top] at h3
+ rw [Asymptotics.isBigOWith_iff, eventually_at_top] at h3
cases' h3 with r bdr
let v := max a r
-- show integrable on `(a, v]` from continuity
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
Shortcuts for linearly ordered domains and/or continuous functions. As an example, I golf the existing integrable_of_isBigO_exp_neg
.
Another example usage: https://github.com/AlexKontorovich/PrimeNumberTheoremAnd/blob/1909a40253607bd2df18a738fc504fe81b132974/PrimeNumberTheoremAnd/PerronFormula.lean#L414-L436
Co-authored-by: L Lllvvuu <git@llllvvuu.dev>
@@ -3,6 +3,7 @@ Copyright (c) 2022 David Loeffler. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: David Loeffler
-/
+import Mathlib.MeasureTheory.Integral.Asymptotics
import Mathlib.MeasureTheory.Integral.IntervalIntegral
import Mathlib.MeasureTheory.Integral.IntegralEqImproper
@@ -38,31 +39,10 @@ theorem exp_neg_integrableOn_Ioi (a : ℝ) {b : ℝ} (h : 0 < b) :
/-- If `f` is continuous on `[a, ∞)`, and is `O (exp (-b * x))` at `∞` for some `b > 0`, then
`f` is integrable on `(a, ∞)`. -/
theorem integrable_of_isBigO_exp_neg {f : ℝ → ℝ} {a b : ℝ} (h0 : 0 < b)
- (h1 : ContinuousOn f (Ici a)) (h2 : f =O[atTop] fun x => exp (-b * x)) :
- IntegrableOn f (Ioi a) := by
- cases' h2.isBigOWith with c h3
- rw [Asymptotics.isBigOWith_iff, eventually_atTop] at h3
- cases' h3 with r bdr
- let v := max a r
- -- show integrable on `(a, v]` from continuity
- have int_left : IntegrableOn f (Ioc a v) := by
- rw [← intervalIntegrable_iff_integrableOn_Ioc_of_le (le_max_left a r)]
- have u : Icc a v ⊆ Ici a := Icc_subset_Ici_self
- exact (h1.mono u).intervalIntegrable_of_Icc (le_max_left a r)
- suffices IntegrableOn f (Ioi v) by
- have t := integrableOn_union.mpr ⟨int_left, this⟩
- simpa only [v, Ioc_union_Ioi_eq_Ioi, le_max_iff, le_refl, true_or_iff] using t
- -- now show integrable on `(v, ∞)` from asymptotic
- constructor
- · exact (h1.mono <| Ioi_subset_Ici <| le_max_left a r).aestronglyMeasurable measurableSet_Ioi
- have : HasFiniteIntegral (fun x : ℝ => c * exp (-b * x)) (volume.restrict (Ioi v)) :=
- (exp_neg_integrableOn_Ioi v h0).hasFiniteIntegral.const_mul c
- apply this.mono
- refine' (ae_restrict_iff' measurableSet_Ioi).mpr _
- filter_upwards with x h1x
- rw [norm_mul, norm_eq_abs]
- rw [mem_Ioi] at h1x
- specialize bdr x ((le_max_right a r).trans h1x.le)
- exact bdr.trans (mul_le_mul_of_nonneg_right (le_abs_self c) (norm_nonneg _))
+ (hf : ContinuousOn f (Ici a)) (ho : f =O[atTop] fun x => exp (-b * x)) :
+ IntegrableOn f (Ioi a) :=
+ integrableOn_Ici_iff_integrableOn_Ioi.mp <|
+ (hf.locallyIntegrableOn measurableSet_Ici).integrableOn_of_isBigO_atTop
+ ho ⟨Ioi b, Ioi_mem_atTop b, exp_neg_integrableOn_Ioi b h0⟩
set_option linter.uppercaseLean3 false in
#align integrable_of_is_O_exp_neg integrable_of_isBigO_exp_neg
filter_upwards
(#11208)
This is presumably not exhaustive, but covers about a hundred instances.
Style opinions (e.g., why a particular change is great/not a good idea) are very welcome; I'm still forming my own.
@@ -59,7 +59,7 @@ theorem integrable_of_isBigO_exp_neg {f : ℝ → ℝ} {a b : ℝ} (h0 : 0 < b)
(exp_neg_integrableOn_Ioi v h0).hasFiniteIntegral.const_mul c
apply this.mono
refine' (ae_restrict_iff' measurableSet_Ioi).mpr _
- refine' ae_of_all _ fun x h1x => _
+ filter_upwards with x h1x
rw [norm_mul, norm_eq_abs]
rw [mem_Ioi] at h1x
specialize bdr x ((le_max_right a r).trans h1x.le)
@@ -51,7 +51,7 @@ theorem integrable_of_isBigO_exp_neg {f : ℝ → ℝ} {a b : ℝ} (h0 : 0 < b)
exact (h1.mono u).intervalIntegrable_of_Icc (le_max_left a r)
suffices IntegrableOn f (Ioi v) by
have t := integrableOn_union.mpr ⟨int_left, this⟩
- simpa only [Ioc_union_Ioi_eq_Ioi, le_max_iff, le_refl, true_or_iff] using t
+ simpa only [v, Ioc_union_Ioi_eq_Ioi, le_max_iff, le_refl, true_or_iff] using t
-- now show integrable on `(v, ∞)` from asymptotic
constructor
· exact (h1.mono <| Ioi_subset_Ici <| le_max_left a r).aestronglyMeasurable measurableSet_Ioi
[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.
@@ -46,7 +46,7 @@ theorem integrable_of_isBigO_exp_neg {f : ℝ → ℝ} {a b : ℝ} (h0 : 0 < b)
let v := max a r
-- show integrable on `(a, v]` from continuity
have int_left : IntegrableOn f (Ioc a v) := by
- rw [← intervalIntegrable_iff_integrable_Ioc_of_le (le_max_left a r)]
+ rw [← intervalIntegrable_iff_integrableOn_Ioc_of_le (le_max_left a r)]
have u : Icc a v ⊆ Ici a := Icc_subset_Ici_self
exact (h1.mono u).intervalIntegrable_of_Icc (le_max_left a r)
suffices IntegrableOn f (Ioi v) by
@@ -2,15 +2,12 @@
Copyright (c) 2022 David Loeffler. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: David Loeffler
-
-! This file was ported from Lean 3 source module measure_theory.integral.exp_decay
-! leanprover-community/mathlib commit d4817f8867c368d6c5571f7379b3888aaec1d95a
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.MeasureTheory.Integral.IntervalIntegral
import Mathlib.MeasureTheory.Integral.IntegralEqImproper
+#align_import measure_theory.integral.exp_decay from "leanprover-community/mathlib"@"d4817f8867c368d6c5571f7379b3888aaec1d95a"
+
/-!
# Integrals with exponential decay at ∞
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