Rem_6: Circuit Implementation of the Gauging Procedure #
Statement #
The gauging procedure can be implemented by a quantum circuit with no additional ancilla qubits beyond the edge qubits. After initializing the edge qubits in |0⟩, perform the entangling circuit ∏v ∏{e ∋ v} CX_{v→e} where CX_{v→e} is a controlled-X gate with control qubit v and target qubit e. Next, projectively measure X_v on all vertices v ∈ G and keep the post-measurement state. Then repeat the same entangling circuit ∏v ∏{e ∋ v} CX_{v→e}. Finally, measure Z_e on all edge qubits and discard them.
Main Definitions #
CircuitStep: The steps of the gauging circuitGaugingCircuit: The complete gauging circuit specificationCXGate: A controlled-X (CNOT) gate specificationEntanglingCircuit: The product ∏v ∏{e ∋ v} CX_{v→e}
Main Results #
no_additional_ancilla: The circuit uses only edge qubits as ancillacircuit_sequence: The complete circuit is init → entangle → measure X → entangle → measure Zentangling_circuit_eq: The two entangling circuits are identical
Key Properties #
The circuit has five phases:
- Initialize edge qubits in |0⟩
- Apply entangling circuit ∏v ∏{e ∋ v} CX_{v→e}
- Measure X_v on all vertices and keep post-measurement state
- Apply the same entangling circuit again
- Measure Z_e on all edges and discard
Controlled-X (CNOT) Gate #
Equations
- One or more equations did not get rendered due to their size.
Circuit Steps #
The phases of the gauging circuit
- InitializeEdges : CircuitPhase
Phase 1: Initialize edge qubits in |0⟩
- FirstEntangling : CircuitPhase
Phase 2: Apply first entangling circuit ∏v ∏{e ∋ v} CX_{v→e}
- MeasureXVertices : CircuitPhase
Phase 3: Measure X_v on all vertices
- SecondEntangling : CircuitPhase
Phase 4: Apply second entangling circuit (same as first)
- MeasureZEdges : CircuitPhase
Phase 5: Measure Z_e on all edges and discard
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- QEC1.instReprCircuitPhase = { reprPrec := QEC1.instReprCircuitPhase.repr }
The natural ordering of circuit phases
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
The circuit has exactly 5 phases
Phase ordering
Equations
- QEC1.CircuitPhase.instLT = { lt := fun (p q : QEC1.CircuitPhase) => p.toNat < q.toNat }
Equations
- p.instDecidableRelLt q = p.toNat.decLt q.toNat
InitializeEdges is the first phase
MeasureZEdges is the last phase
Entangling Circuit Structure #
The entangling circuit ∏v ∏{e ∋ v} CX_{v→e} for a graph G.
For each vertex v, for each edge e incident to v, apply CX with control v and target e. The edges are represented as Sym2 V elements from the graph's edge set.
- graph : SimpleGraph V
The underlying graph
The CX gates are parameterized by (vertex, incident edge) pairs
Instances For
The number of CX gates equals ∑_v deg(v) = 2|E|
Each vertex contributes deg(v) CX gates
Measurement Specifications #
Complete Gauging Circuit #
The complete gauging circuit implementing the gauging procedure.
The circuit uses:
- Vertex qubits (V): the original code qubits in supp(L)
- Edge qubits (E_G): auxiliary qubits, one per edge
No additional ancilla qubits are required beyond the edge qubits.
The circuit proceeds in 5 phases:
- Initialize edge qubits in |0⟩
- Apply ∏v ∏{e ∋ v} CX_{v→e}
- Measure X_v on all vertices, keep post-measurement state
- Apply ∏v ∏{e ∋ v} CX_{v→e} (same circuit as step 2)
- Measure Z_e on all edges and discard
- graph : SimpleGraph V
The underlying graph
- entangling1 : EntanglingCircuit G
First entangling circuit
- xMeasurement : XMeasurementSpec V
X measurement on vertices (keep the state)
- entangling2 : EntanglingCircuit G
Second entangling circuit (should be identical to first)
- zMeasurement : ZMeasurementSpec (Sym2 V)
Z measurement on edges (discard after)
The two entangling circuits are identical
X measurement covers all vertices
X measurement keeps qubits
Z measurement covers all edges
Z measurement discards qubits
Instances For
Key Properties #
The two entangling circuits are identical
All edge qubits are initialized (from Rem_2 convention)
X measurements are performed on all vertices
X measurement keeps the post-measurement state
Z measurements are performed on all edges
Z measurement discards the edge qubits
No Additional Ancilla Property #
The qubit types used in the circuit
- vertex
{V : Type u_1}
{G : SimpleGraph V}
: V → CircuitQubit G
Vertex qubit (original code qubit)
- edge
{V : Type u_1}
{G : SimpleGraph V}
: Sym2 V → CircuitQubit G
Edge qubit (auxiliary gauge qubit)
Instances For
Equations
- QEC1.GaugingCircuit.instDecidableEqCircuitQubit.decEq (QEC1.GaugingCircuit.CircuitQubit.vertex a) (QEC1.GaugingCircuit.CircuitQubit.vertex b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- QEC1.GaugingCircuit.instDecidableEqCircuitQubit.decEq (QEC1.GaugingCircuit.CircuitQubit.vertex a) (QEC1.GaugingCircuit.CircuitQubit.edge a_1) = isFalse ⋯
- QEC1.GaugingCircuit.instDecidableEqCircuitQubit.decEq (QEC1.GaugingCircuit.CircuitQubit.edge a) (QEC1.GaugingCircuit.CircuitQubit.vertex a_1) = isFalse ⋯
- QEC1.GaugingCircuit.instDecidableEqCircuitQubit.decEq (QEC1.GaugingCircuit.CircuitQubit.edge a) (QEC1.GaugingCircuit.CircuitQubit.edge b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
Instances For
The set of all qubits used in the circuit
Equations
Instances For
No additional ancilla beyond edge qubits: every qubit is either a vertex or edge qubit
Helper: check if a circuit qubit is an edge qubit
Equations
Instances For
The ancilla qubits are exactly the edge qubits
Circuit Depth Analysis #
The circuit consists of exactly 5 phases
The phases execute in order
Default Circuit Construction #
Construct the default gauging circuit for a graph G
Equations
- One or more equations did not get rendered due to their size.
Instances For
The circuit sequence as a list of phases
Equations
- One or more equations did not get rendered due to their size.
Instances For
The circuit sequence is strictly increasing in phase order
CX Gate Count #
Total number of CX gates in one entangling circuit
Equations
- QEC1.numCXGates G = ∑ v : V, G.degree v
Instances For
The number of CX gates equals 2|E| (each edge contributes 2 gates)
Total CX gates in the full circuit (both entangling rounds)
Equations
- QEC1.totalCXGates G = 2 * QEC1.numCXGates G
Instances For
Total CX gates equals 4|E|
Summary #
The gauging procedure circuit implementation:
- Initialization: Edge qubits start in |0⟩ (no extra work for logical qubits)
- First Entangling: ∏v ∏{e ∋ v} CX_{v→e} creates correlations
- X Measurement: Projectively measure X on all vertices, keep results
- Second Entangling: Repeat the same CX pattern
- Z Measurement: Measure Z on all edges and discard
Key efficiency:
- No additional ancilla beyond edge qubits
- Number of CX gates = 4|E| (twice 2|E| per entangling round)
- Circuit depth is constant (5 phases)