Theorem: continuous_equivFun_basis_aux
File: Mathlib/Topology/Algebra/Module/FiniteDimension.lean

tactic: letI : UniformSpace E := TopologicalAddGroup.toUniformSpace E
state_before: 𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
E : Type v
inst✝¹⁷ : AddCommGroup E
inst✝¹⁶ : Module 𝕜 E
inst✝¹⁵ : TopologicalSpace E
inst✝¹⁴ : TopologicalAddGroup E
inst✝¹³ : ContinuousSMul 𝕜 E
F : Type w
inst✝¹² : AddCommGroup F
inst✝¹¹ : Module 𝕜 F
inst✝¹⁰ : TopologicalSpace F
inst✝⁹ : TopologicalAddGroup F
inst✝⁸ : ContinuousSMul 𝕜 F
F' : Type x
inst✝⁷ : AddCommGroup F'
inst✝⁶ : Module 𝕜 F'
inst✝⁵ : TopologicalSpace F'
inst✝⁴ : TopologicalAddGroup F'
inst✝³ : ContinuousSMul 𝕜 F'
inst✝² : CompleteSpace 𝕜
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
⊢ Continuous ⇑ξ.equivFun
state_after: 𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
E : Type v
inst✝¹⁷ : AddCommGroup E
inst✝¹⁶ : Module 𝕜 E
inst✝¹⁵ : TopologicalSpace E
inst✝¹⁴ : TopologicalAddGroup E
inst✝¹³ : ContinuousSMul 𝕜 E
F : Type w
inst✝¹² : AddCommGroup F
inst✝¹¹ : Module 𝕜 F
inst✝¹⁰ : TopologicalSpace F
inst✝⁹ : TopologicalAddGroup F
inst✝⁸ : ContinuousSMul 𝕜 F
F' : Type x
inst✝⁷ : AddCommGroup F'
inst✝⁶ : Module 𝕜 F'
inst✝⁵ : TopologicalSpace F'
inst✝⁴ : TopologicalAddGroup F'
inst✝³ : ContinuousSMul 𝕜 F'
inst✝² : CompleteSpace 𝕜
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this : UniformSpace E := TopologicalAddGroup.toUniformSpace E
⊢ Continuous ⇑ξ.equivFun

tactic: letI : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
state_before: 𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
E : Type v
inst✝¹⁷ : AddCommGroup E
inst✝¹⁶ : Module 𝕜 E
inst✝¹⁵ : TopologicalSpace E
inst✝¹⁴ : TopologicalAddGroup E
inst✝¹³ : ContinuousSMul 𝕜 E
F : Type w
inst✝¹² : AddCommGroup F
inst✝¹¹ : Module 𝕜 F
inst✝¹⁰ : TopologicalSpace F
inst✝⁹ : TopologicalAddGroup F
inst✝⁸ : ContinuousSMul 𝕜 F
F' : Type x
inst✝⁷ : AddCommGroup F'
inst✝⁶ : Module 𝕜 F'
inst✝⁵ : TopologicalSpace F'
inst✝⁴ : TopologicalAddGroup F'
inst✝³ : ContinuousSMul 𝕜 F'
inst✝² : CompleteSpace 𝕜
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this : UniformSpace E := TopologicalAddGroup.toUniformSpace E
⊢ Continuous ⇑ξ.equivFun
state_after: 𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
E : Type v
inst✝¹⁷ : AddCommGroup E
inst✝¹⁶ : Module 𝕜 E
inst✝¹⁵ : TopologicalSpace E
inst✝¹⁴ : TopologicalAddGroup E
inst✝¹³ : ContinuousSMul 𝕜 E
F : Type w
inst✝¹² : AddCommGroup F
inst✝¹¹ : Module 𝕜 F
inst✝¹⁰ : TopologicalSpace F
inst✝⁹ : TopologicalAddGroup F
inst✝⁸ : ContinuousSMul 𝕜 F
F' : Type x
inst✝⁷ : AddCommGroup F'
inst✝⁶ : Module 𝕜 F'
inst✝⁵ : TopologicalSpace F'
inst✝⁴ : TopologicalAddGroup F'
inst✝³ : ContinuousSMul 𝕜 F'
inst✝² : CompleteSpace 𝕜
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
⊢ Continuous ⇑ξ.equivFun

