Documentation

QEC1.Remarks.Rem_9_CircuitImplementation

Remark 9: Circuit Implementation #

Statement #

The gauging measurement procedure can be implemented by a quantum circuit with no additional qubits beyond the edge qubits:

  1. Initialize each edge qubit e in state |0⟩_e.
  2. Apply the entangling circuit ∏v ∏{e ∋ v} CX_{v → e}.
  3. Measure X_v on all vertex qubits v ∈ V.
  4. Apply the same entangling circuit again.
  5. Measure Z_e on all edge qubits and discard them.
  6. Apply byproduct corrections as in Definition 5.

Why this works: The entangling circuit transforms A_v = X_v ∏{e ∋ v} X_e into X_v (since CX{v → e} conjugates X_v → X_v X_e and X_e → X_e). So measuring X_v after the circuit is equivalent to measuring A_v before it.

Main Results #

CX Gate Conjugation on Pauli Operators #

def CircuitImplementation.cxConjugate {W : Type u_2} [DecidableEq W] (c t : W) (_hne : c t) (P : PauliOp W) :

The conjugation action of CX_{control → target} on a Pauli operator.

Equations
Instances For
    @[simp]
    theorem CircuitImplementation.cxConjugate_xVec_control {W : Type u_2} [DecidableEq W] (c t : W) (hne : c t) (P : PauliOp W) :
    (cxConjugate c t hne P).xVec c = P.xVec c
    @[simp]
    theorem CircuitImplementation.cxConjugate_xVec_target {W : Type u_2} [DecidableEq W] (c t : W) (hne : c t) (P : PauliOp W) :
    (cxConjugate c t hne P).xVec t = P.xVec t + P.xVec c
    @[simp]
    theorem CircuitImplementation.cxConjugate_zVec_control {W : Type u_2} [DecidableEq W] (c t : W) (hne : c t) (P : PauliOp W) :
    (cxConjugate c t hne P).zVec c = P.zVec c + P.zVec t
    @[simp]
    theorem CircuitImplementation.cxConjugate_zVec_target {W : Type u_2} [DecidableEq W] (c t : W) (hne : c t) (P : PauliOp W) :
    (cxConjugate c t hne P).zVec t = P.zVec t
    theorem CircuitImplementation.cxConjugate_involutive {W : Type u_2} [DecidableEq W] (c t : W) (hne : c t) (P : PauliOp W) :
    cxConjugate c t hne (cxConjugate c t hne P) = P

    CX conjugation is involutive.

    theorem CircuitImplementation.cxConjugate_mul {W : Type u_2} [DecidableEq W] (c t : W) (hne : c t) (P Q : PauliOp W) :
    cxConjugate c t hne (P * Q) = cxConjugate c t hne P * cxConjugate c t hne Q

    CX conjugation distributes over Pauli multiplication.

    @[simp]
    theorem CircuitImplementation.cxConjugate_one {W : Type u_2} [DecidableEq W] (c t : W) (hne : c t) :
    cxConjugate c t hne 1 = 1

    CX conjugation of basic Pauli operators #

    CX_{c→t} maps X_c to X_c · X_t.

    CX_{c→t} maps X_t to X_t (unchanged).

    CX_{c→t} maps Z_c to Z_c (unchanged).

    CX_{c→t} maps Z_t to Z_c · Z_t.

    The Full Entangling Circuit Action #

    The conjugation action of the full entangling circuit ∏v ∏{e ∋ v} CX_{v→e}.

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

      The entangling circuit action is involutive: applying it twice gives the identity.

      The entangling circuit action distributes over Pauli multiplication.

      Entangling circuit preserves symplectic inner product #

      Main Theorem: Entangling Circuit Transforms A_v to X_v #

      Key result: The entangling circuit transforms A_v to X_v.

      The inverse direction: the circuit transforms X_v back to A_v.

      Measuring X_v after the entangling circuit is equivalent to measuring A_v before it.

      Effect on edge Z operators #

      theorem CircuitImplementation.entanglingCircuit_transforms_edgeZ {V : Type u_1} [Fintype V] [DecidableEq V] (G : SimpleGraph V) [DecidableRel G.Adj] [Fintype G.edgeSet] (e : G.edgeSet) :
      entanglingCircuitAction G (PauliOp.pauliZ (Sum.inr e)) = { xVec := 0, zVec := fun (q : GaussFlux.ExtQubit G) => match q with | Sum.inl w => if w e then 1 else 0 | Sum.inr e' => if e' = e then 1 else 0 }

      The entangling circuit transforms Z_e into Z on e and both its endpoints.

      Circuit Protocol Steps #

      Step 2: The entangling circuit transforms A_v to X_v.

      Step 4: Applying the entangling circuit again undoes the transformation.

      Steps 2+3+4: Measuring X_v in the CX frame = measuring A_v in the original frame.

      After step 4, edge Z measurements are back in the original frame.

      Simultaneous transformation of all Gauss operators #

      All Gauss operators are simultaneously transformed to X_v.

      The product of all transformed operators ∏_v X_v equals L (logical operator).