Documentation

TauCeti.Analysis.InnerProductSpace.Frame

Finite frames: analysis, synthesis, frame and Gram operators #

A finite family v : ΞΉ β†’ E in an inner product space sits between E and the coefficient space EuclideanSpace π•œ ΞΉ through two maps:

They are adjoint to each other. Composing them in the two orders gives the frame operator x ↦ βˆ‘α΅’ βŸͺvα΅’, x⟫ vα΅’ on E and the Gram operator on coefficient space, whose matrix is Mathlib's Gram matrix Matrix.gram π•œ v. Both are positive. They record the same quadratic data on opposite carriers: the frame operator's form is x ↦ βˆ‘α΅’ β€–βŸͺvα΅’, xβŸ«β€–Β², and since the two operators are A† A and A A† for the analysis map A, their sorted eigenvalues agree through the smaller dimension (LinearMap.eigenvalues_adjoint_comp_self_eq_eigenvalues_self_comp_adjoint).

This turns lower frame bounds into Gram-spectrum bounds and back: the inequality a β€–xβ€–Β² ≀ βˆ‘α΅’ β€–βŸͺvα΅’, xβŸ«β€–Β² for all x holds exactly when the sorted Gram eigenvalues below finrank π•œ E are at least a, provided the family has at least finrank π•œ E members.

For two finite families u and v, analysis by u after synthesis by v is their overlap operator, whose matrix is (βŸͺuα΅’, vⱼ⟫)α΅’β±Ό; on the diagonal it is the Gram operator.

A Parseval frame is a family whose frame operator is the identity. Its analysis map is an isometry and its synthesis map a contraction. A weighted decomposition βˆ‘α΅’ cα΅’ βŸͺuα΅’, x⟫ uα΅’ = x with nonnegative weights, such as the contact-point decomposition of John's theorem, makes √cα΅’ β€’ uα΅’ a Parseval frame, which gives the synthesis bound β€–βˆ‘α΅’ cα΅’ bα΅’ uα΅’β€– ≀ (βˆ‘α΅’ cα΅’ β€–bα΅’β€–Β²)^(1/2).

The definitions and the algebraic identities need no finiteness of E; the comparisons with adjoints and eigenvalues assume E finite-dimensional.

Main declarations #

References #

Analysis and synthesis #

noncomputable def TauCeti.analysisMap (π•œ : Type u_1) {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] (v : ΞΉ β†’ E) :
E β†’β‚—[π•œ] EuclideanSpace π•œ ΞΉ

The analysis map x ↦ (βŸͺvα΅’, x⟫)α΅’ of a finite family v, from the ambient space to coefficient space.

