Qubit CSS code[13] 


An \([[n,k,d]]\) stabilizer code admitting a set of stabilizer generators that are either \(Z\)-type or \(X\)-type Pauli strings. Codes can be defined from two classical codes and/or chain complexes over \(\mathbb{Z}_2\) per the qubit CSS-to-homology correspondence below.

The stabilizer generator matrix is of the form \begin{align} H=\begin{pmatrix}0 & H_{Z}\\ H_{X} & 0 \end{pmatrix} \label{eq:parity} \tag*{(1)}\end{align} such that the rows of the two blocks must be orthogonal \begin{align} H_X H_Z^T=0~. \label{eq:comm} \tag*{(2)}\end{align} The above condition guarantees that the \(X\)-stabilizer generators, defined in the symplectic representation as rows of \(H_X\), commute with the \(Z\)-stabilizer generators associated with \(H_Z\).

Encoding is based on two related binary linear codes, an \([n,k_X,d_X]\) code \(C_X\) and \([n,k_Z,d_Z]\) code \(C_Z\), satisfying \(C_X^\perp \subseteq C_Z\). The resulting CSS code has \(k=k_X+k_Z-n\) logical qubits and distance \(d\geq\min\{d_X,d_Z\}\). The \(H_X\) (\(H_Z\)) block of \(H\) (1) is the parity-check matrix of the code \(C_X\) (\(C_Z\)). The requirement \(C_X^\perp \subseteq C_Z\) guarantees (2) and also implies \(C_Z^\perp \subseteq C_X \). Basis states for the code are, for \(\gamma \in C_X\), \begin{align} |\gamma + C_Z^\perp \rangle = \frac{1}{\sqrt{|C_Z^\perp|}} \sum_{\eta \in C_Z^\perp} |\gamma + \eta\rangle. \tag*{(3)}\end{align}

A CSS code has stabilizer weight \(w\) if the highest weight of any stabilizer generator is \(w\), i.e., any row of \(H_X\) and \(H_Z\) has weight at most \(w\). In the context of comparing weight as well as of determining distances for noise models biased toward \(X\)- or \(Z\)-type errors, an extended notation for asymmetric CSS codes is \([[n,k,(d_X,d_Z),w]]\) or \([[n,k,d_X/d_Z,w]]\). The quantity \(\min\{d_X,d_Z\}\) is often called the worst-case minimum distance and is often less than the actual code distance due to degeneracy [4].

To find the minimum distance of degenerate CSS code, we have to first remove the codewords of the smaller codes as those codewords correspond to stabilizer generators instead of logical operators. Thus the general formulae for the minimum distances \(d, d_Z, d_X\) for an \([[n,k,d]]\) or \([[n,k,(d_X,dZ)]]\) \(CSS(C_X, C_Z)\) code are: \begin{align} d_{X}&=\min\{ w_H(c) | c \in C_X \setminus C_Z^\perp \} \tag*{(4)}\\ d_{Z}&=\min\{ w_H(c) | c \in C_Z \setminus C_X^\perp \} \tag*{(5)}\\ d&=\min\{d_X,d_Z\}~, \tag*{(6)}\end{align} where \(w_H\) is the Hamming weight of a codeword.

CSS-to-homology correspondence

Qubit CSS-to-homology correspondence: CSS codes and their properties can be formulated in terms of homology theory, yielding a powerful correspondence between codes and chain complexes, the primary homological structures. There exists a many-to-one mapping from size three chain complexes to CSS codes [58] that allows one to extract code properties from topological features of the complexes. Codes constructed in this manner are sometimes called homological CSS codes, but they are equivalent to CSS codes. This mapping of codes to manifolds allows the application of structures from topology to error correction, yielding various QLDPC codes with favorable properties.

A chain complex of size three is given by binary vector spaces \(A_2\), \(A_1\), \(A_0\) and binary matrices \(\partial_{i=1,2}\) (called boundary operators) \(A_i\) to \(A_{i-1}\) that satisfy \(\partial_1 \partial_2 = 0\). Such a complex is typically denoted as \begin{align} A_2 \xrightarrow{\partial_2} A_1 \xrightarrow{\partial_1} A_0~. \label{eq:chain} \tag*{(7)}\end{align} One constructs a CSS code by associating a physical qubit to every basis element of \(A_1\), and defining parity-check matrices \(H_X=\partial_1\) and \(H_Z=\partial_2^T\)). That way, the spaces \(A_0\) and \(A_2\) can be associated with \(X\)-type and \(Z\)-type Pauli operators, respectively, and boundary operators determine the Paulis making up the stabilizer generators. The requirement \(\partial_1 \partial_2 = 0\) guarantees that the \(X\)-stabilizer generators associated with \(H_X\) commute with the \(Z\)-stabilizer generators associated with \(H_Z\).

