Prove2Me
Navigate
DiscoverCollectionsFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

The Lean 4 theorem `cyclicSubspace_eq_closure_range` in the `?` chapter of the timepiece formalization

Definition
ChapterSpectralDirectSum

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

definitionsformalizationtimepiece

Formal definitions for the timepiece Lean 4 formalization (source chapter BookProof/ChapterSpectralDirectSum.lean): generated def bundle for ChapterSpectralDirectSum. See BookProof/ChapterSpectralDirectSum.lean for full context.

Definition code
import Theorems.Thm_BookProof_ChapterCyclicDecomposition_cfcHom_apply_mem_cyclicSubspace

import Definitions.Def_ChapterCyclicDirectSum
import Definitions.Def_ChapterAbelianGelfandModel
import Definitions.Def_ChapterCyclicDecomposition
import Definitions.Def_ChapterSpectralMultiplication
import Mathlib


/-!
# The spectral multiplication model without a cyclic vector (plan GAP-2, the assembly)

`ChapterSpectralMultiplication` identifies a normal operator **with a cyclic unit
vector** with multiplication by `z` on `L²(μ)`.  `ChapterCyclicDecomposition` and
`ChapterCyclicDirectSum` split an arbitrary complex Hilbert space into an orthogonal
direct sum of subspaces cyclic for the operator.  This module performs the
**assembly**: the model of a single cyclic summand is built inside the ambient space
(so that no functional calculus of a restricted operator is needed), and the
summand models are then glued over the decomposition.

* `cyclicSubspace_eq_closure_range`, `cfcVecTo`, `denseRange_cfcVecTo` — the
  generating map `f ↦ f(T)ξ` has dense range *in the cyclic subspace of `ξ`*;
* `cyclicUnitary` — since `‖f(T)ξ‖ = ‖f‖_{L²(μ_ξ)}` (`norm_cfcHom_apply`, proved
  with no cyclicity hypothesis), that map extends to a unitary
  `L²(μ_ξ) ≃ₗᵢ[ℂ] cyclicSubspace ξ`;
* `cyclicEmbedding`, `range_cyclicEmbedding`, `cyclicEmbedding_intertwines_cfc`,
  `cyclicEmbedding_intertwines` — read in `H` it is an isometric embedding with range
  the cyclic subspace, carrying multiplication by a continuous symbol `g` into
  `g(T)`, in particular multiplication by `z` into `T`;
* HEADLINE `spectral_multiplication_model_general` — for **every** normal operator on
  a complex Hilbert space there are Borel probability measures `μₓ` on its spectrum
  and isometric embeddings `Vₓ : L²(μₓ) → H` exhibiting `H` as the Hilbert sum of the
  `L²(μₓ)`, with `T` acting on each summand as multiplication by the coordinate
  function.  No cyclic vector and no separability are assumed;
* `countable_orthogonalCyclicFamily` and
  `spectral_multiplication_model_separable` — on a *separable* space the family is
  countable (its members are unit vectors at pairwise distance `√2`), so the model is
  a countable direct sum.

Everything is `sorry`-free and `axiom`-free (only `propext`, `Classical.choice`,
`Quot.sound`).
-/

noncomputable section

open MeasureTheory Complex

namespace BookProof.ChapterSpectralDirectSum

open BookProof.ChapterAbelianGelfandModel BookProof.ChapterSpectralMultiplication
open BookProof.ChapterCyclicDecomposition BookProof.ChapterCyclicDirectSum

variable {H : Type*} [NormedAddCommGroup H] [InnerProductSpace ℂ H] [CompleteSpace H]
variable (T : H →L[ℂ] H) (hT : IsStarNormal T) (xi : H)

/-! ## 1. The generating map has dense range in the cyclic subspace -/

/-- The cyclic subspace of `ξ` is the closure of the range of `f ↦ f(T)ξ` (that range
is already a linear subspace). -/
theorem cyclicSubspace_eq_closure_range :
    (cyclicSubspace T hT xi : Set H) = closure (Set.range (cfcVec T hT xi)) := by
  have hrange : (Set.range fun g : C(spectrum ℂ T, ℂ) => cfcHom hT g xi)
      = Set.range (cfcVec T hT xi) := rfl
  have hspan : Submodule.span ℂ (Set.range fun g : C(spectrum ℂ T, ℂ) => cfcHom hT g xi)
      = LinearMap.range (cfcVec T hT xi) := by
    rw [hrange, ← LinearMap.coe_range, Submodule.span_eq]
  rw [cyclicSubspace, hspan]
  exact Submodule.topologicalClosure_coe _