Instances For
    noncomputable def TauCeti.synthesisMap (π•œ : Type u_1) {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] [Fintype ΞΉ] (v : ΞΉ β†’ E) :
    EuclideanSpace π•œ ΞΉ β†’β‚—[π•œ] E

    The synthesis map a ↦ βˆ‘α΅’ aα΅’ vα΅’ of a finite family v, from coefficient space to the ambient space.

    Instances For
      theorem TauCeti.range_synthesisMap {π•œ : Type u_1} {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] [Fintype ΞΉ] (v : ΞΉ β†’ E) :
      (synthesisMap π•œ v).range = Submodule.span π•œ (Set.range v)

      The range of synthesis is the span of the finite family.

      @[simp]
      theorem TauCeti.analysisMap_apply {π•œ : Type u_1} {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] (v : ΞΉ β†’ E) (x : E) (i : ΞΉ) :
      ((analysisMap π•œ v) x).ofLp i = inner π•œ (v i) x
      @[simp]
      theorem TauCeti.synthesisMap_apply {π•œ : Type u_1} {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] [Fintype ΞΉ] (v : ΞΉ β†’ E) (a : EuclideanSpace π•œ ΞΉ) :
      (synthesisMap π•œ v) a = βˆ‘ i : ΞΉ, a.ofLp i β€’ v i
      theorem TauCeti.linearIndependent_iff_injective_synthesisMap {π•œ : Type u_1} {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] [Fintype ΞΉ] (v : ΞΉ β†’ E) :

      A finite family is linearly independent exactly when its synthesis map is injective.

      theorem TauCeti.synthesisMap_single {π•œ : Type u_1} {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] [Fintype ΞΉ] [DecidableEq ΞΉ] (v : ΞΉ β†’ E) (i : ΞΉ) (c : π•œ) :
      (synthesisMap π•œ v) (EuclideanSpace.single i c) = c β€’ v i
      theorem TauCeti.bijective_synthesisMap {π•œ : Type u_1} {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] [Fintype ΞΉ] {v : ΞΉ β†’ E} (hv : LinearIndependent π•œ v) (hsp : ⊀ ≀ Submodule.span π•œ (Set.range v)) :
      Function.Bijective ⇑(synthesisMap π•œ v)

      The synthesis map of a linearly independent family spanning the space is bijective.

      theorem TauCeti.bilinearComp_synthesisMap_eq_sum {π•œ : Type u_1} {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] [Fintype ΞΉ] (Q : E β†’L[π•œ] E β†’L[π•œ] π•œ) (v : ΞΉ β†’ E) :

      A bilinear form read through the synthesis map of a family is the sum of its values on pairs of members of the family times the elementary bilinear forms.

      theorem TauCeti.inner_synthesisMap_left {π•œ : Type u_1} {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] [Fintype ΞΉ] (v : ΞΉ β†’ E) (a : EuclideanSpace π•œ ΞΉ) (x : E) :
      inner π•œ ((synthesisMap π•œ v) a) x = inner π•œ a ((analysisMap π•œ v) x)

      The synthesis map is adjoint to the analysis map: βŸͺβˆ‘α΅’ aα΅’ vα΅’, x⟫ = βŸͺa, (βŸͺvα΅’, x⟫)ᡒ⟫.

      theorem TauCeti.norm_analysisMap_sq {π•œ : Type u_1} {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] [Fintype ΞΉ] (v : ΞΉ β†’ E) (x : E) :
      β€–(analysisMap π•œ v) xβ€– ^ 2 = βˆ‘ i : ΞΉ, β€–inner π•œ (v i) xβ€– ^ 2

      β€–analysis xβ€–Β² = βˆ‘α΅’ β€–βŸͺvα΅’, xβŸ«β€–Β².

      The frame and Gram operators #

      noncomputable def TauCeti.frameOperator (π•œ : Type u_1) {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] [Fintype ΞΉ] (v : ΞΉ β†’ E) :
      E β†’β‚—[π•œ] E

      The frame operator x ↦ βˆ‘α΅’ βŸͺvα΅’, x⟫ vα΅’ of a finite family: synthesis after analysis.

      Instances For
        noncomputable def TauCeti.gramOperator (π•œ : Type u_1) {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] [Fintype ΞΉ] (v : ΞΉ β†’ E) :
        EuclideanSpace π•œ ΞΉ β†’β‚—[π•œ] EuclideanSpace π•œ ΞΉ

        The Gram operator of a finite family on coefficient space: analysis after synthesis. Its matrix is the Gram matrix Matrix.gram π•œ v (TauCeti.gramOperator_eq_toEuclideanLin_gram).

        Instances For
          theorem TauCeti.frameOperator_def {π•œ : Type u_1} {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] [Fintype ΞΉ] (v : ΞΉ β†’ E) :
          frameOperator π•œ v = synthesisMap π•œ v βˆ˜β‚— analysisMap π•œ v
          theorem TauCeti.gramOperator_def {π•œ : Type u_1} {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] [Fintype ΞΉ] (v : ΞΉ β†’ E) :
          gramOperator π•œ v = analysisMap π•œ v βˆ˜β‚— synthesisMap π•œ v
          @[simp]
          theorem TauCeti.frameOperator_apply {π•œ : Type u_1} {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] [Fintype ΞΉ] (v : ΞΉ β†’ E) (x : E) :
          (frameOperator π•œ v) x = βˆ‘ i : ΞΉ, inner π•œ (v i) x β€’ v i
          @[simp]
          theorem TauCeti.gramOperator_apply {π•œ : Type u_1} {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] [Fintype ΞΉ] (v : ΞΉ β†’ E) (a : EuclideanSpace π•œ ΞΉ) (i : ΞΉ) :
          ((gramOperator π•œ v) a).ofLp i = βˆ‘ j : ΞΉ, inner π•œ (v i) (v j) * a.ofLp j
          theorem TauCeti.gramOperator_eq_toEuclideanLin_gram {π•œ : Type u_1} {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] [Fintype ΞΉ] [DecidableEq ΞΉ] (v : ΞΉ β†’ E) :

          The Gram operator is the Gram matrix Matrix.gram π•œ v acting on coefficient space.

          theorem TauCeti.inner_frameOperator_left {π•œ : Type u_1} {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] [Fintype ΞΉ] (v : ΞΉ β†’ E) (x y : E) :
          inner π•œ ((frameOperator π•œ v) x) y = inner π•œ ((analysisMap π•œ v) x) ((analysisMap π•œ v) y)

          The sesquilinear form of the frame operator is the inner product of analysis coefficients.

          theorem TauCeti.inner_gramOperator_right {π•œ : Type u_1} {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] [Fintype ΞΉ] (v : ΞΉ β†’ E) (a b : EuclideanSpace π•œ ΞΉ) :
          inner π•œ a ((gramOperator π•œ v) b) = inner π•œ ((synthesisMap π•œ v) a) ((synthesisMap π•œ v) b)

          The sesquilinear form of the Gram operator is the inner product of the synthesized vectors.

          theorem TauCeti.re_inner_frameOperator_apply_self {π•œ : Type u_1} {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] [Fintype ΞΉ] (v : ΞΉ β†’ E) (x : E) :
          RCLike.re (inner π•œ ((frameOperator π•œ v) x) x) = βˆ‘ i : ΞΉ, β€–inner π•œ (v i) xβ€– ^ 2

          The quadratic form of the frame operator is x ↦ βˆ‘α΅’ β€–βŸͺvα΅’, xβŸ«β€–Β².

          theorem TauCeti.isSymmetric_frameOperator {π•œ : Type u_1} {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] [Fintype ΞΉ] (v : ΞΉ β†’ E) :

          The frame operator is symmetric.

          theorem TauCeti.isPositive_frameOperator {π•œ : Type u_1} {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] [Fintype ΞΉ] (v : ΞΉ β†’ E) :

          The frame operator is positive.

          theorem TauCeti.isPositive_gramOperator {π•œ : Type u_1} {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] [Fintype ΞΉ] (v : ΞΉ β†’ E) :

          The Gram operator is positive.

          theorem TauCeti.isSymmetric_gramOperator {π•œ : Type u_1} {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] [Fintype ΞΉ] (v : ΞΉ β†’ E) :

          The Gram operator is symmetric.

          The overlap operator of two families #

          noncomputable def TauCeti.overlapOperator (π•œ : Type u_1) {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] {ΞΊ : Type u_4} [Fintype ΞΊ] (u : ΞΉ β†’ E) (v : ΞΊ β†’ E) :
          EuclideanSpace π•œ ΞΊ β†’β‚—[π•œ] EuclideanSpace π•œ ΞΉ

          The overlap operator of finite families u : ΞΉ β†’ E and v : ΞΊ β†’ E: analysis by u after synthesis by v, with matrix (βŸͺuα΅’, vⱼ⟫)α΅’β±Ό (TauCeti.overlapOperator_eq_toEuclideanLin). On the diagonal it is the Gram operator (TauCeti.overlapOperator_self).

          Instances For
            theorem TauCeti.overlapOperator_def {π•œ : Type u_1} {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] {ΞΊ : Type u_4} [Fintype ΞΊ] (u : ΞΉ β†’ E) (v : ΞΊ β†’ E) :
            overlapOperator π•œ u v = analysisMap π•œ u βˆ˜β‚— synthesisMap π•œ v
            @[simp]
            theorem TauCeti.overlapOperator_apply {π•œ : Type u_1} {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] {ΞΊ : Type u_4} [Fintype ΞΊ] (u : ΞΉ β†’ E) (v : ΞΊ β†’ E) (a : EuclideanSpace π•œ ΞΊ) (i : ΞΉ) :
            ((overlapOperator π•œ u v) a).ofLp i = βˆ‘ j : ΞΊ, inner π•œ (u i) (v j) * a.ofLp j

            The i-th coordinate of the overlap operator applied to a is βˆ‘β±Ό βŸͺuα΅’, vⱼ⟫ aβ±Ό, the matrix (βŸͺuα΅’, vⱼ⟫)α΅’β±Ό acting on the coefficients a.

            @[simp]
            theorem TauCeti.overlapOperator_single {π•œ : Type u_1} {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] {ΞΊ : Type u_4} [Fintype ΞΊ] [DecidableEq ΞΊ] (u : ΞΉ β†’ E) (v : ΞΊ β†’ E) (j : ΞΊ) (c : π•œ) :
            (overlapOperator π•œ u v) (EuclideanSpace.single j c) = c β€’ (analysisMap π•œ u) (v j)

            The overlap operator sends the j-th coordinate vector, scaled by c, to c times the coefficients (βŸͺuα΅’, vⱼ⟫)α΅’ of vβ±Ό.

            theorem TauCeti.overlapOperator_eq_toEuclideanLin {π•œ : Type u_1} {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] {ΞΊ : Type u_4} [Fintype ΞΊ] [DecidableEq ΞΊ] (u : ΞΉ β†’ E) (v : ΞΊ β†’ E) :
            overlapOperator π•œ u v = Matrix.toEuclideanLin (Matrix.of fun (i : ΞΉ) (j : ΞΊ) => inner π•œ (u i) (v j))

            The overlap operator is the matrix (βŸͺuα΅’, vⱼ⟫)α΅’β±Ό acting on coefficient space.

            @[simp]
            theorem TauCeti.overlapOperator_self {π•œ : Type u_1} {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] [Fintype ΞΉ] (v : ΞΉ β†’ E) :
            overlapOperator π•œ v v = gramOperator π•œ v

            The overlap operator of a family with itself is its Gram operator.

            theorem TauCeti.inner_overlapOperator_left {π•œ : Type u_1} {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] [Fintype ΞΉ] {ΞΊ : Type u_4} [Fintype ΞΊ] (u : ΞΉ β†’ E) (v : ΞΊ β†’ E) (b : EuclideanSpace π•œ ΞΉ) (a : EuclideanSpace π•œ ΞΊ) :
            inner π•œ ((overlapOperator π•œ v u) b) a = inner π•œ b ((overlapOperator π•œ u v) a)

            The overlap operators in the two orders are adjoint to each other: βŸͺO_{v,u} b, a⟫ = βŸͺb, O_{u,v} a⟫.

            @[simp]
            theorem TauCeti.adjoint_overlapOperator {π•œ : Type u_1} {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] [Fintype ΞΉ] {ΞΊ : Type u_4} [Fintype ΞΊ] (u : ΞΉ β†’ E) (v : ΞΊ β†’ E) :

            Swapping the two families gives the adjoint overlap operator.

            Parseval frames #

            theorem TauCeti.norm_analysisMap_of_frameOperator_eq_id {π•œ : Type u_1} {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] [Fintype ΞΉ] {v : ΞΉ β†’ E} (hv : frameOperator π•œ v = LinearMap.id) (x : E) :

            A family whose frame operator is the identity, a Parseval frame, has an isometric analysis map: β€–(βŸͺvα΅’, x⟫)α΅’β€– = β€–xβ€–.

            theorem TauCeti.norm_synthesisMap_le_of_frameOperator_eq_id {π•œ : Type u_1} {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] [Fintype ΞΉ] {v : ΞΉ β†’ E} (hv : frameOperator π•œ v = LinearMap.id) (a : EuclideanSpace π•œ ΞΉ) :

            The synthesis map of a Parseval frame is a contraction: β€–βˆ‘α΅’ aα΅’ vα΅’β€– ≀ β€–aβ€–.

            theorem TauCeti.frameOperator_sqrt_smul_eq_id {π•œ : Type u_1} {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] [Fintype ΞΉ] {u : ΞΉ β†’ E} {c : ΞΉ β†’ ℝ} (hc : βˆ€ (i : ΞΉ), 0 ≀ c i) (h : βˆ€ (x : E), βˆ‘ i : ΞΉ, ↑(c i) β€’ inner π•œ (u i) x β€’ u i = x) :
            (frameOperator π•œ fun (i : ΞΉ) => β†‘βˆš(c i) β€’ u i) = LinearMap.id

            A decomposition βˆ‘α΅’ cα΅’ βŸͺuα΅’, x⟫ uα΅’ = x of every vector, with nonnegative weights cα΅’, makes the rescaled family √cα΅’ β€’ uα΅’ a Parseval frame.

            theorem TauCeti.norm_sum_mul_smul_le_sqrt {π•œ : Type u_1} {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] [Fintype ΞΉ] {u : ΞΉ β†’ E} {c : ΞΉ β†’ ℝ} (hc : βˆ€ (i : ΞΉ), 0 ≀ c i) (h : βˆ€ (x : E), βˆ‘ i : ΞΉ, ↑(c i) β€’ inner π•œ (u i) x β€’ u i = x) (b : ΞΉ β†’ π•œ) :
            β€–βˆ‘ i : ΞΉ, (↑(c i) * b i) β€’ u iβ€– ≀ √(βˆ‘ i : ΞΉ, c i * β€–b iβ€– ^ 2)

            Synthesis bound for a weighted Parseval decomposition. If βˆ‘α΅’ cα΅’ βŸͺuα΅’, x⟫ uα΅’ = x for every x, with nonnegative weights cα΅’, then β€–βˆ‘α΅’ cα΅’ bα΅’ uα΅’β€– ≀ (βˆ‘α΅’ cα΅’ β€–bα΅’β€–Β²)^(1/2) for all coefficients bα΅’.

            theorem TauCeti.norm_sum_mul_smul_le_sqrt_mul {π•œ : Type u_1} {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] [Fintype ΞΉ] {u : ΞΉ β†’ E} {c : ΞΉ β†’ ℝ} (hc : βˆ€ (i : ΞΉ), 0 ≀ c i) (h : βˆ€ (x : E), βˆ‘ i : ΞΉ, ↑(c i) β€’ inner π•œ (u i) x β€’ u i = x) {b : ΞΉ β†’ π•œ} {B : ℝ} (hb : βˆ€ (i : ΞΉ), β€–b iβ€– ≀ B) :
            β€–βˆ‘ i : ΞΉ, (↑(c i) * b i) β€’ u iβ€– ≀ √(βˆ‘ i : ΞΉ, c i) * B

            If βˆ‘α΅’ cα΅’ βŸͺuα΅’, x⟫ uα΅’ = x for every x, with nonnegative weights cα΅’, then combinations with coefficients of norm at most B satisfy β€–βˆ‘α΅’ cα΅’ bα΅’ uα΅’β€– ≀ √(βˆ‘α΅’ cα΅’) B.

            Adjoints in finite dimension #

            @[simp]
            theorem TauCeti.adjoint_analysisMap {π•œ : Type u_1} {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] [Fintype ΞΉ] [FiniteDimensional π•œ E] (v : ΞΉ β†’ E) :

            The adjoint of the analysis map is the synthesis map.

            @[simp]
            theorem TauCeti.adjoint_synthesisMap {π•œ : Type u_1} {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] [Fintype ΞΉ] [FiniteDimensional π•œ E] (v : ΞΉ β†’ E) :

            The adjoint of the synthesis map is the analysis map.

            theorem TauCeti.frameOperator_eq_adjoint_comp_self {π•œ : Type u_1} {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] [Fintype ΞΉ] [FiniteDimensional π•œ E] (v : ΞΉ β†’ E) :

            The frame operator is the source Gram operator A† A of the analysis map A.

            theorem TauCeti.gramOperator_eq_self_comp_adjoint {π•œ : Type u_1} {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] [Fintype ΞΉ] [FiniteDimensional π•œ E] (v : ΞΉ β†’ E) :

            The Gram operator is the target Gram operator A A† of the analysis map A.

            theorem TauCeti.adjoint_synthesisMap_comp_synthesisMap {π•œ : Type u_1} {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] [Fintype ΞΉ] [FiniteDimensional π•œ E] {ΞΊ : Type u_4} [Fintype ΞΊ] (u : ΞΉ β†’ E) (v : ΞΊ β†’ E) :

            In a finite-dimensional space the overlap operator is S_u† S_v for the synthesis maps S_u and S_v; for orthonormal families these are the coordinate isometries Orthonormal.synthesisMapIsometry.

            Frame bounds and the Gram spectrum #

            theorem TauCeti.eigenvalues_frameOperator_eq_eigenvalues_gramOperator {π•œ : Type u_1} {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] [Fintype ΞΉ] [FiniteDimensional π•œ E] (v : ΞΉ β†’ E) {d m : β„•} (hd : Module.finrank π•œ E = d) (hm : Module.finrank π•œ (EuclideanSpace π•œ ΞΉ) = m) {i : β„•} (hid : i < d) (him : i < m) :
            β‹―.eigenvalues hd ⟨i, hid⟩ = β‹―.eigenvalues hm ⟨i, him⟩

            The sorted eigenvalues of the frame operator and of the Gram operator agree at every index below both finrank π•œ E and the size of the family.

            theorem TauCeti.le_eigenvalues_gramOperator {π•œ : Type u_1} {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] [Fintype ΞΉ] [FiniteDimensional π•œ E] (v : ΞΉ β†’ E) {a : ℝ} (h : βˆ€ (x : E), a * β€–xβ€– ^ 2 ≀ βˆ‘ i : ΞΉ, β€–inner π•œ (v i) xβ€– ^ 2) {m : β„•} (hm : Module.finrank π•œ (EuclideanSpace π•œ ΞΉ) = m) (i : Fin m) (hi : ↑i < Module.finrank π•œ E) :
            a ≀ β‹―.eigenvalues hm i

            Gram spectrum from a lower frame bound. If a β€–xβ€–Β² ≀ βˆ‘α΅’ β€–βŸͺvα΅’, xβŸ«β€–Β² for every x, then every sorted eigenvalue of the Gram operator whose index is below finrank π•œ E is at least a.

            theorem TauCeti.mul_norm_sq_le_sum_norm_inner_sq_of_le_eigenvalues_gramOperator {π•œ : Type u_1} {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] [Fintype ΞΉ] [FiniteDimensional π•œ E] (v : ΞΉ β†’ E) {a : ℝ} {m : β„•} (hm : Module.finrank π•œ (EuclideanSpace π•œ ΞΉ) = m) (hdm : Module.finrank π•œ E ≀ m) (h : βˆ€ (i : Fin m), ↑i < Module.finrank π•œ E β†’ a ≀ β‹―.eigenvalues hm i) (x : E) :
            a * β€–xβ€– ^ 2 ≀ βˆ‘ i : ΞΉ, β€–inner π•œ (v i) xβ€– ^ 2

            Lower frame bound from the Gram spectrum. If the family has at least finrank π•œ E members and the sorted Gram eigenvalues below index finrank π•œ E are at least a, then a β€–xβ€–Β² ≀ βˆ‘α΅’ β€–βŸͺvα΅’, xβŸ«β€–Β² for every x.

            Orthonormal bases #

            @[simp]
            theorem OrthonormalBasis.analysisMap_eq_repr {π•œ : Type u_1} {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] [Fintype ΞΉ] (b : OrthonormalBasis ΞΉ π•œ E) :
            TauCeti.analysisMap π•œ ⇑b = ↑b.repr.toLinearEquiv

            The analysis map of an orthonormal basis is its coordinate map b.repr.

            @[simp]
            theorem OrthonormalBasis.synthesisMap_eq_repr_symm {π•œ : Type u_1} {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] [Fintype ΞΉ] (b : OrthonormalBasis ΞΉ π•œ E) :
            TauCeti.synthesisMap π•œ ⇑b = ↑b.repr.symm.toLinearEquiv

            The synthesis map of an orthonormal basis is the inverse b.repr.symm of its coordinate map.

            @[simp]
            theorem OrthonormalBasis.frameOperator_eq_id {π•œ : Type u_1} {E : Type u_2} {ΞΉ : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [InnerProductSpace π•œ E] [Fintype ΞΉ] (b : OrthonormalBasis ΞΉ π•œ E) :

            The frame operator of an orthonormal basis is the identity.