9

I'm sure I'm just tripping up on terminology here. I'm new to the wonderful field of QEC, and so far am familiar with the stabiliser formalism and basic codes such as the generic surface code. I keep seeing references in the [vast] literature to subsystem codes - what exactly is this referring to? What are they for / why are they useful?

This is a little opaque and references things like "gauges", which I do not understand (so a follow-up question would be, what do they mean by gauges and gauge qubits?)

glS
  • 27,510
  • 7
  • 37
  • 125

1 Answers1

15

I too find the various descriptions of subsystem codes a little more opaque than necessary.

At it's heart, a subsystem code is literally just a regular old "subspace" code with some forgetfulness. You start with your regular old subspace code and assert "I don't care about some of these logical qubits, they can vary freely". That's it, that's a subsystem code.

Take the Bacon-Shor code as an example: you have a $d \times d$ lattice of physical qubits and $2(d-1)$ independent stabilizer generators. That means you have $k=d^2 - 2(d-1)$ logical degrees of freedom. Of these logical degrees of freedom, only one has distance-$d$, and all the rest have distance-2 (at least for the usual factorization of the logical subspace).

Considered as a subspace code, the Bacon-Shor code is a $[[d^2, d^2 - 2(d-1), 2]]$ subspace code. But if I just allow all my distance-2 logical qubits to vary freely, and only consider the protection on the one distance-$d$ logical qubit, it's a $[[d^2, 1, d]]$ subsystem code.

The term "gauge qubits" refers to these distance-2 logical qubits you've decided not to worry about, and "gauges" are simply logical operators for those gauge qubits. Followup observation: since those logical qubits are distance-2, some of these gauges (by definition) are weight-2.

Edit: to follow up on your question of "but, why?" it turns out this forgetfulness is quite helpful. There is something deep about this even though it's so simple - for example, it allows you to measure a larger set of commuting stabilizers by instead measuring very small anti-commuting gauge operators. It also allows you to circumvent certain no-go theorems on code parameters under spatially local constraints. So even though it is a simple idea, it can have somewhat profound consequences.

squiggles
  • 1,200
  • 5
  • 11