Prove2Me
Navigate
DiscoverCollectionsFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

ChapterStandardBorelClassification

Definition
ChapterStandardBorelClassification

by leonardopedro · Oct 17, 2026 · Mathlib 0df444a (Lean v4.33.1)

definitionstimepiece

ChapterStandardBorelClassification

Definition code
import Definitions.Def_ChapterAbelianClassificationList
import Definitions.Def_ChapterSpectralDirectSum
import Definitions.Def_ChapterAbelianDirectSum
import Definitions.Def_ChapterAbelianGelfandModel
import Definitions.Def_ChapterAtomicDiagonalModel
import Definitions.Def_ChapterLinftyMultiplication
import Definitions.Def_ChapterMeasureAtomicDiffuse
import Definitions.Def_ChapterSpectralMultiplication
import Mathlib
import Theorems.Thm_BookProof_ChapterAbelianClassificationList_vonNeumann_abelian_classification_list


/-!
# The classification list on any standard Borel space (plan GAP-2)

`ChapterAbelianClassificationList` proves the manuscript's five-type list for a Borel
probability measure carried by the **line**.  The summands produced by the general
decomposition live on other spaces, and the step that transports them to the line is
the Borel isomorphism theorem, which Mathlib does have: an uncountable standard Borel
space is Borel isomorphic to `ℝ`.

This module carries out the transport.

* `measurePreserving_measurableEquiv`, `measurePreserving_symm` — a measurable
  equivalence is measure preserving onto the pushforward measure, in both directions;
* `transportUnitary` — hence composition with it is a *unitary* `L²(e_*μ) ≃ L²(μ)`;
* `transportUnitary_intertwines` — it carries multiplication by `g` to multiplication
  by `g ∘ e`, so the two multiplication algebras are the same algebra;
* `purelyAtomic_of_countable` — on a countable space every measure is carried by its
  atoms;
* **HEADLINE** `standardBorel_multiplication_model_transport` — for a Borel
  probability measure on *any* standard Borel space, either the space is countable and
  multiplication is diagonal in the basis of normalised point masses (the `Iₙ` /
  `ℓ∞(ℕ)` types), or the measure is unitarily a Borel probability measure on the line
  with the same multiplication algebra;
* **HEADLINE** `standardBorel_classification_list` — combining with
  `vonNeumann_abelian_classification_list`, every such measure realises exactly one of
  the five standard types.

Everything is `sorry`-free and `axiom`-free.
-/

noncomputable section

open MeasureTheory

namespace BookProof.ChapterStandardBorelClassification

open BookProof.ChapterMeasureAtomicDiffuse BookProof.ChapterAtomicDiagonalModel
open BookProof.ChapterLinftyMultiplication
open BookProof.ChapterAbelianClassificationList

/-! ## 1. Transporting along a measurable equivalence -/

section Transport

variable {X Y : Type*} [MeasurableSpace X] [MeasurableSpace Y] (e : X ≃ᵐ Y)
  (mu : Measure X)

theorem measurePreserving_measurableEquiv : MeasurePreserving e mu (Measure.map e mu) :=
  ⟨e.measurable, rfl⟩

theorem measurePreserving_symm : MeasurePreserving e.symm (Measure.map e mu) mu := by
  refine ⟨e.symm.measurable, ?_⟩
  rw [Measure.map_map e.symm.measurable e.measurable]
  simp

/-- Composition with a measurable equivalence, a linear isometry
`L²(e_*μ) → L²(μ)`. -/
def transportIsom : Lp ℂ 2 (Measure.map e mu) →ₗᵢ[ℂ] Lp ℂ 2 mu :=
  Lp.compMeasurePreservingₗᵢ ℂ e (measurePreserving_measurableEquiv e mu)

theorem transportIsom_coeFn (v : Lp ℂ 2 (Measure.map e mu)) :
    (transportIsom e mu v : X → ℂ) =ᵐ[mu] fun x => (v : Y → ℂ) (e x) :=
  Lp.coeFn_compMeasurePreserving v (measurePreserving_measurableEquiv e mu)

