SigmaLayer/PhaseSlot: the phase-carrying slot — degenerate Lüders, route (ii), brick 2 #
Category: 7-SigmaLayer (dynamical measurement — the degenerate-Lüders construction, route (ii) of the sharpened wall).
What this proves #
BlockCollapse.lean sharpened the wall: the vector-level collapse-with-storage
(componentSwap) fails to descend to ray pairs because the product ℙ×ℙ quotient forgets the
relative scale. Route (ii) keeps the phase: the slot carries nonzero vectors, and the
preparation carries its ontic phase as an epistemically uniform circle orbit. Three pieces:
- ★
pairSwap— the total, involutive, measurable pair dynamics on nonzero-vector pairs: firecomponentSwapexactly when both outputs are nonzero, else the identity. The condition evaluated at a fired image is automatically true (componentSwapis involutive and the inputs were nonzero), which is what makes the conditional map a genuine involution (pairSwap_involutive) — reversibility, hence storage, henceno_exact_collapserespected. phasePrep— the phase-orbit preparation: the uniform measure on{χ(θ)·ψ}, the image of the circle's Haar measure. The ray-level readout of the orbit is the Dirac at[ψ](readout_phasePrep): the enrichment adds ontic phase, not epistemic content.- ★★
phase_slot_block_luders— the degenerate Lüders update, realised: with a fixed block-calibrated slotα(Πᵢα = α,α ≠ 0), the ray-level readout of the post-swap system is exactlyδ_{[Πᵢψ]}— theblockLudersObligation_iff_relocationtarget — for every preparation with nonvanishing block component.
Why this evades swap_not_blockLuders, honestly #
The no-go's mechanism was: the full swap makes the post-system the slot's prior content,
hence preparation-independent, hence wrong at two in-block vertices. The pair swap here is
partial: the block component of the system stays — the dynamics moves system-information
into the slot (the complement is stored), not slot-content into the system. The slot
calibration is still fixed (Measure.dirac); preparation-dependence of the post-state
comes from the preparation itself. No contradiction with the no-go: its premise fails for a
partial swap. And the partial swap is only well-defined because the arena is phase-enriched —
on rays it was ill-defined, which is exactly what the sharpened wall said.
⚠️ Honest scope — what brick 3 still owes #
This is the state-update core, not yet the full protocol: (a) the register/sector plumbing
(a MeasurementProtocol on the phase-enriched arena with the record trigger, mirroring
SwapWitness); (b) Liouville preservation on the enriched arena — pairSwap preserves
summed norms (componentSwap_norm_sum), so the natural invariant reference measure is a
unitarily-invariant one (e.g. Gaussian) on the doubled space; formalising that invariance is
the recorded remaining work (specs/BACKLOG.md, effort M). Nothing here claims either.
Corrected 2026-08-04 (codebase audit). Both debts were paid the same day (2026-08-02), and (b) did not need the Gaussian
route: the phase-enriched pair arena is the projective join, so Liouville preservation is
FS unitary invariance (joinSwap_measurePreserving, SigmaLayer/JoinArena.lean), and the
protocol plumbing (a) is SigmaLayer/JoinProtocol.lean. The paragraph above is kept as the
construction record. The
obligation is discharged at the level BlockLudersObligation actually demands — the
post-state as a measure — for the canonical phase-orbit preparations and fixed calibration.
References #
SigmaLayer/BlockCollapse.lean (componentSwap, the sharpened wall, brick 1);
SigmaLayer/DegenerateLuders.lean (swap_not_blockLuders — the boundary this evades,
BlockLudersObligation); SigmaLayer/MeasurementConstraints.lean (no_exact_collapse);
Mathlib/LinearAlgebra/Projectivization/MeasureSpace.lean (measurable_mk');
Mathlib/Analysis/SpecialFunctions/Complex/Circle.lean (AddCircle.toCircle);
specs/BACKLOG.md.
The total conditional pair swap #
The firing condition: both componentSwap outputs are nonzero.
Equations
- CSD.RecordLayer.pairSwapCond b i p = ((CSD.RecordLayer.componentSwap b i p).1 ≠ 0 ∧ (CSD.RecordLayer.componentSwap b i p).2 ≠ 0)
Instances For
The total pair swap on nonzero-vector pairs: fire the component swap exactly when both outputs are nonzero, else the identity.
Equations
- One or more equations did not get rendered due to their size.
Instances For
★ The pair swap is a genuine involution — the reversibility that makes the collapse a
relocation-with-storage rather than a contraction. The key: at a fired image the firing
condition is automatically satisfied, because componentSwap is involutive and the original
inputs were nonzero.
The firing condition holds in the calibrated-measurement situation: nonzero block component, block-supported nonzero slot.
The calibrated fired value: the post-swap system vector is exactly the Lüders-collapsed
Πᵢψ.
The component swap is continuous (a linear coordinate exchange).
The pair swap is measurable.
The phase-orbit preparation #
The phase orbit of a preparation: θ ↦ χ(θ)·ψ, a nonzero vector for every phase.
Instances For
The phase-orbit preparation: uniform over the ontic phase, Dirac in every other respect.
Equations
Instances For
Every point of the phase orbit reads out to the same ray.
The enrichment adds ontic phase, not epistemic content: the ray-level readout of the phase orbit is the Dirac at the ray.
The degenerate Lüders update, realised #
★★ The degenerate Lüders update, realised by the phase-carrying slot. Prepare the
phase orbit of ψ; calibrate the slot with a fixed block-supported α; fire the pair
swap; read out the system ray. The result is exactly δ_{[Πᵢψ]} — the target
blockLudersObligation_iff_relocation demands — for every preparation with nonvanishing
block-i component. A fixed calibration achieves a preparation-dependent post-state because
the partial swap moves system-information into the slot, not slot-content into the system;
swap_not_blockLuders's premise fails, and its conclusion is evaded.