Theorem: SeparatingDual.completeSpace_of_completeSpace_continuousLinearMap
File: Mathlib/Analysis/NormedSpace/HahnBanach/SeparatingDual.lean

Proof steps:
state_before: R : Type u_1
V : Type u_2
inst✝¹⁵ : Field R
inst✝¹⁴ : AddCommGroup V
inst✝¹³ : TopologicalSpace R
inst✝¹² : TopologicalSpace V
inst✝¹¹ : TopologicalRing R
inst✝¹⁰ : TopologicalAddGroup V
inst✝⁹ : Module R V
inst✝⁸ : SeparatingDual R V
𝕜 : Type u_3
E : Type u_4
F : Type u_5
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : SeparatingDual 𝕜 E
inst✝¹ : Nontrivial E
inst✝ : CompleteSpace (E →L[𝕜] F)
⊢ CompleteSpace F
state_after: R : Type u_1
V : Type u_2
inst✝¹⁵ : Field R
inst✝¹⁴ : AddCommGroup V
inst✝¹³ : TopologicalSpace R
inst✝¹² : TopologicalSpace V
inst✝¹¹ : TopologicalRing R
inst✝¹⁰ : TopologicalAddGroup V
inst✝⁹ : Module R V
inst✝⁸ : SeparatingDual R V
𝕜 : Type u_3
E : Type u_4
F : Type u_5
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : SeparatingDual 𝕜 E
inst✝¹ : Nontrivial E
inst✝ : CompleteSpace (E →L[𝕜] F)
f : ℕ → F
hf : CauchySeq f
⊢ ∃ a, Tendsto f atTop (𝓝 a)
tactic: refine Metric.complete_of_cauchySeq_tendsto fun f hf => ?_
state_before: R : Type u_1
V : Type u_2
inst✝¹⁵ : Field R
inst✝¹⁴ : AddCommGroup V
inst✝¹³ : TopologicalSpace R
inst✝¹² : TopologicalSpace V
inst✝¹¹ : TopologicalRing R
inst✝¹⁰ : TopologicalAddGroup V
inst✝⁹ : Module R V
inst✝⁸ : SeparatingDual R V
𝕜 : Type u_3
E : Type u_4
F : Type u_5
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : SeparatingDual 𝕜 E
inst✝¹ : Nontrivial E
inst✝ : CompleteSpace (E →L[𝕜] F)
f : ℕ → F
hf : CauchySeq f
⊢ ∃ a, Tendsto f atTop (𝓝 a)
state_after: case intro
R : Type u_1
V : Type u_2
inst✝¹⁵ : Field R
inst✝¹⁴ : AddCommGroup V
inst✝¹³ : TopologicalSpace R
inst✝¹² : TopologicalSpace V
inst✝¹¹ : TopologicalRing R
inst✝¹⁰ : TopologicalAddGroup V
inst✝⁹ : Module R V
inst✝⁸ : SeparatingDual R V
𝕜 : Type u_3
E : Type u_4
F : Type u_5
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : SeparatingDual 𝕜 E
inst✝¹ : Nontrivial E
inst✝ : CompleteSpace (E →L[𝕜] F)
f : ℕ → F
hf : CauchySeq f
v : E
hv : v ≠ 0
⊢ ∃ a, Tendsto f atTop (𝓝 a)
tactic: obtain ⟨v, hv⟩ : ∃ (v : E), v ≠ 0 := exists_ne 0
state_before: case intro
R : Type u_1
V : Type u_2
inst✝¹⁵ : Field R
inst✝¹⁴ : AddCommGroup V
inst✝¹³ : TopologicalSpace R
inst✝¹² : TopologicalSpace V
inst✝¹¹ : TopologicalRing R
inst✝¹⁰ : TopologicalAddGroup V
inst✝⁹ : Module R V
inst✝⁸ : SeparatingDual R V
𝕜 : Type u_3
E : Type u_4
F : Type u_5
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : SeparatingDual 𝕜 E
inst✝¹ : Nontrivial E
inst✝ : CompleteSpace (E →L[𝕜] F)
f : ℕ → F
hf : CauchySeq f
v : E
hv : v ≠ 0
⊢ ∃ a, Tendsto f atTop (𝓝 a)
state_after: case intro.intro
R : Type u_1
V : Type u_2
inst✝¹⁵ : Field R
inst✝¹⁴ : AddCommGroup V
inst✝¹³ : TopologicalSpace R
inst✝¹² : TopologicalSpace V
inst✝¹¹ : TopologicalRing R
inst✝¹⁰ : TopologicalAddGroup V
inst✝⁹ : Module R V
inst✝⁸ : SeparatingDual R V
𝕜 : Type u_3
E : Type u_4
F : Type u_5
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : SeparatingDual 𝕜 E
inst✝¹ : Nontrivial E
inst✝ : CompleteSpace (E →L[𝕜] F)
f : ℕ → F
hf : CauchySeq f
v : E
hv : v ≠ 0
φ : E →L[𝕜] 𝕜
hφ : φ v = 1
⊢ ∃ a, Tendsto f atTop (𝓝 a)
tactic: obtain ⟨φ, hφ⟩ : ∃ φ : E →L[𝕜] 𝕜, φ v = 1 := exists_eq_one hv
state_before: case intro.intro
R : Type u_1
V : Type u_2
inst✝¹⁵ : Field R
inst✝¹⁴ : AddCommGroup V
inst✝¹³ : TopologicalSpace R
inst✝¹² : TopologicalSpace V
inst✝¹¹ : TopologicalRing R
inst✝¹⁰ : TopologicalAddGroup V
inst✝⁹ : Module R V
inst✝⁸ : SeparatingDual R V
𝕜 : Type u_3
E : Type u_4
F : Type u_5
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : SeparatingDual 𝕜 E
inst✝¹ : Nontrivial E
inst✝ : CompleteSpace (E →L[𝕜] F)
f : ℕ → F
hf : CauchySeq f
v : E
hv : v ≠ 0
φ : E →L[𝕜] 𝕜
hφ : φ v = 1
⊢ ∃ a, Tendsto f atTop (𝓝 a)
state_after: case intro.intro
R : Type u_1
V : Type u_2
inst✝¹⁵ : Field R
inst✝¹⁴ : AddCommGroup V
inst✝¹³ : TopologicalSpace R
inst✝¹² : TopologicalSpace V
inst✝¹¹ : TopologicalRing R
inst✝¹⁰ : TopologicalAddGroup V
inst✝⁹ : Module R V
inst✝⁸ : SeparatingDual R V
𝕜 : Type u_3
E : Type u_4
F : Type u_5
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : SeparatingDual 𝕜 E
inst✝¹ : Nontrivial E
inst✝ : CompleteSpace (E →L[𝕜] F)
f : ℕ → F
hf : CauchySeq f
v : E
hv : v ≠ 0
φ : E →L[𝕜] 𝕜
hφ : φ v = 1
g : ℕ → E →L[𝕜] F := fun n => ((ContinuousLinearMap.smulRightL 𝕜 E F) φ) (f n)
⊢ ∃ a, Tendsto f atTop (𝓝 a)
tactic: let g : ℕ → (E →L[𝕜] F) := fun n ↦ ContinuousLinearMap.smulRightL 𝕜 E F φ (f n)
state_before: case intro.intro
R : Type u_1
V : Type u_2
inst✝¹⁵ : Field R
inst✝¹⁴ : AddCommGroup V
inst✝¹³ : TopologicalSpace R
inst✝¹² : TopologicalSpace V
inst✝¹¹ : TopologicalRing R
inst✝¹⁰ : TopologicalAddGroup V
inst✝⁹ : Module R V
inst✝⁸ : SeparatingDual R V
𝕜 : Type u_3
E : Type u_4
F : Type u_5
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : SeparatingDual 𝕜 E
inst✝¹ : Nontrivial E
inst✝ : CompleteSpace (E →L[𝕜] F)
f : ℕ → F
hf : CauchySeq f
v : E
hv : v ≠ 0
φ : E →L[𝕜] 𝕜
hφ : φ v = 1
g : ℕ → E →L[𝕜] F := fun n => ((ContinuousLinearMap.smulRightL 𝕜 E F) φ) (f n)
⊢ ∃ a, Tendsto f atTop (𝓝 a)
state_after: case intro.intro
R : Type u_1
V : Type u_2
inst✝¹⁵ : Field R
inst✝¹⁴ : AddCommGroup V
inst✝¹³ : TopologicalSpace R
inst✝¹² : TopologicalSpace V
inst✝¹¹ : TopologicalRing R
inst✝¹⁰ : TopologicalAddGroup V
inst✝⁹ : Module R V
inst✝⁸ : SeparatingDual R V
𝕜 : Type u_3
E : Type u_4
F : Type u_5
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : SeparatingDual 𝕜 E
inst✝¹ : Nontrivial E
inst✝ : CompleteSpace (E →L[𝕜] F)
f : ℕ → F
hf : CauchySeq f
v : E
hv : v ≠ 0
φ : E →L[𝕜] 𝕜
hφ : φ v = 1
g : ℕ → E →L[𝕜] F := fun n => ((ContinuousLinearMap.smulRightL 𝕜 E F) φ) (f n)
this : CauchySeq g
⊢ ∃ a, Tendsto f atTop (𝓝 a)
tactic: have : CauchySeq g := (ContinuousLinearMap.smulRightL 𝕜 E F φ).lipschitz.cauchySeq_comp hf
state_before: case intro.intro
R : Type u_1
V : Type u_2
inst✝¹⁵ : Field R
inst✝¹⁴ : AddCommGroup V
inst✝¹³ : TopologicalSpace R
inst✝¹² : TopologicalSpace V
inst✝¹¹ : TopologicalRing R
inst✝¹⁰ : TopologicalAddGroup V
inst✝⁹ : Module R V
inst✝⁸ : SeparatingDual R V
𝕜 : Type u_3
E : Type u_4
F : Type u_5
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : SeparatingDual 𝕜 E
inst✝¹ : Nontrivial E
inst✝ : CompleteSpace (E →L[𝕜] F)
f : ℕ → F
hf : CauchySeq f
v : E
hv : v ≠ 0
φ : E →L[𝕜] 𝕜
hφ : φ v = 1
g : ℕ → E →L[𝕜] F := fun n => ((ContinuousLinearMap.smulRightL 𝕜 E F) φ) (f n)
this : CauchySeq g
⊢ ∃ a, Tendsto f atTop (𝓝 a)
state_after: case intro.intro.intro
R : Type u_1
V : Type u_2
inst✝¹⁵ : Field R
inst✝¹⁴ : AddCommGroup V
inst✝¹³ : TopologicalSpace R
inst✝¹² : TopologicalSpace V
inst✝¹¹ : TopologicalRing R
inst✝¹⁰ : TopologicalAddGroup V
inst✝⁹ : Module R V
inst✝⁸ : SeparatingDual R V
𝕜 : Type u_3
E : Type u_4
F : Type u_5
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : SeparatingDual 𝕜 E
inst✝¹ : Nontrivial E
inst✝ : CompleteSpace (E →L[𝕜] F)
f : ℕ → F
hf : CauchySeq f
v : E
hv : v ≠ 0
φ : E →L[𝕜] 𝕜
hφ : φ v = 1
g : ℕ → E →L[𝕜] F := fun n => ((ContinuousLinearMap.smulRightL 𝕜 E F) φ) (f n)
this : CauchySeq g
a : E →L[𝕜] F
ha : Tendsto g atTop (𝓝 a)
⊢ ∃ a, Tendsto f atTop (𝓝 a)
tactic: obtain ⟨a, ha⟩ : ∃ a, Tendsto g atTop (𝓝 a) := cauchy_iff_exists_le_nhds.mp this
state_before: case intro.intro.intro
R : Type u_1
V : Type u_2
inst✝¹⁵ : Field R
inst✝¹⁴ : AddCommGroup V
inst✝¹³ : TopologicalSpace R
inst✝¹² : TopologicalSpace V
inst✝¹¹ : TopologicalRing R
inst✝¹⁰ : TopologicalAddGroup V
inst✝⁹ : Module R V
inst✝⁸ : SeparatingDual R V
𝕜 : Type u_3
E : Type u_4
F : Type u_5
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : SeparatingDual 𝕜 E
inst✝¹ : Nontrivial E
inst✝ : CompleteSpace (E →L[𝕜] F)
f : ℕ → F
hf : CauchySeq f
v : E
hv : v ≠ 0
φ : E →L[𝕜] 𝕜
hφ : φ v = 1
g : ℕ → E →L[𝕜] F := fun n => ((ContinuousLinearMap.smulRightL 𝕜 E F) φ) (f n)
this : CauchySeq g
a : E →L[𝕜] F
ha : Tendsto g atTop (𝓝 a)
⊢ ∃ a, Tendsto f atTop (𝓝 a)
state_after: case intro.intro.intro
R : Type u_1
V : Type u_2
inst✝¹⁵ : Field R
inst✝¹⁴ : AddCommGroup V
inst✝¹³ : TopologicalSpace R
inst✝¹² : TopologicalSpace V
inst✝¹¹ : TopologicalRing R
inst✝¹⁰ : TopologicalAddGroup V
inst✝⁹ : Module R V
inst✝⁸ : SeparatingDual R V
𝕜 : Type u_3
E : Type u_4
F : Type u_5
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : SeparatingDual 𝕜 E
inst✝¹ : Nontrivial E
inst✝ : CompleteSpace (E →L[𝕜] F)
f : ℕ → F
hf : CauchySeq f
v : E
hv : v ≠ 0
φ : E →L[𝕜] 𝕜
hφ : φ v = 1
g : ℕ → E →L[𝕜] F := fun n => ((ContinuousLinearMap.smulRightL 𝕜 E F) φ) (f n)
this : CauchySeq g
a : E →L[𝕜] F
ha : Tendsto g atTop (𝓝 a)
⊢ Tendsto f atTop (𝓝 (a v))
tactic: refine ⟨a v, ?_⟩
state_before: case intro.intro.intro
R : Type u_1
V : Type u_2
inst✝¹⁵ : Field R
inst✝¹⁴ : AddCommGroup V
inst✝¹³ : TopologicalSpace R
inst✝¹² : TopologicalSpace V
inst✝¹¹ : TopologicalRing R
inst✝¹⁰ : TopologicalAddGroup V
inst✝⁹ : Module R V
inst✝⁸ : SeparatingDual R V
𝕜 : Type u_3
E : Type u_4
F : Type u_5
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : SeparatingDual 𝕜 E
inst✝¹ : Nontrivial E
inst✝ : CompleteSpace (E →L[𝕜] F)
f : ℕ → F
hf : CauchySeq f
v : E
hv : v ≠ 0
φ : E →L[𝕜] 𝕜
hφ : φ v = 1
g : ℕ → E →L[𝕜] F := fun n => ((ContinuousLinearMap.smulRightL 𝕜 E F) φ) (f n)
this : CauchySeq g
a : E →L[𝕜] F
ha : Tendsto g atTop (𝓝 a)
⊢ Tendsto f atTop (𝓝 (a v))
state_after: case intro.intro.intro
R : Type u_1
V : Type u_2
inst✝¹⁵ : Field R
inst✝¹⁴ : AddCommGroup V
inst✝¹³ : TopologicalSpace R
inst✝¹² : TopologicalSpace V
inst✝¹¹ : TopologicalRing R
inst✝¹⁰ : TopologicalAddGroup V
inst✝⁹ : Module R V
inst✝⁸ : SeparatingDual R V
𝕜 : Type u_3
E : Type u_4
F : Type u_5
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : SeparatingDual 𝕜 E
inst✝¹ : Nontrivial E
inst✝ : CompleteSpace (E →L[𝕜] F)
f : ℕ → F
hf : CauchySeq f
v : E
hv : v ≠ 0
φ : E →L[𝕜] 𝕜
hφ : φ v = 1
g : ℕ → E →L[𝕜] F := fun n => ((ContinuousLinearMap.smulRightL 𝕜 E F) φ) (f n)
this✝ : CauchySeq g
a : E →L[𝕜] F
ha : Tendsto g atTop (𝓝 a)
this : Tendsto (fun n => (g n) v) atTop (𝓝 (a v))
⊢ Tendsto f atTop (𝓝 (a v))
tactic: have : Tendsto (fun n ↦ g n v) atTop (𝓝 (a v)) := by
    have : Continuous (fun (i : E →L[𝕜] F) ↦ i v) := by fun_prop
    exact (this.tendsto _).comp ha
