doc-next-gen

Mathlib.Topology.Algebra.Module.FiniteDimension

Module docstring

{"# Finite dimensional topological vector spaces over complete fields

Let π•œ be a complete nontrivially normed field, and E a topological vector space (TVS) over π•œ (i.e we have [AddCommGroup E] [Module π•œ E] [TopologicalSpace E] [IsTopologicalAddGroup E] and [ContinuousSMul π•œ E]).

If E is finite dimensional and Hausdorff, then all linear maps from E to any other TVS are continuous.

When E is a normed space, this gets us the equivalence of norms in finite dimension.

Main results :

  • LinearMap.continuous_iff_isClosed_ker : a linear form is continuous if and only if its kernel is closed.
  • LinearMap.continuous_of_finiteDimensional : a linear map on a finite-dimensional Hausdorff space over a complete field is continuous.

TODO

Generalize more of Mathlib.Analysis.Normed.Module.FiniteDimension to general TVSs.

Implementation detail

The main result from which everything follows is the fact that, if ΞΎ : ΞΉ β†’ E is a finite basis, then ΞΎ.equivFun : E β†’β‚— (ΞΉ β†’ π•œ) is continuous. However, for technical reasons, it is easier to prove this when ΞΉ and E live in the same universe. So we start by doing that as a private lemma, then we deduce LinearMap.continuous_of_finiteDimensional from it, and then the general result follows as continuous_equivFun_basis.

"}

instFiniteDimensionalContinuousLinearMapId instance
[FiniteDimensional π•œ E] [FiniteDimensional π•œ F] : FiniteDimensional π•œ (E β†’L[π•œ] F)
Full source
/-- The space of continuous linear maps between finite-dimensional spaces is finite-dimensional. -/
instance [FiniteDimensional π•œ E] [FiniteDimensional π•œ F] : FiniteDimensional π•œ (E β†’L[π•œ] F) :=
  FiniteDimensional.of_injective (ContinuousLinearMap.coeLM π•œ : (E β†’L[π•œ] F) β†’β‚—[π•œ] E β†’β‚—[π•œ] F)
    ContinuousLinearMap.coe_injective
Finite-Dimensionality of Continuous Linear Maps Between Finite-Dimensional Spaces
Informal description
For any finite-dimensional vector spaces $E$ and $F$ over a field $\mathbb{K}$, the space of continuous linear maps $E \toL[\mathbb{K}] F$ is also finite-dimensional.
unique_topology_of_t2 theorem
{t : TopologicalSpace π•œ} (h₁ : @IsTopologicalAddGroup π•œ t _) (hβ‚‚ : @ContinuousSMul π•œ π•œ _ hnorm.toUniformSpace.toTopologicalSpace t) (h₃ : @T2Space π•œ t) : t = hnorm.toUniformSpace.toTopologicalSpace
Full source
/-- If `π•œ` is a nontrivially normed field, any T2 topology on `π•œ` which makes it a topological
vector space over itself (with the norm topology) is *equal* to the norm topology. -/
theorem unique_topology_of_t2 {t : TopologicalSpace π•œ} (h₁ : @IsTopologicalAddGroup π•œ t _)
    (hβ‚‚ : @ContinuousSMul π•œ π•œ _ hnorm.toUniformSpace.toTopologicalSpace t) (h₃ : @T2Space π•œ t) :
    t = hnorm.toUniformSpace.toTopologicalSpace := by
  -- Let `𝓣₀` denote the topology on `π•œ` induced by the norm, and `𝓣` be any T2 vector
  -- topology on `π•œ`. To show that `𝓣₀ = 𝓣`, it suffices to show that they have the same
  -- neighborhoods of 0.
  refine IsTopologicalAddGroup.ext h₁ inferInstance (le_antisymm ?_ ?_)
  Β· -- To show `𝓣 ≀ 𝓣₀`, we have to show that closed balls are `𝓣`-neighborhoods of 0.
    rw [Metric.nhds_basis_closedBall.ge_iff]
    -- Let `Ξ΅ > 0`. Since `π•œ` is nontrivially normed, we have `0 < β€–ΞΎβ‚€β€– < Ξ΅` for some `ΞΎβ‚€ : π•œ`.
    intro Ξ΅ hΞ΅
    rcases NormedField.exists_norm_lt π•œ hΞ΅ with βŸ¨ΞΎβ‚€, hΞΎβ‚€, hΞΎβ‚€Ξ΅βŸ©
    -- Since `ΞΎβ‚€ β‰  0` and `𝓣` is T2, we know that `{ΞΎβ‚€}ᢜ` is a `𝓣`-neighborhood of 0.
    have : {ΞΎβ‚€}{ΞΎβ‚€}ᢜ{ΞΎβ‚€}ᢜ ∈ @nhds π•œ t 0 := IsOpen.mem_nhds isOpen_compl_singleton <|
      mem_compl_singleton_iff.mpr <| Ne.symm <| norm_ne_zero_iff.mp hΞΎβ‚€.ne.symm
    -- Thus, its balanced core `𝓑` is too. Let's show that the closed ball of radius `Ξ΅` contains
    -- `𝓑`, which will imply that the closed ball is indeed a `𝓣`-neighborhood of 0.
    have : balancedCorebalancedCore π•œ {ΞΎβ‚€}ᢜ ∈ @nhds π•œ t 0 := balancedCore_mem_nhds_zero this
    refine mem_of_superset this fun ΞΎ hΞΎ => ?_
    -- Let `ΞΎ ∈ 𝓑`. We want to show `β€–ΞΎβ€– < Ξ΅`. If `ΞΎ = 0`, this is trivial.
    by_cases hΞΎ0 : ΞΎ = 0
    Β· rw [hΞΎ0]
      exact Metric.mem_closedBall_self hΞ΅.le
    Β· rw [mem_closedBall_zero_iff]
      -- Now suppose `ΞΎ β‰  0`. By contradiction, let's assume `Ξ΅ < β€–ΞΎβ€–`, and show that
      -- `ΞΎβ‚€ ∈ 𝓑 βŠ† {ΞΎβ‚€}ᢜ`, which is a contradiction.
      by_contra! h
      suffices (ΞΎβ‚€ * ξ⁻¹) β€’ ΞΎ ∈ balancedCore π•œ {ΞΎβ‚€}ᢜ by
        rw [smul_eq_mul, mul_assoc, inv_mul_cancelβ‚€ hΞΎ0, mul_one] at this
        exact not_mem_compl_iff.mpr (mem_singleton ΞΎβ‚€) ((balancedCore_subset _) this)
      -- For that, we use that `𝓑` is balanced : since `β€–ΞΎβ‚€β€– < Ξ΅ < β€–ΞΎβ€–`, we have `β€–ΞΎβ‚€ / ΞΎβ€– ≀ 1`,
      -- hence `ΞΎβ‚€ = (ΞΎβ‚€ / ΞΎ) β€’ ΞΎ ∈ 𝓑` because `ΞΎ ∈ 𝓑`.
      refine (balancedCore_balanced _).smul_mem ?_ hΞΎ
      rw [norm_mul, norm_inv, mul_inv_le_iffβ‚€ (norm_pos_iff.mpr hΞΎ0), one_mul]
      exact (hΞΎβ‚€Ξ΅.trans h).le
  Β· -- Finally, to show `𝓣₀ ≀ 𝓣`, we simply argue that `id = (fun x ↦ x β€’ 1)` is continuous from
    -- `(π•œ, 𝓣₀)` to `(π•œ, 𝓣)` because `(β€’) : (π•œ, 𝓣₀) Γ— (π•œ, 𝓣) β†’ (π•œ, 𝓣)` is continuous.
    calc
      @nhds π•œ hnorm.toUniformSpace.toTopologicalSpace 0 =
          map id (@nhds π•œ hnorm.toUniformSpace.toTopologicalSpace 0) :=
        map_id.symm
      _ = map (fun x => id x β€’ (1 : π•œ)) (@nhds π•œ hnorm.toUniformSpace.toTopologicalSpace 0) := by
        conv_rhs =>
          congr
          ext
          rw [smul_eq_mul, mul_one]
      _ ≀ @nhds π•œ t ((0 : π•œ) β€’ (1 : π•œ)) :=
        (@Tendsto.smul_const _ _ _ hnorm.toUniformSpace.toTopologicalSpace t _ _ _ _ _
          tendsto_id (1 : π•œ))
      _ = @nhds π•œ t 0 := by rw [zero_smul]
Uniqueness of Hausdorff TVS Topology on a Nontrivially Normed Field
Informal description
Let $\mathbb{K}$ be a nontrivially normed field with norm topology $\tau_{\text{norm}}$. Suppose $\tau$ is a Hausdorff topology on $\mathbb{K}$ that makes $\mathbb{K}$ a topological vector space over itself (i.e., addition is continuous and scalar multiplication is jointly continuous with respect to $\tau_{\text{norm}}$ on $\mathbb{K}$ and $\tau$ on $\mathbb{K}$). Then $\tau$ must coincide with the norm topology $\tau_{\text{norm}}$.
LinearMap.continuous_of_isClosed_ker theorem
(l : E β†’β‚—[π•œ] π•œ) (hl : IsClosed (LinearMap.ker l : Set E)) : Continuous l
Full source
/-- Any linear form on a topological vector space over a nontrivially normed field is continuous if
    its kernel is closed. -/
theorem LinearMap.continuous_of_isClosed_ker (l : E β†’β‚—[π•œ] π•œ)
    (hl : IsClosed (LinearMap.ker l : Set E)) :
    Continuous l := by
  -- `l` is either constant or surjective. If it is constant, the result is trivial.
  by_cases H : finrank π•œ (LinearMap.range l) = 0
  Β· rw [Submodule.finrank_eq_zero, LinearMap.range_eq_bot] at H
    rw [H]
    exact continuous_zero
  Β· -- In the case where `l` is surjective, we factor it as `Ο† : (E β§Έ l.ker) ≃ₗ[π•œ] π•œ`. Note that
    -- `E β§Έ l.ker` is T2 since `l.ker` is closed.
    have : finrank π•œ (LinearMap.range l) = 1 :=
      le_antisymm (finrank_self π•œ β–Έ (LinearMap.range l).finrank_le) (zero_lt_iff.mpr H)
    have hi : Function.Injective ((LinearMap.ker l).liftQ l (le_refl _)) := by
      rw [← LinearMap.ker_eq_bot]
      exact Submodule.ker_liftQ_eq_bot _ _ _ (le_refl _)
    have hs : Function.Surjective ((LinearMap.ker l).liftQ l (le_refl _)) := by
      rw [← LinearMap.range_eq_top, Submodule.range_liftQ]
      exact Submodule.eq_top_of_finrank_eq ((finrank_self π•œ).symm β–Έ this)
    let Ο† : (E β§Έ LinearMap.ker l) ≃ₗ[π•œ] π•œ :=
      LinearEquiv.ofBijective ((LinearMap.ker l).liftQ l (le_refl _)) ⟨hi, hs⟩
    have hlΟ† : (l : E β†’ π•œ) = Ο† ∘ (LinearMap.ker l).mkQ := by ext; rfl
    -- Since the quotient map `E β†’β‚—[π•œ] (E β§Έ l.ker)` is continuous, the continuity of `l` will follow
    -- form the continuity of `Ο†`.
    suffices Continuous Ο†.toEquiv by
      rw [hlφ]
      exact this.comp continuous_quot_mk
    -- The pullback by `Ο†.symm` of the quotient topology is a T2 topology on `π•œ`, because `Ο†.symm`
    -- is injective. Since `Ο†.symm` is linear, it is also a vector space topology.
    -- Hence, we know that it is equal to the topology induced by the norm.
    have : induced Ο†.toEquiv.symm inferInstance = hnorm.toUniformSpace.toTopologicalSpace := by
      refine unique_topology_of_t2 (topologicalAddGroup_induced Ο†.symm.toLinearMap)
        (continuousSMul_induced Ο†.symm.toMulActionHom) ?_
      rw [t2Space_iff]
      exact fun x y hxy =>
        @separated_by_continuous _ _ (induced _ _) _ _ _ continuous_induced_dom _ _
          (Ο†.toEquiv.symm.injective.ne hxy)
    -- Finally, the pullback by `Ο†.symm` is exactly the pushforward by `Ο†`, so we have to prove
    -- that `Ο†` is continuous when `π•œ` is endowed with the pushforward by `Ο†` of the quotient
    -- topology, which is trivial by definition of the pushforward.
    simp_rw [this.symm, Equiv.induced_symm]
    exact continuous_coinduced_rng
Continuity of Linear Forms with Closed Kernel in TVS over Complete Fields
Informal description
Let $\mathbb{K}$ be a complete nontrivially normed field and $E$ a topological vector space over $\mathbb{K}$. For any linear form $l \colon E \to \mathbb{K}$, if the kernel $\ker l$ is a closed subset of $E$, then $l$ is continuous.
LinearMap.continuous_iff_isClosed_ker theorem
(l : E β†’β‚—[π•œ] π•œ) : Continuous l ↔ IsClosed (LinearMap.ker l : Set E)
Full source
/-- Any linear form on a topological vector space over a nontrivially normed field is continuous if
    and only if its kernel is closed. -/
theorem LinearMap.continuous_iff_isClosed_ker (l : E β†’β‚—[π•œ] π•œ) :
    ContinuousContinuous l ↔ IsClosed (LinearMap.ker l : Set E) :=
  ⟨fun h => isClosed_singleton.preimage h, l.continuous_of_isClosed_ker⟩
Continuity of Linear Forms in TVS over Complete Fields via Closed Kernel
Informal description
Let $\mathbb{K}$ be a complete nontrivially normed field and $E$ a topological vector space over $\mathbb{K}$. For any linear form $l \colon E \to \mathbb{K}$, $l$ is continuous if and only if its kernel $\ker l$ is a closed subset of $E$.
LinearMap.continuous_of_nonzero_on_open theorem
(l : E β†’β‚—[π•œ] π•œ) (s : Set E) (hs₁ : IsOpen s) (hsβ‚‚ : s.Nonempty) (hs₃ : βˆ€ x ∈ s, l x β‰  0) : Continuous l
Full source
/-- Over a nontrivially normed field, any linear form which is nonzero on a nonempty open set is
    automatically continuous. -/
theorem LinearMap.continuous_of_nonzero_on_open (l : E β†’β‚—[π•œ] π•œ) (s : Set E) (hs₁ : IsOpen s)
    (hsβ‚‚ : s.Nonempty) (hs₃ : βˆ€ x ∈ s, l x β‰  0) : Continuous l := by
  refine l.continuous_of_isClosed_ker (l.isClosed_or_dense_ker.resolve_right fun hl => ?_)
  rcases hsβ‚‚ with ⟨x, hx⟩
  have : x ∈ interior (LinearMap.ker l : Set E)ᢜ := by
    rw [mem_interior_iff_mem_nhds]
    exact mem_of_superset (hs₁.mem_nhds hx) hs₃
  rwa [hl.interior_compl] at this
Continuity of Linear Forms Nonzero on Open Sets in TVS over Complete Fields
Informal description
Let $\mathbb{K}$ be a complete nontrivially normed field and $E$ a topological vector space over $\mathbb{K}$. For any linear form $l \colon E \to \mathbb{K}$, if there exists a nonempty open set $s \subseteq E$ such that $l(x) \neq 0$ for all $x \in s$, then $l$ is continuous.
LinearMap.continuous_of_finiteDimensional theorem
[T2Space E] [FiniteDimensional π•œ E] (f : E β†’β‚—[π•œ] F') : Continuous f
Full source
/-- Any linear map on a finite dimensional space over a complete field is continuous. -/
theorem LinearMap.continuous_of_finiteDimensional [T2Space E] [FiniteDimensional π•œ E]
    (f : E β†’β‚—[π•œ] F') : Continuous f := by
  -- for the proof, go to a model vector space `b β†’ π•œ` thanks to `continuous_equivFun_basis`, and
  -- argue that all linear maps there are continuous.
  let b := Basis.ofVectorSpace π•œ E
  have A : Continuous b.equivFun := continuous_equivFun_basis_aux b
  have B : Continuous (f.comp (b.equivFun.symm : (Basis.ofVectorSpaceIndex π•œ E β†’ π•œ) β†’β‚—[π•œ] E)) :=
    LinearMap.continuous_on_pi _
  have :
    Continuous
      (f.comp (b.equivFun.symm : (Basis.ofVectorSpaceIndex π•œ E β†’ π•œ) β†’β‚—[π•œ] E) ∘ b.equivFun) :=
    B.comp A
  convert this
  ext x
  dsimp
  rw [Basis.equivFun_symm_apply, Basis.sum_repr]
Continuity of Linear Maps on Finite-Dimensional Hausdorff Spaces over Complete Fields
Informal description
Let $\mathbb{K}$ be a complete nontrivially normed field, and let $E$ be a finite-dimensional Hausdorff topological vector space over $\mathbb{K}$. Then every linear map $f \colon E \to F'$ to another topological vector space $F'$ over $\mathbb{K}$ is continuous.
LinearMap.continuousLinearMapClassOfFiniteDimensional instance
[T2Space E] [FiniteDimensional π•œ E] : ContinuousLinearMapClass (E β†’β‚—[π•œ] F') π•œ E F'
Full source
instance LinearMap.continuousLinearMapClassOfFiniteDimensional [T2Space E] [FiniteDimensional π•œ E] :
    ContinuousLinearMapClass (E β†’β‚—[π•œ] F') π•œ E F' :=
  { LinearMap.semilinearMapClass with map_continuous := fun f => f.continuous_of_finiteDimensional }
Continuous Linear Maps on Finite-Dimensional Hausdorff Spaces over Complete Fields
Informal description
For any finite-dimensional Hausdorff topological vector space $E$ over a complete nontrivially normed field $\mathbb{K}$, the type of linear maps from $E$ to another topological vector space $F'$ over $\mathbb{K}$ forms a class of continuous linear maps. That is, every linear map $f \colon E \to F'$ is continuous.
continuous_equivFun_basis theorem
[T2Space E] {ΞΉ : Type*} [Finite ΞΉ] (ΞΎ : Basis ΞΉ π•œ E) : Continuous ΞΎ.equivFun
Full source
/-- In finite dimensions over a non-discrete complete normed field, the canonical identification
(in terms of a basis) with `π•œ^n` (endowed with the product topology) is continuous.
This is the key fact which makes all linear maps from a T2 finite dimensional TVS over such a field
continuous (see `LinearMap.continuous_of_finiteDimensional`), which in turn implies that all
norms are equivalent in finite dimensions. -/
theorem continuous_equivFun_basis [T2Space E] {ΞΉ : Type*} [Finite ΞΉ] (ΞΎ : Basis ΞΉ π•œ E) :
    Continuous ΞΎ.equivFun :=
  haveI : FiniteDimensional π•œ E := .of_fintype_basis ΞΎ
  ΞΎ.equivFun.toLinearMap.continuous_of_finiteDimensional
Continuity of Coordinate Maps for Finite-Dimensional TVS over Complete Fields
Informal description
Let $\mathbb{K}$ be a complete nontrivially normed field and $E$ a finite-dimensional Hausdorff topological vector space over $\mathbb{K}$. For any finite index set $\iota$ and basis $\xi = \{v_i\}_{i \in \iota}$ of $E$ over $\mathbb{K}$, the coordinate map $\xi_{\text{equivFun}} : E \to \mathbb{K}^\iota$ (which sends each vector to its coordinates in the basis $\xi$) is continuous, where $\mathbb{K}^\iota$ is equipped with the product topology.
LinearMap.toContinuousLinearMap definition
: (E β†’β‚—[π•œ] F') ≃ₗ[π•œ] E β†’L[π•œ] F'
Full source
/-- The continuous linear map induced by a linear map on a finite dimensional space -/
def toContinuousLinearMap : (E β†’β‚—[π•œ] F') ≃ₗ[π•œ] E β†’L[π•œ] F' where
  toFun f := ⟨f, f.continuous_of_finiteDimensional⟩
  invFun := (↑)
  map_add' _ _ := rfl
  map_smul' _ _ := rfl
  left_inv _ := rfl
  right_inv _ := ContinuousLinearMap.coe_injective rfl
Linear to Continuous Linear Map Equivalence on Finite-Dimensional Spaces
Informal description
Given a complete nontrivially normed field $\mathbb{K}$ and a finite-dimensional Hausdorff topological vector space $E$ over $\mathbb{K}$, the function `LinearMap.toContinuousLinearMap` is a linear equivalence between the space of linear maps $E \to F'$ and the space of continuous linear maps $E \toL[\mathbb{K}] F'$, where $F'$ is another topological vector space over $\mathbb{K}$. The equivalence maps a linear map $f$ to its continuous version $\langle f, f.continuous\_of\_finiteDimensional \rangle$, where the continuity is guaranteed by the finite-dimensionality of $E$. The inverse operation is simply the inclusion of continuous linear maps into all linear maps.
Module.End.toContinuousLinearMap definition
(E : Type v) [NormedAddCommGroup E] [NormedSpace π•œ E] [FiniteDimensional π•œ E] : (E β†’β‚—[π•œ] E) ≃ₐ[π•œ] (E β†’L[π•œ] E)
Full source
/-- Algebra equivalence between the linear maps and continuous linear maps on a finite dimensional
    space. -/
def _root_.Module.End.toContinuousLinearMap (E : Type v) [NormedAddCommGroup E]
    [NormedSpace π•œ E] [FiniteDimensional π•œ E] : (E β†’β‚—[π•œ] E) ≃ₐ[π•œ] (E β†’L[π•œ] E) :=
  { LinearMap.toContinuousLinearMap with
    map_mul' := fun _ _ ↦ rfl
    commutes' := fun _ ↦ rfl }
Algebra equivalence between linear and continuous linear endomorphisms on finite-dimensional spaces
Informal description
Given a finite-dimensional normed vector space $E$ over a complete nontrivially normed field $\mathbb{K}$, there is an algebra equivalence between the algebra of linear endomorphisms of $E$ and the algebra of continuous linear endomorphisms of $E$. This equivalence maps a linear endomorphism $f$ to its continuous version (which is automatically continuous due to finite-dimensionality), preserves multiplication (composition of maps), and commutes with scalar multiplication.
LinearMap.coe_toContinuousLinearMap' theorem
(f : E β†’β‚—[π•œ] F') : ⇑(LinearMap.toContinuousLinearMap f) = f
Full source
@[simp]
theorem coe_toContinuousLinearMap' (f : E β†’β‚—[π•œ] F') : ⇑(LinearMap.toContinuousLinearMap f) = f :=
  rfl
Equality of Underlying Functions in Linear to Continuous Linear Map Conversion
Informal description
For any linear map $f$ from a finite-dimensional Hausdorff topological vector space $E$ over a complete nontrivially normed field $\mathbb{K}$ to another topological vector space $F'$ over $\mathbb{K}$, the underlying function of the continuous linear map obtained via `LinearMap.toContinuousLinearMap` is equal to $f$ itself. In other words, $\text{toContinuousLinearMap}(f)(x) = f(x)$ for all $x \in E$.
LinearMap.coe_toContinuousLinearMap theorem
(f : E β†’β‚—[π•œ] F') : ((LinearMap.toContinuousLinearMap f) : E β†’β‚—[π•œ] F') = f
Full source
@[simp]
theorem coe_toContinuousLinearMap (f : E β†’β‚—[π•œ] F') :
    ((LinearMap.toContinuousLinearMap f) : E β†’β‚—[π•œ] F') = f :=
  rfl
Coercion of Associated Continuous Linear Map Recovers Original Linear Map
Informal description
Let $\mathbb{K}$ be a complete nontrivially normed field, $E$ a finite-dimensional Hausdorff topological vector space over $\mathbb{K}$, and $F'$ another topological vector space over $\mathbb{K}$. For any linear map $f: E \to F'$, the underlying linear map of its associated continuous linear map (via `LinearMap.toContinuousLinearMap`) is equal to $f$ itself. In other words, the coercion from continuous linear maps back to linear maps recovers the original linear map.
LinearMap.coe_toContinuousLinearMap_symm theorem
: ⇑(toContinuousLinearMap : (E β†’β‚—[π•œ] F') ≃ₗ[π•œ] E β†’L[π•œ] F').symm = ((↑) : (E β†’L[π•œ] F') β†’ E β†’β‚—[π•œ] F')
Full source
@[simp]
theorem coe_toContinuousLinearMap_symm :
    ⇑(toContinuousLinearMap : (E β†’β‚—[π•œ] F') ≃ₗ[π•œ] E β†’L[π•œ] F').symm =
      ((↑) : (E β†’L[π•œ] F') β†’ E β†’β‚—[π•œ] F') :=
  rfl
Inverse of Linear-to-Continuous Equivalence is the Canonical Inclusion
Informal description
The inverse of the equivalence `toContinuousLinearMap` between linear maps and continuous linear maps is given by the canonical inclusion map from continuous linear maps to linear maps. That is, for any continuous linear map $f : E \toL[\mathbb{K}] F'$, the inverse operation maps $f$ to its underlying linear map $f : E \toβ‚—[\mathbb{K}] F'$.
LinearMap.det_toContinuousLinearMap theorem
(f : E β†’β‚—[π•œ] E) : (LinearMap.toContinuousLinearMap f).det = LinearMap.det f
Full source
@[simp]
theorem det_toContinuousLinearMap (f : E β†’β‚—[π•œ] E) :
    (LinearMap.toContinuousLinearMap f).det = LinearMap.det f :=
  rfl
Determinant Preservation under Linear-to-Continuous Linear Map Conversion
Informal description
For any linear map $f \colon E \to E$ on a finite-dimensional Hausdorff topological vector space $E$ over a complete nontrivially normed field $\mathbb{K}$, the determinant of the continuous linear map obtained from $f$ via the equivalence `LinearMap.toContinuousLinearMap` is equal to the determinant of $f$. That is, $\det(\text{toContinuousLinearMap}(f)) = \det(f)$.
LinearMap.ker_toContinuousLinearMap theorem
(f : E β†’β‚—[π•œ] F') : ker (LinearMap.toContinuousLinearMap f) = ker f
Full source
@[simp]
theorem ker_toContinuousLinearMap (f : E β†’β‚—[π•œ] F') :
    ker (LinearMap.toContinuousLinearMap f) = ker f :=
  rfl
Kernel Preservation under Linear to Continuous Linear Map Conversion
Informal description
For any linear map $f \colon E \to F'$ between topological vector spaces over a complete nontrivially normed field $\mathbb{K}$, where $E$ is finite-dimensional and Hausdorff, the kernel of the continuous linear map obtained from $f$ via the `toContinuousLinearMap` equivalence is equal to the kernel of $f$. That is, $\ker(\text{toContinuousLinearMap}(f)) = \ker(f)$.
LinearMap.range_toContinuousLinearMap theorem
(f : E β†’β‚—[π•œ] F') : range (LinearMap.toContinuousLinearMap f) = range f
Full source
@[simp]
theorem range_toContinuousLinearMap (f : E β†’β‚—[π•œ] F') :
    range (LinearMap.toContinuousLinearMap f) = range f :=
  rfl
Range Preservation under Linear to Continuous Linear Map Conversion
Informal description
For any linear map $f$ from a finite-dimensional Hausdorff topological vector space $E$ over a complete nontrivially normed field $\mathbb{K}$ to another topological vector space $F'$ over $\mathbb{K}$, the range of the continuous linear map obtained from $f$ via the `toContinuousLinearMap` equivalence is equal to the range of $f$ itself. That is, $\text{range}(\text{toContinuousLinearMap}(f)) = \text{range}(f)$.
LinearMap.isOpenMap_of_finiteDimensional theorem
(f : F β†’β‚—[π•œ] E) (hf : Function.Surjective f) : IsOpenMap f
Full source
/-- A surjective linear map `f` with finite dimensional codomain is an open map. -/
theorem isOpenMap_of_finiteDimensional (f : F β†’β‚—[π•œ] E) (hf : Function.Surjective f) :
    IsOpenMap f := by
  obtain ⟨g, hg⟩ := f.exists_rightInverse_of_surjective (LinearMap.range_eq_top.2 hf)
  refine IsOpenMap.of_sections fun x => ⟨fun y => g (y - f x) + x, ?_, ?_, fun y => ?_⟩
  Β· exact
      ((g.continuous_of_finiteDimensional.comp <| continuous_id.sub continuous_const).add
          continuous_const).continuousAt
  Β· simp only
    rw [sub_self, map_zero, zero_add]
  Β· simp only [map_sub, map_add, ← comp_apply f g, hg, id_apply, sub_add_cancel]
Open Mapping Theorem for Surjective Linear Maps on Finite-Dimensional Codomains
Informal description
Let $\mathbb{K}$ be a complete nontrivially normed field, and let $F$ and $E$ be topological vector spaces over $\mathbb{K}$ with $E$ finite-dimensional. For any surjective linear map $f \colon F \to E$, the map $f$ is an open map (i.e., it maps open sets in $F$ to open sets in $E$).
LinearMap.canLiftContinuousLinearMap instance
: CanLift (E β†’β‚—[π•œ] F) (E β†’L[π•œ] F) (↑) fun _ => True
Full source
instance canLiftContinuousLinearMap : CanLift (E β†’β‚—[π•œ] F) (E β†’L[π•œ] F) (↑) fun _ => True :=
  ⟨fun f _ => ⟨LinearMap.toContinuousLinearMap f, rfl⟩⟩
Lifting of Linear Maps to Continuous Linear Maps on Finite-Dimensional Spaces
Informal description
Given a complete nontrivially normed field $\mathbb{K}$ and a finite-dimensional Hausdorff topological vector space $E$ over $\mathbb{K}$, any linear map from $E$ to another topological vector space over $\mathbb{K}$ can be lifted to a continuous linear map. In other words, there exists a continuous linear map that coincides with the original linear map on all points of $E$.
LinearEquiv.toContinuousLinearEquiv definition
(e : E ≃ₗ[π•œ] F) : E ≃L[π•œ] F
Full source
/-- The continuous linear equivalence induced by a linear equivalence on a finite dimensional
space. -/
def toContinuousLinearEquiv (e : E ≃ₗ[π•œ] F) : E ≃L[π•œ] F :=
  { e with
    continuous_toFun := e.toLinearMap.continuous_of_finiteDimensional
    continuous_invFun :=
      haveI : FiniteDimensional π•œ F := e.finiteDimensional
      e.symm.toLinearMap.continuous_of_finiteDimensional }
Continuous linear equivalence induced by a linear equivalence on finite-dimensional spaces
Informal description
Given a linear equivalence \( e : E \simeq_{\mathbb{K}} F \) between finite-dimensional vector spaces \( E \) and \( F \) over a complete nontrivially normed field \( \mathbb{K} \), the structure `LinearEquiv.toContinuousLinearEquiv` promotes \( e \) to a *continuous* linear equivalence \( E \simeq_{L[\mathbb{K}]} F \). This ensures that both \( e \) and its inverse \( e^{-1} \) are continuous linear maps.
LinearEquiv.coe_toContinuousLinearEquiv theorem
(e : E ≃ₗ[π•œ] F) : (e.toContinuousLinearEquiv : E β†’β‚—[π•œ] F) = e
Full source
@[simp]
theorem coe_toContinuousLinearEquiv (e : E ≃ₗ[π•œ] F) : (e.toContinuousLinearEquiv : E β†’β‚—[π•œ] F) = e :=
  rfl
Equality of Linear Equivalence and its Continuous Promotion
Informal description
Let $E$ and $F$ be finite-dimensional vector spaces over a complete nontrivially normed field $\mathbb{K}$, and let $e : E \simeq_{\mathbb{K}} F$ be a linear equivalence. Then the underlying linear map of the continuous linear equivalence $e.toContinuousLinearEquiv$ is equal to $e$ itself.
LinearEquiv.coe_toContinuousLinearEquiv' theorem
(e : E ≃ₗ[π•œ] F) : (e.toContinuousLinearEquiv : E β†’ F) = e
Full source
@[simp]
theorem coe_toContinuousLinearEquiv' (e : E ≃ₗ[π•œ] F) : (e.toContinuousLinearEquiv : E β†’ F) = e :=
  rfl
Canonical Map of Continuous Linear Equivalence Coincides with Original Linear Equivalence
Informal description
Let $E$ and $F$ be finite-dimensional vector spaces over a complete nontrivially normed field $\mathbb{K}$, and let $e : E \simeq_{\mathbb{K}} F$ be a linear equivalence. Then the canonical map from $E$ to $F$ induced by the continuous linear equivalence $e.toContinuousLinearEquiv$ coincides with $e$ itself.
LinearEquiv.coe_toContinuousLinearEquiv_symm theorem
(e : E ≃ₗ[π•œ] F) : (e.toContinuousLinearEquiv.symm : F β†’β‚—[π•œ] E) = e.symm
Full source
@[simp]
theorem coe_toContinuousLinearEquiv_symm (e : E ≃ₗ[π•œ] F) :
    (e.toContinuousLinearEquiv.symm : F β†’β‚—[π•œ] E) = e.symm :=
  rfl
Inverse of Continuous Linear Equivalence Induced by Linear Equivalence on Finite-Dimensional Spaces
Informal description
Let $\mathbb{K}$ be a complete nontrivially normed field, and let $E$ and $F$ be finite-dimensional Hausdorff topological vector spaces over $\mathbb{K}$. For any linear equivalence $e : E \simeq_{\mathbb{K}} F$, the inverse of the induced continuous linear equivalence $e^{-1} : F \to_{\mathbb{K}} E$ is equal to the linear equivalence inverse $e^{-1} : F \simeq_{\mathbb{K}} E$.
LinearEquiv.coe_toContinuousLinearEquiv_symm' theorem
(e : E ≃ₗ[π•œ] F) : (e.toContinuousLinearEquiv.symm : F β†’ E) = e.symm
Full source
@[simp]
theorem coe_toContinuousLinearEquiv_symm' (e : E ≃ₗ[π•œ] F) :
    (e.toContinuousLinearEquiv.symm : F β†’ E) = e.symm :=
  rfl
Inverse of Continuous Linear Equivalence Induced by Linear Equivalence on Finite-Dimensional Spaces
Informal description
Let $\mathbb{K}$ be a complete nontrivially normed field, and let $E$ and $F$ be finite-dimensional Hausdorff topological vector spaces over $\mathbb{K}$. For any linear equivalence $e : E \simeq_{\mathbb{K}} F$, the inverse of the induced continuous linear equivalence $e^{-1} : F \to E$ is equal to the linear equivalence inverse $e^{-1} : F \simeq_{\mathbb{K}} E$.
LinearEquiv.toLinearEquiv_toContinuousLinearEquiv theorem
(e : E ≃ₗ[π•œ] F) : e.toContinuousLinearEquiv.toLinearEquiv = e
Full source
@[simp]
theorem toLinearEquiv_toContinuousLinearEquiv (e : E ≃ₗ[π•œ] F) :
    e.toContinuousLinearEquiv.toLinearEquiv = e := by
  ext x
  rfl
Underlying Linear Equivalence of Continuous Linear Equivalence Induced by Linear Equivalence
Informal description
Let $\mathbb{K}$ be a complete nontrivially normed field, and let $E$ and $F$ be finite-dimensional Hausdorff topological vector spaces over $\mathbb{K}$. For any linear equivalence $e : E \simeq_{\mathbb{K}} F$, the underlying linear equivalence of the induced continuous linear equivalence $e.toContinuousLinearEquiv$ is equal to $e$ itself.
LinearEquiv.toLinearEquiv_toContinuousLinearEquiv_symm theorem
(e : E ≃ₗ[π•œ] F) : e.toContinuousLinearEquiv.symm.toLinearEquiv = e.symm
Full source
theorem toLinearEquiv_toContinuousLinearEquiv_symm (e : E ≃ₗ[π•œ] F) :
    e.toContinuousLinearEquiv.symm.toLinearEquiv = e.symm := by
  ext x
  rfl
Inverse of Continuous Linear Equivalence Induced by Linear Equivalence
Informal description
Given a linear equivalence $e : E \simeq_{\mathbb{K}} F$ between finite-dimensional vector spaces $E$ and $F$ over a complete nontrivially normed field $\mathbb{K}$, the linear equivalence obtained by taking the inverse of the continuous linear equivalence induced by $e$ is equal to the inverse of $e$ itself. In other words, $(e^{\text{cts}})^{-1}_{\text{lin}} = e^{-1}$, where $e^{\text{cts}}$ denotes the continuous linear equivalence induced by $e$.
LinearEquiv.canLiftContinuousLinearEquiv instance
: CanLift (E ≃ₗ[π•œ] F) (E ≃L[π•œ] F) ContinuousLinearEquiv.toLinearEquiv fun _ => True
Full source
instance canLiftContinuousLinearEquiv :
    CanLift (E ≃ₗ[π•œ] F) (E ≃L[π•œ] F) ContinuousLinearEquiv.toLinearEquiv fun _ => True :=
  ⟨fun f _ => ⟨_, f.toLinearEquiv_toContinuousLinearEquiv⟩⟩
Lifting Linear Equivalences to Continuous Linear Equivalences in Finite Dimensions
Informal description
Given a complete nontrivially normed field $\mathbb{K}$ and finite-dimensional Hausdorff topological vector spaces $E$ and $F$ over $\mathbb{K}$, any linear equivalence $E \simeq_{\mathbb{K}} F$ can be lifted to a continuous linear equivalence $E \simeq_{L[\mathbb{K}]} F$ via the canonical map `ContinuousLinearEquiv.toLinearEquiv`.
FiniteDimensional.nonempty_continuousLinearEquiv_of_finrank_eq theorem
(cond : finrank π•œ E = finrank π•œ F) : Nonempty (E ≃L[π•œ] F)
Full source
/-- Two finite-dimensional topological vector spaces over a complete normed field are continuously
linearly equivalent if they have the same (finite) dimension. -/
theorem FiniteDimensional.nonempty_continuousLinearEquiv_of_finrank_eq
    (cond : finrank π•œ E = finrank π•œ F) : Nonempty (E ≃L[π•œ] F) :=
  (nonempty_linearEquiv_of_finrank_eq cond).map LinearEquiv.toContinuousLinearEquiv
Existence of Continuous Linear Isomorphism for Finite-Dimensional Spaces of Equal Dimension
Informal description
Let $\mathbb{K}$ be a complete nontrivially normed field, and let $E$ and $F$ be finite-dimensional Hausdorff topological vector spaces over $\mathbb{K}$. If $E$ and $F$ have the same finite dimension (i.e., $\text{finrank}_{\mathbb{K}} E = \text{finrank}_{\mathbb{K}} F$), then there exists a continuous linear isomorphism between $E$ and $F$ with continuous inverse.
FiniteDimensional.nonempty_continuousLinearEquiv_iff_finrank_eq theorem
: Nonempty (E ≃L[π•œ] F) ↔ finrank π•œ E = finrank π•œ F
Full source
/-- Two finite-dimensional topological vector spaces over a complete normed field are continuously
linearly equivalent if and only if they have the same (finite) dimension. -/
theorem FiniteDimensional.nonempty_continuousLinearEquiv_iff_finrank_eq :
    NonemptyNonempty (E ≃L[π•œ] F) ↔ finrank π•œ E = finrank π•œ F :=
  ⟨fun ⟨h⟩ => h.toLinearEquiv.finrank_eq, fun h =>
    FiniteDimensional.nonempty_continuousLinearEquiv_of_finrank_eq h⟩
Continuous Linear Isomorphism Exists if and only if Finite-Dimensional Spaces Have Equal Dimension
Informal description
Let $\mathbb{K}$ be a complete nontrivially normed field, and let $E$ and $F$ be finite-dimensional Hausdorff topological vector spaces over $\mathbb{K}$. Then there exists a continuous linear isomorphism between $E$ and $F$ with continuous inverse if and only if $E$ and $F$ have the same finite dimension, i.e., $\text{finrank}_{\mathbb{K}} E = \text{finrank}_{\mathbb{K}} F$.
ContinuousLinearEquiv.ofFinrankEq definition
(cond : finrank π•œ E = finrank π•œ F) : E ≃L[π•œ] F
Full source
/-- A continuous linear equivalence between two finite-dimensional topological vector spaces over a
complete normed field of the same (finite) dimension. -/
def ContinuousLinearEquiv.ofFinrankEq (cond : finrank π•œ E = finrank π•œ F) : E ≃L[π•œ] F :=
  (LinearEquiv.ofFinrankEq E F cond).toContinuousLinearEquiv
Continuous linear equivalence between finite-dimensional spaces of equal dimension
Informal description
Given two finite-dimensional Hausdorff topological vector spaces \( E \) and \( F \) over a complete nontrivially normed field \( \mathbb{K} \), if they have the same finite dimension (i.e., \(\text{finrank}_{\mathbb{K}} E = \text{finrank}_{\mathbb{K}} F\)), then there exists a continuous linear equivalence (i.e., a continuous linear isomorphism with continuous inverse) between \( E \) and \( F \).
Basis.constrL definition
(v : Basis ΞΉ π•œ E) (f : ΞΉ β†’ F) : E β†’L[π•œ] F
Full source
/-- Construct a continuous linear map given the value at a finite basis. -/
def constrL (v : Basis ΞΉ π•œ E) (f : ΞΉ β†’ F) : E β†’L[π•œ] F :=
  haveI : FiniteDimensional π•œ E := FiniteDimensional.of_fintype_basis v
  LinearMap.toContinuousLinearMap (v.constr π•œ f)
Continuous linear map construction from basis vectors
Informal description
Given a finite-dimensional vector space $E$ over a complete nontrivially normed field $\mathbb{K}$ with a basis $v : \text{Basis } \iota \mathbb{K} E$, and a function $f : \iota \to F$ where $F$ is another topological vector space over $\mathbb{K}$, the function $\text{Basis.constrL } v f$ constructs the unique continuous linear map from $E$ to $F$ that sends each basis vector $v(i)$ to $f(i)$ and extends linearly to all of $E$.
Basis.coe_constrL theorem
(v : Basis ΞΉ π•œ E) (f : ΞΉ β†’ F) : (v.constrL f : E β†’β‚—[π•œ] F) = v.constr π•œ f
Full source
@[simp]
theorem coe_constrL (v : Basis ΞΉ π•œ E) (f : ΞΉ β†’ F) : (v.constrL f : E β†’β‚—[π•œ] F) = v.constr π•œ f :=
  rfl
Underlying Linear Map of Continuous Construction from Basis Vectors
Informal description
Let $E$ be a finite-dimensional vector space over a complete nontrivially normed field $\mathbb{K}$ with a basis $v : \text{Basis } \iota \mathbb{K} E$, and let $F$ be another topological vector space over $\mathbb{K}$. For any function $f : \iota \to F$, the underlying linear map of the continuous linear map $v.\text{constrL } f$ is equal to the linear map constructed from the basis $v$ and the function $f$, i.e., $$(v.\text{constrL } f : E \to_{\mathbb{K}} F) = v.\text{constr } \mathbb{K} f.$$
Basis.equivFunL definition
(v : Basis ΞΉ π•œ E) : E ≃L[π•œ] ΞΉ β†’ π•œ
Full source
/-- The continuous linear equivalence between a vector space over `π•œ` with a finite basis and
functions from its basis indexing type to `π•œ`. -/
@[simps! apply]
def equivFunL (v : Basis ΞΉ π•œ E) : E ≃L[π•œ] ΞΉ β†’ π•œ :=
  { v.equivFun with
    continuous_toFun :=
      haveI : FiniteDimensional π•œ E := FiniteDimensional.of_fintype_basis v
      v.equivFun.toLinearMap.continuous_of_finiteDimensional
    continuous_invFun := by
      change Continuous v.equivFun.symm.toFun
      exact v.equivFun.symm.toLinearMap.continuous_of_finiteDimensional }
Continuous linear equivalence between a finite-dimensional vector space and its coordinate functions
Informal description
Given a finite-dimensional vector space $E$ over a complete nontrivially normed field $\mathbb{K}$ with a basis $v : \text{Basis } \iota \mathbb{K} E$, the continuous linear equivalence $\text{Basis.equivFunL } v$ maps any element $x \in E$ to its coordinates in the basis $v$ as a function $\iota \to \mathbb{K}$. This equivalence is continuous in both directions.
Basis.equivFunL_symm_apply_repr theorem
(v : Basis ΞΉ π•œ E) (x : E) : v.equivFunL.symm (v.repr x) = x
Full source
@[simp]
lemma equivFunL_symm_apply_repr (v : Basis ΞΉ π•œ E) (x : E) :
    v.equivFunL.symm (v.repr x) = x :=
  v.equivFunL.symm_apply_apply x
Inverse Coordinate Map Recovers Original Vector
Informal description
Let $E$ be a finite-dimensional vector space over a complete nontrivially normed field $\mathbb{K}$ with a basis $v$. For any element $x \in E$, the inverse of the continuous linear equivalence $v.\text{equivFunL}$ applied to the coordinate representation $v.\text{repr}(x)$ equals $x$ itself, i.e., $$v.\text{equivFunL}^{-1}(v.\text{repr}(x)) = x.$$
Basis.constrL_apply theorem
{ΞΉ : Type*} [Fintype ΞΉ] (v : Basis ΞΉ π•œ E) (f : ΞΉ β†’ F) (e : E) : v.constrL f e = βˆ‘ i, v.equivFun e i β€’ f i
Full source
@[simp]
theorem constrL_apply {ΞΉ : Type*} [Fintype ΞΉ] (v : Basis ΞΉ π•œ E) (f : ΞΉ β†’ F) (e : E) :
    v.constrL f e = βˆ‘ i, v.equivFun e i β€’ f i :=
  v.constr_apply_fintype π•œ _ _
Coordinate Expansion Formula for Continuous Linear Maps Constructed from Basis Vectors
Informal description
Let $\iota$ be a finite index set, $\mathbb{K}$ a complete nontrivially normed field, $E$ a finite-dimensional vector space over $\mathbb{K}$ with basis $v : \text{Basis } \iota \mathbb{K} E$, and $F$ another topological vector space over $\mathbb{K}$. For any function $f : \iota \to F$ and any vector $e \in E$, the continuous linear map $v.\text{constrL } f$ evaluated at $e$ is given by: $$ v.\text{constrL } f (e) = \sum_{i \in \iota} (v.\text{equivFun } e)(i) \cdot f(i) $$ where $v.\text{equivFun } e$ represents the coordinates of $e$ in the basis $v$.
Basis.constrL_basis theorem
(v : Basis ΞΉ π•œ E) (f : ΞΉ β†’ F) (i : ΞΉ) : v.constrL f (v i) = f i
Full source
@[simp 1100]
theorem constrL_basis (v : Basis ΞΉ π•œ E) (f : ΞΉ β†’ F) (i : ΞΉ) : v.constrL f (v i) = f i :=
  v.constr_basis π•œ _ _
Continuous linear map construction agrees with basis vectors: $(v.\text{constrL}(f))(v_i) = f(i)$
Informal description
Let $E$ be a finite-dimensional vector space over a complete nontrivially normed field $\mathbb{K}$ with a basis $v = \{v_i\}_{i \in \iota}$. For any function $f \colon \iota \to F$ where $F$ is another topological vector space over $\mathbb{K}$, the continuous linear map $v.\text{constrL}(f)$ constructed from $f$ satisfies $v.\text{constrL}(f)(v_i) = f(i)$ for each basis vector $v_i$.
ContinuousLinearMap.toContinuousLinearEquivOfDetNeZero definition
(f : E β†’L[π•œ] E) (hf : f.det β‰  0) : E ≃L[π•œ] E
Full source
/-- Builds a continuous linear equivalence from a continuous linear map on a finite-dimensional
vector space whose determinant is nonzero. -/
def toContinuousLinearEquivOfDetNeZero (f : E β†’L[π•œ] E) (hf : f.det β‰  0) : E ≃L[π•œ] E :=
  ((f : E β†’β‚—[π•œ] E).equivOfDetNeZero hf).toContinuousLinearEquiv
Continuous linear equivalence from a continuous linear map with nonzero determinant
Informal description
Given a continuous linear endomorphism \( f \colon E \to E \) on a finite-dimensional vector space \( E \) over a complete nontrivially normed field \( \mathbb{K} \), if the determinant of \( f \) is nonzero, then \( f \) induces a continuous linear equivalence (i.e., a continuous linear isomorphism with continuous inverse) between \( E \) and itself.
ContinuousLinearMap.coe_toContinuousLinearEquivOfDetNeZero theorem
(f : E β†’L[π•œ] E) (hf : f.det β‰  0) : (f.toContinuousLinearEquivOfDetNeZero hf : E β†’L[π•œ] E) = f
Full source
@[simp]
theorem coe_toContinuousLinearEquivOfDetNeZero (f : E β†’L[π•œ] E) (hf : f.det β‰  0) :
    (f.toContinuousLinearEquivOfDetNeZero hf : E β†’L[π•œ] E) = f := by
  ext x
  rfl
Underlying Map of Continuous Linear Equivalence Induced by Nonzero Determinant
Informal description
Let $E$ be a finite-dimensional vector space over a complete nontrivially normed field $\mathbb{K}$, and let $f \colon E \to E$ be a continuous linear map with nonzero determinant. Then the underlying continuous linear map of the continuous linear equivalence induced by $f$ is equal to $f$ itself. In other words, if $f_{\text{equiv}}$ is the continuous linear equivalence constructed from $f$ with $\det(f) \neq 0$, then $f_{\text{equiv}}$ (viewed as a continuous linear map) coincides with $f$.
ContinuousLinearMap.toContinuousLinearEquivOfDetNeZero_apply theorem
(f : E β†’L[π•œ] E) (hf : f.det β‰  0) (x : E) : f.toContinuousLinearEquivOfDetNeZero hf x = f x
Full source
@[simp]
theorem toContinuousLinearEquivOfDetNeZero_apply (f : E β†’L[π•œ] E) (hf : f.det β‰  0) (x : E) :
    f.toContinuousLinearEquivOfDetNeZero hf x = f x :=
  rfl
Equality of Continuous Linear Equivalence and Original Map on Elements
Informal description
Let $E$ be a finite-dimensional vector space over a complete nontrivially normed field $\mathbb{K}$, and let $f \colon E \to E$ be a continuous linear map with $\det(f) \neq 0$. Then for any $x \in E$, the image of $x$ under the continuous linear equivalence induced by $f$ equals $f(x)$, i.e., $f_{\text{equiv}}(x) = f(x)$.
Matrix.toLin_finTwoProd_toContinuousLinearMap theorem
(a b c d : π•œ) : LinearMap.toContinuousLinearMap (Matrix.toLin (Basis.finTwoProd π•œ) (Basis.finTwoProd π•œ) !![a, b; c, d]) = (a β€’ ContinuousLinearMap.fst π•œ π•œ π•œ + b β€’ ContinuousLinearMap.snd π•œ π•œ π•œ).prod (c β€’ ContinuousLinearMap.fst π•œ π•œ π•œ + d β€’ ContinuousLinearMap.snd π•œ π•œ π•œ)
Full source
theorem _root_.Matrix.toLin_finTwoProd_toContinuousLinearMap (a b c d : π•œ) :
    LinearMap.toContinuousLinearMap
      (Matrix.toLin (Basis.finTwoProd π•œ) (Basis.finTwoProd π•œ) !![a, b; c, d]) =
      (a β€’ ContinuousLinearMap.fst π•œ π•œ π•œ + b β€’ ContinuousLinearMap.snd π•œ π•œ π•œ).prod
        (c β€’ ContinuousLinearMap.fst π•œ π•œ π•œ + d β€’ ContinuousLinearMap.snd π•œ π•œ π•œ) :=
  ContinuousLinearMap.ext <| Matrix.toLin_finTwoProd_apply _ _ _ _
Matrix representation of continuous linear maps on $\mathbb{K} \times \mathbb{K}$ via standard basis projections
Informal description
Let $\mathbb{K}$ be a complete nontrivially normed field. For any $a, b, c, d \in \mathbb{K}$, the continuous linear map corresponding to the matrix $\begin{pmatrix} a & b \\ c & d \end{pmatrix}$ under the standard basis of $\mathbb{K} \times \mathbb{K}$ is equal to the product of two continuous linear maps: \[ (a \cdot \pi_1 + b \cdot \pi_2) \times (c \cdot \pi_1 + d \cdot \pi_2) \] where $\pi_1$ and $\pi_2$ are the first and second projection maps from $\mathbb{K} \times \mathbb{K}$ to $\mathbb{K}$ respectively.
FiniteDimensional.complete theorem
[FiniteDimensional π•œ E] : CompleteSpace E
Full source
theorem FiniteDimensional.complete [FiniteDimensional π•œ E] : CompleteSpace E := by
  set e := ContinuousLinearEquiv.ofFinrankEq (@finrank_fin_fun π•œ _ _ (finrank π•œ E)).symm
  have : IsUniformEmbedding e.toEquiv.symm := e.symm.isUniformEmbedding
  exact (completeSpace_congr this).1 inferInstance
Completeness of Finite-Dimensional Topological Vector Spaces over Complete Fields
Informal description
Let $\mathbb{K}$ be a complete nontrivially normed field and $E$ a finite-dimensional topological vector space over $\mathbb{K}$. Then $E$ is complete as a uniform space.
Submodule.complete_of_finiteDimensional theorem
(s : Submodule π•œ E) [FiniteDimensional π•œ s] : IsComplete (s : Set E)
Full source
/-- A finite-dimensional subspace is complete. -/
theorem Submodule.complete_of_finiteDimensional (s : Submodule π•œ E) [FiniteDimensional π•œ s] :
    IsComplete (s : Set E) :=
  haveI : IsUniformAddGroup s := s.toAddSubgroup.isUniformAddGroup
  completeSpace_coe_iff_isComplete.1 (FiniteDimensional.complete π•œ s)
Completeness of Finite-Dimensional Submodules in Topological Vector Spaces
Informal description
Let $\mathbb{K}$ be a complete nontrivially normed field and $E$ a topological vector space over $\mathbb{K}$. For any finite-dimensional submodule $s$ of $E$, the subset $s$ is complete as a subset of the uniform space $E$.
Submodule.closed_of_finiteDimensional theorem
[T2Space E] (s : Submodule π•œ E) [FiniteDimensional π•œ s] : IsClosed (s : Set E)
Full source
/-- A finite-dimensional subspace is closed. -/
theorem Submodule.closed_of_finiteDimensional
    [T2Space E] (s : Submodule π•œ E) [FiniteDimensional π•œ s] :
    IsClosed (s : Set E) :=
  letI := IsTopologicalAddGroup.toUniformSpace E
  haveI : IsUniformAddGroup E := isUniformAddGroup_of_addCommGroup
  s.complete_of_finiteDimensional.isClosed
Closedness of Finite-Dimensional Submodules in Hausdorff Topological Vector Spaces
Informal description
Let $\mathbb{K}$ be a complete nontrivially normed field and $E$ a Hausdorff topological vector space over $\mathbb{K}$. For any finite-dimensional submodule $s$ of $E$, the subset $s$ is closed in $E$.
LinearMap.isClosedEmbedding_of_injective theorem
[T2Space E] [FiniteDimensional π•œ E] {f : E β†’β‚—[π•œ] F} (hf : LinearMap.ker f = βŠ₯) : IsClosedEmbedding f
Full source
/-- An injective linear map with finite-dimensional domain is a closed embedding. -/
theorem LinearMap.isClosedEmbedding_of_injective [T2Space E] [FiniteDimensional π•œ E] {f : E β†’β‚—[π•œ] F}
    (hf : LinearMap.ker f = βŠ₯) : IsClosedEmbedding f :=
  let g := LinearEquiv.ofInjective f (LinearMap.ker_eq_bot.mp hf)
  { IsEmbedding.subtypeVal.comp g.toContinuousLinearEquiv.toHomeomorph.isEmbedding with
    isClosed_range := by
      haveI := f.finiteDimensional_range
      simpa [LinearMap.range_coe f] using (LinearMap.range f).closed_of_finiteDimensional }
Injective Linear Maps on Finite-Dimensional Hausdorff Spaces are Closed Embeddings
Informal description
Let $\mathbb{K}$ be a complete nontrivially normed field, and let $E$ and $F$ be topological vector spaces over $\mathbb{K}$. If $E$ is finite-dimensional and Hausdorff, then any injective linear map $f \colon E \to F$ is a closed embedding (i.e., $f$ is continuous, injective, and maps closed sets to closed sets).
isClosedEmbedding_smul_left theorem
[T2Space E] {c : E} (hc : c β‰  0) : IsClosedEmbedding fun x : π•œ => x β€’ c
Full source
theorem isClosedEmbedding_smul_left [T2Space E] {c : E} (hc : c β‰  0) :
    IsClosedEmbedding fun x : π•œ => x β€’ c :=
  LinearMap.isClosedEmbedding_of_injective (LinearMap.ker_toSpanSingleton π•œ E hc)
Closed Embedding Property of Scalar Multiplication by Nonzero Elements in Hausdorff TVS
Informal description
Let $\mathbb{K}$ be a complete nontrivially normed field and $E$ a Hausdorff topological vector space over $\mathbb{K}$. For any nonzero element $c \in E$, the linear map $x \mapsto x \cdot c$ from $\mathbb{K}$ to $E$ is a closed embedding (i.e., it is continuous, injective, and maps closed sets to closed sets).
isClosedMap_smul_left theorem
[T2Space E] (c : E) : IsClosedMap fun x : π•œ => x β€’ c
Full source
theorem isClosedMap_smul_left [T2Space E] (c : E) : IsClosedMap fun x : π•œ => x β€’ c := by
  by_cases hc : c = 0
  Β· simp_rw [hc, smul_zero]
    exact isClosedMap_const
  Β· exact (isClosedEmbedding_smul_left hc).isClosedMap
Closed Map Property of Scalar Multiplication in Hausdorff TVS
Informal description
Let $\mathbb{K}$ be a complete nontrivially normed field and $E$ a Hausdorff topological vector space over $\mathbb{K}$. For any element $c \in E$, the linear map $x \mapsto x \cdot c$ from $\mathbb{K}$ to $E$ is a closed map (i.e., it maps closed subsets of $\mathbb{K}$ to closed subsets of $E$).
ContinuousLinearMap.exists_right_inverse_of_surjective theorem
[FiniteDimensional π•œ F] (f : E β†’L[π•œ] F) (hf : LinearMap.range f = ⊀) : βˆƒ g : F β†’L[π•œ] E, f.comp g = ContinuousLinearMap.id π•œ F
Full source
theorem ContinuousLinearMap.exists_right_inverse_of_surjective [FiniteDimensional π•œ F]
    (f : E β†’L[π•œ] F) (hf : LinearMap.range f = ⊀) :
    βˆƒ g : F β†’L[π•œ] E, f.comp g = ContinuousLinearMap.id π•œ F :=
  let ⟨g, hg⟩ := (f : E β†’β‚—[π•œ] F).exists_rightInverse_of_surjective hf
  ⟨LinearMap.toContinuousLinearMap g, ContinuousLinearMap.coe_inj.1 hg⟩
Existence of Continuous Right Inverse for Surjective Continuous Linear Maps on Finite-Dimensional Codomain
Informal description
Let $\mathbb{K}$ be a complete nontrivially normed field, and let $E$ and $F$ be topological vector spaces over $\mathbb{K}$. Suppose $F$ is finite-dimensional and Hausdorff. For any continuous linear map $f \colon E \to F$ that is surjective (i.e., $\text{range}(f) = F$), there exists a continuous linear map $g \colon F \to E$ such that $f \circ g$ is the identity map on $F$.