tactic: induction' hn : Fintype.card ι with n IH generalizing ι E
state_before: 𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
E : Type v
inst✝¹⁷ : AddCommGroup E
inst✝¹⁶ : Module 𝕜 E
inst✝¹⁵ : TopologicalSpace E
inst✝¹⁴ : TopologicalAddGroup E
inst✝¹³ : ContinuousSMul 𝕜 E
F : Type w
inst✝¹² : AddCommGroup F
inst✝¹¹ : Module 𝕜 F
inst✝¹⁰ : TopologicalSpace F
inst✝⁹ : TopologicalAddGroup F
inst✝⁸ : ContinuousSMul 𝕜 F
F' : Type x
inst✝⁷ : AddCommGroup F'
inst✝⁶ : Module 𝕜 F'
inst✝⁵ : TopologicalSpace F'
inst✝⁴ : TopologicalAddGroup F'
inst✝³ : ContinuousSMul 𝕜 F'
inst✝² : CompleteSpace 𝕜
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
⊢ Continuous ⇑ξ.equivFun
state_after: case zero
𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = 0
⊢ Continuous ⇑ξ.equivFun

case succ
𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
⊢ Continuous ⇑ξ.equivFun

tactic: rw [Fintype.card_eq_zero_iff] at hn
state_before: case zero
𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = 0
⊢ Continuous ⇑ξ.equivFun
state_after: case zero
𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : IsEmpty ι
⊢ Continuous ⇑ξ.equivFun

tactic: exact continuous_of_const fun x y => funext hn.elim
state_before: case zero
𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : IsEmpty ι
⊢ Continuous ⇑ξ.equivFun
state_after: no goals

tactic: haveI : FiniteDimensional 𝕜 E := of_fintype_basis ξ
state_before: case succ
𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
⊢ Continuous ⇑ξ.equivFun
state_after: case succ
𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝¹ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this : FiniteDimensional 𝕜 E
⊢ Continuous ⇑ξ.equivFun

tactic: have H₁ : ∀ s : Submodule 𝕜 E, finrank 𝕜 s = n → IsClosed (s : Set E) := by
  intro s s_dim
  letI : UniformAddGroup s := s.toAddSubgroup.uniformAddGroup
  let b := Basis.ofVectorSpace 𝕜 s
  have U : UniformEmbedding b.equivFun.symm.toEquiv := by
    have : Fintype.card (Basis.ofVectorSpaceIndex 𝕜 s) = n := by
      rw [← s_dim]
      exact (finrank_eq_card_basis b).symm
    have : Continuous b.equivFun := IH b this
    exact
      b.equivFun.symm.uniformEmbedding b.equivFun.symm.toLinearMap.continuous_on_pi this
  have : IsComplete (s : Set E) :=
    completeSpace_coe_iff_isComplete.1 ((completeSpace_congr U).1 (by infer_instance))
  exact this.isClosed
state_before: case succ
𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝¹ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this : FiniteDimensional 𝕜 E
⊢ Continuous ⇑ξ.equivFun
state_after: case succ
𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝¹ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this : FiniteDimensional 𝕜 E
H₁ : ∀ (s : Submodule 𝕜 E), finrank 𝕜 ↥s = n → IsClosed ↑s
⊢ Continuous ⇑ξ.equivFun

tactic: rw [continuous_pi_iff]
state_before: case succ
𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝¹ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this : FiniteDimensional 𝕜 E
H₁ : ∀ (s : Submodule 𝕜 E), finrank 𝕜 ↥s = n → IsClosed ↑s
H₂ : ∀ (f : E →ₗ[𝕜] 𝕜), Continuous ⇑f
⊢ Continuous ⇑ξ.equivFun
state_after: case succ
𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝¹ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this : FiniteDimensional 𝕜 E
H₁ : ∀ (s : Submodule 𝕜 E), finrank 𝕜 ↥s = n → IsClosed ↑s
H₂ : ∀ (f : E →ₗ[𝕜] 𝕜), Continuous ⇑f
⊢ ∀ (i : ι), Continuous fun a => ξ.equivFun a i

tactic: intro i
state_before: case succ
𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝¹ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this : FiniteDimensional 𝕜 E
H₁ : ∀ (s : Submodule 𝕜 E), finrank 𝕜 ↥s = n → IsClosed ↑s
H₂ : ∀ (f : E →ₗ[𝕜] 𝕜), Continuous ⇑f
⊢ ∀ (i : ι), Continuous fun a => ξ.equivFun a i
state_after: case succ
𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝¹ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this : FiniteDimensional 𝕜 E
H₁ : ∀ (s : Submodule 𝕜 E), finrank 𝕜 ↥s = n → IsClosed ↑s
H₂ : ∀ (f : E →ₗ[𝕜] 𝕜), Continuous ⇑f
i : ι
⊢ Continuous fun a => ξ.equivFun a i