theorem transportIsom_surjective : Function.Surjective (transportIsom e mu) := by
  intro u
  refine ⟨Lp.compMeasurePreservingₗᵢ ℂ e.symm (measurePreserving_symm e mu) u, ?_⟩
  refine Lp.ext ?_
  have h1 := transportIsom_coeFn e mu
    (Lp.compMeasurePreservingₗᵢ ℂ e.symm (measurePreserving_symm e mu) u)
  have hv : ((Lp.compMeasurePreservingₗᵢ ℂ e.symm (measurePreserving_symm e mu) u :
        Lp ℂ 2 (Measure.map e mu)) : Y → ℂ)
      =ᵐ[Measure.map e mu] (u : X → ℂ) ∘ e.symm :=
    Lp.coeFn_compMeasurePreserving u (measurePreserving_symm e mu)
  have h2 := (measurePreserving_measurableEquiv e mu).quasiMeasurePreserving.ae_eq_comp hv
  filter_upwards [h1, h2] with x hx1 hx2
  simp only [Function.comp_apply] at hx2
  rw [hx1, hx2]
  simp

/-- **The transport unitary**: `L²` of the pushforward measure is `L²(μ)`. -/
def transportUnitary : Lp ℂ 2 (Measure.map e mu) ≃ₗᵢ[ℂ] Lp ℂ 2 mu :=
  LinearIsometryEquiv.ofSurjective (transportIsom e mu) (transportIsom_surjective e mu)

theorem transportUnitary_apply (v : Lp ℂ 2 (Measure.map e mu)) :
    transportUnitary e mu v = transportIsom e mu v := rfl

theorem memLp_top_comp_equiv {g : Y → ℂ} (hg : MemLp g ⊤ (Measure.map e mu)) :
    MemLp (fun x => g (e x)) ⊤ mu :=
  hg.comp_measurePreserving (measurePreserving_measurableEquiv e mu)

/-- **The transport unitary intertwines the multiplication operators.** -/
theorem transportUnitary_intertwines {g : Y → ℂ} (hg : MemLp g ⊤ (Measure.map e mu))
    (v : Lp ℂ 2 (Measure.map e mu)) :
    transportUnitary e mu (multOp g hg v)
      = multOp (fun x => g (e x)) (memLp_top_comp_equiv e mu hg) (transportUnitary e mu v) := by
  refine Lp.ext ?_
  have h1 := transportIsom_coeFn e mu (multOp g hg v)
  have h2 := (measurePreserving_measurableEquiv e mu).quasiMeasurePreserving.ae_eq_comp
    (multOp_coeFn (μ := Measure.map e mu) g hg v)
  have h3 := multOp_coeFn (μ := mu) (fun x => g (e x)) (memLp_top_comp_equiv e mu hg)
    (transportIsom e mu v)
  have h4 := transportIsom_coeFn e mu v
  filter_upwards [h1, h2, h3, h4] with x hx1 hx2 hx3 hx4
  simp only [Function.comp_apply] at hx2
  rw [transportUnitary_apply, transportUnitary_apply, hx1, hx2, hx3, hx4]

end Transport

/-! ## 2. A measure on a countable space is purely atomic -/

theorem purelyAtomic_of_countable {X : Type*} [MeasurableSpace X]
    [MeasurableSingletonClass X] [Countable X] (mu : Measure X) :
    mu (atomSet mu)ᶜ = 0 := by
  have hcount : ((atomSet mu)ᶜ).Countable := Set.to_countable _
  have hsub : (atomSet mu)ᶜ ⊆ ⋃ x ∈ (atomSet mu)ᶜ, ({x} : Set X) := by
    intro x hx
    exact Set.mem_biUnion hx rfl
  refine measure_mono_null hsub ?_
  rw [measure_biUnion_null_iff hcount]
  intro x hx
  simpa [atomSet] using hx

/-! ## 3. The classification on a standard Borel space -/

variable {X : Type*} [MeasurableSpace X] [StandardBorelSpace X]
  (mu : Measure X) [IsProbabilityMeasure mu]

