Theorem: ContinuousLinearMap.tendsto_of_tendsto_pointwise_of_cauchySeq
File: Mathlib/Analysis/NormedSpace/OperatorNorm.lean

tactic: rcases cauchySeq_iff_le_tendsto_0.1 hf with ⟨b, hb₀, hfb, hb_lim⟩
state_before: 𝕜 : Type u_1
𝕜₂ : Type u_2
𝕜₃ : Type ?u.2884213
E : Type ?u.2884216
Eₗ : Type ?u.2884219
F : Type u_4
Fₗ : Type ?u.2884225
G : Type ?u.2884228
Gₗ : Type ?u.2884231
𝓕 : Type ?u.2884234
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedAddCommGroup F
inst✝¹¹ : NormedAddCommGroup G
inst✝¹⁰ : NormedAddCommGroup Fₗ
inst✝⁹ : NontriviallyNormedField 𝕜
inst✝⁸ : NontriviallyNormedField 𝕜₂
inst✝⁷ : NontriviallyNormedField 𝕜₃
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : NormedSpace 𝕜₂ F
inst✝⁴ : NormedSpace 𝕜₃ G
inst✝³ : NormedSpace 𝕜 Fₗ
c : 𝕜
σ₁₂ : 𝕜 →+* 𝕜₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
f✝ g✝ : E →SL[σ₁₂] F
x y z : E
E' : Type u_3
inst✝² : SeminormedAddCommGroup E'
inst✝¹ : NormedSpace 𝕜 E'
inst✝ : RingHomIsometric σ₁₂
f : ℕ → E' →SL[σ₁₂] F
g : E' →SL[σ₁₂] F
hg : Tendsto (fun n x => ↑(f n) x) atTop (𝓝 ↑g)
hf : CauchySeq f
⊢ Tendsto f atTop (𝓝 g)

tactic: suffices : ∀ n x, ‖f n x - g x‖ ≤ b n * ‖x‖
state_before: case intro.intro.intro
𝕜 : Type u_1
𝕜₂ : Type u_2
𝕜₃ : Type ?u.2884213
E : Type ?u.2884216
Eₗ : Type ?u.2884219
F : Type u_4
Fₗ : Type ?u.2884225
G : Type ?u.2884228
Gₗ : Type ?u.2884231
𝓕 : Type ?u.2884234
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedAddCommGroup F
inst✝¹¹ : NormedAddCommGroup G
inst✝¹⁰ : NormedAddCommGroup Fₗ
inst✝⁹ : NontriviallyNormedField 𝕜
inst✝⁸ : NontriviallyNormedField 𝕜₂
inst✝⁷ : NontriviallyNormedField 𝕜₃
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : NormedSpace 𝕜₂ F
inst✝⁴ : NormedSpace 𝕜₃ G
inst✝³ : NormedSpace 𝕜 Fₗ
c : 𝕜
σ₁₂ : 𝕜 →+* 𝕜₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
f✝ g✝ : E →SL[σ₁₂] F
x y z : E
E' : Type u_3
inst✝² : SeminormedAddCommGroup E'
inst✝¹ : NormedSpace 𝕜 E'
inst✝ : RingHomIsometric σ₁₂
f : ℕ → E' →SL[σ₁₂] F
g : E' →SL[σ₁₂] F
hg : Tendsto (fun n x => ↑(f n) x) atTop (𝓝 ↑g)
hf : CauchySeq f
b : ℕ → ℝ
hb₀ : ∀ (n : ℕ), 0 ≤ b n
hfb : ∀ (n m N : ℕ), N ≤ n → N ≤ m → dist (f n) (f m) ≤ b N
hb_lim : Tendsto b atTop (𝓝 0)
⊢ Tendsto f atTop (𝓝 g)

tactic: exact tendsto_iff_norm_tendsto_zero.2
  (squeeze_zero (fun n => norm_nonneg _) (fun n => op_norm_le_bound _ (hb₀ n) (this n)) hb_lim)