tactic: change Continuous (ξ.coord i)
state_before: case succ
𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝¹ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this : FiniteDimensional 𝕜 E
H₁ : ∀ (s : Submodule 𝕜 E), finrank 𝕜 ↥s = n → IsClosed ↑s
H₂ : ∀ (f : E →ₗ[𝕜] 𝕜), Continuous ⇑f
i : ι
⊢ Continuous fun a => ξ.equivFun a i
state_after: case succ
𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝¹ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this : FiniteDimensional 𝕜 E
H₁ : ∀ (s : Submodule 𝕜 E), finrank 𝕜 ↥s = n → IsClosed ↑s
H₂ : ∀ (f : E →ₗ[𝕜] 𝕜), Continuous ⇑f
i : ι
⊢ Continuous ⇑(ξ.coord i)

tactic: exact H₂ (ξ.coord i)
state_before: case succ
𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝¹ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this : FiniteDimensional 𝕜 E
H₁ : ∀ (s : Submodule 𝕜 E), finrank 𝕜 ↥s = n → IsClosed ↑s
H₂ : ∀ (f : E →ₗ[𝕜] 𝕜), Continuous ⇑f
i : ι
⊢ Continuous ⇑(ξ.coord i)
state_after: no goals

tactic: intro s s_dim
state_before: 𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝¹ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this : FiniteDimensional 𝕜 E
⊢ ∀ (s : Submodule 𝕜 E), finrank 𝕜 ↥s = n → IsClosed ↑s
state_after: 𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝¹ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this : FiniteDimensional 𝕜 E
s : Submodule 𝕜 E
s_dim : finrank 𝕜 ↥s = n
⊢ IsClosed ↑s

tactic: letI : UniformAddGroup s := s.toAddSubgroup.uniformAddGroup
state_before: 𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝¹ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this : FiniteDimensional 𝕜 E
s : Submodule 𝕜 E
s_dim : finrank 𝕜 ↥s = n
⊢ IsClosed ↑s
state_after: 𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝² : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝¹ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this✝ : FiniteDimensional 𝕜 E
s : Submodule 𝕜 E
s_dim : finrank 𝕜 ↥s = n
this : UniformAddGroup ↥s := AddSubgroup.uniformAddGroup s.toAddSubgroup
⊢ IsClosed ↑s

tactic: let b := Basis.ofVectorSpace 𝕜 s
state_before: 𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝² : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝¹ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this✝ : FiniteDimensional 𝕜 E
s : Submodule 𝕜 E
s_dim : finrank 𝕜 ↥s = n
this : UniformAddGroup ↥s := AddSubgroup.uniformAddGroup s.toAddSubgroup
⊢ IsClosed ↑s
state_after: 𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝² : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝¹ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this✝ : FiniteDimensional 𝕜 E
s : Submodule 𝕜 E
s_dim : finrank 𝕜 ↥s = n
this : UniformAddGroup ↥s := AddSubgroup.uniformAddGroup s.toAddSubgroup
b : Basis (↑(Basis.ofVectorSpaceIndex 𝕜 ↥s)) 𝕜 ↥s := Basis.ofVectorSpace 𝕜 ↥s
⊢ IsClosed ↑s

tactic: have U : UniformEmbedding b.equivFun.symm.toEquiv := by
  have : Fintype.card (Basis.ofVectorSpaceIndex 𝕜 s) = n := by
    rw [← s_dim]
    exact (finrank_eq_card_basis b).symm
  have : Continuous b.equivFun := IH b this
  exact
    b.equivFun.symm.uniformEmbedding b.equivFun.symm.toLinearMap.continuous_on_pi this
state_before: 𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝² : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝¹ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this✝ : FiniteDimensional 𝕜 E
s : Submodule 𝕜 E
s_dim : finrank 𝕜 ↥s = n
this : UniformAddGroup ↥s := AddSubgroup.uniformAddGroup s.toAddSubgroup
b : Basis (↑(Basis.ofVectorSpaceIndex 𝕜 ↥s)) 𝕜 ↥s := Basis.ofVectorSpace 𝕜 ↥s
⊢ IsClosed ↑s
state_after: 𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝² : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝¹ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this✝ : FiniteDimensional 𝕜 E
s : Submodule 𝕜 E
s_dim : finrank 𝕜 ↥s = n
this : UniformAddGroup ↥s := AddSubgroup.uniformAddGroup s.toAddSubgroup
b : Basis (↑(Basis.ofVectorSpaceIndex 𝕜 ↥s)) 𝕜 ↥s := Basis.ofVectorSpace 𝕜 ↥s
U : UniformEmbedding ⇑b.equivFun.symm.toEquiv
⊢ IsClosed ↑s

