Theorem: LinearMap.continuous_of_seq_closed_graph
File: Mathlib/Analysis/NormedSpace/Banach.lean

tactic: refine' g.continuous_of_isClosed_graph (IsSeqClosed.isClosed _)
state_before: 𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
g : E →ₗ[𝕜] F
hg : ∀ (u : ℕ → E) (x : E) (y : F), Tendsto u atTop (𝓝 x) → Tendsto (↑g ∘ u) atTop (𝓝 y) → y = ↑g x
⊢ Continuous ↑g

tactic: rintro φ ⟨x, y⟩ hφg hφ
state_before: 𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
g : E →ₗ[𝕜] F
hg : ∀ (u : ℕ → E) (x : E) (y : F), Tendsto u atTop (𝓝 x) → Tendsto (↑g ∘ u) atTop (𝓝 y) → y = ↑g x
⊢ IsSeqClosed ↑(graph g)

tactic: refine' hg (Prod.fst ∘ φ) x y ((continuous_fst.tendsto _).comp hφ) _
state_before: case mk
𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
g : E →ₗ[𝕜] F
hg : ∀ (u : ℕ → E) (x : E) (y : F), Tendsto u atTop (𝓝 x) → Tendsto (↑g ∘ u) atTop (𝓝 y) → y = ↑g x
φ : ℕ → E × F
x : E
y : F
hφg : ∀ (n : ℕ), φ n ∈ ↑(graph g)
hφ : Tendsto φ atTop (𝓝 (x, y))
⊢ (x, y) ∈ ↑(graph g)

tactic: have : g ∘ Prod.fst ∘ φ = Prod.snd ∘ φ := by
  ext n
  exact (hφg n).symm
state_before: case mk
𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
g : E →ₗ[𝕜] F
hg : ∀ (u : ℕ → E) (x : E) (y : F), Tendsto u atTop (𝓝 x) → Tendsto (↑g ∘ u) atTop (𝓝 y) → y = ↑g x
φ : ℕ → E × F
x : E
y : F
hφg : ∀ (n : ℕ), φ n ∈ ↑(graph g)
hφ : Tendsto φ atTop (𝓝 (x, y))
⊢ Tendsto (↑g ∘ Prod.fst ∘ φ) atTop (𝓝 y)

tactic: rw [this]
state_before: case mk
𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
g : E →ₗ[𝕜] F
hg : ∀ (u : ℕ → E) (x : E) (y : F), Tendsto u atTop (𝓝 x) → Tendsto (↑g ∘ u) atTop (𝓝 y) → y = ↑g x
φ : ℕ → E × F
x : E
y : F
hφg : ∀ (n : ℕ), φ n ∈ ↑(graph g)
hφ : Tendsto φ atTop (𝓝 (x, y))
this : ↑g ∘ Prod.fst ∘ φ = Prod.snd ∘ φ
⊢ Tendsto (↑g ∘ Prod.fst ∘ φ) atTop (𝓝 y)

tactic: exact (continuous_snd.tendsto _).comp hφ
state_before: case mk
𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
g : E →ₗ[𝕜] F
hg : ∀ (u : ℕ → E) (x : E) (y : F), Tendsto u atTop (𝓝 x) → Tendsto (↑g ∘ u) atTop (𝓝 y) → y = ↑g x
φ : ℕ → E × F
x : E
y : F
hφg : ∀ (n : ℕ), φ n ∈ ↑(graph g)
hφ : Tendsto φ atTop (𝓝 (x, y))
this : ↑g ∘ Prod.fst ∘ φ = Prod.snd ∘ φ
⊢ Tendsto (Prod.snd ∘ φ) atTop (𝓝 y)

tactic: ext n
state_before: 𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
g : E →ₗ[𝕜] F
hg : ∀ (u : ℕ → E) (x : E) (y : F), Tendsto u atTop (𝓝 x) → Tendsto (↑g ∘ u) atTop (𝓝 y) → y = ↑g x
φ : ℕ → E × F
x : E
y : F
hφg : ∀ (n : ℕ), φ n ∈ ↑(graph g)
hφ : Tendsto φ atTop (𝓝 (x, y))
⊢ ↑g ∘ Prod.fst ∘ φ = Prod.snd ∘ φ

tactic: exact (hφg n).symm
state_before: case h
𝕜 : Type u_3
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
f : E →L[𝕜] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
g : E →ₗ[𝕜] F
hg : ∀ (u : ℕ → E) (x : E) (y : F), Tendsto u atTop (𝓝 x) → Tendsto (↑g ∘ u) atTop (𝓝 y) → y = ↑g x
φ : ℕ → E × F
x : E
y : F
hφg : ∀ (n : ℕ), φ n ∈ ↑(graph g)
hφ : Tendsto φ atTop (𝓝 (x, y))
n : ℕ
⊢ (↑g ∘ Prod.fst ∘ φ) n = (Prod.snd ∘ φ) n