# Steane code

Short description: Code for quantum correction

The Steane code is a tool in quantum error correction introduced by Andrew Steane in 1996. It is a CSS code (Calderbank-Shor-Steane), using the classical binary [7,4,3] Hamming code to correct for qubit flip errors (X errors) and the dual of the Hamming code, the [7,3,4] code, to correct for phase flip errors (Z errors). The Steane code encodes one logical qubit in 7 physical qubits and is able to correct arbitrary single qubit errors.

Its check matrix in standard form is

$\displaystyle{ \begin{bmatrix} H & 0 \\ 0 & H \end{bmatrix} }$

where H is the parity-check matrix of the Hamming code and is given by

$\displaystyle{ H = \begin{bmatrix} 1 & 0 & 0 & 1 & 0 & 1 & 1\\ 0 & 1 & 0 & 1 & 1 & 0 & 1\\ 0 & 0 & 1 & 0 & 1 & 1 & 1 \end{bmatrix}. }$

The $\displaystyle{ 7,1,3 }$ Steane code is the first in the family of quantum Hamming codes, codes with parameters $\displaystyle{ 2^r-1, 2^r-1-2r, 3 }$ for integers $\displaystyle{ r \geq 3 }$. It is also a quantum color code.

## Expression in the stabilizer formalism

In a quantum error correcting code, the codespace is the subspace of the overall Hilbert space where all logical states live. In an $\displaystyle{ n }$-qubit stabilizer code, we can describe this subspace by its Pauli stabilizing group, the set of all $\displaystyle{ n }$-qubit Pauli operators which stabilize every logical state. The stabilizer formalism allows us to define the codespace of a stabilizer code by specifying its Pauli stabilizing group. We can efficiently describe this exponentially large group by listing its generators.

Since the Steane code encodes one logical qubit in 7 physical qubits, the codespace for the Steane code is a $\displaystyle{ 2 }$-dimensional subspace of its $\displaystyle{ 2^7 }$-dimensional Hilbert space.

In the stabilizer formalism, the Steane code has 6 generators:

\displaystyle{ \begin{align} & IIIXXXX \\ & IXXIIXX \\ & XIXIXIX \\ & IIIZZZZ \\ & IZZIIZZ \\ & ZIZIZIZ. \end{align} }

Note that each of the above generators is the tensor product of 7 single-qubit Pauli operations. For instance, $\displaystyle{ IIIXXXX }$ is just shorthand for $\displaystyle{ I \otimes I \otimes I \otimes X \otimes X \otimes X \otimes X }$, that is, an identity on the first three qubits and an $\displaystyle{ X }$ gate on each of the last four qubits. The tensor products are often omitted in notation for brevity.

The logical $\displaystyle{ X }$ and $\displaystyle{ Z }$ gates are

\displaystyle{ \begin{align} X_L & = XXXXXXX \\ Z_L & = ZZZZZZZ. \end{align} }

The logical $\displaystyle{ | 0 \rangle }$ and $\displaystyle{ | 1 \rangle }$ states of the Steane code are

\displaystyle{ \begin{align} | 0 \rangle_L = & \frac{1}{\sqrt{8}} [ | 0000000 \rangle + | 1010101 \rangle + | 0110011 \rangle + | 1100110 \rangle \\ & + | 0001111 \rangle + | 1011010 \rangle + | 0111100 \rangle + | 1101001 \rangle ] \\ | 1 \rangle_L = & X_L | 0 \rangle_L. \end{align} }

Arbitrary codestates are of the form $\displaystyle{ | \psi \rangle = \alpha | 0 \rangle_L + \beta | 1 \rangle_L }$.