tactic: have : IsComplete (s : Set E) :=
  completeSpace_coe_iff_isComplete.1 ((completeSpace_congr U).1 (by infer_instance))
state_before: 𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝² : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝¹ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this✝ : FiniteDimensional 𝕜 E
s : Submodule 𝕜 E
s_dim : finrank 𝕜 ↥s = n
this : UniformAddGroup ↥s := AddSubgroup.uniformAddGroup s.toAddSubgroup
b : Basis (↑(Basis.ofVectorSpaceIndex 𝕜 ↥s)) 𝕜 ↥s := Basis.ofVectorSpace 𝕜 ↥s
U : UniformEmbedding ⇑b.equivFun.symm.toEquiv
⊢ IsClosed ↑s
state_after: 𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝³ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝² : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this✝¹ : FiniteDimensional 𝕜 E
s : Submodule 𝕜 E
s_dim : finrank 𝕜 ↥s = n
this✝ : UniformAddGroup ↥s := AddSubgroup.uniformAddGroup s.toAddSubgroup
b : Basis (↑(Basis.ofVectorSpaceIndex 𝕜 ↥s)) 𝕜 ↥s := Basis.ofVectorSpace 𝕜 ↥s
U : UniformEmbedding ⇑b.equivFun.symm.toEquiv
this : IsComplete ↑s
⊢ IsClosed ↑s

tactic: exact this.isClosed
state_before: 𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝³ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝² : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this✝¹ : FiniteDimensional 𝕜 E
s : Submodule 𝕜 E
s_dim : finrank 𝕜 ↥s = n
this✝ : UniformAddGroup ↥s := AddSubgroup.uniformAddGroup s.toAddSubgroup
b : Basis (↑(Basis.ofVectorSpaceIndex 𝕜 ↥s)) 𝕜 ↥s := Basis.ofVectorSpace 𝕜 ↥s
U : UniformEmbedding ⇑b.equivFun.symm.toEquiv
this : IsComplete ↑s
⊢ IsClosed ↑s
state_after: no goals

tactic: have : Fintype.card (Basis.ofVectorSpaceIndex 𝕜 s) = n := by
  rw [← s_dim]
  exact (finrank_eq_card_basis b).symm
state_before: 𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝² : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝¹ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this✝ : FiniteDimensional 𝕜 E
s : Submodule 𝕜 E
s_dim : finrank 𝕜 ↥s = n
this : UniformAddGroup ↥s := AddSubgroup.uniformAddGroup s.toAddSubgroup
b : Basis (↑(Basis.ofVectorSpaceIndex 𝕜 ↥s)) 𝕜 ↥s := Basis.ofVectorSpace 𝕜 ↥s
⊢ UniformEmbedding ⇑b.equivFun.symm.toEquiv
state_after: 𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝³ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝² : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this✝¹ : FiniteDimensional 𝕜 E
s : Submodule 𝕜 E
s_dim : finrank 𝕜 ↥s = n
this✝ : UniformAddGroup ↥s := AddSubgroup.uniformAddGroup s.toAddSubgroup
b : Basis (↑(Basis.ofVectorSpaceIndex 𝕜 ↥s)) 𝕜 ↥s := Basis.ofVectorSpace 𝕜 ↥s
this : Fintype.card ↑(Basis.ofVectorSpaceIndex 𝕜 ↥s) = n
⊢ UniformEmbedding ⇑b.equivFun.symm.toEquiv