Usually, the chain complex (7) used in the construction comes from the chain complex associated with a cellulation of a manifold. When the manifold is a two-dimensional surface, its entire chain is used. Higher-dimensional manifolds allow for longer chain complexes, and one can use the three largest non-trivial vector spaces in its chain.


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

Using the relation to chain complexes, the number of encoded logical qubits is equal to the dimension of the first \(\mathbb{Z}_2\)-homology of the chain complex, \(H_1(\partial, \mathbb{Z}_2) = \frac{\text{Ker}(\partial_1)}{\text{Im}(\partial_2)}\).

The distance of the CSS code is equal to the minimum of the combinatorial (\(d-1\))-systole of the cellulated \(d\)-dimensional manifold and its dual.


For a depolarizing channel with probability \(p\), CSS codes allowing for arbitrarily accurate recovery exist with asymptotic rate \(1-2h(p)\), where \(h\) is the binary entropy function [9].


Stabilizer measurement [10].Clusterization, i.e., measurement of a particular cluster state [11].

Transversal Gates

All CSS codes admit transversal Pauli and CNOT gates. Self-dual CSS codes admit a transversal Hadamard, completing the Clifford group. A CSS code is doubly-even (triply-even) if all \(X\)-type stabilizer generators have weight divisible by two (three); such codes yield a transversal \(S\) (\(T\)) gate [12].


LDPC CSS code symmetries called \(XZ\)-dualities allow for fold-transversal gates, i.e., transversal gates followed by qubit permutations [13].Generalized lattice surgery [14].


Coherent decoders allow for measurement-free error correction [15]. One method is table/multi-control decoding [16], which scales exponentially with the number of ancillas used in syndrome measurement. Another method, the Ising-based decoder, utilizes the mapping of the effect of the noise to a statistical mechanical model [9,17] such that the decoding problem maps to preparation of the ground state of an Ising model.Decoders based on neural networks [18].

Fault Tolerance

Steane error correction [19].Homomorphic gadgets fault-tolerant measurement unify Steane and Shor error correction [20].Parallel syndrome extraction for distance-three codes can be done fault-tolerantly using one flag qubit [21].

Code Capacity Threshold

Bounds on code capacity thresholds for various noise models exist in terms of stabilizer generator weights [22,23].


Fully homomorphic encryption [24].Entanglement purification protocols related to quantum key distribution (QKD) [25].Cryptographic applications stemming from the monogamy of entanglement of CSS code and error words [26].