state_before: case intro.intro.intro
𝕜 : Type u_1
𝕜₂ : Type u_2
𝕜₃ : Type ?u.2884213
E : Type ?u.2884216
Eₗ : Type ?u.2884219
F : Type u_4
Fₗ : Type ?u.2884225
G : Type ?u.2884228
Gₗ : Type ?u.2884231
𝓕 : Type ?u.2884234
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedAddCommGroup F
inst✝¹¹ : NormedAddCommGroup G
inst✝¹⁰ : NormedAddCommGroup Fₗ
inst✝⁹ : NontriviallyNormedField 𝕜
inst✝⁸ : NontriviallyNormedField 𝕜₂
inst✝⁷ : NontriviallyNormedField 𝕜₃
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : NormedSpace 𝕜₂ F
inst✝⁴ : NormedSpace 𝕜₃ G
inst✝³ : NormedSpace 𝕜 Fₗ
c : 𝕜
σ₁₂ : 𝕜 →+* 𝕜₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
f✝ g✝ : E →SL[σ₁₂] F
x y z : E
E' : Type u_3
inst✝² : SeminormedAddCommGroup E'
inst✝¹ : NormedSpace 𝕜 E'
inst✝ : RingHomIsometric σ₁₂
f : ℕ → E' →SL[σ₁₂] F
g : E' →SL[σ₁₂] F
hg : Tendsto (fun n x => ↑(f n) x) atTop (𝓝 ↑g)
hf : CauchySeq f
b : ℕ → ℝ
hb₀ : ∀ (n : ℕ), 0 ≤ b n
hfb : ∀ (n m N : ℕ), N ≤ n → N ≤ m → dist (f n) (f m) ≤ b N
hb_lim : Tendsto b atTop (𝓝 0)
this : ∀ (n : ℕ) (x : E'), ‖↑(f n) x - ↑g x‖ ≤ b n * ‖x‖
⊢ Tendsto f atTop (𝓝 g)

case this
𝕜 : Type u_1
𝕜₂ : Type u_2
𝕜₃ : Type ?u.2884213
E : Type ?u.2884216
Eₗ : Type ?u.2884219
F : Type u_4
Fₗ : Type ?u.2884225
G : Type ?u.2884228
Gₗ : Type ?u.2884231
𝓕 : Type ?u.2884234
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedAddCommGroup F
inst✝¹¹ : NormedAddCommGroup G
inst✝¹⁰ : NormedAddCommGroup Fₗ
inst✝⁹ : NontriviallyNormedField 𝕜
inst✝⁸ : NontriviallyNormedField 𝕜₂
inst✝⁷ : NontriviallyNormedField 𝕜₃
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : NormedSpace 𝕜₂ F
inst✝⁴ : NormedSpace 𝕜₃ G
inst✝³ : NormedSpace 𝕜 Fₗ
c : 𝕜
σ₁₂ : 𝕜 →+* 𝕜₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
f✝ g✝ : E →SL[σ₁₂] F
x y z : E
E' : Type u_3
inst✝² : SeminormedAddCommGroup E'
inst✝¹ : NormedSpace 𝕜 E'
inst✝ : RingHomIsometric σ₁₂
f : ℕ → E' →SL[σ₁₂] F
g : E' →SL[σ₁₂] F
hg : Tendsto (fun n x => ↑(f n) x) atTop (𝓝 ↑g)
hf : CauchySeq f
b : ℕ → ℝ
hb₀ : ∀ (n : ℕ), 0 ≤ b n
hfb : ∀ (n m N : ℕ), N ≤ n → N ≤ m → dist (f n) (f m) ≤ b N
hb_lim : Tendsto b atTop (𝓝 0)
⊢ ∀ (n : ℕ) (x : E'), ‖↑(f n) x - ↑g x‖ ≤ b n * ‖x‖

tactic: intro n x
state_before: case this
𝕜 : Type u_1
𝕜₂ : Type u_2
𝕜₃ : Type ?u.2884213
E : Type ?u.2884216
Eₗ : Type ?u.2884219
F : Type u_4
Fₗ : Type ?u.2884225
G : Type ?u.2884228
Gₗ : Type ?u.2884231
𝓕 : Type ?u.2884234
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedAddCommGroup F
inst✝¹¹ : NormedAddCommGroup G
inst✝¹⁰ : NormedAddCommGroup Fₗ
inst✝⁹ : NontriviallyNormedField 𝕜
inst✝⁸ : NontriviallyNormedField 𝕜₂
inst✝⁷ : NontriviallyNormedField 𝕜₃
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : NormedSpace 𝕜₂ F
inst✝⁴ : NormedSpace 𝕜₃ G
inst✝³ : NormedSpace 𝕜 Fₗ
c : 𝕜
σ₁₂ : 𝕜 →+* 𝕜₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
f✝ g✝ : E →SL[σ₁₂] F
x y z : E
E' : Type u_3
inst✝² : SeminormedAddCommGroup E'
inst✝¹ : NormedSpace 𝕜 E'
inst✝ : RingHomIsometric σ₁₂
f : ℕ → E' →SL[σ₁₂] F
g : E' →SL[σ₁₂] F
hg : Tendsto (fun n x => ↑(f n) x) atTop (𝓝 ↑g)
hf : CauchySeq f
b : ℕ → ℝ
hb₀ : ∀ (n : ℕ), 0 ≤ b n
hfb : ∀ (n m N : ℕ), N ≤ n → N ≤ m → dist (f n) (f m) ≤ b N
hb_lim : Tendsto b atTop (𝓝 0)
⊢ ∀ (n : ℕ) (x : E'), ‖↑(f n) x - ↑g x‖ ≤ b n * ‖x‖

tactic: have : Tendsto (fun m => ‖f n x - f m x‖) atTop (𝓝 ‖f n x - g x‖) :=
  (tendsto_const_nhds.sub <| tendsto_pi_nhds.1 hg _).norm
state_before: case this
𝕜 : Type u_1
𝕜₂ : Type u_2
𝕜₃ : Type ?u.2884213
E : Type ?u.2884216
Eₗ : Type ?u.2884219
F : Type u_4
Fₗ : Type ?u.2884225
G : Type ?u.2884228
Gₗ : Type ?u.2884231
𝓕 : Type ?u.2884234
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedAddCommGroup F
inst✝¹¹ : NormedAddCommGroup G
inst✝¹⁰ : NormedAddCommGroup Fₗ
inst✝⁹ : NontriviallyNormedField 𝕜
inst✝⁸ : NontriviallyNormedField 𝕜₂
inst✝⁷ : NontriviallyNormedField 𝕜₃
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : NormedSpace 𝕜₂ F
inst✝⁴ : NormedSpace 𝕜₃ G
inst✝³ : NormedSpace 𝕜 Fₗ
c : 𝕜
σ₁₂ : 𝕜 →+* 𝕜₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
f✝ g✝ : E →SL[σ₁₂] F
x✝ y z : E
E' : Type u_3
inst✝² : SeminormedAddCommGroup E'
inst✝¹ : NormedSpace 𝕜 E'
inst✝ : RingHomIsometric σ₁₂
f : ℕ → E' →SL[σ₁₂] F
g : E' →SL[σ₁₂] F
hg : Tendsto (fun n x => ↑(f n) x) atTop (𝓝 ↑g)
hf : CauchySeq f
b : ℕ → ℝ
hb₀ : ∀ (n : ℕ), 0 ≤ b n
hfb : ∀ (n m N : ℕ), N ≤ n → N ≤ m → dist (f n) (f m) ≤ b N
hb_lim : Tendsto b atTop (𝓝 0)
n : ℕ
x : E'
⊢ ‖↑(f n) x - ↑g x‖ ≤ b n * ‖x‖

tactic: refine' le_of_tendsto this (eventually_atTop.2 ⟨n, fun m hm => _⟩)
state_before: case this
𝕜 : Type u_1
𝕜₂ : Type u_2
𝕜₃ : Type ?u.2884213
E : Type ?u.2884216
Eₗ : Type ?u.2884219
F : Type u_4
Fₗ : Type ?u.2884225
G : Type ?u.2884228
Gₗ : Type ?u.2884231
𝓕 : Type ?u.2884234
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedAddCommGroup F
inst✝¹¹ : NormedAddCommGroup G
inst✝¹⁰ : NormedAddCommGroup Fₗ
inst✝⁹ : NontriviallyNormedField 𝕜
inst✝⁸ : NontriviallyNormedField 𝕜₂
inst✝⁷ : NontriviallyNormedField 𝕜₃
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : NormedSpace 𝕜₂ F
inst✝⁴ : NormedSpace 𝕜₃ G
inst✝³ : NormedSpace 𝕜 Fₗ
c : 𝕜
σ₁₂ : 𝕜 →+* 𝕜₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
f✝ g✝ : E →SL[σ₁₂] F
x✝ y z : E
E' : Type u_3
inst✝² : SeminormedAddCommGroup E'
inst✝¹ : NormedSpace 𝕜 E'
inst✝ : RingHomIsometric σ₁₂
f : ℕ → E' →SL[σ₁₂] F
g : E' →SL[σ₁₂] F
hg : Tendsto (fun n x => ↑(f n) x) atTop (𝓝 ↑g)
hf : CauchySeq f
b : ℕ → ℝ
hb₀ : ∀ (n : ℕ), 0 ≤ b n
hfb : ∀ (n m N : ℕ), N ≤ n → N ≤ m → dist (f n) (f m) ≤ b N
hb_lim : Tendsto b atTop (𝓝 0)
n : ℕ
x : E'
this : Tendsto (fun m => ‖↑(f n) x - ↑(f m) x‖) atTop (𝓝 ‖↑(f n) x - ↑g x‖)
⊢ ‖↑(f n) x - ↑g x‖ ≤ b n * ‖x‖

tactic: exact (f n - f m).le_of_op_norm_le (hfb _ _ _ le_rfl hm) _
state_before: case this
𝕜 : Type u_1
𝕜₂ : Type u_2
𝕜₃ : Type ?u.2884213
E : Type ?u.2884216
Eₗ : Type ?u.2884219
F : Type u_4
Fₗ : Type ?u.2884225
G : Type ?u.2884228
Gₗ : Type ?u.2884231
𝓕 : Type ?u.2884234
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedAddCommGroup F
inst✝¹¹ : NormedAddCommGroup G
inst✝¹⁰ : NormedAddCommGroup Fₗ
inst✝⁹ : NontriviallyNormedField 𝕜
inst✝⁸ : NontriviallyNormedField 𝕜₂
inst✝⁷ : NontriviallyNormedField 𝕜₃
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : NormedSpace 𝕜₂ F
inst✝⁴ : NormedSpace 𝕜₃ G
inst✝³ : NormedSpace 𝕜 Fₗ
c : 𝕜
σ₁₂ : 𝕜 →+* 𝕜₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
f✝ g✝ : E →SL[σ₁₂] F
x✝ y z : E
E' : Type u_3
inst✝² : SeminormedAddCommGroup E'
inst✝¹ : NormedSpace 𝕜 E'
inst✝ : RingHomIsometric σ₁₂
f : ℕ → E' →SL[σ₁₂] F
g : E' →SL[σ₁₂] F
hg : Tendsto (fun n x => ↑(f n) x) atTop (𝓝 ↑g)
hf : CauchySeq f
b : ℕ → ℝ
hb₀ : ∀ (n : ℕ), 0 ≤ b n
hfb : ∀ (n m N : ℕ), N ≤ n → N ≤ m → dist (f n) (f m) ≤ b N
hb_lim : Tendsto b atTop (𝓝 0)
n : ℕ
x : E'
this : Tendsto (fun m => ‖↑(f n) x - ↑(f m) x‖) atTop (𝓝 ‖↑(f n) x - ↑g x‖)
m : ℕ
hm : m ≥ n
⊢ ‖↑(f n) x - ↑(f m) x‖ ≤ b n * ‖x‖