Documentation

Mathlib.Analysis.LocallyConvex.Barrelled

Barrelled spaces and the Banach-Steinhaus theorem / Uniform Boundedness Principle #

This files defines barrelled spaces over a NontriviallyNormedField, and proves the Banach-Steinhaus theorem for maps from a barrelled space to a space equipped with a family of seminorms generating the topology (i.e WithSeminorms q for some family of seminorms q).

The more standard Banach-Steinhaus theorem for normed spaces is then deduced from that in Analysis.Normed.Operator.BanachSteinhaus.

Main definitions #

Main theorems #

Implementation details #

Barrelled spaces are defined in Bourbaki as locally convex spaces where barrels (aka closed balanced absorbing convex sets) are neighborhoods of zero. One can then show that barrels in a locally convex space are exactly closed unit balls of lower semicontinuous seminorms, hence that a locally convex space is barrelled iff any lower semicontinuous seminorm is continuous.

The problem with this definition is the local convexity, which is essential to prove that the barrel definition is equivalent to the seminorm definition, because we can essentially only use LocallyConvexSpace over ℝ or β„‚ (which is indeed the setup in which Bourbaki does most of the theory). Since we can easily prove the normed space version over any NontriviallyNormedField, this wouldn't make for a very satisfying "generalization".

Fortunately, it turns out that using the seminorm definition directly solves all problems, since it is exactly what we need for the proof. One could then expect to need the barrel characterization to prove that Baire TVS are barrelled, but the proof is actually easier to do with the seminorm characterization!

TODO #

References #

Tags #

banach-steinhaus, uniform boundedness, equicontinuity

class BarrelledSpace (π•œ : Type u_1) (E : Type u_2) [SeminormedRing π•œ] [AddGroup E] [SMul π•œ E] [TopologicalSpace E] :

A topological vector space E is said to be barrelled if all lower semicontinuous seminorms on E are actually continuous. This is not the usual definition for TVS over ℝ or β„‚, but this has the big advantage of working and giving sensible results over any NontriviallyNormedField. In particular, the Banach-Steinhaus theorem holds for maps between such a space and any space whose topology is generated by a family of seminorms.

  • continuous_of_lowerSemicontinuous : βˆ€ (p : Seminorm π•œ E), LowerSemicontinuous ⇑p β†’ Continuous ⇑p

    In a barrelled space, all lower semicontinuous seminorms on E are actually continuous.