tactic: have : Continuous b.equivFun := IH b this
state_before: 𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝³ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝² : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this✝¹ : FiniteDimensional 𝕜 E
s : Submodule 𝕜 E
s_dim : finrank 𝕜 ↥s = n
this✝ : UniformAddGroup ↥s := AddSubgroup.uniformAddGroup s.toAddSubgroup
b : Basis (↑(Basis.ofVectorSpaceIndex 𝕜 ↥s)) 𝕜 ↥s := Basis.ofVectorSpace 𝕜 ↥s
this : Fintype.card ↑(Basis.ofVectorSpaceIndex 𝕜 ↥s) = n
⊢ UniformEmbedding ⇑b.equivFun.symm.toEquiv
state_after: 𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝⁴ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝³ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this✝² : FiniteDimensional 𝕜 E
s : Submodule 𝕜 E
s_dim : finrank 𝕜 ↥s = n
this✝¹ : UniformAddGroup ↥s := AddSubgroup.uniformAddGroup s.toAddSubgroup
b : Basis (↑(Basis.ofVectorSpaceIndex 𝕜 ↥s)) 𝕜 ↥s := Basis.ofVectorSpace 𝕜 ↥s
this✝ : Fintype.card ↑(Basis.ofVectorSpaceIndex 𝕜 ↥s) = n
this : Continuous ⇑b.equivFun
⊢ UniformEmbedding ⇑b.equivFun.symm.toEquiv

tactic: exact
  b.equivFun.symm.uniformEmbedding b.equivFun.symm.toLinearMap.continuous_on_pi this
state_before: 𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝⁴ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝³ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this✝² : FiniteDimensional 𝕜 E
s : Submodule 𝕜 E
s_dim : finrank 𝕜 ↥s = n
this✝¹ : UniformAddGroup ↥s := AddSubgroup.uniformAddGroup s.toAddSubgroup
b : Basis (↑(Basis.ofVectorSpaceIndex 𝕜 ↥s)) 𝕜 ↥s := Basis.ofVectorSpace 𝕜 ↥s
this✝ : Fintype.card ↑(Basis.ofVectorSpaceIndex 𝕜 ↥s) = n
this : Continuous ⇑b.equivFun
⊢ UniformEmbedding ⇑b.equivFun.symm.toEquiv
state_after: no goals

tactic: rw [← s_dim]
state_before: 𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝² : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝¹ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this✝ : FiniteDimensional 𝕜 E
s : Submodule 𝕜 E
s_dim : finrank 𝕜 ↥s = n
this : UniformAddGroup ↥s := AddSubgroup.uniformAddGroup s.toAddSubgroup
b : Basis (↑(Basis.ofVectorSpaceIndex 𝕜 ↥s)) 𝕜 ↥s := Basis.ofVectorSpace 𝕜 ↥s
⊢ Fintype.card ↑(Basis.ofVectorSpaceIndex 𝕜 ↥s) = n
state_after: 𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝² : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝¹ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this✝ : FiniteDimensional 𝕜 E
s : Submodule 𝕜 E
s_dim : finrank 𝕜 ↥s = n
this : UniformAddGroup ↥s := AddSubgroup.uniformAddGroup s.toAddSubgroup
b : Basis (↑(Basis.ofVectorSpaceIndex 𝕜 ↥s)) 𝕜 ↥s := Basis.ofVectorSpace 𝕜 ↥s
⊢ Fintype.card ↑(Basis.ofVectorSpaceIndex 𝕜 ↥s) = finrank 𝕜 ↥s

tactic: exact (finrank_eq_card_basis b).symm
state_before: 𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝² : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝¹ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this✝ : FiniteDimensional 𝕜 E
s : Submodule 𝕜 E
s_dim : finrank 𝕜 ↥s = n
this : UniformAddGroup ↥s := AddSubgroup.uniformAddGroup s.toAddSubgroup
b : Basis (↑(Basis.ofVectorSpaceIndex 𝕜 ↥s)) 𝕜 ↥s := Basis.ofVectorSpace 𝕜 ↥s
⊢ Fintype.card ↑(Basis.ofVectorSpaceIndex 𝕜 ↥s) = finrank 𝕜 ↥s
state_after: no goals

tactic: infer_instance
state_before: 𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝² : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝¹ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this✝ : FiniteDimensional 𝕜 E
s : Submodule 𝕜 E
s_dim : finrank 𝕜 ↥s = n
this : UniformAddGroup ↥s := AddSubgroup.uniformAddGroup s.toAddSubgroup
b : Basis (↑(Basis.ofVectorSpaceIndex 𝕜 ↥s)) 𝕜 ↥s := Basis.ofVectorSpace 𝕜 ↥s
U : UniformEmbedding ⇑b.equivFun.symm.toEquiv
⊢ CompleteSpace (↑(Basis.ofVectorSpaceIndex 𝕜 ↥s) → 𝕜)
state_after: no goals

