SigmaLayer/RotatedSwap: the first measurement in any basis — the unitary-covariance law #
Category: 7-SigmaLayer (dynamical measurement — the covariance extension).
What this closes #
RotatedContext.lean built the rotated context field and extended the sequential layer's
follow-up reads to arbitrary bases; the first measurement stayed hardwired to the
computational basis (selector basinIndex (momentContext N), bank calibrated on the
computational vertices). That asymmetry — the reason BB84Sequential had to run the dual
round — ends here:
- ★
sector_born_ctx/prep_outcome_pos_ctx/readyBankPrep_selReadyBank— the swap-arena Born and conditioning-positivity lemmas, generic in the context field and the bank calibration. ThemomentContextinstances inSwapClosure.leanpredate these and stand; the generic forms subsume them. - ★
rotated_swap_luders_born— the Lüders update for a first measurement in any orthonormal basisbON: selectorbasinIndex (basisContext bON), bank calibrated on the rotated vertices[bONᵢ]; conditioned on outcomei, follow-up statistics for any context are the collapsed state's ratesc'.rate [bONᵢ]. Pure instantiation:swap_luders_marginalwas always selector- and calibration-generic — the missing pieces were only the rotated Born accounting. - ★★
measurement_covariance— the unitary-covariance law, in closure form: for every orthonormal basis and every state, the full six-fact measurement closure (RotatedSwapClosure: ready ⇒ no record, record created, exclusivity, persistence, dynamical Born‖⟨bONᵢ, ψ⟩‖², Lüders to[bONᵢ]) holds on the swap arena. The apparatus basis is a parameter of the context field, not a preferred structure ofΣ.
What this retires #
The BB84Sequential dual-round caveat (the primal round Alice-Z/Eve-X is now directly
formalisable — see the corollary there), and the "arbitrary bases by unitary covariance" item
of the extension list. Remaining extension items (mixed preparations in the dynamical model,
POVM/instrument dynamics) stay recorded in specs/BACKLOG.md.
References #
SigmaLayer/SwapClosure.lean (readyPrep, selReadyBank machinery, the momentContext
instance); SigmaLayer/SwapLuders.lean (swap_luders_marginal — the generic engine);
SigmaLayer/RotatedContext.lean (basisContext, basisContext_rate_mk);
specs/BACKLOG.md.
The rotated vertices and bank #
The i-th rotated vertex: the basis ray [bONᵢ].
Equations
- CSD.RecordLayer.basisPoint bON i = Projectivization.mk ℂ (bON i) ⋯
Instances For
The rotated calibrated bank: slot k prepared at [bONₖ].
Equations
- CSD.RecordLayer.rotatedBank bON = MeasureTheory.Measure.pi fun (k : Fin N) => CSD.RecordLayer.epistemicMeasure (CSD.RecordLayer.basisPoint bON k)
Instances For
The context-generic swap-arena accounting #
The ready preparation weights the selector-and-ready-and-bank set with the context's rate —
for any context field and any probability bank. Generalises swapPrep_selReadyBank.
★ The context-generic dynamical Born: the outcome sector's measure is the context's rate at the preparation, for any context field and bank.
The context-generic conditioning positivity: the outcome sector has nonzero measure
whenever the context's rate does. Generalises prep_outcome_pos.
★ Lüders for a first measurement in any basis #
★ The rotated Lüders update. First measurement in the basis bON (selector = the
rotated context's basins, bank calibrated on the rotated vertices), conditioned on outcome
i: the follow-up outcome-j probability for any context field c' is the collapsed
state's rate c'.rate [bONᵢ] j.
★★ The covariance law, in closure form #
The rotated measurement closure: the six dynamical facts for a first measurement in
the orthonormal basis bON.
- ready_no_record (x : SwapArena (LF4.KSigma N) N) : x.1.2 ∈ readyArc N → (swapProtocol (basinIndex (basisContext bON)) ⋯).readout x = none
Ready ⇒ no record.
- record_created (i : Fin N) (x : SwapArena (LF4.KSigma N) N) : x ∈ selReadyBank (basinIndex (basisContext bON)) i → (swapProtocol (basinIndex (basisContext bON)) ⋯).readout ((swapProtocol (basinIndex (basisContext bON)) ⋯).evolve 0 1 x) = some i
A record is created, and it is the rotated-basin outcome the selector fixed.
- outcomes_exclusive : Pairwise (Function.onFun Disjoint (swapProtocol (basinIndex (basisContext bON)) ⋯).outcomeSector)
Distinct outcomes are exclusive.
- record_persists (i : Fin N) (x : SwapArena (LF4.KSigma N) N) (t : SigmaLayer.OnticTime) : x ∈ (swapProtocol (basinIndex (basisContext bON)) ⋯).outcomeSector i → 1 ≤ t → t ≤ 1 + 1 → (swapProtocol (basinIndex (basisContext bON)) ⋯).readout ((swapProtocol (basinIndex (basisContext bON)) ⋯).evolve 0 t x) = some i
The record persists across the operational window.
- sector_born (hψ0 : ψ ≠ 0) : ‖ψ‖ = 1 → ∀ (i : Fin N), ((readyPrep (Projectivization.mk ℂ ψ hψ0)).prod (rotatedBank bON)) ((swapProtocol (basinIndex (basisContext bON)) ⋯).outcomeSector i) = ENNReal.ofReal (‖inner ℂ (bON i) ψ‖ ^ 2)
The dynamical Born in the rotated basis: the outcome sector's measure is
‖⟨bONᵢ, ψ⟩‖². - luders_followup (hψ0 : ψ ≠ 0) : ‖ψ‖ = 1 → ∀ (i : Fin N), ‖inner ℂ (bON i) ψ‖ ^ 2 ≠ 0 → ∀ (c' : ContextField N) (j : Fin N), ((swapProtocol (basinIndex (basisContext bON)) ⋯).postMeasure ((readyPrep (Projectivization.mk ℂ ψ hψ0)).prod (rotatedBank bON)) i) ((fun (y : SwapArena (LF4.KSigma N) N) => y.1.1) ⁻¹' globalBasin c' j) = ENNReal.ofReal (c'.rate (basisPoint bON i) j)
The rotated Lüders update, conditioning licensed by the rotated Born weight.
Instances For
★★ The unitary-covariance law: the measurement closure holds for every orthonormal
basis and every state — the apparatus basis is a parameter of the context field, not a
preferred structure of Σ.