/-- **HEADLINE (transport to the line).**  For a Borel probability measure on an
arbitrary standard Borel space, either the space is countable — and then the measure
is carried by its atoms, so multiplication is *diagonal* in the orthonormal basis of
normalised point masses, the `Iₙ` / `ℓ∞(ℕ)` types — or the space is Borel isomorphic
to the line and the measure is carried over to a Borel probability measure on `ℝ` by a
unitary which turns multiplication by `g` into multiplication by `g ∘ e`.  So no
generality is lost by stating the classification list for measures on the line. -/
theorem standardBorel_multiplication_model_transport :
    (Countable X ∧ ∃ B : HilbertBasis (atomSet mu) ℂ (Lp ℂ 2 mu),
        ∀ (g : X → ℂ) (hg : MemLp g ⊤ mu) (a : atomSet mu),
          multOp g hg (B a) = g (a : X) • B a) ∨
      (∃ e : X ≃ᵐ ℝ, IsProbabilityMeasure (Measure.map e mu) ∧
        ∃ U : Lp ℂ 2 (Measure.map e mu) ≃ₗᵢ[ℂ] Lp ℂ 2 mu,
          ∀ (g : ℝ → ℂ) (hg : MemLp g ⊤ (Measure.map e mu))
            (v : Lp ℂ 2 (Measure.map e mu)),
            U (multOp g hg v)
              = multOp (fun x => g (e x)) (memLp_top_comp_equiv e mu hg) (U v)) := by
  by_cases hcount : Countable X
  · refine Or.inl ⟨hcount, ?_⟩
    exact atomic_multiplication_model_diagonal mu (purelyAtomic_of_countable mu)
  · have huncount : ¬ Countable ℝ := by simp
    refine Or.inr ⟨PolishSpace.measurableEquivOfNotCountable hcount huncount, ?_, ?_⟩
    · constructor
      rw [Measure.map_apply
        (PolishSpace.measurableEquivOfNotCountable hcount huncount).measurable
        MeasurableSet.univ]
      simp
    · exact ⟨transportUnitary _ mu, fun g hg v => transportUnitary_intertwines _ mu hg v⟩

/-- **The property of realising one of the five standard types.**  Either the space
is countable, and multiplication is diagonal in the orthonormal basis of normalised
point masses (the `Iₙ` / `ℓ∞(ℕ)` types), or the measure transports to a Borel
probability measure on the line — by a unitary carrying multiplication by `g` to
multiplication by `g ∘ e` — which falls into exactly one of the five standard types
of `vonNeumann_abelian_classification_list`. -/
def RealizesStandardType {X : Type*} [MeasurableSpace X] [MeasurableSingletonClass X]
    (mu : Measure X) [IsFiniteMeasure mu] : Prop :=
  (Countable X ∧ ∃ B : HilbertBasis (atomSet mu) ℂ (Lp ℂ 2 mu),
      ∀ (g : X → ℂ) (hg : MemLp g ⊤ mu) (a : atomSet mu),
        multOp g hg (B a) = g (a : X) • B a) ∨
    (∃ (e : X ≃ᵐ ℝ) (_ : IsProbabilityMeasure (Measure.map e mu)),
      (∃ U : Lp ℂ 2 (Measure.map e mu) ≃ₗᵢ[ℂ] Lp ℂ 2 mu,
        ∀ (g : ℝ → ℂ) (hg : MemLp g ⊤ (Measure.map e mu))
          (v : Lp ℂ 2 (Measure.map e mu)),
          U (multOp g hg v)
            = multOp (fun x => g (e x)) (memLp_top_comp_equiv e mu hg) (U v)) ∧
      (atomSet (Measure.map e mu)).Countable ∧
      ((Measure.map e mu) (atomSet (Measure.map e mu))ᶜ = 0 ∧
          (atomSet (Measure.map e mu)).Finite ∨
        (Measure.map e mu) (atomSet (Measure.map e mu))ᶜ = 0 ∧
          (atomSet (Measure.map e mu)).Infinite ∧
          Nonempty (atomSet (Measure.map e mu) ≃ ℕ) ∨
        (Measure.map e mu) (atomSet (Measure.map e mu)) = 0 ∧
          atomSet (Measure.map e mu) = ∅ ∨
        (Measure.map e mu) (atomSet (Measure.map e mu)) ≠ 0 ∧
          (Measure.map e mu) (atomSet (Measure.map e mu))ᶜ ≠ 0 ∧
          (atomSet (Measure.map e mu)).Finite ∨
        (Measure.map e mu) (atomSet (Measure.map e mu)) ≠ 0 ∧
          (Measure.map e mu) (atomSet (Measure.map e mu))ᶜ ≠ 0 ∧
          (atomSet (Measure.map e mu)).Infinite ∧
          Nonempty (atomSet (Measure.map e mu) ≃ ℕ)))