tactic: intro f
state_before: 𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝¹ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this : FiniteDimensional 𝕜 E
H₁ : ∀ (s : Submodule 𝕜 E), finrank 𝕜 ↥s = n → IsClosed ↑s
⊢ ∀ (f : E →ₗ[𝕜] 𝕜), Continuous ⇑f
state_after: 𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝¹ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this : FiniteDimensional 𝕜 E
H₁ : ∀ (s : Submodule 𝕜 E), finrank 𝕜 ↥s = n → IsClosed ↑s
f : E →ₗ[𝕜] 𝕜
⊢ Continuous ⇑f

tactic: by_cases H : finrank 𝕜 (LinearMap.range f) = 0
state_before: 𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝¹ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this : FiniteDimensional 𝕜 E
H₁ : ∀ (s : Submodule 𝕜 E), finrank 𝕜 ↥s = n → IsClosed ↑s
f : E →ₗ[𝕜] 𝕜
⊢ Continuous ⇑f
state_after: case pos
𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝¹ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this : FiniteDimensional 𝕜 E
H₁ : ∀ (s : Submodule 𝕜 E), finrank 𝕜 ↥s = n → IsClosed ↑s
f : E →ₗ[𝕜] 𝕜
H : finrank 𝕜 ↥(LinearMap.range f) = 0
⊢ Continuous ⇑f

case neg
𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝¹ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this : FiniteDimensional 𝕜 E
H₁ : ∀ (s : Submodule 𝕜 E), finrank 𝕜 ↥s = n → IsClosed ↑s
f : E →ₗ[𝕜] 𝕜
H : ¬finrank 𝕜 ↥(LinearMap.range f) = 0
⊢ Continuous ⇑f

tactic: rw [Submodule.finrank_eq_zero, LinearMap.range_eq_bot] at H
state_before: case pos
𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝¹ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this : FiniteDimensional 𝕜 E
H₁ : ∀ (s : Submodule 𝕜 E), finrank 𝕜 ↥s = n → IsClosed ↑s
f : E →ₗ[𝕜] 𝕜
H : finrank 𝕜 ↥(LinearMap.range f) = 0
⊢ Continuous ⇑f
state_after: case pos
𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝¹ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this : FiniteDimensional 𝕜 E
H₁ : ∀ (s : Submodule 𝕜 E), finrank 𝕜 ↥s = n → IsClosed ↑s
f : E →ₗ[𝕜] 𝕜
H : f = 0
⊢ Continuous ⇑f

tactic: rw [H]
state_before: case pos
𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝¹ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this : FiniteDimensional 𝕜 E
H₁ : ∀ (s : Submodule 𝕜 E), finrank 𝕜 ↥s = n → IsClosed ↑s
f : E →ₗ[𝕜] 𝕜
H : f = 0
⊢ Continuous ⇑f
state_after: case pos
𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝¹ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this : FiniteDimensional 𝕜 E
H₁ : ∀ (s : Submodule 𝕜 E), finrank 𝕜 ↥s = n → IsClosed ↑s
f : E →ₗ[𝕜] 𝕜
H : f = 0
⊢ Continuous ⇑0

tactic: exact continuous_zero
state_before: case pos
𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝¹ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this : FiniteDimensional 𝕜 E
H₁ : ∀ (s : Submodule 𝕜 E), finrank 𝕜 ↥s = n → IsClosed ↑s
f : E →ₗ[𝕜] 𝕜
H : f = 0
⊢ Continuous ⇑0
state_after: no goals

tactic: have : finrank 𝕜 (LinearMap.ker f) = n := by
  have Z := f.finrank_range_add_finrank_ker
  rw [finrank_eq_card_basis ξ, hn] at Z
  have : finrank 𝕜 (LinearMap.range f) = 1 :=
    le_antisymm (finrank_self 𝕜 ▸ f.range.finrank_le) (zero_lt_iff.mpr H)
  rw [this, add_comm, Nat.add_one] at Z
  exact Nat.succ.inj Z
state_before: case neg
𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝¹ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this : FiniteDimensional 𝕜 E
H₁ : ∀ (s : Submodule 𝕜 E), finrank 𝕜 ↥s = n → IsClosed ↑s
f : E →ₗ[𝕜] 𝕜
H : ¬finrank 𝕜 ↥(LinearMap.range f) = 0
⊢ Continuous ⇑f
state_after: case neg
𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝² : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝¹ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this✝ : FiniteDimensional 𝕜 E
H₁ : ∀ (s : Submodule 𝕜 E), finrank 𝕜 ↥s = n → IsClosed ↑s
f : E →ₗ[𝕜] 𝕜
H : ¬finrank 𝕜 ↥(LinearMap.range f) = 0
this : finrank 𝕜 ↥(LinearMap.ker f) = n
⊢ Continuous ⇑f

