Subsystem qubit stabilizer code[1] 

Also known as Gauge qubit stabilizer code.


A stabilizer code with some of its logical qubits denoted as gauge qubits and not used for storage of logical information. Note that this doesnt lead to new codes but does lead to new error correction and fault tolerance procedures. Subsystem codes are denoted by \([[n,k,r,d]]\), similar to stabilizer codes, but with an extra parameter \(r\) denoting the number of gauge qubits.

To create these codes proceed as follows. Choose \(2n\) operators \(\{ \tilde{X}_j,\tilde{Z}_j\}_{j=1}^n\) from \(\mathsf{P}_n\), the Pauli group on \(n\) qubits, such that they obey the same commutation relations as the regular \(n\)-qubit Pauli generators \( \{X_j,Z_j\}_{j=1}^n \) (the subscript on these latter operators indicates the single qubit the Pauli matrix acts on). The tilde operators might act on more than one physical (or bare) qubit but they behave as if they acted only on a single qubit. WLOG we can choose a stabilizer group as \( \mathsf{S} = \langle Z_1,\dots,Z_s \rangle \). It follows that the normalizer of \(\mathsf{S} \) is \( N(\mathsf{S}) = \langle i, \tilde{Z}_1,\dots, \tilde{Z}_n, \tilde{X}_{s+1},\dots, \tilde{X}_n \rangle \). We now choose a gauge group as \( \mathsf{G} = \langle i, \tilde{Z}_1,\dots, \tilde{Z}_s, \tilde{X}_{s+1}, \tilde{Z}_{s+1}, \dots, \tilde{X}_{s+r}, \tilde{Z}_{s+r} \rangle \) with \( s + r \leq n \). The logical group is chosen as \( \mathsf{L} = N(\mathsf{S})/\mathsf{G} \simeq \langle \tilde{X}_{s+r+1},\tilde{Z}_{s+r+1}, \dots, \tilde{X}_n,\tilde{Z}_n \rangle \). Now the codespace \( C \) is as usual the \(+1\) eigenspace of the stabilizer \( \mathsf{S} \). But the gauge and logical groups have further decomposed this space into \( C = A \otimes B \simeq (\mathbb{C}^2)^{\otimes k} \otimes (\mathbb{C}^2)^{\otimes r} \). Thus the Hilbert space is partitioned into 3 sets; \(k\) logical qubits, \(r\) gauge qubits, and \(s\) stabilizer qubits, with \(s+r+k=n\).


Detects errors on \(d-1\) qubits, corrects errors on \(\left\lfloor (d-1)/2 \right\rfloor\) qubits.

There is the following analogue of the Knill-Laflamme conditions for subsystem qubit stabilizer codes. A set of errors \( \{ E_a \} \) is correctable iff \( E_aE_b \not\in N(\mathsf{S}) \setminus \mathsf{G} \) for all pairs \(a,b\). The distance of the code is the minimal weight of operators in \( N(\mathsf{S}) \setminus \mathsf{G}\).

Entropic conditions have been formulated for random projective measurement noise [2].


A subsystem codeword can be encoded with the Clifford circuits of the stabilizer code corresponding to treating all gauge qubits as logical qubits [3].


Logical Clifford gates can be implemented fault-tolerantly for subsystem codes of distance at least three [4].

Fault Tolerance

Logical Clifford gates can be implemented fault-tolerantly for subsystem codes of distance at least three [4].

Code Capacity Threshold

For correlated Pauli noise, bounds can be obtained by mapping the effect of noise on the code to a statistical mechanical model [5].


See Ref. [6] for algorithms and lists of possible tilings of particular subsystem codes.



  • Subsystem hypergraph code
  • Subsystem CSS code — Subsystem CSS codes are subsystem stabilizer codes whose gauge groups admit a generating set of pure-\(X\) and pure-\(Z\) Pauli strings. Additionally, any \([[n,k,r,d]]_{\mathbb{Z}_q}\) subsystem stabilizer code can be mapped onto a \([[2n,2k,2r,\geq d]]_{\mathbb{Z}_q}\) subsystem CSS code, with the mapping preserving geometric locality of a code up to a constant factor [7]. Every subsystem stabilizer code can be constructed from two nested subsystem CSS codes satisfying certain constraints [7].
  • Subsystem spacetime circuit code
  • Three-fermion (3F) subsystem code



D. Poulin, “Stabilizer Formalism for Operator Quantum Error Correction”, Physical Review Letters 95, (2005) arXiv:quant-ph/0508131 DOI
D. Lee and B. Yoshida, “Randomly Monitored Quantum Codes”, (2024) arXiv:2402.00145
P. K. Sarvepalli and A. Klappenecker, “Encoding Subsystem Codes”, (2008) arXiv:0806.4954
D. Banfield and A. Kay, “Implementing Logical Operators using Code Rewiring”, (2023) arXiv:2210.14074
C. T. Chubb and S. T. Flammia, “Statistical mechanical models for quantum codes with correlated noise”, Annales de l’Institut Henri Poincaré D 8, 269 (2021) arXiv:1809.10704 DOI
G. M. Crosswhite and D. Bacon, “Automated searching for quantum subsystem codes”, Physical Review A 83, (2011) arXiv:1009.2203 DOI
M. L. Liu, N. Tantivasadakarn, and V. V. Albert, “Subsystem CSS codes, a tighter stabilizer-to-CSS mapping, and Goursat’s Lemma”, (2023) arXiv:2311.18003
S. A. Aly, A. Klappenecker, and P. K. Sarvepalli, “Subsystem Codes”, (2006) arXiv:quant-ph/0610153
N. P. Breuckmann and J. N. Eberhardt, “Balanced Product Quantum Codes”, IEEE Transactions on Information Theory 67, 6653 (2021) arXiv:2012.09271 DOI
Page edit log

Your contribution is welcome!

on (edit & pull request)— see instructions

edit on this site

Zoo Code ID: subsystem_stabilizer

Cite as:
“Subsystem qubit stabilizer code”, The Error Correction Zoo (V. V. Albert & P. Faist, eds.), 2022.
@incollection{eczoo_subsystem_stabilizer, title={Subsystem qubit stabilizer code}, booktitle={The Error Correction Zoo}, year={2022}, editor={Albert, Victor V. and Faist, Philippe}, url={} }
Share via:
Twitter | Mastodon |  | E-mail
Permanent link:

Cite as:

“Subsystem qubit stabilizer code”, The Error Correction Zoo (V. V. Albert & P. Faist, eds.), 2022.