Documentation

CsdLean4.Mathlib.Analysis.InnerProductSpace.Gleason.ProjectionPackage

Gleason's theorem, finite-dimensional: the projection package and its frame function #

Category: 1-Mathlib (CSD-free; staged for upstream). The statement side of the finite-dimensional Gleason theorem, and the reductions of its "Layer A" that are pure linear algebra (specs/gleason-feasibility.md).

A projection package on ℂᴺ assigns to every orthogonal projection P (an IsStarProjection matrix — self-adjoint idempotent) a number p P with 0 ≤ p P, p 1 = 1, and p (P + Q) = p P + p Q whenever P * Q = 0. Gleason's theorem says that for N ≥ 3 such a p is P ↦ Tr(ρ P) for a unique density matrix ρ; the theorem is Gleason/Core.lean (and its real counterpart Gleason/Real.lean), and this file sets up:

Design #

Projections are matrices with IsStarProjection (Mathlib's self-adjoint idempotents), and p is a total function on matrices whose values off the projections are never constrained: this keeps every statement free of subtypes, and Mathlib's IsStarProjection.add is exactly the closure property the additivity axiom needs. Vectors live in EuclideanSpace ℂ (Fin N) and rank-one projections are vecMulVec v (star v), so Matrix.posSemidef_vecMulVec_self_star and the vecMulVec calculus apply verbatim.

Source #

Gleason 1957, J. Math. Mech. 6, 885 (§1 frame functions, §3 the complex reduction); Cooke–Keane–Moran 1985, Math. Proc. Cambridge Philos. Soc. 98, 117 (the elementary proof of the core lemma).

Column matrices and Gram identities, over any RCLike field #

def Gleason.colMatrix {𝕜 : Type u_1} {N k : ℕ} (e : Fin k → EuclideanSpace 𝕜 (Fin N)) :
Matrix (Fin N) (Fin k) 𝕜

The matrix whose i-th column is e i.

Equations
Instances For
    @[simp]
    theorem Gleason.colMatrix_apply {𝕜 : Type u_1} {N k : ℕ} (e : Fin k → EuclideanSpace 𝕜 (Fin N)) (a : Fin N) (i : Fin k) :
    colMatrix e a i = (e i).ofLp a
    theorem Gleason.conjTranspose_mul_colMatrix_apply {𝕜 : Type u_1} [RCLike 𝕜] {N k : ℕ} (e : Fin k → EuclideanSpace 𝕜 (Fin N)) (i j : Fin k) :
    ((colMatrix e).conjTranspose * colMatrix e) i j = inner 𝕜 (e i) (e j)

    The Gram matrix of a family: (Eᴴ E) i j = ⟪e i, e j⟫.

    theorem Gleason.conjTranspose_mul_colMatrix_of_orthonormal {𝕜 : Type u_1} [RCLike 𝕜] {N k : ℕ} {e : Fin k → EuclideanSpace 𝕜 (Fin N)} (he : Orthonormal 𝕜 e) :

    An orthonormal family has Gram matrix 1.

    An orthonormal basis has E Eᴴ = 1 as well (square matrices).

    theorem Gleason.colMatrix_mulVec {𝕜 : Type u_1} [RCLike 𝕜] {N k : ℕ} (e : Fin k → EuclideanSpace 𝕜 (Fin N)) (c : Fin k → 𝕜) :
    (colMatrix e).mulVec c = (∑ i : Fin k, c i • e i).ofLp

    E *ᵥ c = ∑ᵢ cᵢ • eᵢ.

    theorem Gleason.sum_vecMulVec_eq_colMatrix_mul {𝕜 : Type u_1} [RCLike 𝕜] {N k : ℕ} (e : Fin k → EuclideanSpace 𝕜 (Fin N)) :

    ∑ᵢ |eᵢ⟩⟨eᵢ| = E Eᴴ.

    Rank-one projections #

    def Gleason.rankOne {N : ℕ} (v : EuclideanSpace ℂ (Fin N)) :
    Matrix (Fin N) (Fin N) ℂ

    The rank-one projection |v⟩⟨v| onto v (a projection when ‖v‖ = 1).

    Equations
    Instances For
      theorem Gleason.rankOne_apply {N : ℕ} (v : EuclideanSpace ℂ (Fin N)) (a c : Fin N) :
      rankOne v a c = v.ofLp a * (starRingEnd ((fun (x : Fin N) => ℂ) c)) (v.ofLp c)

      |v⟩⟨v| |w⟩⟨w| = ⟪v, w⟫ |v⟩⟨w|.

      |v⟩⟨v| is an orthogonal projection for every unit vector v.

      theorem Gleason.rankOne_smul_of_norm_one {N : ℕ} {c : ℂ} (hc : ‖c‖ = 1) (v : EuclideanSpace ℂ (Fin N)) :

      Phase invariance: |c v⟩⟨c v| = |v⟩⟨v| for ‖c‖ = 1.

      theorem Gleason.rankOne_mul_rankOne_of_orthonormal {N k : ℕ} {e : Fin k → EuclideanSpace ℂ (Fin N)} (he : Orthonormal ℂ e) {i j : Fin k} (hij : i ≠ j) :
      rankOne (e i) * rankOne (e j) = 0

      The rank-one projections of an orthonormal family are pairwise orthogonal.

      theorem Gleason.sum_rankOne_eq {N : ℕ} (e : Fin N → EuclideanSpace ℂ (Fin N)) :
      ∑ i : Fin N, rankOne (e i) = colMatrix e * (colMatrix e).conjTranspose

      ∑ᵢ |eᵢ⟩⟨eᵢ| = E Eᴴ for the column matrix E of the family.

      Resolution of the identity: ∑ᵢ |bᵢ⟩⟨bᵢ| = 1 over an orthonormal basis.

      Frame functions #

      def Gleason.IsFrameFunction (𝕜 : Type u_1) [RCLike 𝕜] {n : ℕ} (f : EuclideanSpace 𝕜 (Fin n) → ℝ) (W : ℝ) :

      A frame function on 𝕜ⁿ with weight W: ∑ᵢ f (bᵢ) = W over every orthonormal basis (Gleason 1957, §1).

      Equations
      Instances For

        The projection package #

        A projection package on ℂᴺ: a nonnegative, normalised, orthogonally additive assignment on the orthogonal projections. The values of p off the projections are unconstrained and never used.

        Instances For

          p 0 = 0: 0 = 0 + 0 with 0 * 0 = 0.

          theorem Gleason.ProjectionPackage.p_le_one {N : ℕ} (OP : ProjectionPackage N) {P : Matrix (Fin N) (Fin N) ℂ} (hP : IsStarProjection P) :
          OP.p P ≤ 1

          p P ≤ 1: P + (1 − P) = 1 and p (1 − P) ≥ 0.

          theorem Gleason.ProjectionPackage.isStarProjection_sum {N : ℕ} {ι : Type u_1} (P : ι → Matrix (Fin N) (Fin N) ℂ) (hP : ∀ (i : ι), IsStarProjection (P i)) (horth : ∀ (i j : ι), i ≠ j → P i * P j = 0) (s : Finset ι) :
          IsStarProjection (∑ i ∈ s, P i)

          A finite sum of pairwise-orthogonal projections is a projection.

          theorem Gleason.ProjectionPackage.p_sum {N : ℕ} (OP : ProjectionPackage N) {ι : Type u_1} (P : ι → Matrix (Fin N) (Fin N) ℂ) (hP : ∀ (i : ι), IsStarProjection (P i)) (horth : ∀ (i j : ι), i ≠ j → P i * P j = 0) (s : Finset ι) :
          OP.p (∑ i ∈ s, P i) = ∑ i ∈ s, OP.p (P i)

          Additivity over any finite family of pairwise-orthogonal projections.

          The frame function of the package: frame v = p |v⟩⟨v|.

          Equations
          Instances For
            theorem Gleason.ProjectionPackage.frame_smul {N : ℕ} (OP : ProjectionPackage N) {c : ℂ} (hc : ‖c‖ = 1) (v : EuclideanSpace ℂ (Fin N)) :
            OP.frame (c • v) = OP.frame v

            The frame function is constant on phases.

            theorem Gleason.ProjectionPackage.p_sum_rankOne {N : ℕ} (OP : ProjectionPackage N) {k : ℕ} {e : Fin k → EuclideanSpace ℂ (Fin N)} (he : Orthonormal ℂ e) :
            OP.p (∑ i : Fin k, rankOne (e i)) = ∑ i : Fin k, OP.frame (e i)

            Additivity over the rank-one projections of an orthonormal family.

            A1. The frame function sums to 1 over every orthonormal basis.

            A1, packaged: frame is a complex frame function of weight 1.

            A2 — restriction to a completely real subspace #

            The vectors of ℂᴺ with real coordinates in a complex-orthonormal family e: the completely real subspace span_ℝ {e₁, …, eₖ}, parametrised by ℝᵏ.

            Equations
            Instances For
              theorem Gleason.ProjectionPackage.colMatrix_map_ofReal {k : ℕ} (b : Fin k → EuclideanSpace ℝ (Fin k)) :
              (colMatrix fun (j : Fin k) => WithLp.toLp 2 fun (i : Fin k) => ↑((b j).ofLp i)) = (colMatrix b).map Complex.ofReal

              The complex column matrix of a real vector family.

              Transporting a real orthonormal family through a complex-orthonormal e gives a complex-orthonormal family: Gram = Bᴴ (Eᴴ E) B = Bᴴ B = 1.

              The rank-one projections of a transported orthonormal basis sum to those of e: ∑ⱼ |wⱼ⟩⟨wⱼ| = E (B Bᴴ) Eᴴ = E Eᴴ = ∑ᵢ |eᵢ⟩⟨eᵢ|.

              A real unit vector transports to a complex unit vector.

              The restriction of the frame function to a completely real subspace, as a function on ℝᵏ: realRestrict OP e x = frame (∑ᵢ xᵢ eᵢ).

              Equations
              Instances For

                A2. For a complex-orthonormal e : Fin k → ℂᴺ, the restriction is a real frame function on ℝᵏ with weight p (∑ᵢ |eᵢ⟩⟨eᵢ|) — for k = 3, a frame function on the sphere S².

                theorem Gleason.ProjectionPackage.realRestrict_nonneg {N : ℕ} (OP : ProjectionPackage N) {k : ℕ} {e : Fin k → EuclideanSpace ℂ (Fin N)} (he : Orthonormal ℂ e) {x : EuclideanSpace ℝ (Fin k)} (hx : ‖x‖ = 1) :
                0 ≤ OP.realRestrict e x

                The restriction is nonnegative on the real unit sphere.