tactic: have : IsClosed (LinearMap.ker f : Set E) := H₁ _ this
state_before: case neg
𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝² : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝¹ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this✝ : FiniteDimensional 𝕜 E
H₁ : ∀ (s : Submodule 𝕜 E), finrank 𝕜 ↥s = n → IsClosed ↑s
f : E →ₗ[𝕜] 𝕜
H : ¬finrank 𝕜 ↥(LinearMap.range f) = 0
this : finrank 𝕜 ↥(LinearMap.ker f) = n
⊢ Continuous ⇑f
state_after: case neg
𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝³ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝² : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this✝¹ : FiniteDimensional 𝕜 E
H₁ : ∀ (s : Submodule 𝕜 E), finrank 𝕜 ↥s = n → IsClosed ↑s
f : E →ₗ[𝕜] 𝕜
H : ¬finrank 𝕜 ↥(LinearMap.range f) = 0
this✝ : finrank 𝕜 ↥(LinearMap.ker f) = n
this : IsClosed ↑(LinearMap.ker f)
⊢ Continuous ⇑f

tactic: exact LinearMap.continuous_of_isClosed_ker f this
state_before: case neg
𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝³ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝² : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this✝¹ : FiniteDimensional 𝕜 E
H₁ : ∀ (s : Submodule 𝕜 E), finrank 𝕜 ↥s = n → IsClosed ↑s
f : E →ₗ[𝕜] 𝕜
H : ¬finrank 𝕜 ↥(LinearMap.range f) = 0
this✝ : finrank 𝕜 ↥(LinearMap.ker f) = n
this : IsClosed ↑(LinearMap.ker f)
⊢ Continuous ⇑f
state_after: no goals

tactic: have Z := f.finrank_range_add_finrank_ker
state_before: 𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝¹ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this : FiniteDimensional 𝕜 E
H₁ : ∀ (s : Submodule 𝕜 E), finrank 𝕜 ↥s = n → IsClosed ↑s
f : E →ₗ[𝕜] 𝕜
H : ¬finrank 𝕜 ↥(LinearMap.range f) = 0
⊢ finrank 𝕜 ↥(LinearMap.ker f) = n
state_after: 𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝¹ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this : FiniteDimensional 𝕜 E
H₁ : ∀ (s : Submodule 𝕜 E), finrank 𝕜 ↥s = n → IsClosed ↑s
f : E →ₗ[𝕜] 𝕜
H : ¬finrank 𝕜 ↥(LinearMap.range f) = 0
Z : finrank 𝕜 ↥(LinearMap.range f) + finrank 𝕜 ↥(LinearMap.ker f) = finrank 𝕜 E
⊢ finrank 𝕜 ↥(LinearMap.ker f) = n

tactic: rw [finrank_eq_card_basis ξ, hn] at Z
state_before: 𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝¹ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this : FiniteDimensional 𝕜 E
H₁ : ∀ (s : Submodule 𝕜 E), finrank 𝕜 ↥s = n → IsClosed ↑s
f : E →ₗ[𝕜] 𝕜
H : ¬finrank 𝕜 ↥(LinearMap.range f) = 0
Z : finrank 𝕜 ↥(LinearMap.range f) + finrank 𝕜 ↥(LinearMap.ker f) = finrank 𝕜 E
⊢ finrank 𝕜 ↥(LinearMap.ker f) = n
state_after: 𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝¹ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this : FiniteDimensional 𝕜 E
H₁ : ∀ (s : Submodule 𝕜 E), finrank 𝕜 ↥s = n → IsClosed ↑s
f : E →ₗ[𝕜] 𝕜
H : ¬finrank 𝕜 ↥(LinearMap.range f) = 0
Z : finrank 𝕜 ↥(LinearMap.range f) + finrank 𝕜 ↥(LinearMap.ker f) = n + 1
⊢ finrank 𝕜 ↥(LinearMap.ker f) = n

tactic: have : finrank 𝕜 (LinearMap.range f) = 1 :=
  le_antisymm (finrank_self 𝕜 ▸ f.range.finrank_le) (zero_lt_iff.mpr H)
