SigmaLayer/JoinLuders: BlockLudersObligation, inhabited — the degenerate arc closed #
Category: 7-SigmaLayer (dynamical measurement — degenerate Lüders, brick 5: the conditioned marginal).
The headline #
★★ joinWitness_blockLuders: the join witness satisfies BlockLudersObligation — the
§8.3 demand that swap_not_blockLuders proved no fixed ray-level calibration can meet is
inhabited by the join protocol. For every preparation ψ with nonvanishing block-i
component, the sector-conditioned post-measurement system readout is exactly
epistemicMeasure [Πᵢψ] — the ψ-dependent Lüders update, from a fixed block-supported
calibration family, through Liouville-preserving dynamics.
How the marginal computation runs (join_luders_marginal) #
The canonical preparation is a pushforward from a parameter space
(phase θ, system fibre θₛ, ancilla fibre θₐ, register r): join point = the phase-orbit point
[χ(θ)ψ ⊕ α], fibres Haar, register ready. Then:
- conditioning commutes with the pushforward (
cond_map); - on the ready support, the outcome-
isector pulls back to a cylinder over the system fibre alone —θₛ ∈ goodTheta(the block's basin cells) — because the phase orbit has constant system ray, so the selector never seesθ; - conditioning the product on that cylinder conditions only the
θₛfactor (cond_prod_prod); - on the conditioned support the evolved readout is constant in everything but
θₐ: the ray is[Πᵢψ]at every phase (joinPoint_collapse, fromjoin_block_luders), and the post-measurement system fibre is the ancilla's; - so the marginal is
δ_{[Πᵢψ]} ⊗ Haar = epistemicMeasure [Πᵢψ]. The conditioned original fibre (theθₛfactor) integrates out — it was moved to the ancilla slot, stored.
goodTheta_vol_pos discharges the conditioning positivity from Πᵢψ ≠ 0 alone (a nonzero
block coordinate has a positive-width basin cell), so the obligation carries no measure
hypothesis. (The generic conditioning toolkit was extracted to
CsdLean4/Mathlib/Probability/ConditionalProbability.lean on 2026-08-02.)
What this closes #
The degenerate-Lüders arc, bricks 1–5: relocation target (BlockCollapse) → phase-slot
mechanism (PhaseSlot) → Liouville-preserving pointwise update on the join (JoinArena) →
the MeasurementProtocol (JoinProtocol) → the obligation itself (here). The rank-one
and degenerate Lüders updates now stand on the same architectural footing: explicit
propagators, measure-preserving, records created and persistent, post-states as pushforward
theorems. swap_not_blockLuders stands as the theorem explaining why the ray-pair arena
could not host this.
References #
SigmaLayer/DegenerateLuders.lean (BlockLudersObligation, swap_not_blockLuders);
SigmaLayer/JoinProtocol.lean (the protocol); SigmaLayer/JoinArena.lean
(join_block_luders — the pointwise input); SigmaLayer/SwapLuders.lean (the rank-one
precedent whose conditioning toolkit this mirrors); specs/BACKLOG.md.
Conditioning toolkit — moved to the staging tree 2026-08-02 #
(CsdLean4/Mathlib/Probability/ConditionalProbability.lean: ProbabilityTheory.cond_map,
cond_prod_prod, cond_eq_self).
The ready register never leaves the ready arc.
Conditioning a probability measure on the whole space does nothing.
The sector, characterised on the ready support #
On the ready arc, the shear's outcome-i sector is exactly the selector-i fibre.
The canonical preparation #
One phase-orbit join point.
Equations
- CSD.RecordLayer.joinPoint ψ α hψ0 θ = Projectivization.mk ℂ (CSD.RecordLayer.dblVec (↑θ.toCircle • ψ) α) ⋯
Instances For
The first-copy embedding, linearly.
Equations
- CSD.RecordLayer.dblVecFst = { toFun := fun (v : EuclideanSpace ℂ (Fin N)) => CSD.RecordLayer.dblVec v 0, map_add' := ⋯, map_smul' := ⋯ }
Instances For
The parameter space of the canonical preparation: phase, system fibre, ancilla fibre, register.
Equations
Instances For
The parameter measure, as its defining product (interface lemma, §9.1).
The preparation map: phase-orbit join point, fibres and register threaded through.
Equations
Instances For
The canonical preparation: phase-orbit join point, Haar fibres, ready register.
Equations
- CSD.RecordLayer.joinPrep ψ α hψ0 = MeasureTheory.Measure.map (CSD.RecordLayer.jF ψ α hψ0) (CSD.RecordLayer.paramMeasure K)
Instances For
The selector on the orbit #
The phase orbit has constant system ray.
The good system fibres: those whose basin lies in block i.
Equations
- CSD.RecordLayer.goodTheta b ψ hψ0 i = {θs : CSD.LF4.KTorus | b (CSD.RecordLayer.basinIndex (CSD.RecordLayer.momentContext N) (Projectivization.mk ℂ ψ hψ0, θs)) = i}
Instances For
The selector at a preparation point reads the system fibre alone.
The sector pulls back to a fibre cylinder #
The pulled-back sector agrees a.e. with the fibre cylinder.
Positivity from the block component #
The readout on the sector #
The post-measurement system readout: system ray and system fibre of the join state.
Equations
- CSD.RecordLayer.sysRead x = (CSD.RecordLayer.joinFst x.1.1.1, x.1.1.2)
Instances For
On the sector, the evolved readout is the collapsed ray with the ancilla's fibre.
★★ The conditioned marginal #
★★ The degenerate Lüders marginal. For the canonical preparation, conditioned on the
coarse outcome i, the post-measurement system readout is exactly the collapsed epistemic
state epistemicMeasure [Πᵢψ].
★★ The obligation, inhabited #
The join witness's post-measurement system marginal, for calibration family α.
Equations
- CSD.RecordLayer.joinPostMarg b α ψ hψ0 i = MeasureTheory.Measure.map CSD.RecordLayer.sysRead ((CSD.RecordLayer.joinProtocol b).postMeasure (CSD.RecordLayer.joinPrep ψ (α i) hψ0) i)
Instances For
★★ BlockLudersObligation, inhabited. With any block-supported calibration family,
the join witness satisfies the §8.3 degenerate-Lüders demand — the construction
swap_not_blockLuders proved impossible for every fixed ray-level calibration, delivered by
the phase-carrying join arena through Liouville-preserving dynamics.