/-- The generating map `f ↦ f(T)ξ`, seen as a map into the cyclic subspace of `ξ`. -/
def cfcVecTo : C(spectrum ℂ T, ℂ) →ₗ[ℂ] cyclicSubspace T hT xi :=
  LinearMap.codRestrict _ (cfcVec T hT xi) (cfcHom_apply_mem_cyclicSubspace T hT xi)

@[simp] theorem cfcVecTo_apply (f : C(spectrum ℂ T, ℂ)) :
    (cfcVecTo T hT xi f : H) = cfcHom hT f xi := rfl

theorem denseRange_cfcVecTo : DenseRange (cfcVecTo T hT xi) := by
  change Dense (Set.range (cfcVecTo T hT xi))
  rw [Topology.IsInducing.subtypeVal.dense_iff]
  intro m
  have hm : (m : H) ∈ closure (Set.range (cfcVec T hT xi)) := by
    rw [← cyclicSubspace_eq_closure_range]
    exact m.2
  refine closure_mono ?_ hm
  rintro _ ⟨f, rfl⟩
  exact ⟨cfcVecTo T hT xi f, ⟨f, rfl⟩, rfl⟩

/-! ## 2. The unitary model of one cyclic summand -/

/-- **The model of a cyclic summand.**  The map `f ↦ f(T)ξ` is an `L²(μ_ξ)`-isometry
onto a dense subspace of the cyclic subspace of `ξ`, hence extends to a unitary
`L²(μ_ξ) ≃ₗᵢ[ℂ] cyclicSubspace ξ`.  Note that no cyclicity hypothesis is needed:
`ξ` is cyclic *for its own cyclic subspace* by construction. -/
def cyclicUnitary : Lp ℂ 2 (spectralMeasure T hT xi) ≃ₗᵢ[ℂ] cyclicSubspace T hT xi :=
  (LinearEquiv.refl ℂ C(spectrum ℂ T, ℂ)).extendOfIsometry
    (ContinuousMap.toLp 2 (spectralMeasure T hT xi) ℂ).toLinearMap
    (cfcVecTo T hT xi)
    (ContinuousMap.toLp_denseRange ℂ _ (μ := spectralMeasure T hT xi) (by simp))
    (denseRange_cfcVecTo T hT xi)
    (fun f => by
      simpa using (norm_cfcHom_apply T hT xi f))

@[simp] theorem cyclicUnitary_toLp (f : C(spectrum ℂ T, ℂ)) :
    cyclicUnitary T hT xi (ContinuousMap.toLp 2 (spectralMeasure T hT xi) ℂ f)
      = cfcVecTo T hT xi f :=
  LinearEquiv.extendOfIsometry_eq _ _ _ _ _ _ f

/-- The model read inside the ambient space: an isometric embedding of `L²(μ_ξ)` into
`H` with range the cyclic subspace of `ξ`. -/
def cyclicEmbedding : Lp ℂ 2 (spectralMeasure T hT xi) →ₗᵢ[ℂ] H :=
  (cyclicSubspace T hT xi).subtypeₗᵢ.comp (cyclicUnitary T hT xi).toLinearIsometry

@[simp] theorem cyclicEmbedding_apply (u : Lp ℂ 2 (spectralMeasure T hT xi)) :
    cyclicEmbedding T hT xi u = (cyclicUnitary T hT xi u : H) := rfl

@[simp] theorem cyclicEmbedding_toLp (f : C(spectrum ℂ T, ℂ)) :
    cyclicEmbedding T hT xi (ContinuousMap.toLp 2 (spectralMeasure T hT xi) ℂ f)
      = cfcHom hT f xi := by
  simp [cyclicEmbedding]









/-! ## 3. Gluing the summand models -/







/-! ## 4. The separable case: countably many summands -/









end BookProof.ChapterSpectralDirectSum

end
Source
https://github.com/leonardopedro/timepiece/blob/61595bc/BookProof/ChapterSpectralDirectSum.lean

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