Theorem: Asymptotics.IsBigOWith.smul
File: Mathlib/Analysis/Asymptotics/Asymptotics.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
E : Type u_3
F : Type u_4
G : Type u_5
E' : Type u_6
F' : Type u_7
G' : Type u_8
E'' : Type u_9
F'' : Type u_10
G'' : Type u_11
E''' : Type u_12
R : Type u_13
R' : Type u_14
𝕜 : Type u_15
𝕜' : Type u_16
inst✝¹⁷ : Norm E
inst✝¹⁶ : Norm F
inst✝¹⁵ : Norm G
inst✝¹⁴ : SeminormedAddCommGroup E'
inst✝¹³ : SeminormedAddCommGroup F'
inst✝¹² : SeminormedAddCommGroup G'
inst✝¹¹ : NormedAddCommGroup E''
inst✝¹⁰ : NormedAddCommGroup F''
inst✝⁹ : NormedAddCommGroup G''
inst✝⁸ : SeminormedRing R
inst✝⁷ : SeminormedAddGroup E'''
inst✝⁶ : SeminormedRing R'
inst✝⁵ : NormedDivisionRing 𝕜
inst✝⁴ : NormedDivisionRing 𝕜'
c c' c₁ c₂ : ℝ
f : α → E
g : α → F
k : α → G
f' : α → E'
g' : α → F'
k' : α → G'
f'' : α → E''
g'' : α → F''
k'' : α → G''
l l' : Filter α
inst✝³ : Module R E'
inst✝² : BoundedSMul R E'
inst✝¹ : Module 𝕜' F'
inst✝ : BoundedSMul 𝕜' 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
state_after: α : Type u_1
β : Type u_2
E : Type u_3
F : Type u_4
G : Type u_5
E' : Type u_6
F' : Type u_7
G' : Type u_8
E'' : Type u_9
F'' : Type u_10
G'' : Type u_11
E''' : Type u_12
R : Type u_13
R' : Type u_14
𝕜 : Type u_15
𝕜' : Type u_16
inst✝¹⁷ : Norm E
inst✝¹⁶ : Norm F
inst✝¹⁵ : Norm G
inst✝¹⁴ : SeminormedAddCommGroup E'
inst✝¹³ : SeminormedAddCommGroup F'
inst✝¹² : SeminormedAddCommGroup G'
inst✝¹¹ : NormedAddCommGroup E''
inst✝¹⁰ : NormedAddCommGroup F''
inst✝⁹ : NormedAddCommGroup G''
inst✝⁸ : SeminormedRing R
inst✝⁷ : SeminormedAddGroup E'''
inst✝⁶ : SeminormedRing R'
inst✝⁵ : NormedDivisionRing 𝕜
inst✝⁴ : NormedDivisionRing 𝕜'
c c' c₁ c₂ : ℝ
f : α → E
g : α → F
k : α → G
f' : α → E'
g' : α → F'
k' : α → G'
f'' : α → E''
g'' : α → F''
k'' : α → G''
l l' : Filter α
inst✝³ : Module R E'
inst✝² : BoundedSMul R E'
inst✝¹ : Module 𝕜' F'
inst✝ : BoundedSMul 𝕜' F'
k₁ : α → R
k₂ : α → 𝕜'
h₁ : ∀ᶠ (x : α) in l, ‖k₁ x‖ ≤ c * ‖k₂ x‖
h₂ : ∀ᶠ (x : α) in l, ‖f' x‖ ≤ c' * ‖g' x‖
⊢ ∀ᶠ (x : α) in l, ‖k₁ x • f' x‖ ≤ c * c' * ‖k₂ x • g' x‖
tactic: simp only [IsBigOWith_def] at *
state_before: α : Type u_1
β : Type u_2
E : Type u_3
F : Type u_4
G : Type u_5
E' : Type u_6
F' : Type u_7
G' : Type u_8
E'' : Type u_9
F'' : Type u_10
G'' : Type u_11
E''' : Type u_12
R : Type u_13
R' : Type u_14
𝕜 : Type u_15
𝕜' : Type u_16
inst✝¹⁷ : Norm E
inst✝¹⁶ : Norm F
inst✝¹⁵ : Norm G
inst✝¹⁴ : SeminormedAddCommGroup E'
inst✝¹³ : SeminormedAddCommGroup F'
inst✝¹² : SeminormedAddCommGroup G'
inst✝¹¹ : NormedAddCommGroup E''
inst✝¹⁰ : NormedAddCommGroup F''
inst✝⁹ : NormedAddCommGroup G''
inst✝⁸ : SeminormedRing R
inst✝⁷ : SeminormedAddGroup E'''
inst✝⁶ : SeminormedRing R'
inst✝⁵ : NormedDivisionRing 𝕜
inst✝⁴ : NormedDivisionRing 𝕜'
c c' c₁ c₂ : ℝ
f : α → E
g : α → F
k : α → G
f' : α → E'
g' : α → F'
k' : α → G'
f'' : α → E''
g'' : α → F''
k'' : α → G''
l l' : Filter α
inst✝³ : Module R E'
inst✝² : BoundedSMul R E'
inst✝¹ : Module 𝕜' F'
inst✝ : BoundedSMul 𝕜' F'
k₁ : α → R
k₂ : α → 𝕜'
h₁ : ∀ᶠ (x : α) in l, ‖k₁ x‖ ≤ c * ‖k₂ x‖
h₂ : ∀ᶠ (x : α) in l, ‖f' x‖ ≤ c' * ‖g' x‖
⊢ ∀ᶠ (x : α) in l, ‖k₁ x • f' x‖ ≤ c * c' * ‖k₂ x • g' x‖
state_after: case h
α : Type u_1
β : Type u_2
E : Type u_3
F : Type u_4
G : Type u_5
E' : Type u_6
F' : Type u_7
G' : Type u_8
E'' : Type u_9
F'' : Type u_10
G'' : Type u_11
E''' : Type u_12
R : Type u_13
R' : Type u_14
𝕜 : Type u_15
𝕜' : Type u_16
inst✝¹⁷ : Norm E
inst✝¹⁶ : Norm F
inst✝¹⁵ : Norm G
inst✝¹⁴ : SeminormedAddCommGroup E'
inst✝¹³ : SeminormedAddCommGroup F'
inst✝¹² : SeminormedAddCommGroup G'
inst✝¹¹ : NormedAddCommGroup E''
inst✝¹⁰ : NormedAddCommGroup F''
inst✝⁹ : NormedAddCommGroup G''
inst✝⁸ : SeminormedRing R
inst✝⁷ : SeminormedAddGroup E'''
inst✝⁶ : SeminormedRing R'
inst✝⁵ : NormedDivisionRing 𝕜
inst✝⁴ : NormedDivisionRing 𝕜'
c c' c₁ c₂ : ℝ
f : α → E
g : α → F
k : α → G
f' : α → E'
g' : α → F'
k' : α → G'
f'' : α → E''
g'' : α → F''
k'' : α → G''
l l' : Filter α
inst✝³ : Module R E'
inst✝² : BoundedSMul R E'
inst✝¹ : Module 𝕜' F'
inst✝ : BoundedSMul 𝕜' F'
k₁ : α → R
k₂ : α → 𝕜'
h₁ : ∀ᶠ (x : α) in l, ‖k₁ x‖ ≤ c * ‖k₂ x‖
h₂ : ∀ᶠ (x : α) in l, ‖f' x‖ ≤ c' * ‖g' x‖
a✝ : α
hx₁ : ‖k₁ a✝‖ ≤ c * ‖k₂ a✝‖
hx₂ : ‖f' a✝‖ ≤ c' * ‖g' a✝‖
⊢ ‖k₁ a✝ • f' a✝‖ ≤ c * c' * ‖k₂ a✝ • g' a✝‖
tactic: filter_upwards [h₁, h₂] with _ hx₁ hx₂
state_before: case h
α : Type u_1
β : Type u_2
E : Type u_3
F : Type u_4
G : Type u_5
E' : Type u_6
F' : Type u_7
G' : Type u_8
E'' : Type u_9
F'' : Type u_10
G'' : Type u_11
E''' : Type u_12
R : Type u_13
R' : Type u_14
𝕜 : Type u_15
𝕜' : Type u_16
inst✝¹⁷ : Norm E
inst✝¹⁶ : Norm F
inst✝¹⁵ : Norm G
inst✝¹⁴ : SeminormedAddCommGroup E'
inst✝¹³ : SeminormedAddCommGroup F'
inst✝¹² : SeminormedAddCommGroup G'
inst✝¹¹ : NormedAddCommGroup E''
inst✝¹⁰ : NormedAddCommGroup F''
inst✝⁹ : NormedAddCommGroup G''
inst✝⁸ : SeminormedRing R
inst✝⁷ : SeminormedAddGroup E'''
inst✝⁶ : SeminormedRing R'
inst✝⁵ : NormedDivisionRing 𝕜
inst✝⁴ : NormedDivisionRing 𝕜'
c c' c₁ c₂ : ℝ
f : α → E
g : α → F
k : α → G
f' : α → E'
g' : α → F'
k' : α → G'
f'' : α → E''
g'' : α → F''
k'' : α → G''
l l' : Filter α
inst✝³ : Module R E'
inst✝² : BoundedSMul R E'
inst✝¹ : Module 𝕜' F'
inst✝ : BoundedSMul 𝕜' F'
k₁ : α → R
k₂ : α → 𝕜'
h₁ : ∀ᶠ (x : α) in l, ‖k₁ x‖ ≤ c * ‖k₂ x‖
h₂ : ∀ᶠ (x : α) in l, ‖f' x‖ ≤ c' * ‖g' x‖
a✝ : α
hx₁ : ‖k₁ a✝‖ ≤ c * ‖k₂ a✝‖
hx₂ : ‖f' a✝‖ ≤ c' * ‖g' a✝‖
⊢ ‖k₁ a✝ • f' a✝‖ ≤ c * c' * ‖k₂ a✝ • g' a✝‖
state_after: case h
α : Type u_1
β : Type u_2
E : Type u_3
F : Type u_4
G : Type u_5
E' : Type u_6
F' : Type u_7
G' : Type u_8
E'' : Type u_9
F'' : Type u_10
G'' : Type u_11
E''' : Type u_12
R : Type u_13
R' : Type u_14
𝕜 : Type u_15
𝕜' : Type u_16
inst✝¹⁷ : Norm E
inst✝¹⁶ : Norm F
inst✝¹⁵ : Norm G
inst✝¹⁴ : SeminormedAddCommGroup E'
inst✝¹³ : SeminormedAddCommGroup F'
inst✝¹² : SeminormedAddCommGroup G'
inst✝¹¹ : NormedAddCommGroup E''
inst✝¹⁰ : NormedAddCommGroup F''
inst✝⁹ : NormedAddCommGroup G''
inst✝⁸ : SeminormedRing R
inst✝⁷ : SeminormedAddGroup E'''
inst✝⁶ : SeminormedRing R'
inst✝⁵ : NormedDivisionRing 𝕜
inst✝⁴ : NormedDivisionRing 𝕜'
c c' c₁ c₂ : ℝ
f : α → E
g : α → F
k : α → G
f' : α → E'
g' : α → F'
k' : α → G'
f'' : α → E''
g'' : α → F''
k'' : α → G''
l l' : Filter α
inst✝³ : Module R E'
inst✝² : BoundedSMul R E'
inst✝¹ : Module 𝕜' F'
inst✝ : BoundedSMul 𝕜' F'
k₁ : α → R
k₂ : α → 𝕜'
h₁ : ∀ᶠ (x : α) in l, ‖k₁ x‖ ≤ c * ‖k₂ x‖
h₂ : ∀ᶠ (x : α) in l, ‖f' x‖ ≤ c' * ‖g' x‖
a✝ : α
hx₁ : ‖k₁ a✝‖ ≤ c * ‖k₂ a✝‖
hx₂ : ‖f' a✝‖ ≤ c' * ‖g' a✝‖
⊢ ‖k₁ a✝‖ * ‖f' a✝‖ ≤ c * c' * ‖k₂ a✝ • g' a✝‖
tactic: apply le_trans (norm_smul_le _ _)
state_before: case h
α : Type u_1
β : Type u_2
E : Type u_3
F : Type u_4
G : Type u_5
E' : Type u_6
F' : Type u_7
G' : Type u_8
E'' : Type u_9
F'' : Type u_10
G'' : Type u_11
E''' : Type u_12
R : Type u_13
R' : Type u_14
𝕜 : Type u_15
𝕜' : Type u_16
inst✝¹⁷ : Norm E
inst✝¹⁶ : Norm F
inst✝¹⁵ : Norm G
inst✝¹⁴ : SeminormedAddCommGroup E'
inst✝¹³ : SeminormedAddCommGroup F'
inst✝¹² : SeminormedAddCommGroup G'
inst✝¹¹ : NormedAddCommGroup E''
inst✝¹⁰ : NormedAddCommGroup F''
inst✝⁹ : NormedAddCommGroup G''
inst✝⁸ : SeminormedRing R
inst✝⁷ : SeminormedAddGroup E'''
inst✝⁶ : SeminormedRing R'
inst✝⁵ : NormedDivisionRing 𝕜
inst✝⁴ : NormedDivisionRing 𝕜'
c c' c₁ c₂ : ℝ
f : α → E
g : α → F
k : α → G
f' : α → E'
g' : α → F'
k' : α → G'
f'' : α → E''
g'' : α → F''
k'' : α → G''
l l' : Filter α
inst✝³ : Module R E'
inst✝² : BoundedSMul R E'
inst✝¹ : Module 𝕜' F'
inst✝ : BoundedSMul 𝕜' F'
k₁ : α → R
k₂ : α → 𝕜'
h₁ : ∀ᶠ (x : α) in l, ‖k₁ x‖ ≤ c * ‖k₂ x‖
h₂ : ∀ᶠ (x : α) in l, ‖f' x‖ ≤ c' * ‖g' x‖
a✝ : α
hx₁ : ‖k₁ a✝‖ ≤ c * ‖k₂ a✝‖
hx₂ : ‖f' a✝‖ ≤ c' * ‖g' a✝‖
⊢ ‖k₁ a✝‖ * ‖f' a✝‖ ≤ c * c' * ‖k₂ a✝ • g' a✝‖
state_after: case h.e'_4
α : Type u_1
β : Type u_2
E : Type u_3
F : Type u_4
G : Type u_5
E' : Type u_6
F' : Type u_7
G' : Type u_8
E'' : Type u_9
F'' : Type u_10
G'' : Type u_11
E''' : Type u_12
R : Type u_13
R' : Type u_14
𝕜 : Type u_15
𝕜' : Type u_16
inst✝¹⁷ : Norm E
inst✝¹⁶ : Norm F
inst✝¹⁵ : Norm G
inst✝¹⁴ : SeminormedAddCommGroup E'
inst✝¹³ : SeminormedAddCommGroup F'
inst✝¹² : SeminormedAddCommGroup G'
inst✝¹¹ : NormedAddCommGroup E''
inst✝¹⁰ : NormedAddCommGroup F''
inst✝⁹ : NormedAddCommGroup G''
inst✝⁸ : SeminormedRing R
inst✝⁷ : SeminormedAddGroup E'''
inst✝⁶ : SeminormedRing R'
inst✝⁵ : NormedDivisionRing 𝕜
inst✝⁴ : NormedDivisionRing 𝕜'
c c' c₁ c₂ : ℝ
f : α → E
g : α → F
k : α → G
f' : α → E'
g' : α → F'
k' : α → G'
f'' : α → E''
g'' : α → F''
k'' : α → G''
l l' : Filter α
inst✝³ : Module R E'
inst✝² : BoundedSMul R E'
inst✝¹ : Module 𝕜' F'
inst✝ : BoundedSMul 𝕜' F'
k₁ : α → R
k₂ : α → 𝕜'
h₁ : ∀ᶠ (x : α) in l, ‖k₁ x‖ ≤ c * ‖k₂ x‖
h₂ : ∀ᶠ (x : α) in l, ‖f' x‖ ≤ c' * ‖g' x‖
a✝ : α
hx₁ : ‖k₁ a✝‖ ≤ c * ‖k₂ a✝‖
hx₂ : ‖f' a✝‖ ≤ c' * ‖g' a✝‖
⊢ c * c' * ‖k₂ a✝ • g' a✝‖ = c * ‖k₂ a✝‖ * (c' * ‖g' a✝‖)
tactic: convert mul_le_mul hx₁ hx₂ (norm_nonneg _) (le_trans (norm_nonneg _) hx₁) using 1
state_before: case h.e'_4
α : Type u_1
β : Type u_2
E : Type u_3
F : Type u_4
G : Type u_5
E' : Type u_6
F' : Type u_7
G' : Type u_8
E'' : Type u_9
F'' : Type u_10
G'' : Type u_11
E''' : Type u_12
R : Type u_13
R' : Type u_14
𝕜 : Type u_15
𝕜' : Type u_16
inst✝¹⁷ : Norm E
inst✝¹⁶ : Norm F
inst✝¹⁵ : Norm G
inst✝¹⁴ : SeminormedAddCommGroup E'
inst✝¹³ : SeminormedAddCommGroup F'
inst✝¹² : SeminormedAddCommGroup G'
inst✝¹¹ : NormedAddCommGroup E''
inst✝¹⁰ : NormedAddCommGroup F''
inst✝⁹ : NormedAddCommGroup G''
inst✝⁸ : SeminormedRing R
inst✝⁷ : SeminormedAddGroup E'''
inst✝⁶ : SeminormedRing R'
inst✝⁵ : NormedDivisionRing 𝕜
inst✝⁴ : NormedDivisionRing 𝕜'
c c' c₁ c₂ : ℝ
f : α → E
g : α → F
k : α → G
f' : α → E'
g' : α → F'
k' : α → G'
f'' : α → E''
g'' : α → F''
k'' : α → G''
l l' : Filter α
inst✝³ : Module R E'
inst✝² : BoundedSMul R E'
inst✝¹ : Module 𝕜' F'
inst✝ : BoundedSMul 𝕜' F'
k₁ : α → R
k₂ : α → 𝕜'
h₁ : ∀ᶠ (x : α) in l, ‖k₁ x‖ ≤ c * ‖k₂ x‖
h₂ : ∀ᶠ (x : α) in l, ‖f' x‖ ≤ c' * ‖g' x‖
a✝ : α
hx₁ : ‖k₁ a✝‖ ≤ c * ‖k₂ a✝‖
hx₂ : ‖f' a✝‖ ≤ c' * ‖g' a✝‖
⊢ c * c' * ‖k₂ a✝ • g' a✝‖ = c * ‖k₂ a✝‖ * (c' * ‖g' a✝‖)
state_after: no goals
tactic: rw [norm_smul, mul_mul_mul_comm]