Documentation

Mathlib.Analysis.Asymptotics.Lemmas

Further basic lemmas about asymptotics #

@[simp]
theorem Asymptotics.isBigOWith_principal {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {c : ā„} {f : α → E} {g : α → F} {s : Set α} :
IsBigOWith c (Filter.principal s) f g ↔ āˆ€ x ∈ s, ‖f x‖ ≤ c * ‖g x‖
theorem Asymptotics.isBigO_principal {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {f : α → E} {g : α → F} {s : Set α} :
f =O[Filter.principal s] g ↔ ∃ (c : ā„), āˆ€ x ∈ s, ‖f x‖ ≤ c * ‖g x‖
@[simp]
theorem Asymptotics.isLittleO_principal {α : Type u_1} {F' : Type u_7} {E'' : Type u_9} [SeminormedAddCommGroup F'] [NormedAddCommGroup E''] {g' : α → F'} {f'' : α → E''} {s : Set α} :
f'' =o[Filter.principal s] g' ↔ āˆ€ x ∈ s, f'' x = 0
@[simp]
theorem Asymptotics.isBigOWith_top {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {c : ā„} {f : α → E} {g : α → F} :
IsBigOWith c ⊤ f g ↔ āˆ€ (x : α), ‖f x‖ ≤ c * ‖g x‖
@[simp]
theorem Asymptotics.isBigO_top {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {f : α → E} {g : α → F} :
f =O[⊤] g ↔ ∃ (C : ā„), āˆ€ (x : α), ‖f x‖ ≤ C * ‖g x‖
@[simp]
theorem Asymptotics.isLittleO_top {α : Type u_1} {F' : Type u_7} {E'' : Type u_9} [SeminormedAddCommGroup F'] [NormedAddCommGroup E''] {g' : α → F'} {f'' : α → E''} :
f'' =o[⊤] g' ↔ āˆ€ (x : α), f'' x = 0
theorem Asymptotics.isBigOWith_const_one {α : Type u_1} {E : Type u_3} (F : Type u_4) [Norm E] [Norm F] [One F] [NormOneClass F] (c : E) (l : Filter α) :
IsBigOWith ‖c‖ l (fun (_x : α) => c) fun (_x : α) => 1
theorem Asymptotics.isBigO_const_one {α : Type u_1} {E : Type u_3} (F : Type u_4) [Norm E] [Norm F] [One F] [NormOneClass F] (c : E) (l : Filter α) :
(fun (_x : α) => c) =O[l] fun (_x : α) => 1
theorem Asymptotics.isLittleO_const_iff_isLittleO_one {α : Type u_1} {E : Type u_3} (F : Type u_4) {F'' : Type u_10} [Norm E] [Norm F] [NormedAddCommGroup F''] {f : α → E} {l : Filter α} [One F] [NormOneClass F] {c : F''} (hc : c ≠ 0) :
(f =o[l] fun (_x : α) => c) ↔ f =o[l] fun (_x : α) => 1
@[simp]
theorem Asymptotics.isLittleO_one_iff {α : Type u_1} (F : Type u_4) {E''' : Type u_12} [Norm F] [SeminormedAddGroup E'''] {l : Filter α} [One F] [NormOneClass F] {f : α → E'''} :
(f =o[l] fun (_x : α) => 1) ↔ Filter.Tendsto f l (nhds 0)
@[simp]
theorem Asymptotics.isBigO_one_iff {α : Type u_1} {E : Type u_3} (F : Type u_4) [Norm E] [Norm F] {f : α → E} {l : Filter α} [One F] [NormOneClass F] :
(f =O[l] fun (_x : α) => 1) ↔ Filter.IsBoundedUnder (fun (x1 x2 : ā„) => x1 ≤ x2) l fun (x : α) => ‖f x‖
theorem Filter.IsBoundedUnder.isBigO_one {α : Type u_1} {E : Type u_3} (F : Type u_4) [Norm E] [Norm F] {f : α → E} {l : Filter α} [One F] [NormOneClass F] :
(IsBoundedUnder (fun (x1 x2 : ā„) => x1 ≤ x2) l fun (x : α) => ‖f x‖) → f =O[l] fun (_x : α) => 1

Alias of the reverse direction of Asymptotics.isBigO_one_iff.

@[simp]
theorem Asymptotics.isLittleO_one_left_iff {α : Type u_1} {E : Type u_3} (F : Type u_4) [Norm E] [Norm F] {f : α → E} {l : Filter α} [One F] [NormOneClass F] :
(fun (_x : α) => 1) =o[l] f ↔ Filter.Tendsto (fun (x : α) => ‖f x‖) l Filter.atTop
theorem Filter.Tendsto.isBigO_one {α : Type u_1} (F : Type u_4) {E' : Type u_6} [Norm F] [SeminormedAddCommGroup E'] {f' : α → E'} {l : Filter α} [One F] [NormOneClass F] {c : E'} (h : Tendsto f' l (nhds c)) :
f' =O[l] fun (_x : α) => 1
theorem Asymptotics.IsBigO.trans_tendsto_nhds {α : Type u_1} {E : Type u_3} (F : Type u_4) {F' : Type u_7} [Norm E] [Norm F] [SeminormedAddCommGroup F'] {f : α → E} {g' : α → F'} {l : Filter α} [One F] [NormOneClass F] (hfg : f =O[l] g') {y : F'} (hg : Filter.Tendsto g' l (nhds y)) :
f =O[l] fun (_x : α) => 1
theorem Asymptotics.isBigO_one_nhds_ne_iff {α : Type u_1} {E : Type u_3} (F : Type u_4) [Norm E] [Norm F] {f : α → E} [One F] [NormOneClass F] [TopologicalSpace α] {a : α} :
(f =O[nhdsWithin a {a}ᶜ] fun (x : α) => 1) ↔ f =O[nhds a] fun (x : α) => 1

The condition f = O[š“[≠] a] 1 is equivalent to f = O[š“ a] 1.

theorem Asymptotics.isLittleO_const_iff {α : Type u_1} {E'' : Type u_9} {F'' : Type u_10} [NormedAddCommGroup E''] [NormedAddCommGroup F''] {f'' : α → E''} {l : Filter α} {c : F''} (hc : c ≠ 0) :
(f'' =o[l] fun (_x : α) => c) ↔ Filter.Tendsto f'' l (nhds 0)
theorem Asymptotics.isLittleO_id_const {E'' : Type u_9} {F'' : Type u_10} [NormedAddCommGroup E''] [NormedAddCommGroup F''] {c : F''} (hc : c ≠ 0) :
(fun (x : E'') => x) =o[nhds 0] fun (_x : E'') => c
theorem Filter.IsBoundedUnder.isBigO_const {α : Type u_1} {E : Type u_3} {F'' : Type u_10} [Norm E] [NormedAddCommGroup F''] {f : α → E} {l : Filter α} (h : IsBoundedUnder (fun (x1 x2 : ā„) => x1 ≤ x2) l (norm ∘ f)) {c : F''} (hc : c ≠ 0) :
f =O[l] fun (_x : α) => c
theorem Asymptotics.isBigO_const_of_tendsto {α : Type u_1} {E'' : Type u_9} {F'' : Type u_10} [NormedAddCommGroup E''] [NormedAddCommGroup F''] {f'' : α → E''} {l : Filter α} {y : E''} (h : Filter.Tendsto f'' l (nhds y)) {c : F''} (hc : c ≠ 0) :
f'' =O[l] fun (_x : α) => c
theorem Asymptotics.IsBigO.isBoundedUnder_le {α : Type u_1} {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {f : α → E} {l : Filter α} {c : F} (h : f =O[l] fun (_x : α) => c) :
Filter.IsBoundedUnder (fun (x1 x2 : ā„) => x1 ≤ x2) l (norm ∘ f)
theorem Asymptotics.isBigO_const_of_ne {α : Type u_1} {E : Type u_3} {F'' : Type u_10} [Norm E] [NormedAddCommGroup F''] {f : α → E} {l : Filter α} {c : F''} (hc : c ≠ 0) :
(f =O[l] fun (_x : α) => c) ↔ Filter.IsBoundedUnder (fun (x1 x2 : ā„) => x1 ≤ x2) l (norm ∘ f)
theorem Asymptotics.isBigO_const_iff {α : Type u_1} {E'' : Type u_9} {F'' : Type u_10} [NormedAddCommGroup E''] [NormedAddCommGroup F''] {f'' : α → E''} {l : Filter α} {c : F''} :
(f'' =O[l] fun (_x : α) => c) ↔ (c = 0 → f'' =į¶ [l] 0) ∧ Filter.IsBoundedUnder (fun (x1 x2 : ā„) => x1 ≤ x2) l fun (x : α) => ‖f'' x‖
theorem Asymptotics.isBigO_iff_isBoundedUnder_le_div {α : Type u_1} {E : Type u_3} {F'' : Type u_10} [Norm E] [NormedAddCommGroup F''] {f : α → E} {g'' : α → F''} {l : Filter α} (h : āˆ€į¶  (x : α) in l, g'' x ≠ 0) :
f =O[l] g'' ↔ Filter.IsBoundedUnder (fun (x1 x2 : ā„) => x1 ≤ x2) l fun (x : α) => ‖f x‖ / ‖g'' x‖
theorem Asymptotics.isBigO_const_left_iff_pos_le_norm {α : Type u_1} {E' : Type u_6} {E'' : Type u_9} [SeminormedAddCommGroup E'] [NormedAddCommGroup E''] {f' : α → E'} {l : Filter α} {c : E''} (hc : c ≠ 0) :
(fun (_x : α) => c) =O[l] f' ↔ ∃ (b : ā„), 0 < b ∧ āˆ€į¶  (x : α) in l, b ≤ ‖f' x‖

(fun x ↦ c) =O[l] f if and only if f is bounded away from zero.

theorem Asymptotics.IsBigO.trans_tendsto {α : Type u_1} {E'' : Type u_9} {F'' : Type u_10} [NormedAddCommGroup E''] [NormedAddCommGroup F''] {f'' : α → E''} {g'' : α → F''} {l : Filter α} (hfg : f'' =O[l] g'') (hg : Filter.Tendsto g'' l (nhds 0)) :
theorem Asymptotics.IsLittleO.trans_tendsto {α : Type u_1} {E'' : Type u_9} {F'' : Type u_10} [NormedAddCommGroup E''] [NormedAddCommGroup F''] {f'' : α → E''} {g'' : α → F''} {l : Filter α} (hfg : f'' =o[l] g'') (hg : Filter.Tendsto g'' l (nhds 0)) :
theorem Asymptotics.isLittleO_id_one {E'' : Type u_9} {F'' : Type u_10} [NormedAddCommGroup E''] [NormedAddCommGroup F''] [One F''] [NeZero 1] :
(fun (x : E'') => x) =o[nhds 0] 1
theorem Asymptotics.continuousAt_iff_isLittleO {α : Type u_17} {E : Type u_18} [NormedRing E] [NormOneClass E] [TopologicalSpace α] {f : α → E} {x : α} :
ContinuousAt f x ↔ (fun (y : α) => f y - f x) =o[nhds x] fun (x : α) => 1

Multiplication #

theorem Asymptotics.IsBigO.of_pow {α : Type u_1} {R : Type u_13} {š•œ : Type u_15} [SeminormedRing R] [NormedDivisionRing š•œ] {l : Filter α} {f : α → š•œ} {g : α → R} {n : ā„•} (hn : n ≠ 0) (h : (f ^ n) =O[l] (g ^ n)) :
f =O[l] g
theorem Asymptotics.IsBigO.pow_of_le_right {α : Type u_1} {l : Filter α} {f : α → ā„} (hf : 1 ≤ᶠ[l] f) {m n : ā„•} (h : n ≤ m) :
(f ^ n) =O[l] (f ^ m)

Scalar multiplication #

theorem Asymptotics.IsBigOWith.const_smul_self {α : Type u_1} {E' : Type u_6} {R : Type u_13} [SeminormedAddCommGroup E'] [SeminormedRing R] {f' : α → E'} {l : Filter α} [Module R E'] [IsBoundedSMul R E'] (c' : R) :
IsBigOWith ‖c'‖ l (fun (x : α) => c' • f' x) f'
theorem Asymptotics.IsBigO.const_smul_self {α : Type u_1} {E' : Type u_6} {R : Type u_13} [SeminormedAddCommGroup E'] [SeminormedRing R] {f' : α → E'} {l : Filter α} [Module R E'] [IsBoundedSMul R E'] (c' : R) :
(fun (x : α) => c' • f' x) =O[l] f'
theorem Asymptotics.IsBigOWith.const_smul_left {α : Type u_1} {F : Type u_4} {E' : Type u_6} {R : Type u_13} [Norm F] [SeminormedAddCommGroup E'] [SeminormedRing R] {c : ā„} {g : α → F} {f' : α → E'} {l : Filter α} [Module R E'] [IsBoundedSMul R E'] (h : IsBigOWith c l f' g) (c' : R) :
IsBigOWith (‖c'‖ * c) l (fun (x : α) => c' • f' x) g
theorem Asymptotics.IsBigO.const_smul_left {α : Type u_1} {F : Type u_4} {E' : Type u_6} {R : Type u_13} [Norm F] [SeminormedAddCommGroup E'] [SeminormedRing R] {g : α → F} {f' : α → E'} {l : Filter α} [Module R E'] [IsBoundedSMul R E'] (h : f' =O[l] g) (c : R) :
(c • f') =O[l] g
theorem Asymptotics.IsLittleO.const_smul_left {α : Type u_1} {F : Type u_4} {E' : Type u_6} {R : Type u_13} [Norm F] [SeminormedAddCommGroup E'] [SeminormedRing R] {g : α → F} {f' : α → E'} {l : Filter α} [Module R E'] [IsBoundedSMul R E'] (h : f' =o[l] g) (c : R) :
(c • f') =o[l] g
theorem Asymptotics.isBigO_const_smul_left {α : Type u_1} {F : Type u_4} {E' : Type u_6} {š•œ : Type u_15} [Norm F] [SeminormedAddCommGroup E'] [NormedDivisionRing š•œ] {g : α → F} {f' : α → E'} {l : Filter α} [Module š•œ E'] [NormSMulClass š•œ E'] {c : š•œ} (hc : c ≠ 0) :
(fun (x : α) => c • f' x) =O[l] g ↔ f' =O[l] g
theorem Asymptotics.isLittleO_const_smul_left {α : Type u_1} {F : Type u_4} {E' : Type u_6} {š•œ : Type u_15} [Norm F] [SeminormedAddCommGroup E'] [NormedDivisionRing š•œ] {g : α → F} {f' : α → E'} {l : Filter α} [Module š•œ E'] [NormSMulClass š•œ E'] {c : š•œ} (hc : c ≠ 0) :
(fun (x : α) => c • f' x) =o[l] g ↔ f' =o[l] g
theorem Asymptotics.isBigO_const_smul_right {α : Type u_1} {E : Type u_3} {E' : Type u_6} {š•œ : Type u_15} [Norm E] [SeminormedAddCommGroup E'] [NormedDivisionRing š•œ] {f : α → E} {f' : α → E'} {l : Filter α} [Module š•œ E'] [NormSMulClass š•œ E'] {c : š•œ} (hc : c ≠ 0) :
(f =O[l] fun (x : α) => c • f' x) ↔ f =O[l] f'
theorem Asymptotics.isLittleO_const_smul_right {α : Type u_1} {E : Type u_3} {E' : Type u_6} {š•œ : Type u_15} [Norm E] [SeminormedAddCommGroup E'] [NormedDivisionRing š•œ] {f : α → E} {f' : α → E'} {l : Filter α} [Module š•œ E'] [NormSMulClass š•œ E'] {c : š•œ} (hc : c ≠ 0) :
(f =o[l] fun (x : α) => c • f' x) ↔ f =o[l] f'
theorem Asymptotics.IsBigOWith.smul {α : Type u_1} {E' : Type u_6} {F' : Type u_7} {R : Type u_13} {š•œ' : Type u_16} [SeminormedAddCommGroup E'] [SeminormedAddCommGroup F'] [SeminormedRing R] [NormedDivisionRing š•œ'] {c c' : ā„} {f' : α → E'} {g' : α → F'} {l : Filter α} [Module R E'] [IsBoundedSMul R E'] [Module š•œ' F'] [NormSMulClass š•œ' F'] {k₁ : α → R} {kā‚‚ : α → š•œ'} (h₁ : IsBigOWith c l k₁ kā‚‚) (hā‚‚ : IsBigOWith c' l f' g') :
IsBigOWith (c * c') l (fun (x : α) => k₁ x • f' x) fun (x : α) => kā‚‚ x • g' x
theorem Asymptotics.IsBigO.smul {α : Type u_1} {E' : Type u_6} {F' : Type u_7} {R : Type u_13} {š•œ' : Type u_16} [SeminormedAddCommGroup E'] [SeminormedAddCommGroup F'] [SeminormedRing R] [NormedDivisionRing š•œ'] {f' : α → E'} {g' : α → F'} {l : Filter α} [Module R E'] [IsBoundedSMul R E'] [Module š•œ' F'] [NormSMulClass š•œ' F'] {k₁ : α → R} {kā‚‚ : α → š•œ'} (h₁ : k₁ =O[l] kā‚‚) (hā‚‚ : f' =O[l] g') :
(fun (x : α) => k₁ x • f' x) =O[l] fun (x : α) => kā‚‚ x • g' x
theorem Asymptotics.IsBigO.smul_isLittleO {α : Type u_1} {E' : Type u_6} {F' : Type u_7} {R : Type u_13} {š•œ' : Type u_16} [SeminormedAddCommGroup E'] [SeminormedAddCommGroup F'] [SeminormedRing R] [NormedDivisionRing š•œ'] {f' : α → E'} {g' : α → F'} {l : Filter α} [Module R E'] [IsBoundedSMul R E'] [Module š•œ' F'] [NormSMulClass š•œ' F'] {k₁ : α → R} {kā‚‚ : α → š•œ'} (h₁ : k₁ =O[l] kā‚‚) (hā‚‚ : f' =o[l] g') :
(fun (x : α) => k₁ x • f' x) =o[l] fun (x : α) => kā‚‚ x • g' x
theorem Asymptotics.IsLittleO.smul_isBigO {α : Type u_1} {E' : Type u_6} {F' : Type u_7} {R : Type u_13} {š•œ' : Type u_16} [SeminormedAddCommGroup E'] [SeminormedAddCommGroup F'] [SeminormedRing R] [NormedDivisionRing š•œ'] {f' : α → E'} {g' : α → F'} {l : Filter α} [Module R E'] [IsBoundedSMul R E'] [Module š•œ' F'] [NormSMulClass š•œ' F'] {k₁ : α → R} {kā‚‚ : α → š•œ'} (h₁ : k₁ =o[l] kā‚‚) (hā‚‚ : f' =O[l] g') :
(fun (x : α) => k₁ x • f' x) =o[l] fun (x : α) => kā‚‚ x • g' x
theorem Asymptotics.IsLittleO.smul {α : Type u_1} {E' : Type u_6} {F' : Type u_7} {R : Type u_13} {š•œ' : Type u_16} [SeminormedAddCommGroup E'] [SeminormedAddCommGroup F'] [SeminormedRing R] [NormedDivisionRing š•œ'] {f' : α → E'} {g' : α → F'} {l : Filter α} [Module R E'] [IsBoundedSMul R E'] [Module š•œ' F'] [NormSMulClass š•œ' F'] {k₁ : α → R} {kā‚‚ : α → š•œ'} (h₁ : k₁ =o[l] kā‚‚) (hā‚‚ : f' =o[l] g') :
(fun (x : α) => k₁ x • f' x) =o[l] fun (x : α) => kā‚‚ x • g' x
theorem Asymptotics.IsBigO.listProd {α : Type u_1} {R : Type u_13} {š•œ : Type u_15} [SeminormedRing R] [NormedDivisionRing š•œ] {l : Filter α} {ι : Type u_17} {L : List ι} {f : ι → α → R} {g : ι → α → š•œ} (hf : āˆ€ i ∈ L, f i =O[l] g i) :
(fun (x : α) => (List.map (fun (x_1 : ι) => f x_1 x) L).prod) =O[l] fun (x : α) => (List.map (fun (x_1 : ι) => g x_1 x) L).prod
theorem Asymptotics.IsBigO.multisetProd {α : Type u_1} {l : Filter α} {ι : Type u_17} {R : Type u_18} {š•œ : Type u_19} [SeminormedCommRing R] [NormedField š•œ] {s : Multiset ι} {f : ι → α → R} {g : ι → α → š•œ} (hf : āˆ€ i ∈ s, f i =O[l] g i) :
(fun (x : α) => (Multiset.map (fun (x_1 : ι) => f x_1 x) s).prod) =O[l] fun (x : α) => (Multiset.map (fun (x_1 : ι) => g x_1 x) s).prod
theorem Asymptotics.IsBigO.finsetProd {α : Type u_1} {l : Filter α} {ι : Type u_17} {R : Type u_18} {š•œ : Type u_19} [SeminormedCommRing R] [NormedField š•œ] {s : Finset ι} {f : ι → α → R} {g : ι → α → š•œ} (hf : āˆ€ i ∈ s, f i =O[l] g i) :
(fun (x : α) => āˆ i ∈ s, f i x) =O[l] fun (x : α) => āˆ i ∈ s, g i x
theorem Asymptotics.IsLittleO.listProd {α : Type u_1} {R : Type u_13} {š•œ : Type u_15} [SeminormedRing R] [NormedDivisionRing š•œ] {l : Filter α} {ι : Type u_17} {L : List ι} {f : ι → α → R} {g : ι → α → š•œ} (h₁ : āˆ€ i ∈ L, f i =O[l] g i) (hā‚‚ : ∃ i ∈ L, f i =o[l] g i) :
(fun (x : α) => (List.map (fun (x_1 : ι) => f x_1 x) L).prod) =o[l] fun (x : α) => (List.map (fun (x_1 : ι) => g x_1 x) L).prod
theorem Asymptotics.IsLittleO.multisetProd {α : Type u_1} {l : Filter α} {ι : Type u_17} {R : Type u_18} {š•œ : Type u_19} [SeminormedCommRing R] [NormedField š•œ] {s : Multiset ι} {f : ι → α → R} {g : ι → α → š•œ} (h₁ : āˆ€ i ∈ s, f i =O[l] g i) (hā‚‚ : ∃ i ∈ s, f i =o[l] g i) :
(fun (x : α) => (Multiset.map (fun (x_1 : ι) => f x_1 x) s).prod) =o[l] fun (x : α) => (Multiset.map (fun (x_1 : ι) => g x_1 x) s).prod
theorem Asymptotics.IsLittleO.finsetProd {α : Type u_1} {l : Filter α} {ι : Type u_17} {R : Type u_18} {š•œ : Type u_19} [SeminormedCommRing R] [NormedField š•œ] {s : Finset ι} {f : ι → α → R} {g : ι → α → š•œ} (h₁ : āˆ€ i ∈ s, f i =O[l] g i) (hā‚‚ : ∃ i ∈ s, f i =o[l] g i) :
(fun (x : α) => āˆ i ∈ s, f i x) =o[l] fun (x : α) => āˆ i ∈ s, g i x

Relation between f = o(g) and f / g → 0 #

theorem Asymptotics.IsLittleO.tendsto_div_nhds_zero {α : Type u_1} {š•œ : Type u_15} [NormedDivisionRing š•œ] {l : Filter α} {f g : α → š•œ} (h : f =o[l] g) :
Filter.Tendsto (fun (x : α) => f x / g x) l (nhds 0)
theorem Asymptotics.IsLittleO.tendsto_inv_smul_nhds_zero {α : Type u_1} {E' : Type u_6} {š•œ : Type u_15} [SeminormedAddCommGroup E'] [NormedDivisionRing š•œ] [Module š•œ E'] [NormSMulClass š•œ E'] {f : α → E'} {g : α → š•œ} {l : Filter α} (h : f =o[l] g) :
Filter.Tendsto (fun (x : α) => (g x)⁻¹ • f x) l (nhds 0)
theorem Asymptotics.isLittleO_iff_tendsto' {α : Type u_1} {š•œ : Type u_15} [NormedDivisionRing š•œ] {l : Filter α} {f g : α → š•œ} (hgf : āˆ€į¶  (x : α) in l, g x = 0 → f x = 0) :
f =o[l] g ↔ Filter.Tendsto (fun (x : α) => f x / g x) l (nhds 0)
theorem Asymptotics.isLittleO_iff_tendsto {α : Type u_1} {š•œ : Type u_15} [NormedDivisionRing š•œ] {l : Filter α} {f g : α → š•œ} (hgf : āˆ€ (x : α), g x = 0 → f x = 0) :
f =o[l] g ↔ Filter.Tendsto (fun (x : α) => f x / g x) l (nhds 0)
theorem Asymptotics.isLittleO_of_tendsto' {α : Type u_1} {š•œ : Type u_15} [NormedDivisionRing š•œ] {l : Filter α} {f g : α → š•œ} (hgf : āˆ€į¶  (x : α) in l, g x = 0 → f x = 0) :
Filter.Tendsto (fun (x : α) => f x / g x) l (nhds 0) → f =o[l] g

Alias of the reverse direction of Asymptotics.isLittleO_iff_tendsto'.

theorem Asymptotics.isLittleO_of_tendsto {α : Type u_1} {š•œ : Type u_15} [NormedDivisionRing š•œ] {l : Filter α} {f g : α → š•œ} (hgf : āˆ€ (x : α), g x = 0 → f x = 0) :
Filter.Tendsto (fun (x : α) => f x / g x) l (nhds 0) → f =o[l] g

Alias of the reverse direction of Asymptotics.isLittleO_iff_tendsto.

theorem Asymptotics.isLittleO_const_left_of_ne {α : Type u_1} {F : Type u_4} {E'' : Type u_9} [Norm F] [NormedAddCommGroup E''] {g : α → F} {l : Filter α} {c : E''} (hc : c ≠ 0) :
(fun (_x : α) => c) =o[l] g ↔ Filter.Tendsto (fun (x : α) => ‖g x‖) l Filter.atTop
@[simp]
theorem Asymptotics.isLittleO_const_left {α : Type u_1} {E'' : Type u_9} {F'' : Type u_10} [NormedAddCommGroup E''] [NormedAddCommGroup F''] {g'' : α → F''} {l : Filter α} {c : E''} :
(fun (_x : α) => c) =o[l] g'' ↔ c = 0 ∨ Filter.Tendsto (norm ∘ g'') l Filter.atTop
@[simp]
theorem Asymptotics.isLittleO_const_const_iff {α : Type u_1} {E'' : Type u_9} {F'' : Type u_10} [NormedAddCommGroup E''] [NormedAddCommGroup F''] {l : Filter α} [l.NeBot] {d : E''} {c : F''} :
((fun (_x : α) => d) =o[l] fun (_x : α) => c) ↔ d = 0
@[simp]
theorem Asymptotics.isLittleO_pure {α : Type u_1} {E'' : Type u_9} {F'' : Type u_10} [NormedAddCommGroup E''] [NormedAddCommGroup F''] {f'' : α → E''} {g'' : α → F''} {x : α} :
f'' =o[pure x] g'' ↔ f'' x = 0
theorem Asymptotics.isLittleO_const_id_cobounded {E'' : Type u_9} {F'' : Type u_10} [NormedAddCommGroup E''] [NormedAddCommGroup F''] (c : F'') :
(fun (x : E'') => c) =o[Bornology.cobounded E''] id

Relation between f = o(g) and g / f → āˆž #

theorem Asymptotics.IsLittleO.of_tendsto_div_atTop {α : Type u_1} {š•œ : Type u_17} [NormedField š•œ] [LinearOrder š•œ] [IsStrictOrderedRing š•œ] [OrderTopology š•œ] {l : Filter α} {f g : α → š•œ} (h : Filter.Tendsto (fun (x : α) => g x / f x) l Filter.atTop) :
f =o[l] g
theorem Asymptotics.IsLittleO.of_tendsto_div_atBot {α : Type u_1} {š•œ : Type u_17} [NormedField š•œ] [LinearOrder š•œ] [IsStrictOrderedRing š•œ] [OrderTopology š•œ] {l : Filter α} {f g : α → š•œ} (h : Filter.Tendsto (fun (x : α) => g x / f x) l Filter.atBot) :
f =o[l] g

Equivalent definitions of the form ∃ φ, u =į¶ [l] φ * v in a NormedField. #

theorem Asymptotics.isBigOWith_of_eq_mul {α : Type u_1} {R : Type u_13} [SeminormedRing R] {c : ā„} {l : Filter α} {u v : α → R} (φ : α → R) (hφ : āˆ€į¶  (x : α) in l, ‖φ x‖ ≤ c) (h : u =į¶ [l] φ * v) :
IsBigOWith c l u v

If ‖φ‖ is eventually bounded by c, and u =į¶ [l] φ * v, then we have IsBigOWith c u v l. This does not require any assumptions on c, which is why we keep this version along with IsBigOWith_iff_exists_eq_mul.

theorem Asymptotics.isBigOWith_iff_exists_eq_mul {α : Type u_1} {š•œ : Type u_15} [NormedDivisionRing š•œ] {c : ā„} {l : Filter α} {u v : α → š•œ} (hc : 0 ≤ c) :
IsBigOWith c l u v ↔ ∃ (φ : α → š•œ), (āˆ€į¶  (x : α) in l, ‖φ x‖ ≤ c) ∧ u =į¶ [l] φ * v
theorem Asymptotics.IsBigOWith.exists_eq_mul {α : Type u_1} {š•œ : Type u_15} [NormedDivisionRing š•œ] {c : ā„} {l : Filter α} {u v : α → š•œ} (h : IsBigOWith c l u v) (hc : 0 ≤ c) :
∃ (φ : α → š•œ), (āˆ€į¶  (x : α) in l, ‖φ x‖ ≤ c) ∧ u =į¶ [l] φ * v
theorem Asymptotics.isBigO_iff_exists_eq_mul {α : Type u_1} {š•œ : Type u_15} [NormedDivisionRing š•œ] {l : Filter α} {u v : α → š•œ} :
u =O[l] v ↔ ∃ (φ : α → š•œ), Filter.IsBoundedUnder (fun (x1 x2 : ā„) => x1 ≤ x2) l (norm ∘ φ) ∧ u =į¶ [l] φ * v
theorem Asymptotics.IsBigO.exists_eq_mul {α : Type u_1} {š•œ : Type u_15} [NormedDivisionRing š•œ] {l : Filter α} {u v : α → š•œ} :
u =O[l] v → ∃ (φ : α → š•œ), Filter.IsBoundedUnder (fun (x1 x2 : ā„) => x1 ≤ x2) l (norm ∘ φ) ∧ u =į¶ [l] φ * v

Alias of the forward direction of Asymptotics.isBigO_iff_exists_eq_mul.

theorem Asymptotics.isLittleO_iff_exists_eq_mul {α : Type u_1} {š•œ : Type u_15} [NormedDivisionRing š•œ] {l : Filter α} {u v : α → š•œ} :
u =o[l] v ↔ ∃ (φ : α → š•œ), Filter.Tendsto φ l (nhds 0) ∧ u =į¶ [l] φ * v
theorem Asymptotics.IsLittleO.exists_eq_mul {α : Type u_1} {š•œ : Type u_15} [NormedDivisionRing š•œ] {l : Filter α} {u v : α → š•œ} :
u =o[l] v → ∃ (φ : α → š•œ), Filter.Tendsto φ l (nhds 0) ∧ u =į¶ [l] φ * v

Alias of the forward direction of Asymptotics.isLittleO_iff_exists_eq_mul.

Miscellaneous lemmas #

theorem Asymptotics.div_isBoundedUnder_of_isBigO {š•œ : Type u_15} [NormedDivisionRing š•œ] {α : Type u_17} {l : Filter α} {f g : α → š•œ} (h : f =O[l] g) :
Filter.IsBoundedUnder (fun (x1 x2 : ā„) => x1 ≤ x2) l fun (x : α) => ‖f x / g x‖
theorem Asymptotics.isBigO_iff_div_isBoundedUnder {š•œ : Type u_15} [NormedDivisionRing š•œ] {α : Type u_17} {l : Filter α} {f g : α → š•œ} (hgf : āˆ€į¶  (x : α) in l, g x = 0 → f x = 0) :
f =O[l] g ↔ Filter.IsBoundedUnder (fun (x1 x2 : ā„) => x1 ≤ x2) l fun (x : α) => ‖f x / g x‖
theorem Asymptotics.isBigO_of_div_tendsto_nhds {š•œ : Type u_15} [NormedDivisionRing š•œ] {α : Type u_17} {l : Filter α} {f g : α → š•œ} (hgf : āˆ€į¶  (x : α) in l, g x = 0 → f x = 0) (c : š•œ) (H : Filter.Tendsto (f / g) l (nhds c)) :
f =O[l] g
theorem Asymptotics.IsLittleO.tendsto_zero_of_tendsto {α : Type u_1} {E' : Type u_6} {š•œ : Type u_15} [SeminormedAddCommGroup E'] [NormedDivisionRing š•œ] {u : α → E'} {v : α → š•œ} {l : Filter α} {y : š•œ} (huv : u =o[l] v) (hv : Filter.Tendsto v l (nhds y)) :
theorem Asymptotics.isBigOWith_of_div_tendsto_nhds {α : Type u_1} {š•œ : Type u_15} [NormedDivisionRing š•œ] {C : ā„} {a : š•œ} {f g : α → š•œ} {l : Filter α} (h : Filter.Tendsto (fun (x : α) => g x / f x) l (nhds a)) (hC : 0 < C) (ha : C⁻¹ < ‖a‖) :
IsBigOWith C l f g
theorem Asymptotics.isBigO_of_div_tendsto_nhds_of_ne_zero {α : Type u_1} {š•œ : Type u_15} [NormedDivisionRing š•œ] {l : Filter α} {f g : α → š•œ} {a : š•œ} (h : Filter.Tendsto (fun (x : α) => g x / f x) l (nhds a)) (ha : a ≠ 0) :
f =O[l] g
theorem Asymptotics.isLittleO_pow_pow {š•œ : Type u_15} [NormedDivisionRing š•œ] {m n : ā„•} (h : m < n) :
(fun (x : š•œ) => x ^ n) =o[nhds 0] fun (x : š•œ) => x ^ m
theorem Asymptotics.isLittleO_norm_pow_norm_pow {E' : Type u_6} [SeminormedAddCommGroup E'] {m n : ā„•} (h : m < n) :
(fun (x : E') => ‖x‖ ^ n) =o[nhds 0] fun (x : E') => ‖x‖ ^ m
theorem Asymptotics.isLittleO_pow_id {š•œ : Type u_15} [NormedDivisionRing š•œ] {n : ā„•} (h : 1 < n) :
(fun (x : š•œ) => x ^ n) =o[nhds 0] fun (x : š•œ) => x
theorem Asymptotics.isLittleO_norm_pow_id {E' : Type u_6} [SeminormedAddCommGroup E'] {n : ā„•} (h : 1 < n) :
(fun (x : E') => ‖x‖ ^ n) =o[nhds 0] fun (x : E') => x
theorem Asymptotics.IsBigO.eq_zero_of_norm_pow_within {E'' : Type u_9} {F'' : Type u_10} [NormedAddCommGroup E''] [NormedAddCommGroup F''] {f : E'' → F''} {s : Set E''} {xā‚€ : E''} {n : ā„•} (h : f =O[nhdsWithin xā‚€ s] fun (x : E'') => ‖x - x₀‖ ^ n) (hxā‚€ : xā‚€ ∈ s) (hn : n ≠ 0) :
f xā‚€ = 0
theorem Asymptotics.IsBigO.eq_zero_of_norm_pow {E'' : Type u_9} {F'' : Type u_10} [NormedAddCommGroup E''] [NormedAddCommGroup F''] {f : E'' → F''} {xā‚€ : E''} {n : ā„•} (h : f =O[nhds xā‚€] fun (x : E'') => ‖x - x₀‖ ^ n) (hn : n ≠ 0) :
f xā‚€ = 0
theorem Asymptotics.isLittleO_pow_sub_pow_sub {E' : Type u_6} [SeminormedAddCommGroup E'] (xā‚€ : E') {n m : ā„•} (h : n < m) :
(fun (x : E') => ‖x - x₀‖ ^ m) =o[nhds xā‚€] fun (x : E') => ‖x - x₀‖ ^ n
theorem Asymptotics.isLittleO_pow_sub_sub {E' : Type u_6} [SeminormedAddCommGroup E'] (xā‚€ : E') {m : ā„•} (h : 1 < m) :
(fun (x : E') => ‖x - x₀‖ ^ m) =o[nhds xā‚€] fun (x : E') => x - xā‚€
theorem Asymptotics.IsBigOWith.right_le_sub_of_lt_one {α : Type u_1} {E' : Type u_6} [SeminormedAddCommGroup E'] {c : ā„} {l : Filter α} {f₁ fā‚‚ : α → E'} (h : IsBigOWith c l f₁ fā‚‚) (hc : c < 1) :
IsBigOWith (1 / (1 - c)) l fā‚‚ fun (x : α) => fā‚‚ x - f₁ x
theorem Asymptotics.IsBigOWith.right_le_add_of_lt_one {α : Type u_1} {E' : Type u_6} [SeminormedAddCommGroup E'] {c : ā„} {l : Filter α} {f₁ fā‚‚ : α → E'} (h : IsBigOWith c l f₁ fā‚‚) (hc : c < 1) :
IsBigOWith (1 / (1 - c)) l fā‚‚ fun (x : α) => f₁ x + fā‚‚ x
theorem Asymptotics.IsLittleO.right_isBigO_sub {α : Type u_1} {E' : Type u_6} [SeminormedAddCommGroup E'] {l : Filter α} {f₁ fā‚‚ : α → E'} (h : f₁ =o[l] fā‚‚) :
fā‚‚ =O[l] fun (x : α) => fā‚‚ x - f₁ x
theorem Asymptotics.IsLittleO.right_isBigO_add {α : Type u_1} {E' : Type u_6} [SeminormedAddCommGroup E'] {l : Filter α} {f₁ fā‚‚ : α → E'} (h : f₁ =o[l] fā‚‚) :
fā‚‚ =O[l] fun (x : α) => f₁ x + fā‚‚ x
theorem Asymptotics.IsLittleO.right_isBigO_add' {α : Type u_1} {E' : Type u_6} [SeminormedAddCommGroup E'] {l : Filter α} {f₁ fā‚‚ : α → E'} (h : f₁ =o[l] fā‚‚) :
fā‚‚ =O[l] (fā‚‚ + f₁)
theorem Asymptotics.bound_of_isBigO_cofinite {α : Type u_1} {E : Type u_3} {F'' : Type u_10} [Norm E] [NormedAddCommGroup F''] {f : α → E} {g'' : α → F''} (h : f =O[Filter.cofinite] g'') :
∃ C > 0, āˆ€ ⦃x : α⦄, g'' x ≠ 0 → ‖f x‖ ≤ C * ‖g'' x‖

If f x = O(g x) along cofinite, then there exists a positive constant C such that ‖f x‖ ≤ C * ‖g x‖ whenever g x ≠ 0.

theorem Asymptotics.isBigO_cofinite_iff {α : Type u_1} {E'' : Type u_9} {F'' : Type u_10} [NormedAddCommGroup E''] [NormedAddCommGroup F''] {f'' : α → E''} {g'' : α → F''} (h : āˆ€ (x : α), g'' x = 0 → f'' x = 0) :
f'' =O[Filter.cofinite] g'' ↔ ∃ (C : ā„), āˆ€ (x : α), ‖f'' x‖ ≤ C * ‖g'' x‖
theorem Asymptotics.bound_of_isBigO_nat_atTop {E : Type u_3} {E'' : Type u_9} [Norm E] [NormedAddCommGroup E''] {f : ā„• → E} {g'' : ā„• → E''} (h : f =O[Filter.atTop] g'') :
∃ C > 0, āˆ€ ⦃x : ℕ⦄, g'' x ≠ 0 → ‖f x‖ ≤ C * ‖g'' x‖
theorem Asymptotics.isBigO_nat_atTop_iff {E'' : Type u_9} {F'' : Type u_10} [NormedAddCommGroup E''] [NormedAddCommGroup F''] {f : ā„• → E''} {g : ā„• → F''} (h : āˆ€ (x : ā„•), g x = 0 → f x = 0) :
f =O[Filter.atTop] g ↔ ∃ (C : ā„), āˆ€ (x : ā„•), ‖f x‖ ≤ C * ‖g x‖
theorem Asymptotics.isBigO_one_nat_atTop_iff {E'' : Type u_9} [NormedAddCommGroup E''] {f : ā„• → E''} :
(f =O[Filter.atTop] fun (_n : ā„•) => 1) ↔ ∃ (C : ā„), āˆ€ (n : ā„•), ‖f n‖ ≤ C
theorem Asymptotics.IsBigO.nat_of_atTop {E'' : Type u_9} {F'' : Type u_10} [NormedAddCommGroup E''] [NormedAddCommGroup F''] {f : ā„• → E''} {g : ā„• → F''} (hfg : f =O[Filter.atTop] g) {l : Filter ā„•} (h : āˆ€į¶  (n : ā„•) in l, g n = 0 → f n = 0) :
f =O[l] g
theorem Asymptotics.isBigOWith_pi {α : Type u_1} {F' : Type u_7} [SeminormedAddCommGroup F'] {g' : α → F'} {l : Filter α} {ι : Type u_17} [Fintype ι] {E' : ι → Type u_18} [(i : ι) → SeminormedAddCommGroup (E' i)] {f : α → (i : ι) → E' i} {C : ā„} (hC : 0 ≤ C) :
IsBigOWith C l f g' ↔ āˆ€ (i : ι), IsBigOWith C l (fun (x : α) => f x i) g'
@[simp]
theorem Asymptotics.isBigO_pi {α : Type u_1} {F' : Type u_7} [SeminormedAddCommGroup F'] {g' : α → F'} {l : Filter α} {ι : Type u_17} [Fintype ι] {E' : ι → Type u_18} [(i : ι) → SeminormedAddCommGroup (E' i)] {f : α → (i : ι) → E' i} :
f =O[l] g' ↔ āˆ€ (i : ι), (fun (x : α) => f x i) =O[l] g'
@[simp]
theorem Asymptotics.isLittleO_pi {α : Type u_1} {F' : Type u_7} [SeminormedAddCommGroup F'] {g' : α → F'} {l : Filter α} {ι : Type u_17} [Fintype ι] {E' : ι → Type u_18} [(i : ι) → SeminormedAddCommGroup (E' i)] {f : α → (i : ι) → E' i} :
f =o[l] g' ↔ āˆ€ (i : ι), (fun (x : α) => f x i) =o[l] g'
theorem Asymptotics.IsBigO.natCast_atTop {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {R : Type u_17} [Semiring R] [PartialOrder R] [IsStrictOrderedRing R] [Archimedean R] {f : R → E} {g : R → F} (h : f =O[Filter.atTop] g) :
(fun (n : ā„•) => f ↑n) =O[Filter.atTop] fun (n : ā„•) => g ↑n
theorem Asymptotics.IsLittleO.natCast_atTop {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {R : Type u_17} [Semiring R] [PartialOrder R] [IsStrictOrderedRing R] [Archimedean R] {f : R → E} {g : R → F} (h : f =o[Filter.atTop] g) :
(fun (n : ā„•) => f ↑n) =o[Filter.atTop] fun (n : ā„•) => g ↑n
theorem Asymptotics.isBigO_atTop_iff_eventually_exists {E : Type u_3} {F : Type u_4} [Norm E] [Norm F] {α : Type u_17} [SemilatticeSup α] [Nonempty α] {f : α → E} {g : α → F} :
f =O[Filter.atTop] g ↔ āˆ€į¶  (nā‚€ : α) in Filter.atTop, ∃ (c : ā„), āˆ€ n ≄ nā‚€, ‖f n‖ ≤ c * ‖g n‖
theorem Asymptotics.isBigO_atTop_iff_eventually_exists_pos {G : Type u_5} {G' : Type u_8} [Norm G] [SeminormedAddCommGroup G'] {α : Type u_17} [SemilatticeSup α] [Nonempty α] {f : α → G} {g : α → G'} :
f =O[Filter.atTop] g ↔ āˆ€į¶  (nā‚€ : α) in Filter.atTop, ∃ c > 0, āˆ€ n ≄ nā‚€, c * ‖f n‖ ≤ ‖g n‖
theorem Asymptotics.isBigOWith_mul_iff_isBigOWith_div {α : Type u_1} {š•œ : Type u_15} [NormedDivisionRing š•œ] {l : Filter α} {f g h : α → š•œ} {c : ā„} (hf : āˆ€į¶  (x : α) in l, f x ≠ 0) :
IsBigOWith c l (fun (x : α) => f x * g x) h ↔ IsBigOWith c l g fun (x : α) => h x / f x
theorem Asymptotics.isBigO_mul_iff_isBigO_div {α : Type u_1} {š•œ : Type u_15} [NormedDivisionRing š•œ] {l : Filter α} {f g h : α → š•œ} (hf : āˆ€į¶  (x : α) in l, f x ≠ 0) :
(fun (x : α) => f x * g x) =O[l] h ↔ g =O[l] fun (x : α) => h x / f x
theorem Asymptotics.isLittleO_mul_iff_isLittleO_div {α : Type u_1} {š•œ : Type u_15} [NormedDivisionRing š•œ] {l : Filter α} {f g h : α → š•œ} (hf : āˆ€į¶  (x : α) in l, f x ≠ 0) :
(fun (x : α) => f x * g x) =o[l] h ↔ g =o[l] fun (x : α) => h x / f x
theorem Asymptotics.isBigO_nat_atTop_induction {E'' : Type u_9} {F'' : Type u_10} [NormedAddCommGroup E''] [NormedAddCommGroup F''] {f : ā„• → E''} {g : ā„• → F''} (h : āˆ€į¶  (n : ā„•) in Filter.atTop, g n = 0 → f n = 0) (hrec : āˆ€į¶  (nā‚€ : ā„•) in Filter.atTop, ∃ (Cā‚€ : ā„), āˆ€į¶  (n : ā„•) in Filter.atTop, āˆ€ C ≄ Cā‚€, (āˆ€ m ∈ Finset.Ico nā‚€ n, ‖f m‖ ≤ C * ‖g m‖) → ‖f n‖ ≤ C * ‖g n‖) :
theorem Asymptotics.isBigO_nat_atTop_induction_of_eventually_pos {f g : ā„• → ā„} (hf : āˆ€į¶  (n : ā„•) in Filter.atTop, 0 ≤ f n) (hg : āˆ€į¶  (n : ā„•) in Filter.atTop, 0 < g n) (hrec : āˆ€į¶  (nā‚€ : ā„•) in Filter.atTop, ∃ (Cā‚€ : ā„), āˆ€į¶  (n : ā„•) in Filter.atTop, āˆ€ C ≄ Cā‚€, (āˆ€ m ∈ Finset.Ico nā‚€ n, f m ≤ C * g m) → f n ≤ C * g n) :
theorem summable_of_isBigO {ι : Type u_1} {E : Type u_2} [SeminormedAddCommGroup E] [CompleteSpace E] {f : ι → E} {g : ι → ā„} (hg : Summable g) (h : f =O[Filter.cofinite] g) :
theorem Asymptotics.IsBigO.comp_summable_norm {ι : Type u_1} {E : Type u_2} {F : Type u_3} [SeminormedAddCommGroup E] [SeminormedAddCommGroup F] {f : E → F} {g : ι → E} (hf : f =O[nhds 0] id) (hg : Summable fun (x : ι) => ‖g x‖) :
Summable fun (x : ι) => ‖f (g x)‖
theorem Summable.mul_tendsto_const {F : Type u_1} {ι : Type u_2} [NormedRing F] [NormMulClass F] [NormOneClass F] [CompleteSpace F] {f g : ι → F} (hf : Summable fun (n : ι) => ‖f n‖) {c : F} (hg : Filter.Tendsto g Filter.cofinite (nhds c)) :
Summable fun (n : ι) => f n * g n
theorem OpenPartialHomeomorph.isBigOWith_congr {α : Type u_1} {β : Type u_2} [TopologicalSpace α] [TopologicalSpace β] {E : Type u_3} [Norm E] {F : Type u_4} [Norm F] (e : OpenPartialHomeomorph α β) {b : β} (hb : b ∈ e.target) {f : β → E} {g : β → F} {C : ā„} :
Asymptotics.IsBigOWith C (nhds b) f g ↔ Asymptotics.IsBigOWith C (nhds (↑e.symm b)) (f ∘ ↑e) (g ∘ ↑e)

Transfer IsBigOWith over an OpenPartialHomeomorph.

theorem OpenPartialHomeomorph.isBigO_congr {α : Type u_1} {β : Type u_2} [TopologicalSpace α] [TopologicalSpace β] {E : Type u_3} [Norm E] {F : Type u_4} [Norm F] (e : OpenPartialHomeomorph α β) {b : β} (hb : b ∈ e.target) {f : β → E} {g : β → F} :
f =O[nhds b] g ↔ (f ∘ ↑e) =O[nhds (↑e.symm b)] (g ∘ ↑e)

Transfer IsBigO over an OpenPartialHomeomorph.

theorem OpenPartialHomeomorph.isLittleO_congr {α : Type u_1} {β : Type u_2} [TopologicalSpace α] [TopologicalSpace β] {E : Type u_3} [Norm E] {F : Type u_4} [Norm F] (e : OpenPartialHomeomorph α β) {b : β} (hb : b ∈ e.target) {f : β → E} {g : β → F} :
f =o[nhds b] g ↔ (f ∘ ↑e) =o[nhds (↑e.symm b)] (g ∘ ↑e)

Transfer IsLittleO over an OpenPartialHomeomorph.

theorem Homeomorph.isBigOWith_congr {α : Type u_1} {β : Type u_2} [TopologicalSpace α] [TopologicalSpace β] {E : Type u_3} [Norm E] {F : Type u_4} [Norm F] (e : α ā‰ƒā‚œ β) {b : β} {f : β → E} {g : β → F} {C : ā„} :
Asymptotics.IsBigOWith C (nhds b) f g ↔ Asymptotics.IsBigOWith C (nhds (e.symm b)) (f ∘ ⇑e) (g ∘ ⇑e)

Transfer IsBigOWith over a Homeomorph.

theorem Homeomorph.isBigO_congr {α : Type u_1} {β : Type u_2} [TopologicalSpace α] [TopologicalSpace β] {E : Type u_3} [Norm E] {F : Type u_4} [Norm F] (e : α ā‰ƒā‚œ β) {b : β} {f : β → E} {g : β → F} :
f =O[nhds b] g ↔ (f ∘ ⇑e) =O[nhds (e.symm b)] (g ∘ ⇑e)

Transfer IsBigO over a Homeomorph.

theorem Homeomorph.isLittleO_congr {α : Type u_1} {β : Type u_2} [TopologicalSpace α] [TopologicalSpace β] {E : Type u_3} [Norm E] {F : Type u_4} [Norm F] (e : α ā‰ƒā‚œ β) {b : β} {f : β → E} {g : β → F} :
f =o[nhds b] g ↔ (f ∘ ⇑e) =o[nhds (e.symm b)] (g ∘ ⇑e)

Transfer IsLittleO over a Homeomorph.

theorem ContinuousOn.isBigOWith_principal {α : Type u_1} {E : Type u_2} {F : Type u_3} [TopologicalSpace α] {s : Set α} {f : α → E} {c : F} [SeminormedAddGroup E] [Norm F] (hf : ContinuousOn f s) (hs : IsCompact s) (hc : ‖c‖ ≠ 0) :
theorem ContinuousOn.isBigO_principal {α : Type u_1} {E : Type u_2} {F : Type u_3} [TopologicalSpace α] {s : Set α} {f : α → E} {c : F} [SeminormedAddGroup E] [Norm F] (hf : ContinuousOn f s) (hs : IsCompact s) (hc : ‖c‖ ≠ 0) :
f =O[Filter.principal s] fun (x : α) => c
theorem ContinuousOn.isBigOWith_rev_principal {α : Type u_1} {E : Type u_2} {F : Type u_3} [TopologicalSpace α] {s : Set α} {f : α → E} [NormedAddGroup E] [SeminormedAddGroup F] (hf : ContinuousOn f s) (hs : IsCompact s) (hC : āˆ€ i ∈ s, f i ≠ 0) (c : F) :
Asymptotics.IsBigOWith (‖c‖ / sInf (Norm.norm '' (f '' s))) (Filter.principal s) (fun (x : α) => c) f
theorem ContinuousOn.isBigO_rev_principal {α : Type u_1} {E : Type u_2} {F : Type u_3} [TopologicalSpace α] {s : Set α} {f : α → E} [NormedAddGroup E] [SeminormedAddGroup F] (hf : ContinuousOn f s) (hs : IsCompact s) (hC : āˆ€ i ∈ s, f i ≠ 0) (c : F) :
(fun (x : α) => c) =O[Filter.principal s] f
theorem NormedField.tendsto_zero_smul_of_tendsto_zero_of_bounded {ι : Type u_1} {š•œ : Type u_2} {E : Type u_3} [NormedDivisionRing š•œ] [SeminormedAddCommGroup E] [Module š•œ E] [IsBoundedSMul š•œ E] {l : Filter ι} {ε : ι → š•œ} {f : ι → E} (hε : Filter.Tendsto ε l (nhds 0)) (hf : Filter.IsBoundedUnder (fun (x1 x2 : ā„) => x1 ≤ x2) l (norm ∘ f)) :
Filter.Tendsto (ε • f) l (nhds 0)

The (scalar) product of a sequence that tends to zero with a bounded one also tends to zero.