Documentation

Mathlib.Analysis.Asymptotics.ExpGrowth

Exponential growth #

This file defines the exponential growth of a sequence u : ℕ → ℝ≥0∞. This notion comes in two versions, using a liminf and a limsup respectively.

Main definitions #

Tags #

asymptotics, exponential

Definition #

noncomputable def ExpGrowth.expGrowthInf (u : ENNReal) :

Lower exponential growth of a sequence of extended nonnegative real numbers.

Equations
Instances For
    noncomputable def ExpGrowth.expGrowthSup (u : ENNReal) :

    Upper exponential growth of a sequence of extended nonnegative real numbers.

    Equations
    Instances For

      Basic properties #

      theorem ExpGrowth.expGrowthInf_le_iff {u : ENNReal} {a : EReal} :
      expGrowthInf u a b > a, ∃ᶠ (n : ) in Filter.atTop, u n (b * n).exp
      theorem ExpGrowth.le_expGrowthInf_iff {u : ENNReal} {a : EReal} :
      a expGrowthInf u b < a, ∀ᶠ (n : ) in Filter.atTop, (b * n).exp u n
      theorem ExpGrowth.expGrowthSup_le_iff {u : ENNReal} {a : EReal} :
      expGrowthSup u a b > a, ∀ᶠ (n : ) in Filter.atTop, u n (b * n).exp
      theorem ExpGrowth.le_expGrowthSup_iff {u : ENNReal} {a : EReal} :
      a expGrowthSup u b < a, ∃ᶠ (n : ) in Filter.atTop, (b * n).exp u n
      theorem ExpGrowth.frequently_le_exp {u : ENNReal} {a : EReal} (h : expGrowthInf u < a) :
      ∃ᶠ (n : ) in Filter.atTop, u n (a * n).exp
      theorem ExpGrowth.eventually_exp_le {u : ENNReal} {a : EReal} (h : a < expGrowthInf u) :
      ∀ᶠ (n : ) in Filter.atTop, (a * n).exp u n
      theorem ExpGrowth.eventually_le_exp {u : ENNReal} {a : EReal} (h : expGrowthSup u < a) :
      ∀ᶠ (n : ) in Filter.atTop, u n (a * n).exp
      theorem ExpGrowth.frequently_exp_le {u : ENNReal} {a : EReal} (h : a < expGrowthSup u) :
      ∃ᶠ (n : ) in Filter.atTop, (a * n).exp u n

      Special cases #

      theorem ExpGrowth.expGrowthInf_const {b : ENNReal} (h : b 0) (h' : b ) :
      (expGrowthInf fun (x : ) => b) = 0
      theorem ExpGrowth.expGrowthSup_const {b : ENNReal} (h : b 0) (h' : b ) :
      (expGrowthSup fun (x : ) => b) = 0
      theorem ExpGrowth.expGrowthInf_pow {b : ENNReal} :
      (expGrowthInf fun (n : ) => b ^ n) = b.log
      theorem ExpGrowth.expGrowthSup_pow {b : ENNReal} :
      (expGrowthSup fun (n : ) => b ^ n) = b.log
      theorem ExpGrowth.expGrowthInf_exp {a : EReal} :
      (expGrowthInf fun (n : ) => (a * n).exp) = a
      theorem ExpGrowth.expGrowthSup_exp {a : EReal} :
      (expGrowthSup fun (n : ) => (a * n).exp) = a

      Multiplication and inversion #

      See expGrowthInf_mul_le' for a version with swapped argument u and v.

      See expGrowthInf_mul_le for a version with swapped argument u and v.

      See le_expGrowthSup_mul' for a version with swapped argument u and v.

      See le_expGrowthSup_mul for a version with swapped argument u and v.

      Comparison #

      Infimum and supremum #

      Lower exponential growth as an InfTopHom.

      Equations
      Instances For
        theorem ExpGrowth.expGrowthInf_biInf {α : Type u_1} (u : αENNReal) {s : Set α} (hs : s.Finite) :
        expGrowthInf (⨅ xs, u x) = xs, expGrowthInf (u x)
        theorem ExpGrowth.expGrowthInf_iInf {ι : Type u_1} [Finite ι] (u : ιENNReal) :
        expGrowthInf (⨅ (i : ι), u i) = ⨅ (i : ι), expGrowthInf (u i)

        Upper exponential growth as a SupBotHom.

        Equations
        Instances For
          theorem ExpGrowth.expGrowthSup_biSup {α : Type u_1} (u : αENNReal) {s : Set α} (hs : s.Finite) :
          expGrowthSup (⨆ xs, u x) = xs, expGrowthSup (u x)
          theorem ExpGrowth.expGrowthSup_iSup {ι : Type u_1} [Finite ι] (u : ιENNReal) :
          expGrowthSup (⨆ (i : ι), u i) = ⨆ (i : ι), expGrowthSup (u i)

          Addition #

          theorem ExpGrowth.expGrowthSup_sum {α : Type u_1} (u : αENNReal) (s : Finset α) :
          expGrowthSup (∑ xs, u x) = xs, expGrowthSup (u x)

          Composition #

          theorem ExpGrowth.Real.eventually_atTop_exists_int_between {a b : } (h : a < b) :
          ∀ᶠ (x : ) in Filter.atTop, ∃ (n : ), a * x n n b * x
          theorem ExpGrowth.Real.eventually_atTop_exists_nat_between {a b : } (h : a < b) (hb : 0 b) :
          ∀ᶠ (x : ) in Filter.atTop, ∃ (n : ), a * x n n b * x
          theorem ExpGrowth.EReal.eventually_atTop_exists_nat_between {a b : EReal} (h : a < b) (hb : 0 b) :
          ∀ᶠ (n : ) in Filter.atTop, ∃ (m : ), a * n m m b * n
          theorem ExpGrowth.linGrowthInf_nonneg (v : ) :
          0 Filter.liminf (fun (n : ) => (v n) / n) Filter.atTop
          theorem ExpGrowth.expGrowthSup_comp_le {u : ENNReal} {v : } (hu : ∃ᶠ (n : ) in Filter.atTop, 1 u n) (hv₀ : Filter.limsup (fun (n : ) => (v n) / n) Filter.atTop 0) (hv₁ : Filter.limsup (fun (n : ) => (v n) / n) Filter.atTop ) (hv₂ : Filter.Tendsto v Filter.atTop Filter.atTop) :
          expGrowthSup (u v) Filter.limsup (fun (n : ) => (v n) / n) Filter.atTop * expGrowthSup u

          Monotone sequences #

          theorem Monotone.expGrowthInf_comp_le {u : ENNReal} {v : } (h : Monotone u) (hv₀ : Filter.limsup (fun (n : ) => (v n) / n) Filter.atTop 0) (hv₁ : Filter.limsup (fun (n : ) => (v n) / n) Filter.atTop ) :
          theorem Monotone.le_expGrowthSup_comp {u : ENNReal} {v : } (h : Monotone u) (hv : Filter.liminf (fun (n : ) => (v n) / n) Filter.atTop 0) :
          theorem Monotone.expGrowthInf_comp {u : ENNReal} {v : } {a : EReal} (h : Monotone u) (hv : Filter.Tendsto (fun (n : ) => (v n) / n) Filter.atTop (nhds a)) (ha : a 0) (ha' : a ) :
          theorem Monotone.expGrowthSup_comp {u : ENNReal} {v : } {a : EReal} (hu : Monotone u) (hv : Filter.Tendsto (fun (n : ) => (v n) / n) Filter.atTop (nhds a)) (ha : a 0) (ha' : a ) :
          theorem Monotone.expGrowthInf_comp_mul {u : ENNReal} {m : } (hu : Monotone u) (hm : m 0) :
          (ExpGrowth.expGrowthInf fun (n : ) => u (m * n)) = m * ExpGrowth.expGrowthInf u
          theorem Monotone.expGrowthSup_comp_mul {u : ENNReal} {m : } (hu : Monotone u) (hm : m 0) :
          (ExpGrowth.expGrowthSup fun (n : ) => u (m * n)) = m * ExpGrowth.expGrowthSup u