mathlib3 documentation

topology.algebra.module.finite_dimension

Finite dimensional topological vector spaces over complete fields #

THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.

Let π•œ be a complete nontrivially normed field, and E a topological vector space (TVS) over π•œ (i.e we have [add_comm_group E] [module π•œ E] [topological_space E] [topological_add_group E] and [has_continuous_smul π•œ 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 : #

TODO #

Generalize more of analysis/normed_space/finite_dimension to general TVSs.

Implementation detail #

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

@[protected, instance]
def continuous_linear_map.finite_dimensional {π•œ : Type u_1} {E : Type u_2} {F : Type u_3} [field π•œ] [topological_space π•œ] [add_comm_group E] [module π•œ E] [topological_space E] [add_comm_group F] [module π•œ F] [topological_space F] [topological_add_group F] [has_continuous_smul π•œ F] [finite_dimensional π•œ E] [finite_dimensional π•œ F] :
finite_dimensional π•œ (E β†’L[π•œ] F)

The space of continuous linear maps between finite-dimensional spaces is finite-dimensional.

theorem unique_topology_of_t2 {π•œ : Type u} [hnorm : nontrivially_normed_field π•œ] {t : topological_space π•œ} (h₁ : topological_add_group π•œ) (hβ‚‚ : has_continuous_smul π•œ π•œ) (h₃ : t2_space π•œ) :

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 linear_map.continuous_of_is_closed_ker {π•œ : Type u} [hnorm : nontrivially_normed_field π•œ] {E : Type v} [add_comm_group E] [module π•œ E] [topological_space E] [topological_add_group E] [has_continuous_smul π•œ E] (l : E β†’β‚—[π•œ] π•œ) (hl : is_closed ↑(linear_map.ker l)) :

Any linear form on a topological vector space over a nontrivially normed field is continuous if its kernel is closed.

Any linear form on a topological vector space over a nontrivially normed field is continuous if and only if its kernel is closed.

theorem linear_map.continuous_of_nonzero_on_open {π•œ : Type u} [hnorm : nontrivially_normed_field π•œ] {E : Type v} [add_comm_group E] [module π•œ E] [topological_space E] [topological_add_group E] [has_continuous_smul π•œ E] (l : E β†’β‚—[π•œ] π•œ) (s : set E) (hs₁ : is_open s) (hsβ‚‚ : s.nonempty) (hs₃ : βˆ€ (x : E), x ∈ s β†’ ⇑l x β‰  0) :

Over a nontrivially normed field, any linear form which is nonzero on a nonempty open set is automatically continuous.

theorem linear_map.continuous_of_finite_dimensional {π•œ : Type u} [hnorm : nontrivially_normed_field π•œ] {E : Type v} [add_comm_group E] [module π•œ E] [topological_space E] [topological_add_group E] [has_continuous_smul π•œ E] {F' : Type x} [add_comm_group F'] [module π•œ F'] [topological_space F'] [topological_add_group F'] [has_continuous_smul π•œ F'] [complete_space π•œ] [t2_space E] [finite_dimensional π•œ E] (f : E β†’β‚—[π•œ] F') :

Any linear map on a finite dimensional space over a complete field is continuous.

theorem continuous_equiv_fun_basis {π•œ : Type u} [hnorm : nontrivially_normed_field π•œ] {E : Type v} [add_comm_group E] [module π•œ E] [topological_space E] [topological_add_group E] [has_continuous_smul π•œ E] [complete_space π•œ] [t2_space E] {ΞΉ : Type u_1} [fintype ΞΉ] (ΞΎ : basis ΞΉ π•œ E) :

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 wich makes all linear maps from a T2 finite dimensional TVS over such a field continuous (see linear_map.continuous_of_finite_dimensional), which in turn implies that all norms are equivalent in finite dimensions.

def linear_map.to_continuous_linear_map {π•œ : Type u} [hnorm : nontrivially_normed_field π•œ] {E : Type v} [add_comm_group E] [module π•œ E] [topological_space E] [topological_add_group E] [has_continuous_smul π•œ E] {F' : Type x} [add_comm_group F'] [module π•œ F'] [topological_space F'] [topological_add_group F'] [has_continuous_smul π•œ F'] [complete_space π•œ] [t2_space E] [finite_dimensional π•œ E] :
(E β†’β‚—[π•œ] F') ≃ₗ[π•œ] E β†’L[π•œ] F'

The continuous linear map induced by a linear map on a finite dimensional space

Equations
@[simp]

A surjective linear map f with finite dimensional codomain is an open map.

@[protected, instance]
def linear_map.can_lift_continuous_linear_map {π•œ : Type u} [hnorm : nontrivially_normed_field π•œ] {E : Type v} [add_comm_group E] [module π•œ E] [topological_space E] [topological_add_group E] [has_continuous_smul π•œ E] {F : Type w} [add_comm_group F] [module π•œ F] [topological_space F] [topological_add_group F] [has_continuous_smul π•œ F] [complete_space π•œ] [t2_space E] [finite_dimensional π•œ E] :
can_lift (E β†’β‚—[π•œ] F) (E β†’L[π•œ] F) coe (Ξ» (_x : E β†’β‚—[π•œ] F), true)
Equations
def linear_equiv.to_continuous_linear_equiv {π•œ : Type u} [hnorm : nontrivially_normed_field π•œ] {E : Type v} [add_comm_group E] [module π•œ E] [topological_space E] [topological_add_group E] [has_continuous_smul π•œ E] {F : Type w} [add_comm_group F] [module π•œ F] [topological_space F] [topological_add_group F] [has_continuous_smul π•œ F] [complete_space π•œ] [t2_space E] [t2_space F] [finite_dimensional π•œ E] (e : E ≃ₗ[π•œ] F) :
E ≃L[π•œ] F

The continuous linear equivalence induced by a linear equivalence on a finite dimensional space.

Equations
@[protected, instance]
Equations

Two finite-dimensional topological vector spaces over a complete normed field are continuously linearly equivalent if they have the same (finite) dimension.

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.

noncomputable def continuous_linear_equiv.of_finrank_eq {π•œ : Type u} [hnorm : nontrivially_normed_field π•œ] {E : Type v} [add_comm_group E] [module π•œ E] [topological_space E] [topological_add_group E] [has_continuous_smul π•œ E] {F : Type w} [add_comm_group F] [module π•œ F] [topological_space F] [topological_add_group F] [has_continuous_smul π•œ F] [complete_space π•œ] [t2_space E] [t2_space F] [finite_dimensional π•œ E] [finite_dimensional π•œ F] (cond : finite_dimensional.finrank π•œ E = finite_dimensional.finrank π•œ F) :
E ≃L[π•œ] F

A continuous linear equivalence between two finite-dimensional topological vector spaces over a complete normed field of the same (finite) dimension.

Equations
noncomputable def basis.constrL {π•œ : Type u} [hnorm : nontrivially_normed_field π•œ] {E : Type v} [add_comm_group E] [module π•œ E] [topological_space E] [topological_add_group E] [has_continuous_smul π•œ E] {F : Type w} [add_comm_group F] [module π•œ F] [topological_space F] [topological_add_group F] [has_continuous_smul π•œ F] [complete_space π•œ] {ΞΉ : Type u_1} [fintype ΞΉ] [t2_space E] (v : basis ΞΉ π•œ E) (f : ΞΉ β†’ F) :
E β†’L[π•œ] F

Construct a continuous linear map given the value at a finite basis.

Equations
@[simp, norm_cast]
theorem basis.coe_constrL {π•œ : Type u} [hnorm : nontrivially_normed_field π•œ] {E : Type v} [add_comm_group E] [module π•œ E] [topological_space E] [topological_add_group E] [has_continuous_smul π•œ E] {F : Type w} [add_comm_group F] [module π•œ F] [topological_space F] [topological_add_group F] [has_continuous_smul π•œ F] [complete_space π•œ] {ΞΉ : Type u_1} [fintype ΞΉ] [t2_space E] (v : basis ΞΉ π•œ E) (f : ΞΉ β†’ F) :
↑(v.constrL f) = ⇑(v.constr π•œ) f
noncomputable def basis.equiv_funL {π•œ : Type u} [hnorm : nontrivially_normed_field π•œ] {E : Type v} [add_comm_group E] [module π•œ E] [topological_space E] [topological_add_group E] [has_continuous_smul π•œ E] [complete_space π•œ] {ΞΉ : Type u_1} [fintype ΞΉ] [t2_space E] (v : basis ΞΉ π•œ E) :
E ≃L[π•œ] ΞΉ β†’ π•œ

The continuous linear equivalence between a vector space over π•œ with a finite basis and functions from its basis indexing type to π•œ.

Equations
@[simp]
theorem basis.constrL_apply {π•œ : Type u} [hnorm : nontrivially_normed_field π•œ] {E : Type v} [add_comm_group E] [module π•œ E] [topological_space E] [topological_add_group E] [has_continuous_smul π•œ E] {F : Type w} [add_comm_group F] [module π•œ F] [topological_space F] [topological_add_group F] [has_continuous_smul π•œ F] [complete_space π•œ] {ΞΉ : Type u_1} [fintype ΞΉ] [t2_space E] (v : basis ΞΉ π•œ E) (f : ΞΉ β†’ F) (e : E) :
⇑(v.constrL f) e = finset.univ.sum (Ξ» (i : ΞΉ), ⇑(v.equiv_fun) e i β€’ f i)
@[simp]
theorem basis.constrL_basis {π•œ : Type u} [hnorm : nontrivially_normed_field π•œ] {E : Type v} [add_comm_group E] [module π•œ E] [topological_space E] [topological_add_group E] [has_continuous_smul π•œ E] {F : Type w} [add_comm_group F] [module π•œ F] [topological_space F] [topological_add_group F] [has_continuous_smul π•œ F] [complete_space π•œ] {ΞΉ : Type u_1} [fintype ΞΉ] [t2_space E] (v : basis ΞΉ π•œ E) (f : ΞΉ β†’ F) (i : ΞΉ) :
⇑(v.constrL f) (⇑v i) = f i
noncomputable def continuous_linear_map.to_continuous_linear_equiv_of_det_ne_zero {π•œ : Type u} [hnorm : nontrivially_normed_field π•œ] {E : Type v} [add_comm_group E] [module π•œ E] [topological_space E] [topological_add_group E] [has_continuous_smul π•œ E] [complete_space π•œ] [t2_space E] [finite_dimensional π•œ E] (f : E β†’L[π•œ] E) (hf : f.det β‰  0) :
E ≃L[π•œ] E

Builds a continuous linear equivalence from a continuous linear map on a finite-dimensional vector space whose determinant is nonzero.

Equations
theorem matrix.to_lin_fin_two_prod_to_continuous_linear_map {π•œ : Type u} [hnorm : nontrivially_normed_field π•œ] [complete_space π•œ] (a b c d : π•œ) :
⇑linear_map.to_continuous_linear_map (⇑(matrix.to_lin (basis.fin_two_prod π•œ) (basis.fin_two_prod π•œ)) (⇑matrix.of ![![a, b], ![c, d]])) = (a β€’ continuous_linear_map.fst π•œ π•œ π•œ + b β€’ continuous_linear_map.snd π•œ π•œ π•œ).prod (c β€’ continuous_linear_map.fst π•œ π•œ π•œ + d β€’ continuous_linear_map.snd π•œ π•œ π•œ)