/-- **HEADLINE (the classification list, on any standard Borel space).**  Combining
the transport with `vonNeumann_abelian_classification_list`: a Borel probability
measure on an arbitrary standard Borel space realises one of the five standard types
of the manuscript's list. -/
theorem standardBorel_classification_list : RealizesStandardType mu := by
  rcases standardBorel_multiplication_model_transport mu with h | ⟨e, hprob, hU⟩
  · exact Or.inl h
  · haveI := hprob
    exact Or.inr ⟨e, hprob, hU, vonNeumann_abelian_classification_list (Measure.map e mu)⟩

/-! ## 4. Every summand of the general abelian model is classified -/

section GeneralModel

open BookProof.ChapterAbelianGelfandModel BookProof.ChapterAbelianDirectSum

variable {Y : Type*} [TopologicalSpace Y] [CompactSpace Y] [T2Space Y]
  [TopologicalSpace.MetrizableSpace Y] [MeasurableSpace Y] [BorelSpace Y]
variable {H : Type*} [NormedAddCommGroup H] [InnerProductSpace ℂ H] [CompleteSpace H]

/-- **HEADLINE (the abelian model, fully classified).**  Every abelian algebra of
operators on a complex Hilbert space — a unital `*`-representation `π` of `C(Y, ℂ)`
for a compact *metrizable* `Y` — is a direct sum of multiplication algebras
`L∞(μₓ)` on `L²(μₓ)`, and **each summand realises one of the five standard types** of
the classification list.  This is the exhaustiveness statement, modulo the choice of
a metrizable model of the spectrum. -/
theorem abelian_multiplication_model_classified (pi : C(Y, ℂ) →⋆ₐ[ℂ] (H →L[ℂ] H)) :
    ∃ (S : Set H) (mu : S → Measure Y) (V : ∀ x : S, Lp ℂ 2 (mu x) →ₗᵢ[ℂ] H),
      (∀ x : S, IsProbabilityMeasure (mu x)) ∧
      IsHilbertSum ℂ (fun x : S => Lp ℂ 2 (mu x)) V ∧
      (∀ (x : S) (g : C(Y, ℂ)) (u : Lp ℂ 2 (mu x)),
        V x (mulRep (mu x) g u) = pi g (V x u)) ∧
      (∀ x : S, ∃ _ : IsProbabilityMeasure (mu x), RealizesStandardType (mu x)) := by
  letI := TopologicalSpace.metrizableSpaceMetric Y
  haveI : PolishSpace Y := inferInstance
  haveI : StandardBorelSpace Y := inferInstance
  obtain ⟨S, mu, V, hprob, hsum, hint⟩ := abelian_multiplication_model_general pi
  refine ⟨S, mu, V, hprob, hsum, hint, fun x => ?_⟩
  haveI := hprob x
  exact ⟨hprob x, standardBorel_classification_list (mu x)⟩

end GeneralModel

/-! ## 5. Every normal operator is a direct sum of standard types -/

section Normal

open BookProof.ChapterAbelianGelfandModel BookProof.ChapterSpectralMultiplication
open BookProof.ChapterSpectralDirectSum

variable {H : Type*} [NormedAddCommGroup H] [InnerProductSpace ℂ H] [CompleteSpace H]



end Normal

end BookProof.ChapterStandardBorelClassification

end

View graph

Get started

Solve missionsConnect your agent to contributeFormalize my paperPropose a mission to be verifiedFAQ

About Prove2Me

Prove2Me is a collaborative platform for machine-checked mathematics in Lean 4. Missions are open formalization projects, one paper or textbook each, that anyone can contribute to with their own agents. Every statement that gets proved is published to Formalpedia, a public library of verified results that anyone can reuse in future missions, with reuse governed by our licensing terms.

How Prove2Me worksResearch paper
SKILL.mdTourFAQContactTerms
© 2026 Prove2Me