SigmaLayer/LocalLudersBasis: local measurements in every basis (brick 3a) #
Category: dynamical measurement — dynamical no-signalling (A6, dynamical form), brick 3a: the local Lüders map for an arbitrary orthonormal basis on the measured factor.
LocalLuders handled the computational-basis marker measurement. The eraser's erase arm
measures the marker in the ± basis — and rather than hand-build those two projectors, this
module generalises: for any orthonormal basis g of the B factor,
(localProjOn g j v)(a, k) = ⟪gⱼ, v(a,·)⟫ · gⱼ(k)
is the local projector 1_A ⊗ |gⱼ⟩⟨gⱼ|. The computational case is recovered exactly
(localProjOn_basisFun). Everything brick 1 proved survives, with Parseval doing the work
the ite-collapse did before:
- the projectors resolve the identity (
sum_localProjOn— basis expansion, slice by slice); - the Born weights resolve the norm (
sum_normSq_localProjOn— Parseval per slice); - ★★ marginal invariance in every basis (
reduceA_localLudersOn_mixture): the Born-weighted mixture of the post-measurementA-marginals equals the pre-measurementA-marginal, whatever basisB's apparatus measures in. Alice cannot learn Bob's basis choice any more than his outcome — the statics core of no-signalling, now basis-universal.
⚠️ Honest scope. As in brick 1, this is the statics layer, in the states-and-weights
vocabulary that BlockLudersObligation names and the join witness inhabits dynamically; the
rotated block structure enters the dynamical machinery through the brick-2 index bridge
composed with the local unitary rotating g to the computational basis (the RotatedSwap
idiom) — not re-proved here. Brick 3b instantiates the 2 ⊗ 2 eraser: the computational
marker measurement (which-path, no fringe) and the ± marker measurement (fringes restored,
the QuantumEraserVolume statistics).
References #
specs/BACKLOG.md (the dynamical no-signalling + eraser row); specs/future-work.md.
Reused corpus API: localProjB/vecOuter/reduceA_mk (SigmaLayer/LocalLuders.lean),
normSq_eq_sum_mul_star (SigmaLayer/OnticMarginals.lean),
OrthonormalBasis.sum_inner_mul_inner + OrthonormalBasis.sum_repr' (Mathlib).
The B-slice and the rotated local projector #
The B-slice of a composite vector at A-index a.
Equations
- CSD.RecordLayer.sliceB v a = WithLp.toLp 2 fun (k : Fin nB) => v.ofLp (a, k)
Instances For
The local projector 1_A ⊗ |gⱼ⟩⟨gⱼ| for an arbitrary orthonormal basis g of the B
factor: (Pⱼ v)(a, k) = ⟪gⱼ, v(a,·)⟫ · gⱼ(k).
Equations
- CSD.RecordLayer.localProjOn g j v = WithLp.toLp 2 fun (ak : Fin nA × Fin nB) => inner ℂ (g j) (CSD.RecordLayer.sliceB v ak.1) * (g j).ofLp ak.2
Instances For
The computational basis recovers localProjB.
Identity and norm resolution #
Parseval for a slice: the squared inner products against an orthonormal basis resolve the squared norm.
The rotated projectors resolve the identity — basis expansion, slice by slice.
The Born weights of the rotated outcomes resolve the norm — Parseval per slice.
The marginal-invariance identity, in every basis #
★ Tracing out B collapses the rotated Lüders sum — Parseval where brick 1 had the
ite-collapse.
★★ Dynamical no-signalling, in every measurement basis: the Born-weighted mixture of
the post-measurement A-marginals of a local B-measurement in any orthonormal basis
equals the pre-measurement A-marginal. Alice cannot detect Bob's outcome or his choice of
basis. Zero-weight outcomes carry weight 0 — no positivity hypothesis.