Documentation

Mathlib.Analysis.Normed.Module.Bases

Schauder Bases and Generalized Bases #

This file defines the theory of bases in Banach spaces, unifying the classical sequential notion with modern generalized bases.

Overview #

A basis in a normed space allows every vector to be expanded as a (potentially infinite) linear combination of basis vectors. Historically, this was defined strictly for sequences with convergence of partial sums (the "classical Schauder basis").

However, modern functional analysis requires bases indexed by arbitrary sets Ξ² (e.g., for non-separable spaces or Hilbert spaces), where convergence is defined via nets over finite subsets (unconditional convergence).

This file provides a unified structure GeneralSchauderBasis that captures both:

Main Definitions #

Main Results #

References #

structure GeneralSchauderBasis (Ξ² : Type u_3) (π•œ : Type u_4) (X : Type u_5) [NontriviallyNormedField π•œ] [NormedAddCommGroup X] [NormedSpace π•œ X] (L : SummationFilter Ξ²) :
Type (max (max u_3 u_4) u_5)

A generalized Schauder basis indexed by Ξ² with summation along filter L.

The key fields are:

  • basis: The basis vectors e i for i : Ξ²
  • coord: The coordinate functionals f i for i : Ξ² in the dual space
  • ortho: Biorthogonality condition f i (e j) = if i = j then 1 else 0
  • expansion: Every x equals βˆ‘ i, f i x β€’ e i, converging along L

See SchauderBasis for the classical β„•-indexed case with conditional convergence, and UnconditionalSchauderBasis for the unconditional case.

  • basis : Ξ² β†’ X

    The basis vectors.

  • coord : Ξ² β†’ StrongDual π•œ X

    Coordinate functionals.

  • ortho (i j : Ξ²) : (self.coord i) (↑self j) = Pi.single j 1 i

    Biorthogonality.

  • expansion (x : X) : HasSum (fun (i : Ξ²) => (self.coord i) x β€’ ↑self i) x L

    The sum converges to x along the provided SummationFilter L.