state_before: 𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝¹ : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this : FiniteDimensional 𝕜 E
H₁ : ∀ (s : Submodule 𝕜 E), finrank 𝕜 ↥s = n → IsClosed ↑s
f : E →ₗ[𝕜] 𝕜
H : ¬finrank 𝕜 ↥(LinearMap.range f) = 0
Z : finrank 𝕜 ↥(LinearMap.range f) + finrank 𝕜 ↥(LinearMap.ker f) = n + 1
⊢ finrank 𝕜 ↥(LinearMap.ker f) = n
state_after: 𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝² : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝¹ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this✝ : FiniteDimensional 𝕜 E
H₁ : ∀ (s : Submodule 𝕜 E), finrank 𝕜 ↥s = n → IsClosed ↑s
f : E →ₗ[𝕜] 𝕜
H : ¬finrank 𝕜 ↥(LinearMap.range f) = 0
Z : finrank 𝕜 ↥(LinearMap.range f) + finrank 𝕜 ↥(LinearMap.ker f) = n + 1
this : finrank 𝕜 ↥(LinearMap.range f) = 1
⊢ finrank 𝕜 ↥(LinearMap.ker f) = n

tactic: rw [this, add_comm, Nat.add_one] at Z
state_before: 𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝² : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝¹ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this✝ : FiniteDimensional 𝕜 E
H₁ : ∀ (s : Submodule 𝕜 E), finrank 𝕜 ↥s = n → IsClosed ↑s
f : E →ₗ[𝕜] 𝕜
H : ¬finrank 𝕜 ↥(LinearMap.range f) = 0
Z : finrank 𝕜 ↥(LinearMap.range f) + finrank 𝕜 ↥(LinearMap.ker f) = n + 1
this : finrank 𝕜 ↥(LinearMap.range f) = 1
⊢ finrank 𝕜 ↥(LinearMap.ker f) = n
state_after: 𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝² : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝¹ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this✝ : FiniteDimensional 𝕜 E
H₁ : ∀ (s : Submodule 𝕜 E), finrank 𝕜 ↥s = n → IsClosed ↑s
f : E →ₗ[𝕜] 𝕜
H : ¬finrank 𝕜 ↥(LinearMap.range f) = 0
Z : (finrank 𝕜 ↥(LinearMap.ker f)).succ = n + 1
this : finrank 𝕜 ↥(LinearMap.range f) = 1
⊢ finrank 𝕜 ↥(LinearMap.ker f) = n

tactic: exact Nat.succ.inj Z
state_before: 𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
F : Type w
inst✝¹⁷ : AddCommGroup F
inst✝¹⁶ : Module 𝕜 F
inst✝¹⁵ : TopologicalSpace F
inst✝¹⁴ : TopologicalAddGroup F
inst✝¹³ : ContinuousSMul 𝕜 F
F' : Type x
inst✝¹² : AddCommGroup F'
inst✝¹¹ : Module 𝕜 F'
inst✝¹⁰ : TopologicalSpace F'
inst✝⁹ : TopologicalAddGroup F'
inst✝⁸ : ContinuousSMul 𝕜 F'
inst✝⁷ : CompleteSpace 𝕜
n : ℕ
IH :
  ∀ {E : Type v} [inst : AddCommGroup E] [inst_1 : Module 𝕜 E] [inst_2 : TopologicalSpace E]
    [inst_3 : TopologicalAddGroup E] [inst_4 : ContinuousSMul 𝕜 E] [inst_5 : T2Space E] {ι : Type v}
    [inst_6 : Fintype ι] (ξ : Basis ι 𝕜 E),
    let this := TopologicalAddGroup.toUniformSpace E;
    let this := ⋯;
    Fintype.card ι = n → Continuous ⇑ξ.equivFun
E : Type v
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalAddGroup E
inst✝² : ContinuousSMul 𝕜 E
inst✝¹ : T2Space E
ι : Type v
inst✝ : Fintype ι
ξ : Basis ι 𝕜 E
this✝² : UniformSpace E := TopologicalAddGroup.toUniformSpace E
this✝¹ : UniformAddGroup E := comm_topologicalAddGroup_is_uniform
hn : Fintype.card ι = n + 1
this✝ : FiniteDimensional 𝕜 E
H₁ : ∀ (s : Submodule 𝕜 E), finrank 𝕜 ↥s = n → IsClosed ↑s
f : E →ₗ[𝕜] 𝕜
H : ¬finrank 𝕜 ↥(LinearMap.range f) = 0
Z : (finrank 𝕜 ↥(LinearMap.ker f)).succ = n + 1
this : finrank 𝕜 ↥(LinearMap.range f) = 1
⊢ finrank 𝕜 ↥(LinearMap.ker f) = n
state_after: no goals