See Refs. [4,2729] for simple examples.Introduction to Qubit CSS-to-homology correspondence by M. Hastings.Using linear programming to solve a set of equations and inequalities on weight distribution of a classical self-orthogonal code \(C=(n, 2^n-k)\) and its dual, one can find a \(C\) such that the \([[n,k,d]]\) CSS code constructed using \(C\) and its dual would have rate and distance close to the Singleton bound [30].


  • Qubit stabilizer code — Stabilizer generators can be expressed as either only \(X\)-type or only \(Z\)-type. However, any \([[n,k,d]]\) stabilizer code can be mapped onto a \([[4n,2k,2d]]\) self-orthogonal CSS code, with the mapping preserving geometric locality of a code up to a constant factor [31].
  • Movassagh-Ouyang Hamiltonian code — Movassagh-Ouyang codes stem from a prescription that converts an arbitrary classical code into a quantum code.
  • Modular-qudit CSS code — Modular-qudit CSS codes for \(q=2\) are (qubit) CSS codes.
  • Galois-qudit CSS code — Galois-qudit CSS codes for \(q=2\) are (qubit) CSS codes.



  • Linear binary code — Construction uses two related binary linear codes \(C_X\) and \(C_Z\).
  • Dual linear code — CSS codes for which \(C_X=C_Z \equiv C\) are called self-orthogonal since \(C^{\perp} \subseteq C\). The stabilizer group of such codes is invariant under the Hadamard gate exchanging \(X\) and \(Z\).
  • Alternant code — Alternant codes used in the CSS construction yield quantum codes that asymptotically achieve the quantum Gilbert-Varshamov bound [32].
  • Random quantum code — Random CSS codes asymptotically achieve linear distance with high probability, achieving the quantum Gilbert-Varshamov bound [1].
  • Algebraic-geometry (AG) code — Algebraic geometry codes can be plugged into the CSS construction to yield asymptotically good quantum codes [33].
  • Quantum spherical code (QSC) — CSS codes concatenated with two-component cat codes form QSCs which have a weight-based notion of distance.
  • Quantum locally testable code (QLTC) — A qubit CSS code defined by \(H_{Z}\) and \(H_{X}\) is glocally testable with some soundness iff the constituent codes \(\ker H_{Z}\) and \(\ker H_{X}\) are locally testable with the same soundness [34; Fact 17].
  • Majorana stabilizer code — When constructing a Majorana stabilizer code from a self-orthogonal classical code with an odd number of bits and generator matrix \(G\), a more complex procedure must be applied to ensure that the fermion code has an even number of Majorana zero modes, and thus a physical Hilbert space [31,35]. Rather than taking \(G\) to be the stabilizer matrix as in the even case, we take \(G\oplus G\). This is a concatenation of classical codes as in the CSS construction and it yields a mapping \([2N-1,k,d]\rightarrow [[2N-1,2N-1-k,d^\perp]]_f\). This procedure may be further generalized by concatenating two different self-orthogonal classical codes with an odd number of bits, as is often done in the CSS construction.
  • Cluster-state code — A resource cluster state can be constructed out of any qubit CSS code via foliation. Conversely, CSS codes can be constructed out of cluster states [11].
  • XP stabilizer code — Each XP-regular code can be mapped to a CSS code with a similar logical operator structure [36].
  • EA qubit stabilizer code — As opposed to CSS codes, EA qubit stabilizer codes can be constructed from any linear binary code.
  • Qubit BCH code — Some qubit BCH codes are CSS.


