Gauge Fixing in Subsystem Codes
Choosing definite values for gauge qubits converts a subsystem code into a stabilizer code and lets a processor switch between codes without moving data.
Fixing the gauge
In a subsystem code the gauge qubits carry no information, so their state is free. Gauge fixing means measuring a chosen set of gauge operators and treating their outcomes as new stabilizers. This promotes part of the gauge group into the stabilizer group, converting the subsystem code into a stabilizer code with a larger stabilizer and no remaining gauge freedom in that sector.
Switching between codes
Because different choices of which gauge operators to fix yield different stabilizer codes on the same qubits, gauge fixing is a way to move between codes without physically relocating the encoded information. A processor can fix the gauge one way to get a code with a convenient transversal gate, apply that gate, then fix it another way to recover a code with a good decoder or better distance.
- Measuring a gauge operator projects the gauge qubit and adds a stabilizer.
- No logical information moves, only the code's definition changes.
- Different gauge fixes trade off transversality, distance, and measurement weight.
- Failed or noisy fixes are detected as unexpected syndrome changes.
This idea is the engine behind several proposals for universal fault tolerance, including switching between two color codes to obtain a transversal T gate that neither code has alone. It also connects to code deformation, which is gauge fixing applied continuously across a lattice.
The catch is that gauge fixing can temporarily lower the distance during the transition, so the schedule of measurements must be designed so that no error occurring mid-switch escapes detection. Careful ordering keeps the effective distance high throughout the operation.