Documentation

CsdLean4.RecordLayer.JoinProtocol

SigmaLayer/JoinProtocol: the degenerate measurement as a MeasurementProtocol #

Category: 7-SigmaLayer (dynamical measurement — degenerate Lüders, brick 4: the protocol plumbing).

What this is #

JoinArena.lean proved the degenerate Lüders update is a Liouville-preserving unitary with a pointwise-correct readout. This module runs that update inside the corpus's standard measurement architecture — the same two-time-propagator, ready/pointer-region, record-triggered shape as SwapWitness:

Because the arena is literally a shear arena over Xsel = Xj, the whole record apparatus — regions, readout, sectors, persistence — is inherited from shearProtocol by structure update; only the propagator cluster is new.

What is proved #

⚠️ What brick 5 (the last one) owes #

The conditioned-marginal bookkeeping: the sector-conditioned post-measurement system readout for the canonical phase-orbit preparation equals epistemicMeasure [Πᵢψ] — the BlockLudersObligation instance, mirroring SwapLuders. The pointwise input is join_block_luders; the plumbing is conditioning + pushforward (specs/BACKLOG.md).

References #

SigmaLayer/JoinArena.lean (joinSwap, join_block_luders, joinFst); SigmaLayer/SwapWitness.lean (the transcribed architecture: arcIndex, the crossing propagator, the partition argument); SigmaLayer/ShearWitness.lean (shearEvolve and the generic record machinery, inherited); SigmaLayer/DegenerateLuders.lean (swap_not_blockLuders — why the rank-one architecture could not host this); specs/BACKLOG.md.

The join selector space #

@[reducible, inline]

The join selector space: join point, system fibre, ancilla fibre.