state_before: case intro.intro.intro
R : Type u_1
V : Type u_2
inst✝¹⁵ : Field R
inst✝¹⁴ : AddCommGroup V
inst✝¹³ : TopologicalSpace R
inst✝¹² : TopologicalSpace V
inst✝¹¹ : TopologicalRing R
inst✝¹⁰ : TopologicalAddGroup V
inst✝⁹ : Module R V
inst✝⁸ : SeparatingDual R V
𝕜 : Type u_3
E : Type u_4
F : Type u_5
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
inst✝² : SeparatingDual 𝕜 E
inst✝¹ : Nontrivial E
inst✝ : CompleteSpace (E →L[𝕜] F)
f : ℕ → F
hf : CauchySeq f
v : E
hv : v ≠ 0
φ : E →L[𝕜] 𝕜
hφ : φ v = 1
g : ℕ → E →L[𝕜] F := fun n => ((ContinuousLinearMap.smulRightL 𝕜 E F) φ) (f n)
this✝ : CauchySeq g
a : E →L[𝕜] F
ha : Tendsto g atTop (𝓝 a)
this : Tendsto (fun n => (g n) v) atTop (𝓝 (a v))
⊢ Tendsto f atTop (𝓝 (a v))
state_after: no goals
tactic: simpa [g, ContinuousLinearMap.smulRightL, hφ]