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

tactic: simp only [IsBigOWith_def] at *
state_before: α : Type u_1
β : Type ?u.73759
E : Type u_2
F : Type u_3
G : Type u_4
E' : Type ?u.73771
F' : Type ?u.73774
G' : Type ?u.73777
E'' : Type ?u.73780
F'' : Type ?u.73783
G'' : Type ?u.73786
R : Type ?u.73789
R' : Type ?u.73792
𝕜 : Type ?u.73795
𝕜' : Type ?u.73798
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✝² : SeminormedRing R'
inst✝¹ : NormedField 𝕜
inst✝ : NormedField 𝕜'
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 α
hfg : IsBigOWith c l f g
hgk : IsBigOWith c' l g k
hc : 0 ≤ c
⊢ IsBigOWith (c * c') l f k

tactic: filter_upwards [hfg, hgk]with x hx hx'
state_before: α : Type u_1
β : Type ?u.73759
E : Type u_2
F : Type u_3
G : Type u_4
E' : Type ?u.73771
F' : Type ?u.73774
G' : Type ?u.73777
E'' : Type ?u.73780
F'' : Type ?u.73783
G'' : Type ?u.73786
R : Type ?u.73789
R' : Type ?u.73792
𝕜 : Type ?u.73795
𝕜' : Type ?u.73798
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✝² : SeminormedRing R'
inst✝¹ : NormedField 𝕜
inst✝ : NormedField 𝕜'
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 α
hc : 0 ≤ c
hfg : ∀ᶠ (x : α) in l, ‖f x‖ ≤ c * ‖g x‖
hgk : ∀ᶠ (x : α) in l, ‖g x‖ ≤ c' * ‖k x‖
⊢ ∀ᶠ (x : α) in l, ‖f x‖ ≤ c * c' * ‖k x‖

tactic: calc
  ‖f x‖ ≤ c * ‖g x‖ := hx
  _ ≤ c * (c' * ‖k x‖) := by gcongr
  _ = c * c' * ‖k x‖ := (mul_assoc _ _ _).symm
state_before: case h
α : Type u_1
β : Type ?u.73759
E : Type u_2
F : Type u_3
G : Type u_4
E' : Type ?u.73771
F' : Type ?u.73774
G' : Type ?u.73777
E'' : Type ?u.73780
F'' : Type ?u.73783
G'' : Type ?u.73786
R : Type ?u.73789
R' : Type ?u.73792
𝕜 : Type ?u.73795
𝕜' : Type ?u.73798
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✝² : SeminormedRing R'
inst✝¹ : NormedField 𝕜
inst✝ : NormedField 𝕜'
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 α
hc : 0 ≤ c
hfg : ∀ᶠ (x : α) in l, ‖f x‖ ≤ c * ‖g x‖
hgk : ∀ᶠ (x : α) in l, ‖g x‖ ≤ c' * ‖k x‖
x : α
hx : ‖f x‖ ≤ c * ‖g x‖
hx' : ‖g x‖ ≤ c' * ‖k x‖
⊢ ‖f x‖ ≤ c * c' * ‖k x‖

tactic: gcongr
state_before: α : Type u_1
β : Type ?u.73759
E : Type u_2
F : Type u_3
G : Type u_4
E' : Type ?u.73771
F' : Type ?u.73774
G' : Type ?u.73777
E'' : Type ?u.73780
F'' : Type ?u.73783
G'' : Type ?u.73786
R : Type ?u.73789
R' : Type ?u.73792
𝕜 : Type ?u.73795
𝕜' : Type ?u.73798
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✝² : SeminormedRing R'
inst✝¹ : NormedField 𝕜
inst✝ : NormedField 𝕜'
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 α
hc : 0 ≤ c
hfg : ∀ᶠ (x : α) in l, ‖f x‖ ≤ c * ‖g x‖
hgk : ∀ᶠ (x : α) in l, ‖g x‖ ≤ c' * ‖k x‖
x : α
hx : ‖f x‖ ≤ c * ‖g x‖
hx' : ‖g x‖ ≤ c' * ‖k x‖
⊢ c * ‖g x‖ ≤ c * (c' * ‖k x‖)