A. R. Calderbank and P. W. Shor, “Good quantum error-correcting codes exist”, Physical Review A 54, 1098 (1996) arXiv:quant-ph/9512032 DOI
A. M. Steane, “Error Correcting Codes in Quantum Theory”, Physical Review Letters 77, 793 (1996) DOI
“Multiple-particle interference and quantum error correction”, Proceedings of the Royal Society of London. Series A: Mathematical, Physical and Engineering Sciences 452, 2551 (1996) arXiv:quant-ph/9601029 DOI
D. Gottesman. Surviving as a quantum computer in a classical world
A. Y. Kitaev, “Quantum computations: algorithms and error correction”, Russian Mathematical Surveys 52, 1191 (1997) DOI
H. Bombin and M. A. Martin-Delgado, “Homological error correction: Classical and quantum codes”, Journal of Mathematical Physics 48, 052105 (2007) arXiv:quant-ph/0605094 DOI
S. Bravyi and M. B. Hastings, “Homological Product Codes”, (2013) arXiv:1311.0885
N. P. Breuckmann, “PhD thesis: Homological Quantum Codes Beyond the Toric Code”, (2018) arXiv:1802.01520
E. Dennis et al., “Topological quantum memory”, Journal of Mathematical Physics 43, 4452 (2002) arXiv:quant-ph/0110143 DOI
J. Łodyga et al., “Simple scheme for encoding and decoding a qubit in unknown state for various topological codes”, Scientific Reports 5, (2015) arXiv:1404.2495 DOI
A. Bolt et al., “Foliated Quantum Error-Correcting Codes”, Physical Review Letters 117, (2016) arXiv:1607.02579 DOI
S. Bravyi and A. Cross, “Doubled Color Codes”, (2015) arXiv:1509.03239
N. P. Breuckmann and S. Burton, “Fold-Transversal Clifford Gates for Quantum Codes”, (2022) arXiv:2202.06647
A. Cowtan and S. Burton, “CSS code surgery as a universal construction”, (2023) arXiv:2301.13738
T. Inada et al., “Measurement-Free Ultrafast Quantum Error Correction by Using Multi-Controlled Gates in Higher-Dimensional State Space”, (2021) arXiv:2109.00086
G. A. Paz-Silva, G. K. Brennen, and J. Twamley, “Fault Tolerance with Noisy and Slow Measurements and Preparation”, Physical Review Letters 105, (2010) arXiv:1002.1536 DOI
A. T. Schmitz, “Thermal Stability of Dynamical Phase Transitions in Higher Dimensional Stabilizer Codes”, (2020) arXiv:2002.11733
Y. Choukroun and L. Wolf, “Deep Quantum Error Correction”, (2023) arXiv:2301.11930
A. M. Steane, “Active Stabilization, Quantum Computation, and Quantum State Synthesis”, Physical Review Letters 78, 2252 (1997) arXiv:quant-ph/9611027 DOI
S. Huang, T. Jochym-O’Connor, and T. J. Yoder, “Homomorphic Logical Measurements”, (2022) arXiv:2211.03625
P.-H. Liou and C.-Y. Lai, “Parallel syndrome extraction with shared flag qubits for Calderbank-Shor-Steane codes of distance three”, Physical Review A 107, (2023) arXiv:2208.00581 DOI
A. A. Kovalev and L. P. Pryadko, “Fault tolerance of quantum low-density parity check codes with sublinear distance scaling”, Physical Review A 87, (2013) arXiv:1208.2317 DOI
I. Dumer, A. A. Kovalev, and L. P. Pryadko, “Thresholds for Correcting Errors, Erasures, and Faulty Syndrome Measurements in Degenerate Quantum Codes”, Physical Review Letters 115, (2015) arXiv:1412.6172 DOI
G. Alagic et al., “Quantum Fully Homomorphic Encryption with Verification”, Advances in Cryptology – ASIACRYPT 2017 438 (2017) arXiv:1708.09156 DOI
P. W. Shor and J. Preskill, “Simple Proof of Security of the BB84 Quantum Key Distribution Protocol”, Physical Review Letters 85, 441 (2000) arXiv:quant-ph/0003004 DOI
A. Coladangelo et al., “Hidden Cosets and Applications to Unclonable Cryptography”, (2022) arXiv:2107.05692
A. M. Steane, “Simple quantum error-correcting codes”, Physical Review A 54, 4741 (1996) arXiv:quant-ph/9605021 DOI
M. A. Nielsen and I. L. Chuang, Quantum Computation and Quantum Information (Cambridge University Press, 2012) DOI
J. Preskill. Lecture notes on Quantum Computation. (1997–2020) URL
A. R. Calderbank et al., “Quantum Error Correction via Codes over GF(4)”, (1997) arXiv:quant-ph/9608006
S. Bravyi, B. M. Terhal, and B. Leemhuis, “Majorana fermion codes”, New Journal of Physics 12, 083039 (2010) arXiv:1004.3791 DOI
J. Fan et al., “Partially Concatenated Calderbank-Shor-Steane Codes Achieving the Quantum Gilbert-Varshamov Bound Asymptotically”, IEEE Transactions on Information Theory 1 (2022) DOI
A. Ashikhmin, S. Litsyn, and M. Tsfasman, “Asymptotically good quantum codes”, Physical Review A 63, (2001) arXiv:quant-ph/0006061 DOI
L. Eldar and A. W. Harrow, “Local Hamiltonians Whose Ground States Are Hard to Approximate”, 2017 IEEE 58th Annual Symposium on Foundations of Computer Science (FOCS) (2017) arXiv:1510.02082 DOI
S. Vijay and L. Fu, “Quantum Error Correction for Complex and Majorana Fermion Qubits”, (2017) arXiv:1703.00459
M. A. Webster, B. J. Brown, and S. D. Bartlett, “The XP Stabiliser Formalism: a Generalisation of the Pauli Stabiliser Formalism with Arbitrary Phases”, Quantum 6, 815 (2022) arXiv:2203.00103 DOI
Page edit log

Your contribution is welcome!

on github.com (edit & pull request)

edit on this site

Zoo Code ID: qubit_css

Cite as:
“Qubit CSS code”, The Error Correction Zoo (V. V. Albert & P. Faist, eds.), 2023. https://errorcorrectionzoo.org/c/qubit_css
@incollection{eczoo_qubit_css, title={Qubit CSS code}, booktitle={The Error Correction Zoo}, year={2023}, editor={Albert, Victor V. and Faist, Philippe}, url={https://errorcorrectionzoo.org/c/qubit_css} }
Share via:
Twitter | Mastodon |  | E-mail
Permanent link:

Cite as:

“Qubit CSS code”, The Error Correction Zoo (V. V. Albert & P. Faist, eds.), 2023. https://errorcorrectionzoo.org/c/qubit_css

Github: https://github.com/errorcorrectionzoo/eczoo_data/tree/main/codes/quantum/qubits/stabilizer/qubit_css.yml.