Instances For
    theorem GeneralSchauderBasis.ext {Ξ² : Type u_3} {π•œ : Type u_4} {X : Type u_5} {inst✝ : NontriviallyNormedField π•œ} {inst✝¹ : NormedAddCommGroup X} {inst✝² : NormedSpace π•œ X} {L : SummationFilter Ξ²} {x y : GeneralSchauderBasis Ξ² π•œ X L} (basis : ↑x = ↑y) (coord : x.coord = y.coord) :
    x = y
    theorem GeneralSchauderBasis.ext_iff {Ξ² : Type u_3} {π•œ : Type u_4} {X : Type u_5} {inst✝ : NontriviallyNormedField π•œ} {inst✝¹ : NormedAddCommGroup X} {inst✝² : NormedSpace π•œ X} {L : SummationFilter Ξ²} {x y : GeneralSchauderBasis Ξ² π•œ X L} :
    x = y ↔ ↑x = ↑y ∧ x.coord = y.coord
    @[reducible, inline]
    abbrev SchauderBasis (π•œ : Type u_4) (X : Type u_5) [NontriviallyNormedField π•œ] [NormedAddCommGroup X] [NormedSpace π•œ X] :
    Type (max u_4 u_5)

    A classical Schauder basis indexed by β„• with conditional convergence.

    Equations
    Instances For
      @[reducible, inline]
      abbrev UnconditionalSchauderBasis (Ξ² : Type u_4) (π•œ : Type u_5) (X : Type u_6) [NontriviallyNormedField π•œ] [NormedAddCommGroup X] [NormedSpace π•œ X] :
      Type (max (max u_4 u_5) u_6)

      An unconditional Schauder basis indexed by Ξ².

      In the literature, this is known as:

      This structure generalizes the classical Schauder basis by replacing sequential convergence with summability over the directed set of finite subsets.

      Equations
      Instances For
        @[implicit_reducible]
        instance instCoeFunGeneralSchauderBasisForall {π•œ : Type u_1} [NontriviallyNormedField π•œ] {X : Type u_2} [NormedAddCommGroup X] [NormedSpace π•œ X] {Ξ² : Type u_3} {L : SummationFilter Ξ²} :
        CoeFun (GeneralSchauderBasis Ξ² π•œ X L) fun (x : GeneralSchauderBasis Ξ² π•œ X L) => Ξ² β†’ X

        Coercion from a GeneralSchauderBasis to the underlying basis function.

        Equations
        theorem GeneralSchauderBasis.linearIndependent {π•œ : Type u_1} [NontriviallyNormedField π•œ] {X : Type u_2} [NormedAddCommGroup X] [NormedSpace π•œ X] {Ξ² : Type u_3} {L : SummationFilter Ξ²} (b : GeneralSchauderBasis Ξ² π•œ X L) :
        LinearIndependent π•œ ↑b

        The basis vectors are linearly independent.

        def GeneralSchauderBasis.proj {π•œ : Type u_1} [NontriviallyNormedField π•œ] {X : Type u_2} [NormedAddCommGroup X] [NormedSpace π•œ X] {Ξ² : Type u_3} {L : SummationFilter Ξ²} (b : GeneralSchauderBasis Ξ² π•œ X L) (A : Finset Ξ²) :
        X β†’L[π•œ] X

        Projection onto a finite set of basis vectors.

        Equations
        Instances For
          @[simp]
          theorem GeneralSchauderBasis.proj_empty {π•œ : Type u_1} [NontriviallyNormedField π•œ] {X : Type u_2} [NormedAddCommGroup X] [NormedSpace π•œ X] {Ξ² : Type u_3} {L : SummationFilter Ξ²} (b : GeneralSchauderBasis Ξ² π•œ X L) :

          The projection on the empty set is the zero map.

          @[simp]
          theorem GeneralSchauderBasis.proj_apply {π•œ : Type u_1} [NontriviallyNormedField π•œ] {X : Type u_2} [NormedAddCommGroup X] [NormedSpace π•œ X] {Ξ² : Type u_3} {L : SummationFilter Ξ²} (b : GeneralSchauderBasis Ξ² π•œ X L) (A : Finset Ξ²) (x : X) :
          (b.proj A) x = βˆ‘ i ∈ A, (b.coord i) x β€’ ↑b i

          The action of the projection on a vector x.

          theorem GeneralSchauderBasis.proj_apply_basis_mem {π•œ : Type u_1} [NontriviallyNormedField π•œ] {X : Type u_2} [NormedAddCommGroup X] [NormedSpace π•œ X] {Ξ² : Type u_3} {L : SummationFilter Ξ²} (b : GeneralSchauderBasis Ξ² π•œ X L) (A : Finset Ξ²) (i : Ξ²) :
          (b.proj A) (↑b i) = if i ∈ A then ↑b i else 0

          The action of the projection on a basis element e i.

          theorem GeneralSchauderBasis.tendsto_proj {π•œ : Type u_1} [NontriviallyNormedField π•œ] {X : Type u_2} [NormedAddCommGroup X] [NormedSpace π•œ X] {Ξ² : Type u_3} {L : SummationFilter Ξ²} (b : GeneralSchauderBasis Ξ² π•œ X L) (x : X) :
          Filter.Tendsto (fun (A : Finset Ξ²) => (b.proj A) x) L.filter (nhds x)

          The projections b.proj A x converge to x along the summation filter.

          theorem GeneralSchauderBasis.range_proj_eq_span {π•œ : Type u_1} [NontriviallyNormedField π•œ] {X : Type u_2} [NormedAddCommGroup X] [NormedSpace π•œ X] {Ξ² : Type u_3} {L : SummationFilter Ξ²} (b : GeneralSchauderBasis Ξ² π•œ X L) (A : Finset Ξ²) :
          (↑(b.proj A)).range = Submodule.span π•œ (↑b '' ↑A)

          The range of the projection is the span of the basis elements in A.

          theorem GeneralSchauderBasis.proj_comp {π•œ : Type u_1} [NontriviallyNormedField π•œ] {X : Type u_2} [NormedAddCommGroup X] [NormedSpace π•œ X] {Ξ² : Type u_3} {L : SummationFilter Ξ²} (b : GeneralSchauderBasis Ξ² π•œ X L) (A B : Finset Ξ²) (x : X) :
          (b.proj A) ((b.proj B) x) = (b.proj (A ∩ B)) x

          Composition of projections: proj A (proj B x) = proj (A ∩ B) x.

          theorem GeneralSchauderBasis.finrank_range_proj {π•œ : Type u_1} [NontriviallyNormedField π•œ] {X : Type u_2} [NormedAddCommGroup X] [NormedSpace π•œ X] {Ξ² : Type u_3} {L : SummationFilter Ξ²} (b : GeneralSchauderBasis Ξ² π•œ X L) (A : Finset Ξ²) :
          Module.finrank π•œ β†₯(↑(b.proj A)).range = A.card

          The dimension of the range of the projection proj A equals the cardinality of A.

          Unconditional Schauder bases #

          noncomputable def UnconditionalSchauderBasis.enormProjBound {π•œ : Type u_1} [NontriviallyNormedField π•œ] {X : Type u_2} [NormedAddCommGroup X] [NormedSpace π•œ X] {Ξ² : Type u_3} (b : UnconditionalSchauderBasis Ξ² π•œ X) :

          The basis constant for unconditional bases (supremum over all finite sets) as enorm.

          Equations
          Instances For

            The enorm of any projection is bounded by the basis constant.

            theorem UnconditionalSchauderBasis.exists_norm_proj_le {π•œ : Type u_1} [NontriviallyNormedField π•œ] {X : Type u_2} [NormedAddCommGroup X] [NormedSpace π•œ X] {Ξ² : Type u_3} (b : UnconditionalSchauderBasis Ξ² π•œ X) [CompleteSpace X] :
            βˆƒ (C : ℝ), βˆ€ (A : Finset Ξ²), β€–GeneralSchauderBasis.proj b Aβ€– ≀ C

            Projections are uniformly bounded for unconditional bases.

            noncomputable def UnconditionalSchauderBasis.nnnormProjBound {π•œ : Type u_1} [NontriviallyNormedField π•œ] {X : Type u_2} [NormedAddCommGroup X] [NormedSpace π•œ X] {Ξ² : Type u_3} (b : UnconditionalSchauderBasis Ξ² π•œ X) :

            The basis constant for unconditional bases (supremum over all finite sets) as nnnorm. It requires completeness to guarantee that the supremum is finite, see lemma bddAbove_range_nnnorm_proj below.

            Equations
            Instances For

              The projection norms are bounded above in a complete space.

              The nnnorm of any projection is bounded by the basis constant.

              The norm of any projection is bounded by the basis constant.

              β„•-indexed Schauder bases with conditional convergence #

              def SchauderBasis.proj {π•œ : Type u_1} [NontriviallyNormedField π•œ] {X : Type u_2} [NormedAddCommGroup X] [NormedSpace π•œ X] (b : SchauderBasis π•œ X) (n : β„•) :
              X β†’L[π•œ] X

              The n-th projection P_n = b.proj (Finset.range n), given by: P_n x = βˆ‘ i ∈ Finset.range n, b.coord i x β€’ b i

              Equations
              Instances For
                @[simp]
                theorem SchauderBasis.proj_zero {π•œ : Type u_1} [NontriviallyNormedField π•œ] {X : Type u_2} [NormedAddCommGroup X] [NormedSpace π•œ X] (b : SchauderBasis π•œ X) :
                b.proj 0 = 0

                The projection at 0 is the zero map.

                @[simp]
                theorem SchauderBasis.proj_apply {π•œ : Type u_1} [NontriviallyNormedField π•œ] {X : Type u_2} [NormedAddCommGroup X] [NormedSpace π•œ X] (b : SchauderBasis π•œ X) (n : β„•) (x : X) :
                (b.proj n) x = βˆ‘ i ∈ Finset.range n, (b.coord i) x β€’ ↑b i

                The action of the projection on a vector.

                theorem SchauderBasis.proj_apply_basis_mem {π•œ : Type u_1} [NontriviallyNormedField π•œ] {X : Type u_2} [NormedAddCommGroup X] [NormedSpace π•œ X] (b : SchauderBasis π•œ X) (n i : β„•) :
                (b.proj n) (↑b i) = if i < n then ↑b i else 0

                The action of the projection on a basis element e i.

                theorem SchauderBasis.range_proj_eq_span {π•œ : Type u_1} [NontriviallyNormedField π•œ] {X : Type u_2} [NormedAddCommGroup X] [NormedSpace π•œ X] (b : SchauderBasis π•œ X) (n : β„•) :
                (↑(b.proj n)).range = Submodule.span π•œ (↑b '' ↑(Finset.range n))

                The range of the projection is the span of the first n basis elements.

                theorem SchauderBasis.finrank_range_proj {π•œ : Type u_1} [NontriviallyNormedField π•œ] {X : Type u_2} [NormedAddCommGroup X] [NormedSpace π•œ X] (b : SchauderBasis π•œ X) (n : β„•) :
                Module.finrank π•œ β†₯(↑(b.proj n)).range = n

                The dimension of the range of the projection P n is n.

                theorem SchauderBasis.tendsto_proj {π•œ : Type u_1} [NontriviallyNormedField π•œ] {X : Type u_2} [NormedAddCommGroup X] [NormedSpace π•œ X] (b : SchauderBasis π•œ X) (x : X) :
                Filter.Tendsto (fun (n : β„•) => (b.proj n) x) Filter.atTop (nhds x)

                The projections converge pointwise to the identity map.

                theorem SchauderBasis.proj_comp {π•œ : Type u_1} [NontriviallyNormedField π•œ] {X : Type u_2} [NormedAddCommGroup X] [NormedSpace π•œ X] (b : SchauderBasis π•œ X) (n m : β„•) (x : X) :
                (b.proj n) ((b.proj m) x) = (b.proj (min n m)) x

                Composition of projections: proj n (proj m x) = proj (min n m) x.

                theorem SchauderBasis.exists_norm_proj_le {π•œ : Type u_1} [NontriviallyNormedField π•œ] {X : Type u_2} [NormedAddCommGroup X] [NormedSpace π•œ X] (b : SchauderBasis π•œ X) [CompleteSpace X] :
                βˆƒ (C : ℝ), βˆ€ (n : β„•), β€–b.proj nβ€– ≀ C

                The projections are uniformly bounded.

                noncomputable def SchauderBasis.enormProjBound {π•œ : Type u_1} [NontriviallyNormedField π•œ] {X : Type u_2} [NormedAddCommGroup X] [NormedSpace π•œ X] (b : SchauderBasis π•œ X) :

                The basis constant for Schauder bases (supremum over projections) as enorm.

                Equations
                Instances For

                  The enorm of any projection is bounded by the basis constant.

                  noncomputable def SchauderBasis.nnnormProjBound {π•œ : Type u_1} [NontriviallyNormedField π•œ] {X : Type u_2} [NormedAddCommGroup X] [NormedSpace π•œ X] (b : SchauderBasis π•œ X) :

                  The basis constant for Schauder bases (supremum over projections) as nnnorm. Requires completeness to guarantee the supremum is finite, see lemma bddAbove_range_nnnorm_proj below.

                  Equations
                  Instances For
                    theorem SchauderBasis.bddAbove_range_nnnorm_proj {π•œ : Type u_1} [NontriviallyNormedField π•œ] {X : Type u_2} [NormedAddCommGroup X] [NormedSpace π•œ X] (b : SchauderBasis π•œ X) [CompleteSpace X] :

                    The projection norms are bounded above in a complete space.

                    The nnnorm of any projection is bounded by the basis constant.

                    The norm of any projection is bounded by the basis constant.

                    Construction of Schauder basis #

                    We explain how to construct a Schauder basis from a sequence P n of projections satisfying P n ∘ P m = P (min n m), converging to the identity pointwise, and such that each P (n+1) - P n has rank one. The idea is to define the basis vectors as e n = (P (n+1) - P n) x for some x such that this is non-zero, and then show that these vectors form a Schauder basis.

                    def SchauderBasis.succSub {π•œ : Type u_1} [NontriviallyNormedField π•œ] {X : Type u_2} [NormedAddCommGroup X] [NormedSpace π•œ X] (P : β„• β†’ X β†’L[π•œ] X) (n : β„•) :
                    X β†’L[π•œ] X

                    The difference operator P (n + 1) - P n.

                    Equations
                    Instances For
                      @[simp]
                      theorem SchauderBasis.sum_succSub {π•œ : Type u_1} [NontriviallyNormedField π•œ] {X : Type u_2} [NormedAddCommGroup X] [NormedSpace π•œ X] (P : β„• β†’ X β†’L[π•œ] X) (h0 : P 0 = 0) (n : β„•) :
                      βˆ‘ i ∈ Finset.range n, succSub P i = P n

                      The sum of succSub operators up to n equals P n.

                      theorem SchauderBasis.succSub_ortho {π•œ : Type u_1} [NontriviallyNormedField π•œ] {X : Type u_2} [NormedAddCommGroup X] [NormedSpace π•œ X] {P : β„• β†’ X β†’L[π•œ] X} (hcomp : βˆ€ (n m : β„•) (x : X), (P n) ((P m) x) = (P (min n m)) x) (i j : β„•) (x : X) :
                      (succSub P i) ((succSub P j) x) = if i = j then (succSub P j) x else 0

                      The operators succSub P i satisfy a biorthogonality relation.

                      theorem SchauderBasis.finrank_range_succSub_eq_one {π•œ : Type u_1} [NontriviallyNormedField π•œ] {X : Type u_2} [NormedAddCommGroup X] [NormedSpace π•œ X] {P : β„• β†’ X β†’L[π•œ] X} (hrank : βˆ€ (n : β„•), Module.finrank π•œ β†₯(↑(P n)).range = n) (hcomp : βˆ€ (n m : β„•) (x : X), (P n) ((P m) x) = (P (min n m)) x) (n : β„•) :
                      Module.finrank π•œ β†₯(↑(succSub P n)).range = 1

                      Assuming that the finrank of the range of P n is n then the finrank of the range of succSub P n is 1.

                      structure SchauderBasis.RankOneDecomposition (π•œ : Type u_1) [NontriviallyNormedField π•œ] (X : Type u_2) [NormedAddCommGroup X] [NormedSpace π•œ X] :
                      Type u_2

                      Data for constructing a Schauder basis from a sequence of finite-rank projections.

                      Given a sequence of continuous linear maps P n : X β†’L[π•œ] X satisfying:

                      • P 0 = 0 and finrank(range(P n)) = n,
                      • P n ∘ P m = P (min n m) (the projections are nested and commute),
                      • P n x β†’ x for every x (pointwise convergence to the identity),

                      the differences succSub P n = P (n+1) - P n are rank-one operators (see finrank_range_succSub_eq_one). Choosing a nonzero vector e n in the range of each succSub P n yields a Schauder basis for X.

                      Use RankOneDecomposition.basis to construct the SchauderBasis from this data.

                      • P : β„• β†’ X β†’L[π•œ] X

                        The sequence of finite-rank projections.

                      • e : β„• β†’ X

                        The sequence of candidate basis vectors.

                      • proj_zero : self.P 0 = 0

                        The projections start at 0.

                      • finrank_range (n : β„•) : Module.finrank π•œ β†₯(↑(self.P n)).range = n

                        The n-th projection has rank n.

                      • proj_comp (n m : β„•) (x : X) : (self.P n) ((self.P m) x) = (self.P (min n m)) x

                        The projections commute and are nested P n (P m) = P (min n m).

                      • proj_tendsto (x : X) : Filter.Tendsto (fun (n : β„•) => (self.P n) x) Filter.atTop (nhds x)

                        The projections converge pointwise to the identity.

                      • e_mem_range (n : β„•) : self.e n ∈ (↑(succSub self.P n)).range

                        The vector e_n lies in the range of the operator succSub P n = P (n+1) - P n.

                      • e_ne_zero (n : β„•) : self.e n β‰  0

                        The vector e_n is non-zero.

                      Instances For
                        theorem SchauderBasis.RankOneDecomposition.exists_coeff {π•œ : Type u_1} [NontriviallyNormedField π•œ] {X : Type u_2} [NormedAddCommGroup X] [NormedSpace π•œ X] (D : RankOneDecomposition π•œ X) (n : β„•) (x : X) :
                        βˆƒ (c : π•œ), c β€’ D.e n = (succSub D.P n) x

                        There exists a coefficient scaling e n to match (succSub D.P n) x.

                        noncomputable def SchauderBasis.RankOneDecomposition.basisCoeff {π•œ : Type u_1} [NontriviallyNormedField π•œ] {X : Type u_2} [NormedAddCommGroup X] [NormedSpace π•œ X] (D : RankOneDecomposition π•œ X) (n : β„•) (x : X) :
                        π•œ

                        The coefficient functional value for the basis construction.

                        Equations
                        Instances For
                          @[simp]
                          theorem SchauderBasis.RankOneDecomposition.basisCoeff_spec {π•œ : Type u_1} [NontriviallyNormedField π•œ] {X : Type u_2} [NormedAddCommGroup X] [NormedSpace π•œ X] (D : RankOneDecomposition π•œ X) (n : β„•) (x : X) :
                          D.basisCoeff n x β€’ D.e n = (succSub D.P n) x

                          The coefficient satisfies basisCoeff D n x β€’ D.e n = (succSub D.P n) x.

                          noncomputable def SchauderBasis.RankOneDecomposition.basis {π•œ : Type u_1} [NontriviallyNormedField π•œ] {X : Type u_2} [NormedAddCommGroup X] [NormedSpace π•œ X] (D : RankOneDecomposition π•œ X) :
                          SchauderBasis π•œ X

                          Constructs a Schauder basis from rank one decomposition.

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            @[simp]
                            theorem SchauderBasis.RankOneDecomposition.basis_proj {π•œ : Type u_1} [NontriviallyNormedField π•œ] {X : Type u_2} [NormedAddCommGroup X] [NormedSpace π•œ X] (D : RankOneDecomposition π•œ X) :

                            The projections of the constructed basis correspond to the input data D.P.

                            @[simp]
                            theorem SchauderBasis.RankOneDecomposition.basis_coe {π•œ : Type u_1} [NontriviallyNormedField π•œ] {X : Type u_2} [NormedAddCommGroup X] [NormedSpace π•œ X] (D : RankOneDecomposition π•œ X) :
                            ↑D.basis = D.e

                            The sequence of the constructed basis corresponds to the input data D.e.