Documentation

Mathlib.Analysis.Asymptotics.Basic

Basic properties of asymptotic relations #

This file establishes conversions, congruence and transitivity properties, behavior under filter operations, and norm simplification lemmas for the asymptotic relations defined in Mathlib.Analysis.Asymptotics.Defs.

Conversions #

theorem Asymptotics.IsBigOWith.isBigO {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {c : ℝ} {f : α → E} {g : α → F} {l : Filter α} (h : IsBigOWith c l f g) :
f =O[l] g
theorem Asymptotics.IsLittleO.isBigOWith {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {f : α → E} {g : α → F} {l : Filter α} (hgf : f =o[l] g) :
IsBigOWith 1 l f g
theorem Asymptotics.IsLittleO.isBigO {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {f : α → E} {g : α → F} {l : Filter α} (hgf : f =o[l] g) :
f =O[l] g
theorem Asymptotics.IsBigO.isBigOWith {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {f : α → E} {g : α → F} {l : Filter α} :
f =O[l] g → ∃ (c : ℝ), IsBigOWith c l f g
theorem Asymptotics.IsBigOWith.weaken {α : Type u_1} {E : Type u_3} {F' : Type u_7} [Norm E] [SeminormedAddCommGroup F'] {c c' : ℝ} {f : α → E} {g' : α → F'} {l : Filter α} (h : IsBigOWith c l f g') (hc : c ≤ c') :
IsBigOWith c' l f g'
theorem Asymptotics.IsBigOWith.exists_pos {α : Type u_1} {E : Type u_3} {F' : Type u_7} [Norm E] [SeminormedAddCommGroup F'] {c : ℝ} {f : α → E} {g' : α → F'} {l : Filter α} (h : IsBigOWith c l f g') :
∃ c' > 0, IsBigOWith c' l f g'
theorem Asymptotics.IsBigO.exists_pos {α : Type u_1} {E : Type u_3} {F' : Type u_7} [Norm E] [SeminormedAddCommGroup F'] {f : α → E} {g' : α → F'} {l : Filter α} (h : f =O[l] g') :
∃ c > 0, IsBigOWith c l f g'
theorem Asymptotics.IsBigOWith.exists_nonneg {α : Type u_1} {E : Type u_3} {F' : Type u_7} [Norm E] [SeminormedAddCommGroup F'] {c : ℝ} {f : α → E} {g' : α → F'} {l : Filter α} (h : IsBigOWith c l f g') :
∃ c' ≥ 0, IsBigOWith c' l f g'
theorem Asymptotics.IsBigO.exists_nonneg {α : Type u_1} {E : Type u_3} {F' : Type u_7} [Norm E] [SeminormedAddCommGroup F'] {f : α → E} {g' : α → F'} {l : Filter α} (h : f =O[l] g') :
∃ c ≥ 0, IsBigOWith c l f g'
theorem Asymptotics.isBigO_iff_eventually_isBigOWith {α : Type u_1} {E : Type u_3} {F' : Type u_7} [Norm E] [SeminormedAddCommGroup F'] {f : α → E} {g' : α → F'} {l : Filter α} :

f = O(g) if and only if IsBigOWith c f g for all sufficiently large c.

theorem Asymptotics.isBigO_iff_eventually {α : Type u_1} {E : Type u_3} {F' : Type u_7} [Norm E] [SeminormedAddCommGroup F'] {f : α → E} {g' : α → F'} {l : Filter α} :
f =O[l] g' ↔ ∀ᶠ (c : ℝ) in Filter.atTop, ∀ᶠ (x : α) in l, ‖f x‖ ≤ c * ‖g' x‖

f = O(g) if and only if ∀ᶠ x in l, ‖f x‖ ≤ c * ‖g x‖ for all sufficiently large c.

theorem Asymptotics.IsBigO.exists_mem_basis {α : Type u_1} {E : Type u_3} {F' : Type u_7} [Norm E] [SeminormedAddCommGroup F'] {f : α → E} {g' : α → F'} {l : Filter α} {ι : Sort u_11} {p : ι → Prop} {s : ι → Set α} (h : f =O[l] g') (hb : l.HasBasis p s) :
∃ c > 0, ∃ (i : ι), p i ∧ ∀ x ∈ s i, ‖f x‖ ≤ c * ‖g' x‖
theorem Asymptotics.isBigOWith_inv {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {c : ℝ} {f : α → E} {g : α → F} {l : Filter α} (hc : 0 < c) :
IsBigOWith c⁻¹ l f g ↔ ∀ᶠ (x : α) in l, c * ‖f x‖ ≤ ‖g x‖
theorem Asymptotics.isLittleO_iff_nat_mul_le_aux {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {f : α → E} {g : α → F} {l : Filter α} (h₀ : (∀ (x : α), 0 ≤ ‖f x‖) ∨ ∀ (x : α), 0 ≤ ‖g x‖) :
f =o[l] g ↔ ∀ (n : ℕ), ∀ᶠ (x : α) in l, ↑n * ‖f x‖ ≤ ‖g x‖
theorem Asymptotics.isLittleO_iff_nat_mul_le {α : Type u_1} {E : Type u_3} {F' : Type u_7} [Norm E] [SeminormedAddCommGroup F'] {f : α → E} {g' : α → F'} {l : Filter α} :
f =o[l] g' ↔ ∀ (n : ℕ), ∀ᶠ (x : α) in l, ↑n * ‖f x‖ ≤ ‖g' x‖
theorem Asymptotics.isLittleO_iff_nat_mul_le' {α : Type u_1} {F : Type u_4} {E' : Type u_6} [Norm F] [SeminormedAddCommGroup E'] {g : α → F} {f' : α → E'} {l : Filter α} :
f' =o[l] g ↔ ∀ (n : ℕ), ∀ᶠ (x : α) in l, ↑n * ‖f' x‖ ≤ ‖g x‖

Subsingleton #

theorem Asymptotics.isLittleO_of_subsingleton {α : Type u_1} {E' : Type u_6} {F' : Type u_7} [SeminormedAddCommGroup E'] [SeminormedAddCommGroup F'] {f' : α → E'} {g' : α → F'} {l : Filter α} [Subsingleton E'] :
f' =o[l] g'
theorem Asymptotics.isBigO_of_subsingleton {α : Type u_1} {E' : Type u_6} {F' : Type u_7} [SeminormedAddCommGroup E'] [SeminormedAddCommGroup F'] {f' : α → E'} {g' : α → F'} {l : Filter α} [Subsingleton E'] :
f' =O[l] g'

Congruence #

theorem Asymptotics.isBigOWith_congr {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {c₁ c₂ : ℝ} {l : Filter α} {f₁ f₂ : α → E} {g₁ g₂ : α → F} (hc : c₁ = c₂) (hf : f₁ =ᶠ[l] f₂) (hg : g₁ =ᶠ[l] g₂) :
IsBigOWith c₁ l f₁ g₁ ↔ IsBigOWith c₂ l f₂ g₂
theorem Asymptotics.IsBigOWith.congr' {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {c₁ c₂ : ℝ} {l : Filter α} {f₁ f₂ : α → E} {g₁ g₂ : α → F} (h : IsBigOWith c₁ l f₁ g₁) (hc : c₁ = c₂) (hf : f₁ =ᶠ[l] f₂) (hg : g₁ =ᶠ[l] g₂) :
IsBigOWith c₂ l f₂ g₂
theorem Asymptotics.IsBigOWith.congr {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {c₁ c₂ : ℝ} {l : Filter α} {f₁ f₂ : α → E} {g₁ g₂ : α → F} (h : IsBigOWith c₁ l f₁ g₁) (hc : c₁ = c₂) (hf : ∀ (x : α), f₁ x = f₂ x) (hg : ∀ (x : α), g₁ x = g₂ x) :
IsBigOWith c₂ l f₂ g₂
theorem Asymptotics.IsBigOWith.congr_left {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {c : ℝ} {g : α → F} {l : Filter α} {f₁ f₂ : α → E} (h : IsBigOWith c l f₁ g) (hf : ∀ (x : α), f₁ x = f₂ x) :
IsBigOWith c l f₂ g
theorem Asymptotics.IsBigOWith.congr_right {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {c : ℝ} {f : α → E} {l : Filter α} {g₁ g₂ : α → F} (h : IsBigOWith c l f g₁) (hg : ∀ (x : α), g₁ x = g₂ x) :
IsBigOWith c l f g₂
theorem Asymptotics.IsBigOWith.congr_const {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {c₁ c₂ : ℝ} {f : α → E} {g : α → F} {l : Filter α} (h : IsBigOWith c₁ l f g) (hc : c₁ = c₂) :
IsBigOWith c₂ l f g
theorem Asymptotics.isBigO_congr {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {l : Filter α} {f₁ f₂ : α → E} {g₁ g₂ : α → F} (hf : f₁ =ᶠ[l] f₂) (hg : g₁ =ᶠ[l] g₂) :
f₁ =O[l] g₁ ↔ f₂ =O[l] g₂
theorem Asymptotics.IsBigO.congr' {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {l : Filter α} {f₁ f₂ : α → E} {g₁ g₂ : α → F} (h : f₁ =O[l] g₁) (hf : f₁ =ᶠ[l] f₂) (hg : g₁ =ᶠ[l] g₂) :
f₂ =O[l] g₂
theorem Asymptotics.IsBigO.congr {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {l : Filter α} {f₁ f₂ : α → E} {g₁ g₂ : α → F} (h : f₁ =O[l] g₁) (hf : ∀ (x : α), f₁ x = f₂ x) (hg : ∀ (x : α), g₁ x = g₂ x) :
f₂ =O[l] g₂
theorem Asymptotics.IsBigO.congr_left {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {g : α → F} {l : Filter α} {f₁ f₂ : α → E} (h : f₁ =O[l] g) (hf : ∀ (x : α), f₁ x = f₂ x) :
f₂ =O[l] g
theorem Asymptotics.IsBigO.congr_right {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {f : α → E} {l : Filter α} {g₁ g₂ : α → F} (h : f =O[l] g₁) (hg : ∀ (x : α), g₁ x = g₂ x) :
f =O[l] g₂
theorem Asymptotics.isLittleO_congr {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {l : Filter α} {f₁ f₂ : α → E} {g₁ g₂ : α → F} (hf : f₁ =ᶠ[l] f₂) (hg : g₁ =ᶠ[l] g₂) :
f₁ =o[l] g₁ ↔ f₂ =o[l] g₂
theorem Asymptotics.IsLittleO.congr' {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {l : Filter α} {f₁ f₂ : α → E} {g₁ g₂ : α → F} (h : f₁ =o[l] g₁) (hf : f₁ =ᶠ[l] f₂) (hg : g₁ =ᶠ[l] g₂) :
f₂ =o[l] g₂
theorem Asymptotics.IsLittleO.congr {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {l : Filter α} {f₁ f₂ : α → E} {g₁ g₂ : α → F} (h : f₁ =o[l] g₁) (hf : ∀ (x : α), f₁ x = f₂ x) (hg : ∀ (x : α), g₁ x = g₂ x) :
f₂ =o[l] g₂
theorem Asymptotics.IsLittleO.congr_left {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {g : α → F} {l : Filter α} {f₁ f₂ : α → E} (h : f₁ =o[l] g) (hf : ∀ (x : α), f₁ x = f₂ x) :
f₂ =o[l] g
theorem Asymptotics.IsLittleO.congr_right {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {f : α → E} {l : Filter α} {g₁ g₂ : α → F} (h : f =o[l] g₁) (hg : ∀ (x : α), g₁ x = g₂ x) :
f =o[l] g₂
theorem Filter.EventuallyEq.trans_isBigO {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {l : Filter α} {f₁ f₂ : α → E} {g : α → F} (hf : f₁ =ᶠ[l] f₂) (h : f₂ =O[l] g) :
f₁ =O[l] g
@[instance_reducible]
instance Asymptotics.transEventuallyEqIsBigO {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {l : Filter α} :
Trans (fun (x1 x2 : α → E) => x1 =ᶠ[l] x2) (fun (x1 : α → E) (x2 : α → F) => x1 =O[l] x2) fun (x1 : α → E) (x2 : α → F) => x1 =O[l] x2
Equations
theorem Filter.EventuallyEq.trans_isLittleO {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {l : Filter α} {f₁ f₂ : α → E} {g : α → F} (hf : f₁ =ᶠ[l] f₂) (h : f₂ =o[l] g) :
f₁ =o[l] g
@[instance_reducible]
instance Asymptotics.transEventuallyEqIsLittleO {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {l : Filter α} :
Trans (fun (x1 x2 : α → E) => x1 =ᶠ[l] x2) (fun (x1 : α → E) (x2 : α → F) => x1 =o[l] x2) fun (x1 : α → E) (x2 : α → F) => x1 =o[l] x2
Equations
theorem Asymptotics.IsBigO.trans_eventuallyEq {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {l : Filter α} {f : α → E} {g₁ g₂ : α → F} (h : f =O[l] g₁) (hg : g₁ =ᶠ[l] g₂) :
f =O[l] g₂
@[instance_reducible]
instance Asymptotics.transIsBigOEventuallyEq {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {l : Filter α} :
Trans (fun (x1 : α → E) (x2 : α → F) => x1 =O[l] x2) (fun (x1 x2 : α → F) => x1 =ᶠ[l] x2) fun (x1 : α → E) (x2 : α → F) => x1 =O[l] x2
Equations
theorem Asymptotics.IsLittleO.trans_eventuallyEq {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {l : Filter α} {f : α → E} {g₁ g₂ : α → F} (h : f =o[l] g₁) (hg : g₁ =ᶠ[l] g₂) :
f =o[l] g₂
@[instance_reducible]
instance Asymptotics.transIsLittleOEventuallyEq {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {l : Filter α} :
Trans (fun (x1 : α → E) (x2 : α → F) => x1 =o[l] x2) (fun (x1 x2 : α → F) => x1 =ᶠ[l] x2) fun (x1 : α → E) (x2 : α → F) => x1 =o[l] x2
Equations

Filter operations and transitivity #

theorem Asymptotics.IsBigOWith.comp_tendsto {α : Type u_1} {β : Type u_2} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {c : ℝ} {f : α → E} {g : α → F} {l : Filter α} (hcfg : IsBigOWith c l f g) {k : β → α} {l' : Filter β} (hk : Filter.Tendsto k l' l) :
IsBigOWith c l' (f ∘ k) (g ∘ k)
theorem Asymptotics.IsBigO.comp_tendsto {α : Type u_1} {β : Type u_2} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {f : α → E} {g : α → F} {l : Filter α} (hfg : f =O[l] g) {k : β → α} {l' : Filter β} (hk : Filter.Tendsto k l' l) :
(f ∘ k) =O[l'] (g ∘ k)
theorem Asymptotics.IsBigO.comp_neg_int {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {f : ℤ → E} {g : ℤ → F} (hf : f =O[Filter.cofinite] g) :
(fun (n : ℤ) => f (-n)) =O[Filter.cofinite] fun (n : ℤ) => g (-n)
theorem Asymptotics.IsLittleO.comp_tendsto {α : Type u_1} {β : Type u_2} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {f : α → E} {g : α → F} {l : Filter α} (hfg : f =o[l] g) {k : β → α} {l' : Filter β} (hk : Filter.Tendsto k l' l) :
(f ∘ k) =o[l'] (g ∘ k)
theorem Asymptotics.IsTheta.comp_tendsto {α : Type u_1} {β : Type u_2} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {f : α → E} {g : α → F} {l : Filter α} (hfg : f =Θ[l] g) {k : β → α} {l' : Filter β} (hk : Filter.Tendsto k l' l) :
(f ∘ k) =Θ[l'] (g ∘ k)
@[simp]
theorem Asymptotics.isBigOWith_map {α : Type u_1} {β : Type u_2} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {c : ℝ} {f : α → E} {g : α → F} {k : β → α} {l : Filter β} :
IsBigOWith c (Filter.map k l) f g ↔ IsBigOWith c l (f ∘ k) (g ∘ k)
@[simp]
theorem Asymptotics.isBigO_map {α : Type u_1} {β : Type u_2} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {f : α → E} {g : α → F} {k : β → α} {l : Filter β} :
f =O[Filter.map k l] g ↔ (f ∘ k) =O[l] (g ∘ k)
@[simp]
theorem Asymptotics.isLittleO_map {α : Type u_1} {β : Type u_2} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {f : α → E} {g : α → F} {k : β → α} {l : Filter β} :
f =o[Filter.map k l] g ↔ (f ∘ k) =o[l] (g ∘ k)
theorem Asymptotics.IsBigOWith.mono {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {c : ℝ} {f : α → E} {g : α → F} {l l' : Filter α} (h : IsBigOWith c l' f g) (hl : l ≤ l') :
IsBigOWith c l f g
theorem Asymptotics.IsBigO.mono {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {f : α → E} {g : α → F} {l l' : Filter α} (h : f =O[l'] g) (hl : l ≤ l') :
f =O[l] g
theorem Asymptotics.IsLittleO.mono {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {f : α → E} {g : α → F} {l l' : Filter α} (h : f =o[l'] g) (hl : l ≤ l') :
f =o[l] g
theorem Asymptotics.IsBigOWith.trans {α : Type u_1} {E : Type u_3} {F : Type u_4} {G : Type u_5} [Norm E] [Norm F] [Norm G] {c c' : ℝ} {f : α → E} {g : α → F} {k : α → G} {l : Filter α} (hfg : IsBigOWith c l f g) (hgk : IsBigOWith c' l g k) (hc : 0 ≤ c) :
IsBigOWith (c * c') l f k
theorem Asymptotics.IsBigO.trans {α : Type u_1} {E : Type u_3} {G : Type u_5} {F' : Type u_7} [Norm E] [Norm G] [SeminormedAddCommGroup F'] {l : Filter α} {f : α → E} {g : α → F'} {k : α → G} (hfg : f =O[l] g) (hgk : g =O[l] k) :
f =O[l] k
@[instance_reducible]
instance Asymptotics.transIsBigOIsBigO {α : Type u_1} {E : Type u_3} {G : Type u_5} {F' : Type u_7} [Norm E] [Norm G] [SeminormedAddCommGroup F'] {l : Filter α} :
Trans (fun (x1 : α → E) (x2 : α → F') => x1 =O[l] x2) (fun (x1 : α → F') (x2 : α → G) => x1 =O[l] x2) fun (x1 : α → E) (x2 : α → G) => x1 =O[l] x2
Equations
theorem Asymptotics.IsLittleO.trans_isBigOWith {α : Type u_1} {E : Type u_3} {F : Type u_4} {G : Type u_5} [Norm E] [Norm F] [Norm G] {c : ℝ} {f : α → E} {g : α → F} {k : α → G} {l : Filter α} (hfg : f =o[l] g) (hgk : IsBigOWith c l g k) (hc : 0 < c) :
f =o[l] k
theorem Asymptotics.IsLittleO.trans_isBigO {α : Type u_1} {E : Type u_3} {F : Type u_4} {G' : Type u_8} [Norm E] [Norm F] [SeminormedAddCommGroup G'] {l : Filter α} {f : α → E} {g : α → F} {k : α → G'} (hfg : f =o[l] g) (hgk : g =O[l] k) :
f =o[l] k
@[instance_reducible]
instance Asymptotics.transIsLittleOIsBigO {α : Type u_1} {E : Type u_3} {F : Type u_4} {G' : Type u_8} [Norm E] [Norm F] [SeminormedAddCommGroup G'] {l : Filter α} :
Trans (fun (x1 : α → E) (x2 : α → F) => x1 =o[l] x2) (fun (x1 : α → F) (x2 : α → G') => x1 =O[l] x2) fun (x1 : α → E) (x2 : α → G') => x1 =o[l] x2
Equations
theorem Asymptotics.IsBigOWith.trans_isLittleO {α : Type u_1} {E : Type u_3} {F : Type u_4} {G : Type u_5} [Norm E] [Norm F] [Norm G] {c : ℝ} {f : α → E} {g : α → F} {k : α → G} {l : Filter α} (hfg : IsBigOWith c l f g) (hgk : g =o[l] k) (hc : 0 < c) :
f =o[l] k
theorem Asymptotics.IsBigO.trans_isLittleO {α : Type u_1} {E : Type u_3} {G : Type u_5} {F' : Type u_7} [Norm E] [Norm G] [SeminormedAddCommGroup F'] {l : Filter α} {f : α → E} {g : α → F'} {k : α → G} (hfg : f =O[l] g) (hgk : g =o[l] k) :
f =o[l] k
@[instance_reducible]
instance Asymptotics.transIsBigOIsLittleO {α : Type u_1} {E : Type u_3} {G : Type u_5} {F' : Type u_7} [Norm E] [Norm G] [SeminormedAddCommGroup F'] {l : Filter α} :
Trans (fun (x1 : α → E) (x2 : α → F') => x1 =O[l] x2) (fun (x1 : α → F') (x2 : α → G) => x1 =o[l] x2) fun (x1 : α → E) (x2 : α → G) => x1 =o[l] x2
Equations
theorem Asymptotics.IsLittleO.trans {α : Type u_1} {E : Type u_3} {F : Type u_4} {G : Type u_5} [Norm E] [Norm F] [Norm G] {l : Filter α} {f : α → E} {g : α → F} {k : α → G} (hfg : f =o[l] g) (hgk : g =o[l] k) :
f =o[l] k
@[instance_reducible]
instance Asymptotics.transIsLittleOIsLittleO {α : Type u_1} {E : Type u_3} {F : Type u_4} {G : Type u_5} [Norm E] [Norm F] [Norm G] {l : Filter α} :
Trans (fun (x1 : α → E) (x2 : α → F) => x1 =o[l] x2) (fun (x1 : α → F) (x2 : α → G) => x1 =o[l] x2) fun (x1 : α → E) (x2 : α → G) => x1 =o[l] x2
Equations
theorem Filter.Eventually.trans_isBigO {α : Type u_1} {E : Type u_3} {G : Type u_5} {F' : Type u_7} [Norm E] [Norm G] [SeminormedAddCommGroup F'] {l : Filter α} {f : α → E} {g : α → F'} {k : α → G} (hfg : ∀ᶠ (x : α) in l, ‖f x‖ ≤ ‖g x‖) (hgk : g =O[l] k) :
f =O[l] k
theorem Filter.Eventually.isBigO {α : Type u_1} {E : Type u_3} [Norm E] {f : α → E} {g : α → ℝ} {l : Filter α} (hfg : ∀ᶠ (x : α) in l, ‖f x‖ ≤ g x) :
f =O[l] g

See also Asymptotics.IsBigO.of_norm_eventuallyLE, which is the same lemma stated using Filter.EventuallyLE instead of Filter.Eventually.

theorem Asymptotics.isBigOWith_of_le' {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {c : ℝ} {f : α → E} {g : α → F} (l : Filter α) (hfg : ∀ (x : α), ‖f x‖ ≤ c * ‖g x‖) :
IsBigOWith c l f g
theorem Asymptotics.isBigOWith_of_le {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {f : α → E} {g : α → F} (l : Filter α) (hfg : ∀ (x : α), ‖f x‖ ≤ ‖g x‖) :
IsBigOWith 1 l f g
theorem Asymptotics.isBigO_of_le' {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {c : ℝ} {f : α → E} {g : α → F} (l : Filter α) (hfg : ∀ (x : α), ‖f x‖ ≤ c * ‖g x‖) :
f =O[l] g
theorem Asymptotics.isBigO_of_le {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {f : α → E} {g : α → F} (l : Filter α) (hfg : ∀ (x : α), ‖f x‖ ≤ ‖g x‖) :
f =O[l] g
theorem Asymptotics.isBigOWith_refl {α : Type u_1} {E : Type u_3} [Norm E] (f : α → E) (l : Filter α) :
IsBigOWith 1 l f f
theorem Asymptotics.isBigO_refl {α : Type u_1} {E : Type u_3} [Norm E] (f : α → E) (l : Filter α) :
f =O[l] f
theorem Filter.EventuallyEq.isBigO {α : Type u_1} {E : Type u_3} [Norm E] {l : Filter α} {f₁ f₂ : α → E} (hf : f₁ =ᶠ[l] f₂) :
f₁ =O[l] f₂
theorem Asymptotics.IsBigOWith.trans_le {α : Type u_1} {E : Type u_3} {F : Type u_4} {G : Type u_5} [Norm E] [Norm F] [Norm G] {c : ℝ} {f : α → E} {g : α → F} {k : α → G} {l : Filter α} (hfg : IsBigOWith c l f g) (hgk : ∀ (x : α), ‖g x‖ ≤ ‖k x‖) (hc : 0 ≤ c) :
IsBigOWith c l f k
theorem Asymptotics.IsBigO.trans_le {α : Type u_1} {E : Type u_3} {G : Type u_5} {F' : Type u_7} [Norm E] [Norm G] [SeminormedAddCommGroup F'] {f : α → E} {k : α → G} {g' : α → F'} {l : Filter α} (hfg : f =O[l] g') (hgk : ∀ (x : α), ‖g' x‖ ≤ ‖k x‖) :
f =O[l] k
theorem Asymptotics.IsLittleO.trans_le {α : Type u_1} {E : Type u_3} {F : Type u_4} {G : Type u_5} [Norm E] [Norm F] [Norm G] {f : α → E} {g : α → F} {k : α → G} {l : Filter α} (hfg : f =o[l] g) (hgk : ∀ (x : α), ‖g x‖ ≤ ‖k x‖) :
f =o[l] k
theorem Asymptotics.isLittleO_irrefl' {α : Type u_1} {E' : Type u_6} [SeminormedAddCommGroup E'] {f' : α → E'} {l : Filter α} (h : ∃ᶠ (x : α) in l, ‖f' x‖ ≠ 0) :
¬f' =o[l] f'
theorem Asymptotics.isLittleO_irrefl {α : Type u_1} {E'' : Type u_9} [NormedAddCommGroup E''] {f'' : α → E''} {l : Filter α} (h : ∃ᶠ (x : α) in l, f'' x ≠ 0) :
¬f'' =o[l] f''
theorem Asymptotics.IsBigO.not_isLittleO {α : Type u_1} {F' : Type u_7} {E'' : Type u_9} [SeminormedAddCommGroup F'] [NormedAddCommGroup E''] {g' : α → F'} {f'' : α → E''} {l : Filter α} (h : f'' =O[l] g') (hf : ∃ᶠ (x : α) in l, f'' x ≠ 0) :
¬g' =o[l] f''
theorem Asymptotics.IsLittleO.not_isBigO {α : Type u_1} {F' : Type u_7} {E'' : Type u_9} [SeminormedAddCommGroup F'] [NormedAddCommGroup E''] {g' : α → F'} {f'' : α → E''} {l : Filter α} (h : f'' =o[l] g') (hf : ∃ᶠ (x : α) in l, f'' x ≠ 0) :
¬g' =O[l] f''
@[simp]
theorem Asymptotics.isBigOWith_bot {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] (c : ℝ) (f : α → E) (g : α → F) :
@[simp]
theorem Asymptotics.isBigO_bot {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] (f : α → E) (g : α → F) :
@[simp]
theorem Asymptotics.isLittleO_bot {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] (f : α → E) (g : α → F) :
@[simp]
theorem Asymptotics.isBigOWith_pure {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {c : ℝ} {f : α → E} {g : α → F} {x : α} :
IsBigOWith c (pure x) f g ↔ ‖f x‖ ≤ c * ‖g x‖
theorem Asymptotics.IsBigOWith.sup {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {c : ℝ} {f : α → E} {g : α → F} {l l' : Filter α} (h : IsBigOWith c l f g) (h' : IsBigOWith c l' f g) :
IsBigOWith c (l ⊔ l') f g
theorem Asymptotics.IsBigOWith.sup' {α : Type u_1} {E : Type u_3} {F' : Type u_7} [Norm E] [SeminormedAddCommGroup F'] {c c' : ℝ} {f : α → E} {g' : α → F'} {l l' : Filter α} (h : IsBigOWith c l f g') (h' : IsBigOWith c' l' f g') :
IsBigOWith (max c c') (l ⊔ l') f g'
theorem Asymptotics.IsBigO.sup {α : Type u_1} {E : Type u_3} {F' : Type u_7} [Norm E] [SeminormedAddCommGroup F'] {f : α → E} {g' : α → F'} {l l' : Filter α} (h : f =O[l] g') (h' : f =O[l'] g') :
f =O[l ⊔ l'] g'
theorem Asymptotics.IsLittleO.sup {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {f : α → E} {g : α → F} {l l' : Filter α} (h : f =o[l] g) (h' : f =o[l'] g) :
f =o[l ⊔ l'] g
@[simp]
theorem Asymptotics.isBigO_sup {α : Type u_1} {E : Type u_3} {F' : Type u_7} [Norm E] [SeminormedAddCommGroup F'] {f : α → E} {g' : α → F'} {l l' : Filter α} :
f =O[l ⊔ l'] g' ↔ f =O[l] g' ∧ f =O[l'] g'
@[simp]
theorem Asymptotics.isLittleO_sup {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {f : α → E} {g : α → F} {l l' : Filter α} :
f =o[l ⊔ l'] g ↔ f =o[l] g ∧ f =o[l'] g
theorem Asymptotics.isBigOWith_insert {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] [TopologicalSpace α] {x : α} {s : Set α} {C : ℝ} {g : α → E} {g' : α → F} (h : ‖g x‖ ≤ C * ‖g' x‖) :
IsBigOWith C (nhdsWithin x (insert x s)) g g' ↔ IsBigOWith C (nhdsWithin x s) g g'
theorem Asymptotics.IsBigOWith.insert {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] [TopologicalSpace α] {x : α} {s : Set α} {C : ℝ} {g : α → E} {g' : α → F} (h1 : IsBigOWith C (nhdsWithin x s) g g') (h2 : ‖g x‖ ≤ C * ‖g' x‖) :
IsBigOWith C (nhdsWithin x (insert x s)) g g'
theorem Asymptotics.isLittleO_insert {α : Type u_1} {E' : Type u_6} {F' : Type u_7} [SeminormedAddCommGroup E'] [SeminormedAddCommGroup F'] [TopologicalSpace α] {x : α} {s : Set α} {g : α → E'} {g' : α → F'} (h : g x = 0) :
g =o[nhdsWithin x (insert x s)] g' ↔ g =o[nhdsWithin x s] g'
theorem Asymptotics.IsLittleO.insert {α : Type u_1} {E' : Type u_6} {F' : Type u_7} [SeminormedAddCommGroup E'] [SeminormedAddCommGroup F'] [TopologicalSpace α] {x : α} {s : Set α} {g : α → E'} {g' : α → F'} (h1 : g =o[nhdsWithin x s] g') (h2 : g x = 0) :
g =o[nhdsWithin x (insert x s)] g'

Simplification: norm #

@[simp]
theorem Asymptotics.isBigOWith_norm_right {α : Type u_1} {E : Type u_3} {F' : Type u_7} [Norm E] [SeminormedAddCommGroup F'] {c : ℝ} {f : α → E} {g' : α → F'} {l : Filter α} :
(IsBigOWith c l f fun (x : α) => ‖g' x‖) ↔ IsBigOWith c l f g'
theorem Asymptotics.IsBigOWith.norm_right {α : Type u_1} {E : Type u_3} {F' : Type u_7} [Norm E] [SeminormedAddCommGroup F'] {c : ℝ} {f : α → E} {g' : α → F'} {l : Filter α} :
IsBigOWith c l f g' → IsBigOWith c l f fun (x : α) => ‖g' x‖

Alias of the reverse direction of Asymptotics.isBigOWith_norm_right.

theorem Asymptotics.IsBigOWith.of_norm_right {α : Type u_1} {E : Type u_3} {F' : Type u_7} [Norm E] [SeminormedAddCommGroup F'] {c : ℝ} {f : α → E} {g' : α → F'} {l : Filter α} :
(IsBigOWith c l f fun (x : α) => ‖g' x‖) → IsBigOWith c l f g'

Alias of the forward direction of Asymptotics.isBigOWith_norm_right.

@[simp]
theorem Asymptotics.isBigO_norm_right {α : Type u_1} {E : Type u_3} {F' : Type u_7} [Norm E] [SeminormedAddCommGroup F'] {f : α → E} {g' : α → F'} {l : Filter α} :
(f =O[l] fun (x : α) => ‖g' x‖) ↔ f =O[l] g'
theorem Asymptotics.IsBigO.of_norm_right {α : Type u_1} {E : Type u_3} {F' : Type u_7} [Norm E] [SeminormedAddCommGroup F'] {f : α → E} {g' : α → F'} {l : Filter α} :
(f =O[l] fun (x : α) => ‖g' x‖) → f =O[l] g'

Alias of the forward direction of Asymptotics.isBigO_norm_right.

theorem Asymptotics.IsBigO.norm_right {α : Type u_1} {E : Type u_3} {F' : Type u_7} [Norm E] [SeminormedAddCommGroup F'] {f : α → E} {g' : α → F'} {l : Filter α} :
f =O[l] g' → f =O[l] fun (x : α) => ‖g' x‖

Alias of the reverse direction of Asymptotics.isBigO_norm_right.

@[simp]
theorem Asymptotics.isLittleO_norm_right {α : Type u_1} {E : Type u_3} {F' : Type u_7} [Norm E] [SeminormedAddCommGroup F'] {f : α → E} {g' : α → F'} {l : Filter α} :
(f =o[l] fun (x : α) => ‖g' x‖) ↔ f =o[l] g'
theorem Asymptotics.IsLittleO.norm_right {α : Type u_1} {E : Type u_3} {F' : Type u_7} [Norm E] [SeminormedAddCommGroup F'] {f : α → E} {g' : α → F'} {l : Filter α} :
f =o[l] g' → f =o[l] fun (x : α) => ‖g' x‖

Alias of the reverse direction of Asymptotics.isLittleO_norm_right.

theorem Asymptotics.IsLittleO.of_norm_right {α : Type u_1} {E : Type u_3} {F' : Type u_7} [Norm E] [SeminormedAddCommGroup F'] {f : α → E} {g' : α → F'} {l : Filter α} :
(f =o[l] fun (x : α) => ‖g' x‖) → f =o[l] g'

Alias of the forward direction of Asymptotics.isLittleO_norm_right.

@[simp]
theorem Asymptotics.isBigOWith_norm_left {α : Type u_1} {F : Type u_4} {E' : Type u_6} [Norm F] [SeminormedAddCommGroup E'] {c : ℝ} {g : α → F} {f' : α → E'} {l : Filter α} :
IsBigOWith c l (fun (x : α) => ‖f' x‖) g ↔ IsBigOWith c l f' g
theorem Asymptotics.IsBigOWith.norm_left {α : Type u_1} {F : Type u_4} {E' : Type u_6} [Norm F] [SeminormedAddCommGroup E'] {c : ℝ} {g : α → F} {f' : α → E'} {l : Filter α} :
IsBigOWith c l f' g → IsBigOWith c l (fun (x : α) => ‖f' x‖) g

Alias of the reverse direction of Asymptotics.isBigOWith_norm_left.

theorem Asymptotics.IsBigOWith.of_norm_left {α : Type u_1} {F : Type u_4} {E' : Type u_6} [Norm F] [SeminormedAddCommGroup E'] {c : ℝ} {g : α → F} {f' : α → E'} {l : Filter α} :
IsBigOWith c l (fun (x : α) => ‖f' x‖) g → IsBigOWith c l f' g

Alias of the forward direction of Asymptotics.isBigOWith_norm_left.

@[simp]
theorem Asymptotics.isBigO_norm_left {α : Type u_1} {F : Type u_4} {E' : Type u_6} [Norm F] [SeminormedAddCommGroup E'] {g : α → F} {f' : α → E'} {l : Filter α} :
(fun (x : α) => ‖f' x‖) =O[l] g ↔ f' =O[l] g
theorem Asymptotics.IsBigO.of_norm_left {α : Type u_1} {F : Type u_4} {E' : Type u_6} [Norm F] [SeminormedAddCommGroup E'] {g : α → F} {f' : α → E'} {l : Filter α} :
(fun (x : α) => ‖f' x‖) =O[l] g → f' =O[l] g

Alias of the forward direction of Asymptotics.isBigO_norm_left.

theorem Asymptotics.IsBigO.norm_left {α : Type u_1} {F : Type u_4} {E' : Type u_6} [Norm F] [SeminormedAddCommGroup E'] {g : α → F} {f' : α → E'} {l : Filter α} :
f' =O[l] g → (fun (x : α) => ‖f' x‖) =O[l] g

Alias of the reverse direction of Asymptotics.isBigO_norm_left.

@[simp]
theorem Asymptotics.isLittleO_norm_left {α : Type u_1} {F : Type u_4} {E' : Type u_6} [Norm F] [SeminormedAddCommGroup E'] {g : α → F} {f' : α → E'} {l : Filter α} :
(fun (x : α) => ‖f' x‖) =o[l] g ↔ f' =o[l] g
theorem Asymptotics.IsLittleO.norm_left {α : Type u_1} {F : Type u_4} {E' : Type u_6} [Norm F] [SeminormedAddCommGroup E'] {g : α → F} {f' : α → E'} {l : Filter α} :
f' =o[l] g → (fun (x : α) => ‖f' x‖) =o[l] g

Alias of the reverse direction of Asymptotics.isLittleO_norm_left.

theorem Asymptotics.IsLittleO.of_norm_left {α : Type u_1} {F : Type u_4} {E' : Type u_6} [Norm F] [SeminormedAddCommGroup E'] {g : α → F} {f' : α → E'} {l : Filter α} :
(fun (x : α) => ‖f' x‖) =o[l] g → f' =o[l] g

Alias of the forward direction of Asymptotics.isLittleO_norm_left.

theorem Asymptotics.isBigOWith_norm_norm {α : Type u_1} {E' : Type u_6} {F' : Type u_7} [SeminormedAddCommGroup E'] [SeminormedAddCommGroup F'] {c : ℝ} {f' : α → E'} {g' : α → F'} {l : Filter α} :
(IsBigOWith c l (fun (x : α) => ‖f' x‖) fun (x : α) => ‖g' x‖) ↔ IsBigOWith c l f' g'
theorem Asymptotics.IsBigOWith.norm_norm {α : Type u_1} {E' : Type u_6} {F' : Type u_7} [SeminormedAddCommGroup E'] [SeminormedAddCommGroup F'] {c : ℝ} {f' : α → E'} {g' : α → F'} {l : Filter α} :
IsBigOWith c l f' g' → IsBigOWith c l (fun (x : α) => ‖f' x‖) fun (x : α) => ‖g' x‖

Alias of the reverse direction of Asymptotics.isBigOWith_norm_norm.

theorem Asymptotics.IsBigOWith.of_norm_norm {α : Type u_1} {E' : Type u_6} {F' : Type u_7} [SeminormedAddCommGroup E'] [SeminormedAddCommGroup F'] {c : ℝ} {f' : α → E'} {g' : α → F'} {l : Filter α} :
(IsBigOWith c l (fun (x : α) => ‖f' x‖) fun (x : α) => ‖g' x‖) → IsBigOWith c l f' g'

Alias of the forward direction of Asymptotics.isBigOWith_norm_norm.

theorem Asymptotics.isBigO_norm_norm {α : Type u_1} {E' : Type u_6} {F' : Type u_7} [SeminormedAddCommGroup E'] [SeminormedAddCommGroup F'] {f' : α → E'} {g' : α → F'} {l : Filter α} :
((fun (x : α) => ‖f' x‖) =O[l] fun (x : α) => ‖g' x‖) ↔ f' =O[l] g'
theorem Asymptotics.IsBigO.norm_norm {α : Type u_1} {E' : Type u_6} {F' : Type u_7} [SeminormedAddCommGroup E'] [SeminormedAddCommGroup F'] {f' : α → E'} {g' : α → F'} {l : Filter α} :
f' =O[l] g' → (fun (x : α) => ‖f' x‖) =O[l] fun (x : α) => ‖g' x‖

Alias of the reverse direction of Asymptotics.isBigO_norm_norm.

theorem Asymptotics.IsBigO.of_norm_norm {α : Type u_1} {E' : Type u_6} {F' : Type u_7} [SeminormedAddCommGroup E'] [SeminormedAddCommGroup F'] {f' : α → E'} {g' : α → F'} {l : Filter α} :
((fun (x : α) => ‖f' x‖) =O[l] fun (x : α) => ‖g' x‖) → f' =O[l] g'

Alias of the forward direction of Asymptotics.isBigO_norm_norm.

theorem Asymptotics.isLittleO_norm_norm {α : Type u_1} {E' : Type u_6} {F' : Type u_7} [SeminormedAddCommGroup E'] [SeminormedAddCommGroup F'] {f' : α → E'} {g' : α → F'} {l : Filter α} :
((fun (x : α) => ‖f' x‖) =o[l] fun (x : α) => ‖g' x‖) ↔ f' =o[l] g'
theorem Asymptotics.IsLittleO.of_norm_norm {α : Type u_1} {E' : Type u_6} {F' : Type u_7} [SeminormedAddCommGroup E'] [SeminormedAddCommGroup F'] {f' : α → E'} {g' : α → F'} {l : Filter α} :
((fun (x : α) => ‖f' x‖) =o[l] fun (x : α) => ‖g' x‖) → f' =o[l] g'

Alias of the forward direction of Asymptotics.isLittleO_norm_norm.

theorem Asymptotics.IsLittleO.norm_norm {α : Type u_1} {E' : Type u_6} {F' : Type u_7} [SeminormedAddCommGroup E'] [SeminormedAddCommGroup F'] {f' : α → E'} {g' : α → F'} {l : Filter α} :
f' =o[l] g' → (fun (x : α) => ‖f' x‖) =o[l] fun (x : α) => ‖g' x‖

Alias of the reverse direction of Asymptotics.isLittleO_norm_norm.