Equations
Instances For
    noncomputable def CSD.RecordLayer.joinIdx {N K : } [NeZero N] (b : Fin NFin K) :
    JoinSel NFin K

    The coarse selector: block index of the join point's system ray at the system fibre.

    Equations
    Instances For

      The record-triggered join map #

      noncomputable def CSD.RecordLayer.joinG {N K : } (b : Fin NFin K) :

      The record-triggered join map G: if the pointer displays outcome i, apply the join unitary for block i and exchange the system fibre with the ancilla fibre; otherwise do nothing. The register is untouched.

      Equations
      Instances For
        theorem CSD.RecordLayer.joinG_register {N K : } (b : Fin NFin K) (x : JoinSel N × LF4.KTorus) :
        (joinG b x).2 = x.2
        theorem CSD.RecordLayer.joinG_of_mem {N K : } (b : Fin NFin K) {x : JoinSel N × LF4.KTorus} {i : Fin K} (h : x.2 pointerArc K i) :
        joinG b x = (((joinSwap b i x.1.1.1, x.1.2), x.1.1.2), x.2)
        theorem CSD.RecordLayer.joinG_of_none {N K : } (b : Fin NFin K) {x : JoinSel N × LF4.KTorus} (h : ∀ (i : Fin K), x.2pointerArc K i) :
        joinG b x = x
        theorem CSD.RecordLayer.joinMat_mul_self {N K : } (b : Fin NFin K) (i : Fin K) :
        joinMat b i * joinMat b i = 1

        The join matrix squares to the identity — the permutation is an involution.

        theorem CSD.RecordLayer.joinSwap_joinSwap {N K : } (b : Fin NFin K) (i : Fin K) (p : LF4.CPN (N + N)) :
        joinSwap b i (joinSwap b i p) = p

        The join swap on rays is an involution.

        theorem CSD.RecordLayer.joinG_joinG {N K : } (b : Fin NFin K) (x : JoinSel N × LF4.KTorus) :
        joinG b (joinG b x) = x

        G is an involution — the join unitary squares to the identity, the fibre exchange is its own inverse, and the register (the trigger) is untouched.

        G preserves the join-arena Liouville measure #

        noncomputable def CSD.RecordLayer.joinSelMeasure {N : } (p₀ : LF4.CPN (N + N)) :

        The join-selector Liouville measure: Fubini–Study on the join point, Haar on both fibres.

        Equations
        Instances For

          The join-arena Liouville measure: selector ⊗ register Haar.

          Equations
          Instances For

            The join arena measure, as its defining product (interface lemma, §9.1).

            noncomputable def CSD.RecordLayer.joinGm {N K : } (b : Fin NFin K) (i : Fin K) :

            The fired-branch map on the selector: join swap on the point, fibre exchange.

            Equations
            Instances For
              theorem CSD.RecordLayer.measurable_joinGm {N K : } (b : Fin NFin K) (i : Fin K) :
              theorem CSD.RecordLayer.joinG_agree {N K : } (b : Fin NFin K) (o : Option (Fin K)) (x : JoinSel N × LF4.KTorus) (hx : x joinArcPiece K o) :
              joinG b x = (match (motive := Option (Fin K)JoinSel N × LF4.KTorusJoinSel N × LF4.KTorus) o with | none => id | some i => Prod.map (joinGm b i) id) x

              ★ The record-triggered join map preserves the arena Liouville measure — each register arc's piece map preserves it, and each piece is invariant under its own map because the trigger coordinate is untouched.

              The crossing propagator #

              noncomputable def CSD.RecordLayer.joinEvolve {N K : } [NeZero N] (b : Fin NFin K) (s t : SigmaLayer.OnticTime) :

              The join propagator: shear the register; fire the record-triggered join map when the window crosses readout, in either direction (G is an involution).

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                theorem CSD.RecordLayer.joinEvolve_fwd {N K : } [NeZero N] (b : Fin NFin K) {s t : SigmaLayer.OnticTime} (hs : s < 1) (ht : 1 t) :
                theorem CSD.RecordLayer.joinEvolve_bwd {N K : } [NeZero N] (b : Fin NFin K) {s t : SigmaLayer.OnticTime} (ht : t < 1) (hs : 1 s) :
                theorem CSD.RecordLayer.joinEvolve_lo {N K : } [NeZero N] (b : Fin NFin K) {s t : SigmaLayer.OnticTime} (hs : s < 1) (ht : t < 1) :
                theorem CSD.RecordLayer.joinEvolve_hi {N K : } [NeZero N] (b : Fin NFin K) {s t : SigmaLayer.OnticTime} (hs : 1 s) (ht : 1 t) :
                theorem CSD.RecordLayer.sE_comp {N K : } [NeZero N] (b : Fin NFin K) (s t u : SigmaLayer.OnticTime) (x : JoinSel N × LF4.KTorus) :

                Pointwise shear composition.

                theorem CSD.RecordLayer.sE_congr {N K : } [NeZero N] (b : Fin NFin K) {s t t' : SigmaLayer.OnticTime} (h : elapsed t = elapsed t') (x : JoinSel N × LF4.KTorus) :
                shearEvolve (joinIdx b) s t x = shearEvolve (joinIdx b) s t' x
                theorem CSD.RecordLayer.sE_congr_left {N K : } [NeZero N] (b : Fin NFin K) {s s' t : SigmaLayer.OnticTime} (h : elapsed s = elapsed s') (x : JoinSel N × LF4.KTorus) :
                shearEvolve (joinIdx b) s t x = shearEvolve (joinIdx b) s' t x
                theorem CSD.RecordLayer.joinEvolve_comp {N K : } [NeZero N] (b : Fin NFin K) (s t u : SigmaLayer.OnticTime) :

                The two-time composition law — the same eight readout-crossing cases as swapEvolve_comp, closing on G² = id and the frozen shear.

                noncomputable def CSD.RecordLayer.joinProtocol {N K : } [NeZero N] (b : Fin NFin K) :

                The degenerate-measurement protocol on the join arena. All region and readout structure is inherited from the shear protocol; only the propagator cluster is new.

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

                  CorrelatesOn discharged: the register dynamics is the shear's, and G never moves the register.

                  PointerInvariantOn discharged: right of readout the propagator is frozen.

                  ★ The full join propagator preserves the arena Liouville measure, at every time pair.