Documentation

CsdLean4.LF4.GaussianCPN

LF4 general-N Part 1: gaussianCPN = fubiniStudyMeasure on ℂℙ^{N-1} #

Category: 3-Local (gaussianCPN = fubiniStudyMeasure on ℂℙ^{N-1}).

The general-N analogue of GaussianCP.lean (which handled the qubit N = 2): the Fubini–Study measure on ℂℙ^{N-1} is the projectivised standard Gaussian on ℂ^N. This is Slice B of the general-N Duistermaat–Heckman programme (specs/general-n-dh-plan.md), the cleanest standalone increment, and unblocks the Gaussian-route block law (Part 2a) and the Gamma→Dirichlet crux (Part 2b).

To keep stdGaussian on a clean real EuclideanSpace (avoiding the ℝ/ℂ typeclass diamond on EuclideanSpace ℂ (Fin N)), we transport through a hand-built real coordinate isometry coordsN : ℝ^{N×2} ≃ₗᵢ[ℝ] ℂ^N, y ↦ (i ↦ y(i,0) + y(i,1)·I). The real space is indexed by Fin N × Fin 2 (rather than Fin (2N)) so each complex coordinate i reads its real/imaginary parts off the clean pair (i,0), (i,1) — no 2i/2i+1 index arithmetic.

The discharged qubit file GaussianCP.lean is left untouched: its Fin 4-indexed machinery (coords, regroup4, …) is load-bearing for the retired fs_moment_pushforward_uniform axiom, so this is a parallel general-N development rather than a refactor.

C1 — the real coordinate isometry ℝ^{N×2} ≃ₗᵢ[ℝ] ℂ^N #

C1 (general N). The real coordinate isometry ℝ^{N×2} ≃ₗᵢ[ℝ] ℂ^N, y ↦ (i ↦ y(i,0) + y(i,1)·I).

Equations
  • One or more equations did not get rendered due to their size.
Instances For

    C2/C3 — the projectivised Gaussian #

    C2 (general N). The standard Gaussian transported to ℂ^N.

    Equations
    Instances For
      noncomputable def CSD.LF4.gaussianProjN {N : } (p₀ : CPN N) (v : EuclideanSpace (Fin N)) :
      CPN N

      The projectivisation map ℂ^N → ℂℙ^{N-1}, junk value p₀ at 0.

      Equations
      Instances For
        noncomputable def CSD.LF4.gaussianCPN {N : } (p₀ : CPN N) :

        C3 (general N). The projectivised Gaussian on ℂℙ^{N-1}.

        Equations
        Instances For

          C4 — U(N)-invariance #

          The -linear matrix action toEuclideanLin U.val is measurable.

          theorem CSD.LF4.toEuclideanLinN_ne_zero {N : } (U : (Matrix.unitaryGroup (Fin N) )) {v : EuclideanSpace (Fin N)} (hv : v 0) :

          A unitary's toEuclideanLin action sends nonzero vectors to nonzero vectors.

          Uᴴ * U = 1 for a unitary matrix.

          U * Uᴴ = 1 for a unitary matrix.

          toEuclideanLin U.val is -linear for the scalar action.

          The real conjugate isometry conjRN U : ℝ^{N×2} ≃ₗᵢ[ℝ] ℝ^{N×2}, conjugating the unitary action on ℂ^N through coordsN.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For

            coordsNconjRN U = toEuclideanLin U.val ∘ coordsN.

            gaussianHN is invariant under the unitary matrix action on ℂ^N.

            No-atoms at the origin #

            stdGaussian (ℝ^{N×2}) is not a Dirac measure (needs the space nonempty, i.e. N ≥ 1).

            C4 (invariance) and C5 (identification) #

            theorem CSD.LF4.gaussianCPN_smul_invariant {N : } [NeZero N] (p₀ : CPN N) (U : (Matrix.unitaryGroup (Fin N) )) :
            MeasureTheory.Measure.map (fun (p : CPN N) => U p) (gaussianCPN p₀) = gaussianCPN p₀

            C4 (general N). gaussianCPN p₀ is U(N)-invariant.

            C5 (general N): the projectivised Gaussian equals the Fubini–Study measure on ℂℙ^{N-1}. The general-N analogue of gaussianCP_eq_fubiniStudy.