22.2.ย Locally convex spaces
Locally convex topological vector spaces (LCTVS) come in different forms. Mathlib distinguishes between the topological notion and spaces whose topology is induced by a family of seminorms, and the later one comes in two different forms. Hence, we have the options
-
LocallyConvexSpace -
WithSeminorms -
PolynormableSpace
Mathlib contains an extensive theory of all of these different notions. We will now describe how and when to use which notion.
The first option, LocallyConvexSpace, is the topological characterization that the convex
neighborhoods of a point form a neighborhood basis of that point and this can be combined
with the above characterization of TVS to spell a CLTVS over โ or โ as follows:
variable (E ๐ : Type*) [NormedField ๐]
[AddCommGroup E] [Module ๐ E]
[TopologicalSpace E]
[ContinuousAdd E] [ContinuousSMul ๐ E]
[NormedSpace โ ๐] [Module โ E] [IsScalarTower โ ๐ E]
[LocallyConvexSpace โ E]
This spelling is useful for proving topological properties about LCTVS.
The more analytical characterization of LCTVS is that the topology is induced by a family of seminorms
and there is the predicate WithSeminorms that states that a given topology is induced by
a family of seminorms:
variable {ฮน : Type*} (E ๐ : Type*) [NormedField ๐]
[AddCommGroup E] [Module ๐ E]
[TopologicalSpace E]
[ContinuousAdd E] [ContinuousSMul ๐ E]
{p : SeminormFamily ๐ E ฮน} (hp : WithSeminorms p)
and Mathlib knows that in this case the space is locally convex:
example
[NormedSpace โ ๐] [Module โ E] [IsScalarTower โ ๐ E] :
LocallyConvexSpace โ E := hp.toLocallyConvexSpace
and conversely the gaugeSeminormFamily induces the topology on a locally convex space:
open scoped ComplexOrder
variable {E ๐ : Type*} [RCLike ๐]
[AddCommGroup E] [Module ๐ E]
[TopologicalSpace E]
[IsTopologicalAddGroup E] [ContinuousSMul ๐ E]
[Module โ E] [IsScalarTower โ ๐ E] [ContinuousSMul โ E]
[LocallyConvexSpace ๐ E]
example : WithSeminorms (gaugeSeminormFamily ๐ E) :=
with_gaugeSeminormFamily
The spelling WithSeminorms is used in the case where the family of seminorms explicitly
appears in the statement or the hypothesis, for example WithSeminorms.tendsto_nhds_atTop.
Finally, there is PolynormableSpace, which states that the family of continuous seminorms
induce the topology.
variable {E ๐ : Type*} [NormedField ๐]
[AddCommGroup E] [Module ๐ E]
[TopologicalSpace E] [PolynormableSpace ๐ E]
This characterization of LCTVS is valid for coefficients more general than โ or โ
and coincides with LocallyConvexSpace if the base field is โ or โ.
open scoped ComplexOrder
variable (E ๐ : Type*) [RCLike ๐]
[AddCommGroup E] [TopologicalSpace E]
[IsTopologicalAddGroup E]
[Module ๐ E] [ContinuousSMul ๐ E]
[Module โ E] [ContinuousSMul โ E]
[IsScalarTower โ ๐ E]
example [LocallyConvexSpace ๐ E] :
PolynormableSpace ๐ E := Eโ:Type u_1๐โ:Type u_2instโยนโด:NormedField ๐โinstโยนยณ:AddCommGroup Eโinstโยนยฒ:Module ๐โ Eโinstโยนยน:TopologicalSpace Eโinstโยนโฐ:PolynormableSpace ๐โ EโE:Type u_3๐:Type u_4instโโน:RCLike ๐instโโธ:AddCommGroup Einstโโท:TopologicalSpace Einstโโถ:IsTopologicalAddGroup Einstโโต:Module ๐ Einstโโด:ContinuousSMul ๐ Einstโยณ:Module โ Einstโยฒ:ContinuousSMul โ Einstโยน:IsScalarTower โ ๐ Einstโ:LocallyConvexSpace ๐ Eโข PolynormableSpace ๐ E
All goals completed! ๐
example [PolynormableSpace โ E] :
LocallyConvexSpace โ E := Eโ:Type u_1๐โ:Type u_2instโยนโด:NormedField ๐โinstโยนยณ:AddCommGroup Eโinstโยนยฒ:Module ๐โ Eโinstโยนยน:TopologicalSpace Eโinstโยนโฐ:PolynormableSpace ๐โ EโE:Type u_3๐:Type u_4instโโน:RCLike ๐instโโธ:AddCommGroup Einstโโท:TopologicalSpace Einstโโถ:IsTopologicalAddGroup Einstโโต:Module ๐ Einstโโด:ContinuousSMul ๐ Einstโยณ:Module โ Einstโยฒ:ContinuousSMul โ Einstโยน:IsScalarTower โ ๐ Einstโ:PolynormableSpace โ Eโข LocallyConvexSpace โ E
All goals completed! ๐
Using PolynormableSpace is preferred over WithSeminorms when the family of
seminorms does not explicitly appear in either the hypothesis or the conclusion, for instance
for statements about derivatives of Frรฉchet-valued functions.
22.2.1.ย Notable results
-
The Hahn-Banach theorem:
StrongDual.exists_extension -
The Banach-Steinhaus theorem:
WithSeminorms.banach_steinhausandPolynormableSpace.banach_steinhaus