Instances
    theorem BarrelledSpace.continuous_of_lowerSemicontinuous {π•œ : Type u_1} {E : Type u_2} [SeminormedRing π•œ] [AddGroup E] [SMul π•œ E] [TopologicalSpace E] [self : BarrelledSpace π•œ E] (p : Seminorm π•œ E) :
    LowerSemicontinuous ⇑p β†’ Continuous ⇑p

    In a barrelled space, all lower semicontinuous seminorms on E are actually continuous.

    theorem Seminorm.continuous_of_lowerSemicontinuous {π•œ : Type u_1} {E : Type u_2} [AddGroup E] [SMul π•œ E] [SeminormedRing π•œ] [TopologicalSpace E] [BarrelledSpace π•œ E] (p : Seminorm π•œ E) (hp : LowerSemicontinuous ⇑p) :
    Continuous ⇑p
    theorem Seminorm.continuous_iSup {ΞΉ : Sort u_1} {π•œ : Type u_2} {E : Type u_3} [NormedField π•œ] [AddCommGroup E] [Module π•œ E] [TopologicalSpace E] [BarrelledSpace π•œ E] (p : ΞΉ β†’ Seminorm π•œ E) (hp : βˆ€ (i : ΞΉ), Continuous ⇑(p i)) (bdd : BddAbove (Set.range p)) :
    Continuous (⨆ (i : ΞΉ), ⇑(p i))
    instance BaireSpace.instBarrelledSpace {π•œβ‚ : Type u_4} {E : Type u_6} [NontriviallyNormedField π•œβ‚] [AddCommGroup E] [Module π•œβ‚ E] [TopologicalSpace E] [TopologicalAddGroup E] [ContinuousConstSMul π•œβ‚ E] [BaireSpace E] :
    BarrelledSpace π•œβ‚ E

    Any TVS over a NontriviallyNormedField that is also a Baire space is barrelled. In particular, this applies to Banach spaces and FrΓ©chet spaces.

    Equations
    • β‹― = β‹―
    theorem WithSeminorms.banach_steinhaus {ΞΉ : Type u_2} {ΞΊ : Type u_3} {π•œβ‚ : Type u_4} {π•œβ‚‚ : Type u_5} {E : Type u_6} {F : Type u_7} [Nonempty ΞΊ] [NontriviallyNormedField π•œβ‚] [NontriviallyNormedField π•œβ‚‚] {σ₁₂ : π•œβ‚ β†’+* π•œβ‚‚} [RingHomIsometric σ₁₂] [AddCommGroup E] [AddCommGroup F] [Module π•œβ‚ E] [Module π•œβ‚‚ F] [UniformSpace E] [UniformSpace F] [UniformAddGroup E] [UniformAddGroup F] [ContinuousSMul π•œβ‚ E] [BarrelledSpace π•œβ‚ E] {𝓕 : ΞΉ β†’ E β†’SL[σ₁₂] F} {q : SeminormFamily π•œβ‚‚ F ΞΊ} (hq : WithSeminorms q) (H : βˆ€ (k : ΞΊ) (x : E), BddAbove (Set.range fun (i : ΞΉ) => (q k) ((𝓕 i) x))) :
    UniformEquicontinuous (DFunLike.coe ∘ 𝓕)

    The Banach-Steinhaus theorem, or Uniform Boundedness Principle, for maps from a barrelled space to any space whose topology is generated by a family of seminorms. Use WithSeminorms.equicontinuous_TFAE and Seminorm.bound_of_continuous to get explicit bounds on the seminorms from equicontinuity.

    def WithSeminorms.continuousLinearMapOfTendsto {Ξ± : Type u_1} {ΞΊ : Type u_3} {π•œβ‚ : Type u_4} {π•œβ‚‚ : Type u_5} {E : Type u_6} {F : Type u_7} [Nonempty ΞΊ] [NontriviallyNormedField π•œβ‚] [NontriviallyNormedField π•œβ‚‚] {σ₁₂ : π•œβ‚ β†’+* π•œβ‚‚} [RingHomIsometric σ₁₂] [AddCommGroup E] [AddCommGroup F] [Module π•œβ‚ E] [Module π•œβ‚‚ F] [UniformSpace E] [UniformSpace F] [UniformAddGroup E] [UniformAddGroup F] [ContinuousSMul π•œβ‚ E] [ContinuousSMul π•œβ‚‚ F] [BarrelledSpace π•œβ‚ E] {q : SeminormFamily π•œβ‚‚ F ΞΊ} (hq : WithSeminorms q) [T2Space F] {l : Filter Ξ±} [l.IsCountablyGenerated] [l.NeBot] (g : Ξ± β†’ E β†’SL[σ₁₂] F) {f : E β†’ F} (h : Filter.Tendsto (fun (n : Ξ±) (x : E) => (g n) x) l (nhds f)) :
    E β†’SL[σ₁₂] F

    Given a sequence of continuous linear maps which converges pointwise and for which the domain is barrelled, the Banach-Steinhaus theorem is used to guarantee that the limit map is a continuous linear map as well.

    This actually works for any countably generated filter instead of atTop : Filter β„•, but the proof ultimately goes back to sequences.

    Equations
    • hq.continuousLinearMapOfTendsto g h = { toLinearMap := linearMapOfTendsto f (fun (a : Ξ±) => ↑(g a)) h, cont := β‹― }
    Instances For