Skip to content

Steane Code

The Steane code encodes one logical qubit into seven physical qubits and exactly corrects an arbitrary error on any one of them. Its defining idea is unusually economical: the same three parity-check supports from the classical binary Hamming code diagnose both bit-flip and phase-flip components. In modern notation the result is a weakly self-dual CSS stabilizer code with parameters [[7,1,3]][[7,1,3]].

That compact description hides several distinctions that matter in practice. The classical [7,4,3][7,4,3] Hamming code is not equal to its [7,3,4][7,3,4] dual; the dual is contained in it. The quantum code is nondegenerate for its one-qubit correctable Pauli basis, yet it is not a perfect quantum code. Bitwise Hadamard, a convention-sensitive bitwise phase gate, and bitwise CNOT between blocks implement logical Clifford operations, but those operations neither form a universal gate set nor supply a complete fault-tolerant protocol.

This page fixes one binary, tensor, syndrome, and recovery convention and then carries every claim through that convention. The codewords, six checks, logical representatives, twenty-two occupied one-error syndromes, Knill–Laflamme matrix, full-Pauli distance, transversal Clifford action, and a finite depolarizing calculation can therefore be checked against one another rather than accepted as disconnected facts. The construction follows Steane’s original Hamming-based presentation in his 1996 Physical Review Letters article and its fuller Royal Society development, while the stabilizer and fault-tolerant language follows Gottesman’s later systematic treatment.

Required background. Stabilizer Formalism supplies stabilizer groups, binary Pauli vectors, projectors, normalizers, logical cosets, syndrome algebra, and full-Pauli distance.

Number the physical qubits from one through seven and read every binary or Pauli string from qubit one on the left to qubit seven on the right. All binary arithmetic is over F2\mathbb F_2. Freeze the three-by-seven matrix

H=(000111101100111010101).H= \begin{pmatrix} 0&0&0&1&1&1&1\\ 0&1&1&0&0&1&1\\ 1&0&1&0&1&0&1 \end{pmatrix}.

Its ordered rows are

r1=0001111,r2=0110011,r3=1010101.r_1=0001111, \qquad r_2=0110011, \qquad r_3=1010101.

The ordered columns are the seven nonzero three-bit words,

h1=001,h2=010,h3=011,h4=100,h5=101,h6=110,h7=111.h_1=001,\quad h_2=010,\quad h_3=011,\quad h_4=100,\quad h_5=101,\quad h_6=110,\quad h_7=111.

This ordering is more than typography. It makes a Hamming syndrome directly identify a qubit: if hjh_j is observed, the indexed location is jj. Row operations or a permutation of columns would describe an equivalent code, but they would change the printed stabilizers and the lookup table. Every syndrome below therefore uses this matrix without an implicit reordering.

For a binary word v=(v1,…,v7)v=(v_1,\ldots,v_7), write

X(v)=⨂j=17Xjvj,Z(v)=⨂j=17Zjvj.X(v)=\bigotimes_{j=1}^{7}X_j^{v_j}, \qquad Z(v)=\bigotimes_{j=1}^{7}Z_j^{v_j}.

The tensor identity on an omitted position is understood. Pauli phases are retained when an operator acts on a state, although binary vectors suffice for support and commutation calculations. A measured syndrome bit is zero for commutation and one for anticommutation, so it is also zero for a +1+1 check outcome and one for a −1-1 outcome.

Define the classical code and its dual check code by

C=ker⁡H,C⊥=row⁡(H).C=\ker H, \qquad C^\perp=\operatorname{row}(H).

The rows of HH are independent, so dim⁡C=7−3=4\dim C=7-3=4 and dim⁡C⊥=3\dim C^\perp=3. Each row has weight four, and any two distinct rows overlap on exactly two positions. Consequently

HHT=0,C⊥⊂C.HH^T=0, \qquad C^\perp\subset C.

The inclusion, rather than equality, is the classical statement needed for the quantum construction. Calling the [7,4,3][7,4,3] Hamming code literally self-dual would be false because a binary self-dual length-seven code could not have integer dimension 7/27/2. The useful symmetry is that its dual is self-orthogonal and can be used for both kinds of quantum check.

The seven columns of HH are nonzero and distinct. A weight-one word cannot lie in CC because its syndrome is one nonzero column. A weight-two word cannot lie in CC because the sum of two distinct columns is nonzero. On the other hand,

h1+h2+h3=001+010+011=000,h_1+h_2+h_3=001+010+011=000,

so 1110000∈C1110000\in C. Thus CC is the [7,4,3][7,4,3] Hamming code. Its dual is the [7,3,4][7,3,4] simplex code generated by the rows above. Their support-weight enumerators are

WC(z)=1+7z3+7z4+z7,WC⊥(z)=1+7z4.W_C(z)=1+7z^3+7z^4+z^7, \qquad W_{C^\perp}(z)=1+7z^4.

The second identity can also be seen geometrically: every nonzero linear combination of the three rows selects four of the seven nonzero points of F23\mathbb F_2^3. Steane’s detailed 1996 Royal Society paper uses precisely this simplex generator and then takes its complement coset to carry the second logical value. Calderbank and Shor’s independent code construction places the same inclusion in the general classical-to-quantum framework.

Let 1=1111111\mathbf 1=1111111. The two cosets used for the logical basis are C⊥C^\perp and 1+C⊥\mathbf1+C^\perp. With all amplitudes real and positive,

∣0‾⟩=18(∣0000000⟩+∣0001111⟩+∣0110011⟩+∣0111100⟩+∣1010101⟩+∣1011010⟩+∣1100110⟩+∣1101001⟩),\begin{aligned} |\overline0\rangle=\frac{1}{\sqrt8}\big(& |0000000\rangle+|0001111\rangle+|0110011\rangle+|0111100\rangle\\ &+|1010101\rangle+|1011010\rangle+|1100110\rangle +|1101001\rangle\big), \end{aligned}

and

∣1‾⟩=18(∣1111111⟩+∣1110000⟩+∣1001100⟩+∣1000011⟩+∣0101010⟩+∣0100101⟩+∣0011001⟩+∣0010110⟩).\begin{aligned} |\overline1\rangle=\frac{1}{\sqrt8}\big(& |1111111\rangle+|1110000\rangle+|1001100\rangle+|1000011\rangle\\ &+|0101010\rangle+|0100101\rangle+|0011001\rangle +|0010110\rangle\big). \end{aligned}

The eight strings in the first state are exactly the words of C⊥C^\perp. The eight in the second are their bitwise complements. The cosets are disjoint, so the two states are orthogonal; each contains eight orthogonal computational-basis vectors with amplitude 1/81/\sqrt8, so both are normalized. Their span carries a general logical state

∣ψ‾⟩=α∣0‾⟩+β∣1‾⟩,∣α∣2+∣β∣2=1.|\overline\psi\rangle =\alpha|\overline0\rangle+\beta|\overline1\rangle, \qquad |\alpha|^2+|\beta|^2=1.

Every word of C⊥C^\perp has even weight, either zero or four. Every word of 1+C⊥\mathbf1+C^\perp has odd weight, either seven or three. This parity separation will make Z⊗7Z^{\otimes7} a logical ZZ and will also fix the direction of the transversal phase gate. The amplitudes α\alpha and β\beta remain unknown quantum data; none of the parity checks below is permitted to distinguish them.

The complete frozen record is:

FieldFrozen value
Physical qubitsSeven, ordered 1,…,71,\ldots,7
Logical qubitsOne
Full Pauli distanced=3d=3
Classical codeC=ker⁡HC=\ker H, the binary [7,4,3][7,4,3] Hamming code
Dual check codeC⊥=row⁡(H)C^\perp=\operatorname{row}(H), the binary [7,3,4][7,3,4] simplex code
Parity-check matrixRows 00011110001111, 01100110110011, 10101011010101, in that order
Six stabilizer generatorsgaZ=Z(ra)g^Z_a=Z(r_a) followed by gaX=X(ra)g^X_a=X(r_a) for a=1,2,3a=1,2,3
Code projectorP=2−6∏a=13(I+gaZ)(I+gaX)P=2^{-6}\prod_{a=1}^{3}(I+g^Z_a)(I+g^X_a)
Logical basisUniform normalized states on C⊥C^\perp and 1+C⊥\mathbf1+C^\perp
Convenient logical XX‾=X⊗7\overline X=X^{\otimes7}
Convenient logical ZZ‾=Z⊗7\overline Z=Z^{\otimes7}
Structural status[[7,1,3]][[7,1,3]], Hamming-derived, weakly self-dual CSS, pure and nondegenerate, but not quantum perfect

For a binary word r=(r1,…,r7)r=(r_1,\ldots,r_7), write

X(r)=⨂j=17Xjrj,Z(r)=⨂j=17Zjrj.X(r)=\bigotimes_{j=1}^7X_j^{r_j}, \qquad Z(r)=\bigotimes_{j=1}^7Z_j^{r_j}.

Applying this notation to the three rows of HH, and freezing the Z-type checks before the X-type checks, gives

g1=IIIZZZZ,g2=IZZIIZZ,g3=ZIZIZIZ,g4=IIIXXXX,g5=IXXIIXX,g6=XIXIXIX.\begin{aligned} g_1&=IIIZZZZ,& g_2&=IZZIIZZ,& g_3&=ZIZIZIZ,\\ g_4&=IIIXXXX,& g_5&=IXXIIXX,& g_6&=XIXIXIX. \end{aligned}

These are positive-signed generators. Checks within one Pauli sector commute automatically. A Z check Z(ra)Z(r_a) and an X check X(rb)X(r_b) acquire the commutation sign (−1)ra⋅rb(-1)^{r_a\cdot r_b}. Since HHT=0HH^{\mathsf T}=0, every such overlap is even, including a row with itself, and all six generators commute. The three rows are independent. Moreover, no nonidentity product of only Z-type generators can equal a product of only X-type generators. The six binary symplectic generator rows therefore have rank six.

The same support matrix appears twice, so it is accurate to write HX=HZ=HH_X=H_Z=H. This property is often called weak self-duality. It must not be confused with equality of the underlying classical codes: dim⁡C=4\dim C=4, whereas dim⁡C⊥=3\dim C^\perp=3, so C≠C⊥C\ne C^\perp. The actual condition that makes the two check sectors compatible is C⊥⊂CC^\perp\subset C.

Identical X- and Z-check supports of the Steane code

Support schematic for the Steane [[7,1,3]][[7,1,3]] code in the frozen Hamming convention. The three upper ZZ-check rows and three lower XX-check rows use the same parity-check matrix, HX=HZ=HH_X=H_Z=H. Lines indicate stabilizer support only; they are not ancilla circuits, extraction schedules, or fault-tolerance certificates.

The figure records algebraic support, not a method for measuring it. Simultaneous commutation does not by itself specify ancilla preparation, coupling order, verification, repeated rounds, or which faults can propagate. Those physical obligations have to be added when the abstract code is used in a fault-tolerant protocol.

Let S=⟨g1,…,g6⟩\mathcal S=\langle g_1,\ldots,g_6\rangle. Independence gives ∣S∣=26=64|\mathcal S|=2^6=64, and the absence of −I-I follows because the displayed logical basis is a common +1+1 eigenspace. The projector onto that eigenspace can be written in either generator or group-average form:

P=164∏a=16(I+ga)=164∑s∈Ss.P=\frac1{64}\prod_{a=1}^{6}(I+g_a) =\frac1{64}\sum_{s\in\mathcal S}s.

Each factor (I+ga)/2(I+g_a)/2 is a commuting Hermitian projector, so P2=P=P†P^2=P=P^\dagger. Every nonidentity Pauli has zero trace. Only the identity term in the group average contributes, and consequently

tr⁡P=2764=2.\operatorname{tr}P=\frac{2^7}{64}=2.

Thus the common eigenspace has dimension two and encodes one qubit. The logical coset states are fixed by every generator. An X check translates the summation variable by a row of HH, merely permuting C⊥C^\perp within either coset. A Z check supplies phase (−1)r⋅u(-1)^{r\cdot u}; this is +1+1 for u∈C⊥u\in C^\perp because the rows are mutually orthogonal. It is also +1+1 on the complement coset because every row has even weight. Hence P∣b‾⟩=∣b‾⟩P|\overline b\rangle=|\overline b\rangle for b=0,1b=0,1, and the two orthonormal states exhaust the range of PP.

It is useful to audit the whole stabilizer rather than only its six generators. Its support-weight enumerator is

AS(z)=∑s∈Szwt⁡(s)=1+21z4+42z6.A_{\mathcal S}(z)=\sum_{s\in\mathcal S}z^{\operatorname{wt}(s)} =1+21z^4+42z^6.

The seven nonidentity pure-X elements and seven nonidentity pure-Z elements all have weight four. Of the forty-nine products X(u)Z(v)X(u)Z(v) with nonzero u,v∈C⊥u,v\in C^\perp, seven have equal supports and become weight-four Y operators; the remaining forty-two have Pauli weight six. In particular, no nonidentity stabilizer has weight below four. This is the purity fact that will independently confirm nondegenerate correction of all one-qubit Paulis.

Logical Pauli representatives and equivalences

Section titled “Logical Pauli representatives and equivalences”

Choose

X‾=X⊗7,Z‾=Z⊗7,Y‾=iX‾Z‾.\overline X=X^{\otimes7}, \qquad \overline Z=Z^{\otimes7}, \qquad \overline Y=i\overline X\overline Z.

Both X‾\overline X and Z‾\overline Z commute with every stabilizer: each check has even weight. Neither belongs to S\mathcal S. Bitwise X takes every word to its complement, while the parity observation made above gives

X‾∣0‾⟩=∣1‾⟩,X‾∣1‾⟩=∣0‾⟩,Z‾∣0‾⟩=∣0‾⟩,Z‾∣1‾⟩=−∣1‾⟩.\begin{aligned} \overline X|\overline0\rangle&=|\overline1\rangle,& \overline X|\overline1\rangle&=|\overline0\rangle,\\ \overline Z|\overline0\rangle&=|\overline0\rangle,& \overline Z|\overline1\rangle&=-|\overline1\rangle. \end{aligned}

They anticommute because their seven supports overlap an odd number of times, so these actions are the usual logical Pauli actions. The definition of Y‾\overline Y then fixes the phase convention, for example Y‾∣0‾⟩=i∣1‾⟩\overline Y|\overline0\rangle=i|\overline1\rangle.

A logical operator is a stabilizer coset, not a unique physical string. Multiplying by a stabilizer changes no action on the code space. In the present convention,

X‾g4=X1X2X3,Z‾g1=Z1Z2Z3.\overline Xg_4=X_1X_2X_3, \qquad \overline Zg_1=Z_1Z_2Z_3.

Therefore X‾∼X1X2X3\overline X\sim X_1X_2X_3 and Z‾∼Z1Z2Z3\overline Z\sim Z_1Z_2Z_3, where ∼\sim means equality up to a stabilizer on encoded states. These weight-three representatives will be both upper bounds on distance and explicit residual logical faults in the alias examples below.

Twenty-Two Occupied One-Error Syndromes and Ideal Recovery

Section titled “Twenty-Two Occupied One-Error Syndromes and Ideal Recovery”

For a Pauli EE, define sa(E)=0s_a(E)=0 if EE commutes with gag_a and sa(E)=1s_a(E)=1 if it anticommutes. Store the bits in the generator order already declared:

s(E)=(s1s2s3∣s4s5s6),s(E)=(s_1s_2s_3\mid s_4s_5s_6),

with the three Z-check bits before the three X-check bits. If hjh_j is column jj of HH, a bit flip at site jj anticommutes with precisely the Z checks containing that site, and a phase flip anticommutes with the corresponding X checks. Consequently,

s(Xj)=(hj∣000),s(Zj)=(000∣hj),s(Yj)=(hj∣hj).s(X_j)=(h_j\mid000),\qquad s(Z_j)=(000\mid h_j),\qquad s(Y_j)=(h_j\mid h_j).

Syndromes add modulo two under Pauli multiplication. This convention removes two common ambiguities at once: it specifies which three-bit half is written first, and it assigns each nonzero binary column to one physical site. A different row order or qubit permutation describes an equivalent code, but its ledger is not the ledger below.

The identity and all twenty-one nonidentity one-qubit Paulis occupy distinct syndrome sectors:

ErrorHamming columnSix-bit syndromeChosen phase-free correction
II000000000∣000000\mid000II
X1X_1001001001∣000001\mid000X1X_1
X2X_2010010010∣000010\mid000X2X_2
X3X_3011011011∣000011\mid000X3X_3
X4X_4100100100∣000100\mid000X4X_4
X5X_5101101101∣000101\mid000X5X_5
X6X_6110110110∣000110\mid000X6X_6
X7X_7111111111∣000111\mid000X7X_7
Z1Z_1001001000∣001000\mid001Z1Z_1
Z2Z_2010010000∣010000\mid010Z2Z_2
Z3Z_3011011000∣011000\mid011Z3Z_3
Z4Z_4100100000∣100000\mid100Z4Z_4
Z5Z_5101101000∣101000\mid101Z5Z_5
Z6Z_6110110000∣110000\mid110Z6Z_6
Z7Z_7111111000∣111000\mid111Z7Z_7
Y1Y_1001001001∣001001\mid001Y1Y_1
Y2Y_2010010010∣010010\mid010Y2Y_2
Y3Y_3011011011∣011011\mid011Y3Y_3
Y4Y_4100100100∣100100\mid100Y4Y_4
Y5Y_5101101101∣101101\mid101Y5Y_5
Y6Y_6110110110∣110110\mid110Y6Y_6
Y7Y_7111111111∣111111\mid111Y7Y_7

Distinctness is immediate from the seven nonzero columns. Pure X errors have a nonzero first half and zero second half; pure Z errors have the reverse; Y errors have two equal nonzero halves. Counting the identity gives twenty-two occupied sectors out of the available 26=642^6=64.

Separated lookup recovery and Pauli frames

Section titled “Separated lookup recovery and Pauli frames”

The six-bit record also defines a finite decoder outside the one-error promise. Let j(000)j(000) denote no site and let j(hi)=ij(h_i)=i. For any a,b∈F23a,b\in\mathbb F_2^3, choose the phase-free recovery

R(a∣b)=Xj(a)Zj(b),R(a\mid b)=X_{j(a)}Z_{j(b)},

omitting a factor when its half is zero and ignoring global phase. If a=b≠000a=b\ne000, this representative is recorded as Yj(a)Y_{j(a)}. On the twenty-two promised sectors it reduces exactly to the final column of the ledger. On a general syndrome, however, it may place an X and a Z on different sites. Calling the rule “separated” means that the two Hamming halves are decoded independently; it does not mean the underlying physical noise is independent.

An ideal recovery can either apply R(s)R(s) to the data or update a Pauli frame. Frame tracking avoids an immediate physical pulse, but the equivalence is conditional: subsequent ideal Clifford operations must propagate the frame correctly, later measurements must reinterpret their outcomes, and no non-Clifford or hardware-level effect may be silently ignored. The Syndrome Measurement page owns the physical instruments that produce a record. This page assumes that the six stabilizer eigenvalues are reported perfectly and once.

Let

E1={I,Xj,Yj,Zj:j=1,…,7}.\mathcal E_1=\{I,X_j,Y_j,Z_j:j=1,\ldots,7\}.

For distinct Ea,Eb∈E1E_a,E_b\in\mathcal E_1, the product Ea†EbE_a^\dagger E_b has nonzero syndrome. Indeed, equal syndromes would imply s(Ea)=s(Eb)s(E_a)=s(E_b), contradicting the ledger. A Pauli with nonzero syndrome maps the code space to an orthogonal stabilizer eigenspace, so

PEa†EbP=0(a≠b).PE_a^\dagger E_bP=0\quad(a\ne b).

For a=ba=b, the Pauli phases cancel and the expression is PP. Hence this fixed basis obeys the exact Knill–Laflamme relation

PEa†EbP=δabP.PE_a^\dagger E_bP=\delta_{ab}P.

The coefficient matrix is therefore I22I_{22}, of rank twenty-two. This is nondegenerate correctability: the twenty-two error images of the two-dimensional code space are mutually orthogonal. Knill and Laflamme’s general theorem says that this operator identity, rather than a classical story about identifying a hidden error, is the necessary and sufficient condition for exact reversal on the selected error span. The page Why Quantum Error Correction Is Possible develops that general theorem and its assumptions.

Represent a phase-free Pauli by binary vectors

E(x,z)=X(x)Z(z),x,z∈F27.E(x,z)=X(x)Z(z),\qquad x,z\in\mathbb F_2^7.

Commutation with every Z-type generator requires HxT=0Hx^{\mathsf T}=0; commutation with every X-type generator requires HzT=0Hz^{\mathsf T}=0. Thus every Pauli in the normalizer has x,z∈Cx,z\in C. If its Pauli support had weight one or two, each nonzero one of x,zx,z would have Hamming weight at most two. The distance-three property of CC forces both vectors to be zero. There is therefore no nonidentity normalizer Pauli of weight below three.

The operators X1X2X3X_1X_2X_3 and Z1Z2Z3Z_1Z_2Z_3 are weight-three normalizer elements and were shown above to act as nontrivial logical Paulis. They are not stabilizers, so the lower bound is attained:

d=min⁡E∈N(S)∖Swt⁡(E)=3.d=\min_{E\in N(\mathcal S)\setminus\mathcal S}\operatorname{wt}(E)=3.

This proof treats arbitrary mixtures of X, Y, and Z support, rather than proving only separate classical bit- and phase-distance statements. It also separates two notions. Distance three says that all Pauli errors through weight one are correctable and all Pauli errors through weight two are detectable. Purity says that the stabilizer itself has no nonidentity member below distance; the enumerator 1+21z4+42z61+21z^4+42z^6 proves that fact here.

Coherent and reference-entangled one-qubit noise

Section titled “Coherent and reference-entangled one-qubit noise”

A physical disturbance on site jj need not select a classical Pauli label. Any operator on that qubit expands as

Aj=αII+αXXj+αYYj+αZZj.A_j=\alpha_I I+\alpha_X X_j+\alpha_Y Y_j+\alpha_Z Z_j.

Linearity of the Knill–Laflamme relation therefore extends exact recovery from E1\mathcal E_1 to the full operator span on any one site. Syndrome extraction can correlate the four orthogonal error sectors with a record without revealing α∣0‾⟩+β∣1‾⟩\alpha|\overline0\rangle+\beta|\overline1\rangle; conditional recovery then returns the logical state. The Pauli basis is a calculation device, not an assumption that nature first samples a classical Pauli.

The claim also survives entanglement with an inaccessible reference. If ∣Ψ⟩LR=∑b∣b‾⟩L∣rb⟩R|\Psi\rangle_{LR}=\sum_b|\overline b\rangle_L|r_b\rangle_R, let an environmental interaction on one physical qubit have Kraus operators AμA_\mu in the same Pauli span. Exact correction acts as the identity channel on the encoded subsystem, so

(R∘N⊗id⁡R)(∣Ψ⟩⟨Ψ∣)=∣Ψ⟩⟨Ψ∣.(\mathcal R\circ\mathcal N\otimes\operatorname{id}_R) \bigl(|\Psi\rangle\langle\Psi|\bigr) =|\Psi\rangle\langle\Psi|.

Retaining the reference is essential: merely restoring two basis states would not prove preservation of their relative phase or of entanglement. This exact statement assumes that the noise support is confined to one data qubit and that recovery itself is ideal. It does not certify a faulty extraction circuit, leakage outside the qubit model, or a many-qubit correlated disturbance.

Weak Self-Duality and Transversal Clifford Operations

Section titled “Weak Self-Duality and Transversal Clifford Operations”

The single-qubit Hadamard conjugates XX to ZZ and ZZ to XX. Because the two check sectors have identical supports,

H⊗7giH⊗7=gi+3,H⊗7gi+3H⊗7=gi(i=1,2,3).H^{\otimes7}g_iH^{\otimes7}=g_{i+3}, \qquad H^{\otimes7}g_{i+3}H^{\otimes7}=g_i \quad(i=1,2,3).

The six generators are merely permuted, so the code space is preserved. On the chosen logical representatives,

H⊗7X‾H⊗7=Z‾,H⊗7Z‾H⊗7=X‾.H^{\otimes7}\overline XH^{\otimes7}=\overline Z, \qquad H^{\otimes7}\overline ZH^{\otimes7}=\overline X.

These two conjugations determine logical Hadamard up to an irrelevant global phase. The phase can also be fixed directly: the uniform coset states are related by the binary Fourier transform in the way implied by the displayed logical Pauli action. Thus bitwise Hadamard implements H‾\overline H, not merely some Clifford with the same action on one basis state.

“Transversal” here means that each physical gate acts within a single coordinate and never couples two qubits of the same code block. A one-gate fault at this ideal layer therefore cannot fan out within that block. This structural observation is not yet a complete fault-tolerance proof: error propagation through neighboring operations, syndrome extraction, and malignant fault combinations still depend on a specified circuit.

Take two blocks with the same qubit ordering, call them control cc and target tt, and apply

CNOT⁡c→t⊗7=∏j=17CNOT⁡cj→tj.\operatorname{CNOT}^{\otimes7}_{c\to t} =\prod_{j=1}^7\operatorname{CNOT}_{c_j\to t_j}.

The physical conjugation rules are

Xc⟼XcXt,Zc⟼Zc,Xt⟼Xt,Zt⟼ZcZt.\begin{aligned} X_c&\longmapsto X_cX_t,& Z_c&\longmapsto Z_c,\\ X_t&\longmapsto X_t,& Z_t&\longmapsto Z_cZ_t. \end{aligned}

Apply them to each support row. A control-block X generator becomes the product of the matching X generator on control and target; a target-block Z generator becomes the product of the matching Z generator on both blocks. The remaining control Z and target X generators stay where they are. Accordingly, the full two-block stabilizer group is preserved.

The identical computation on the logical representatives gives

X‾c⟼X‾cX‾t,Z‾c⟼Z‾c,X‾t⟼X‾t,Z‾t⟼Z‾cZ‾t.\begin{aligned} \overline X_c&\longmapsto\overline X_c\overline X_t,& \overline Z_c&\longmapsto\overline Z_c,\\ \overline X_t&\longmapsto\overline X_t,& \overline Z_t&\longmapsto\overline Z_c\overline Z_t. \end{aligned}

Those are exactly the standard logical-CNOT conjugations. Identical block ordering matters: an untracked coordinate permutation can change the pairing. Each faulty physical CNOT can affect at most one qubit in each block, which is the transversality advantage; whether the resulting two-block error is managed correctly remains a protocol-level question.

Let

S=diag⁡(1,i).S=\operatorname{diag}(1,i).

The direction of the encoded phase gate is convention-sensitive. Single-qubit conjugation gives SXS†=YSXS^\dagger=Y and SZS†=ZSZS^\dagger=Z. Every X-type stabilizer here has weight four, so its four factors of Y=iXZY=iXZ contribute i4=1i^4=1. The paired-support relation then gives

S⊗7gi+3(S†)⊗7=gi+3gi,S⊗7gi(S†)⊗7=gi(i=1,2,3).S^{\otimes7}g_{i+3}(S^\dagger)^{\otimes7}=g_{i+3}g_i, \qquad S^{\otimes7}g_i(S^\dagger)^{\otimes7}=g_i \quad(i=1,2,3).

Thus bitwise SS preserves the stabilizer group. It does not, under the phase conventions frozen on this page, implement logical SS. Since Y⊗7=i7X‾Z‾=−Y‾Y^{\otimes7}=i^7\overline X\overline Z=-\overline Y,

S⊗7X‾(S†)⊗7=−Y‾,S⊗7Z‾(S†)⊗7=Z‾.S^{\otimes7}\overline X(S^\dagger)^{\otimes7} =-\overline Y, \qquad S^{\otimes7}\overline Z(S^\dagger)^{\otimes7} =\overline Z.

These are the conjugation rules for logical S†S^\dagger. The same result is visible on the logical basis. All words in ∣0‾⟩|\overline0\rangle have weight zero or four, so bitwise S gives phase 11; all words in ∣1‾⟩|\overline1\rangle have weight three or seven, so it gives i3=i7=−ii^3=i^7=-i. Therefore

S⊗7:α∣0‾⟩+β∣1‾⟩⟼α∣0‾⟩−iβ∣1‾⟩.S^{\otimes7}: \alpha|\overline0\rangle+\beta|\overline1\rangle \longmapsto \alpha|\overline0\rangle-i\beta|\overline1\rangle.

It follows that S⊗7S^{\otimes7} is logical S†S^\dagger, while (S†)⊗7(S^\dagger)^{\otimes7} is logical SS. Omitting the minus sign in the logical-X conjugation reverses this conclusion.

Logical Pauli operators together with the transversal Hadamard, phase direction just derived, and blockwise CNOT generate the encoded Clifford group. Steane’s 1997 active-stabilization paper used the code’s encoded operations as part of a broader program that also addressed preparation, stabilization, and state synthesis. The algebra above establishes only the code-preserving ideal conjugations. It does not price the ancillas, certify a fault-tolerant implementation of every step, or supply a non-Clifford gate.

Clifford operations alone are not universal for quantum computation. Universal completion requires an additional protected resource, such as a suitable injected state, and the reliability of that resource is not implied by the six stabilizer checks. Moreover, the Eastin–Knill theorem rules out a universal set implemented entirely by transversal logical gates for a finite-dimensional quantum code under its stated assumptions. It does not say that transversal gates are useless, nor that every individual logical gate must be nontransversal. It limits the complete set.

The general questions—how gadgets contain fault spread, how non-Clifford resources are prepared and distilled, and when code switching is useful—belong to Fault-Tolerant Gates. The present claim is narrower: this fixed Steane block has the declared transversal logical Clifford actions.

Packing, Aliasing, and Ideal Decoder Limits

Section titled “Packing, Aliasing, and Ideal Decoder Limits”

For a nondegenerate t=1t=1 code, the quantum Hamming bound counts one two-dimensional error image for the identity and for each of the 3n=213n=21 single-qubit Pauli errors. Here

21[1+3(71)]=44<128=27.2^1\left[1+3\binom71\right]=44<128=2^7.

Equivalently, only twenty-two of the sixty-four syndrome labels are occupied by weight-zero and weight-one errors. The inequality is strict, so this quantum code is not perfect. The word “Hamming” refers to its classical ingredient; the classical [7,4,3][7,4,3] code is perfect for one classical bit error, but perfection does not carry through this quantum packing count.

Nor should nonperfect be mistaken for degenerate. Degeneracy asks whether distinct correctable errors have the same action on the code, or equivalently whether a low-weight product of two errors lies in the stabilizer. The I22I_{22} Knill–Laflamme matrix and the minimum stabilizer weight four show that the promised one-error set is nondegenerate. Perfection instead asks whether its orthogonal error spaces fill the entire physical Hilbert space. This code is pure and nondegenerate yet has unused syndrome sectors. Preskill’s Chapter 7 presents these packing and degeneracy distinctions in the broader theory of quantum codes.

Syndrome measurement detects departure from the code space, but a syndrome does not reveal the physical error uniquely once the one-error promise is removed. Because syndromes add and h1+h2=001+010=011=h3h_1+h_2=001+010=011=h_3,

s(X1X2)=011∣000=s(X3).s(X_1X_2)=011\mid000=s(X_3).

The frozen lookup responds with X3X_3. The recovery is consistent with the record, but its residual action is

X3X1X2=X1X2X3∼X‾.X_3X_1X_2=X_1X_2X_3\sim\overline X.

The analogous phase alias is

s(Z1Z2)=000∣011=s(Z3),Z3Z1Z2=Z1Z2Z3∼Z‾.s(Z_1Z_2)=000\mid011=s(Z_3), \qquad Z_3Z_1Z_2=Z_1Z_2Z_3\sim\overline Z.

In both examples the stabilizer measurements and the specified decoder do exactly what their definitions say. What fails is the premise that the actual error belongs to E1\mathcal E_1. A different inference rule supplied with a nonuniform prior might choose a different representative for an ambiguous sector. Detection, guaranteed correction under a promise, and optimal inference under a noise model are three different claims.

For one deterministic finite validation, assign each data qubit independent depolarizing probabilities

Pr⁡(I)=1−p,Pr⁡(X)=Pr⁡(Y)=Pr⁡(Z)=p3,\Pr(I)=1-p,\qquad \Pr(X)=\Pr(Y)=\Pr(Z)=\frac p3,

then apply the separated sixty-four-syndrome recovery R(a∣b)R(a\mid b). Enumerate all 47=163844^7=16384 phase-free physical Paulis. After recovery, each residual has zero syndrome and therefore lies in one of the four logical cosets S\mathcal S, X‾S\overline X\mathcal S, Y‾S\overline Y\mathcal S, or Z‾S\overline Z\mathcal S. The exact ledger is:

Physical Pauli weightTotalILI_LXLX_LYLY_LZLZ_L
011000
12121000
218942632163
3945252217259217
42835609714798714
551031281130212181302
651031428123911971239
72187462561603561

Every weight-ww row sums to (7w)3w\binom7w3^w; all totals sum to 474^7; and each logical column sums to 40964096. The first two rows verify the correction promise. At weight two, the nonidentity logical columns contain 63+21+63=14763+21+63=147 failing Paulis, while forty-two happen to be mapped back to the identity logical class.

The classification can be reproduced without floating-point arithmetic or a probabilistic simulation. Encode a physical Pauli by its binary pair (x∣z)(x\mid z), obtain its syndrome from the six symplectic inner products, and XOR the pair for the prescribed recovery. The residual has zero syndrome. To label its logical class, test its commutation with the frozen X‾\overline X and Z‾\overline Z, or compare it against the four normalizer cosets after generating the sixty-four stabilizers. Both routes must return the same label. Iterating the physical strings in a fixed lexicographic order, while counting only their input Pauli weight, produces integer counts that do not depend on a random seed.

The row and column checks test different possible defects. A row failure signals that a physical string was omitted, duplicated, or assigned the wrong weight. A logical-column sum other than 40964096 signals a bad coset classifier, because the four normalizer cosets are equal in size after the decoder maps each syndrome sector back to zero syndrome. Agreement in the weight-zero and weight-one rows tests the promised recovery, whereas the two explicit aliases test named entries in the weight-two failure classes. These independent invariants make the ledger a useful deterministic validation fixture rather than an unexplained list of integers.

Weighting the nonidentity logical counts in row ww by (p/3)w(1−p)7−w(p/3)^w(1-p)^{7-w} gives

pL=493p2−56p3+238027p4−616081p5+8512243p6−4864729p7.\begin{aligned} p_L={}&\frac{49}{3}p^2-56p^3+\frac{2380}{27}p^4 -\frac{6160}{81}p^5\\ &+\frac{8512}{243}p^6-\frac{4864}{729}p^7. \end{aligned}

Several exact checks constrain transcription and convention errors:

pL(0)=0,pL(3/4)=3/4,pL(1)=575/729,pL=493p2+O(p3).p_L(0)=0,\qquad p_L(3/4)=3/4,\qquad p_L(1)=575/729, \qquad p_L=\frac{49}{3}p^2+O(p^3).

The leading coefficient also follows directly from the 147 failing weight-two strings: 147(p/3)2=49p2/3147(p/3)^2=49p^2/3 to lowest order. At p=3/4p=3/4, all four physical Paulis are equally likely, and the four equal-size residual logical cosets make the logical nonidentity probability 3/43/4.

This polynomial is an exact ideal-block result for one channel convention and one fixed decoder. It is not a code-capacity threshold, an optimized-decoder claim, a circuit-level forecast, a correlated-noise or leakage model, or a device prediction. The channel convention itself is developed at Pauli Noise and Depolarizing Channels; general inference from priors, repeated noisy records, and confidence belongs to Decoders.

This page owns the exact seven-qubit convention declared at its start: the ordered Hamming matrix, normalized logical cosets, six signed generators, projector, logical representatives, syndrome ledger, phase-free separated recovery, distance proof, transversal Clifford conjugations, two aliases, and finite depolarizing enumerator. The prerequisite Stabilizer Formalism page retains the general Pauli, symplectic, normalizer, and Clifford language. CSS Codes owns the general family construction, quotient distances, and generic algebraic gate conditions; this page retains its fixed Hamming matrix, logical cosets, twenty-two occupied syndromes, separated recovery, code-specific Clifford convention, and finite depolarizing polynomial.

Color Codes owns the equivalent triangular geometry and scalable 2-colex family; this page retains its Hamming convention, exact cosets, syndrome ledger, recovery, and code-specific gate fixture.

Two nearby distance-three codes sharpen the comparison. Five-Qubit Code owns the perfect non-CSS [[5,1,3]][[5,1,3]] code and its sixteen-sector lookup. Shor Code owns the concatenated, degenerate [[9,1,3]][[9,1,3]] construction. The Steane code is instead Hamming-derived, weakly self-dual, nondegenerate, and nonperfect. These adjectives describe different structures; none is a synonym for being “better” without a physical task and noise model.

Seven data qubits are not a hardware resource estimate. They omit state preparation, encoded ancillas, verification, coupling gates, repeated check rounds, measurement, reset, routing, connectivity, classical processing, latency, discarded trials, factories, scheduling, and spare capacity. Steane-style encoded-ancilla error correction is a protocol family associated with this code, but it is not the support-only algebra developed here. Dated experimental realizations and their actual resources belong to Error-Correction Case Studies. The Quantum Error Correction and Fault Tolerance guide provides the chapter map and keeps these owner boundaries explicit.

The distinction also protects historical interpretation. The existence of a compact encoded basis and transversal ideal gates establishes important code structure, but it does not retrospectively establish a modern logical-error rate, threshold, or scalable architecture. Such conclusions require a dated noise model, a complete fault-tolerant protocol, and resource accounting at the level actually implemented.

1. Audit the Hamming inclusion and logical cosets

Section titled “1. Audit the Hamming inclusion and logical cosets”

Starting only from the printed matrix HH, recover its seven ordered columns, compute HHTHH^{\mathsf T}, and prove C⊥⊂CC^\perp\subset C. Determine the dimensions of CC and C⊥C^\perp. Then use the explicit computational-basis expansions to verify normalization, orthogonality, and the parity separation of the two logical states.

Solution

Reading downward gives 001,010,011,100,101,110,111001,010,011,100,101,110,111, so no column is zero and no two columns coincide. Each row has weight four. Distinct rows overlap in two places, while a row overlaps itself in four places; every entry of HHTHH^{\mathsf T} is therefore zero modulo two. Each row of HH lies in ker⁡H\ker H, and hence row⁡H=C⊥⊂C\operatorname{row}H=C^\perp\subset C.

The three rows are independent: their leading nonzero coordinates occur at qubits four, two, and one, respectively. Thus rank⁡H=3\operatorname{rank}H=3, dim⁡C=7−3=4\dim C=7-3=4, and dim⁡C⊥=3\dim C^\perp=3. Each logical expansion contains eight distinct basis strings with squared amplitude 1/81/8, so its norm is one. The two supports are disjoint cosets because 1∉C⊥\mathbf1\notin C^\perp, giving zero inner product. Finally, C⊥C^\perp contains the zero word and seven weight-four words; complementing them produces one weight-seven and seven weight-three words. This proves the even-versus-odd parity separation used by logical Z and transversal S.

2. Construct the six stabilizers and projector

Section titled “2. Construct the six stabilizers and projector”

Translate each Hamming row into its Z-type and X-type Pauli check. Verify the signs, commutation, binary rank, group size, projector identities and trace, and the stabilizer weight enumerator. Finally, apply the frozen logical X and Z to both logical basis states and find their weight-three equivalents.

Solution

The row strings give IIIZZZZ,IZZIIZZ,ZIZIZIZIIIZZZZ,IZZIIZZ,ZIZIZIZ, followed by IIIXXXX,IXXIIXX,XIXIXIXIIIXXXX,IXXIIXX,XIXIXIX, all with positive sign. Same-type checks commute, and each cross-type commutator is (−1)ra⋅rb=1(-1)^{r_a\cdot r_b}=1 because HHT=0HH^{\mathsf T}=0. Three independent Z rows and three independent X rows give binary rank six and 6464 group elements.

Each (I+ga)/2(I+g_a)/2 is a commuting Hermitian projector, so their product PP is Hermitian and idempotent. In the group sum, only II has nonzero trace; hence tr⁡P=27/64=2\operatorname{tr}P=2^7/64=2. There are twenty-one weight-four and forty-two weight-six nonidentity stabilizers, yielding 1+21z4+42z61+21z^4+42z^6. Bitwise X complements each basis string and swaps the logical states. Bitwise Z reads their even or odd parity and acts with signs +1,−1+1,-1. Thus they act as logical X and Z. Multiplication by g4=IIIXXXXg_4=IIIXXXX and g1=IIIZZZZg_1=IIIZZZZ gives X‾g4=X1X2X3\overline Xg_4=X_1X_2X_3 and Z‾g1=Z1Z2Z3\overline Zg_1=Z_1Z_2Z_3.

3. Reconstruct the one-error syndrome ledger

Section titled “3. Reconstruct the one-error syndrome ledger”

Derive the syndromes of all twenty-two members of E1\mathcal E_1 without copying the table. Explain why they are distinct. Then use the ideal lookup on X5X_5, Z6Z_6, and Y2Y_2, including the residual operator after correction.

Solution

An XjX_j anticommutes with exactly the Z checks whose Hamming rows contain site jj, giving (hj∣000)(h_j\mid000). The same reasoning with sectors exchanged gives s(Zj)=(000∣hj)s(Z_j)=(000\mid h_j), and multiplication gives s(Yj)=(hj∣hj)s(Y_j)=(h_j\mid h_j). The seven nonzero columns are distinct. Moreover, the zero-half patterns separate X, Z, and Y families, so these twenty-one syndromes and 000∣000000\mid000 are all different.

Since h5=101h_5=101, the record for X5X_5 is 101∣000101\mid000, and the recovery is X5X_5. For Z6Z_6, it is 000∣110000\mid110 and the recovery is Z6Z_6. For Y2Y_2, it is 010∣010010\mid010 and the phase-free recovery is Y2Y_2, equivalently X2Z2X_2Z_2 up to phase. In every case recovery times error is the identity up to global phase, so the logical residual is ILI_L.

4. Prove exact correction and distance three

Section titled “4. Prove exact correction and distance three”

Use the ledger to derive the I22I_{22} Knill–Laflamme matrix. Extend the result to a coherent one-qubit operator while retaining an arbitrary reference system. Then prove distance three for the full Pauli normalizer, not only for separate pure-X and pure-Z errors.

Solution

For a≠ba\ne b, syndrome addition gives s(Ea†Eb)=s(Ea)+s(Eb)≠0s(E_a^\dagger E_b)=s(E_a)+s(E_b)\ne0. The product maps the code into a stabilizer eigenspace orthogonal to the code, so PEa†EbP=0PE_a^\dagger E_bP=0. For a=ba=b, the product is identity up to a phase that cancels in Ea†EaE_a^\dagger E_a, giving PP. Thus the coefficient matrix is exactly I22I_{22}.

Every one-qubit Kraus operator is a linear combination of I,Xj,Yj,ZjI,X_j,Y_j,Z_j. Bilinearity extends the matrix identity to any channel whose Kraus operators lie in that span. The recovery acts as the identity channel on the encoded subsystem, so tensoring it with id⁡R\operatorname{id}_R preserves every encoded state entangled with a reference RR, including all relative phases.

For a normalizer Pauli X(x)Z(z)X(x)Z(z), commutation with the Z and X check sectors gives x,z∈Cx,z\in C. A total support below three would make every nonzero one of these vectors a codeword of Hamming weight below three, impossible because CC has distance three. The weight-three normalizer elements X1X2X3X_1X_2X_3 and Z1Z2Z3Z_1Z_2Z_3 are nontrivial logical operators, so the lower bound is attained and the full Pauli distance is three.

Compute the conjugation of every stabilizer sector and both logical Pauli generators under bitwise Hadamard. Repeat for bitwise CNOT between two identically ordered blocks, keeping the control and target conjugations distinct.

Solution

Hadamard exchanges X and Z on each coordinate, so it sends gi↔gi+3g_i\leftrightarrow g_{i+3} for i=1,2,3i=1,2,3. It also sends X‾↔Z‾\overline X\leftrightarrow\overline Z. The stabilizer is preserved and the logical conjugations are exactly those of logical H.

Under physical CNOT, a control X copies to the target, a target Z copies to the control, and control Z and target X remain unchanged. Therefore each control X check becomes the product of the matching X checks on both blocks; each target Z check becomes the product of the matching Z checks; the other six generators remain in their original blocks. Replacing each support row by the seven-site logical support gives X‾c↦X‾cX‾t\overline X_c\mapsto\overline X_c\overline X_t, Z‾t↦Z‾cZ‾t\overline Z_t\mapsto\overline Z_c\overline Z_t, Z‾c↦Z‾c\overline Z_c\mapsto\overline Z_c, and X‾t↦X‾t\overline X_t\mapsto\overline X_t. These are precisely logical CNOT.

6. Resolve the transversal phase convention

Section titled “6. Resolve the transversal phase convention”

With S=diag⁡(1,i)S=\operatorname{diag}(1,i) and Y‾=iX‾Z‾\overline Y=i\overline X\overline Z, determine the action of S⊗7S^{\otimes7} on stabilizers, logical Paulis, and logical basis states. Explain why the resulting Clifford gates are not a universal transversal set.

Solution

Each weight-four X check becomes a weight-four Y string. Writing Y=iXZY=iXZ, the phase is i4=1i^4=1, so gi+3↦gi+3gig_{i+3}\mapsto g_{i+3}g_i; every Z check is fixed. Thus the code space is preserved. For the logical operator, Y⊗7=i7X‾Z‾=−Y‾Y^{\otimes7}=i^7\overline X\overline Z=-\overline Y, while Z‾\overline Z is fixed. Equivalently, even-weight words in ∣0‾⟩|\overline0\rangle receive phase one and weight-three or weight-seven words in ∣1‾⟩|\overline1\rangle receive −i-i. Therefore physical bitwise S implements logical S†S^\dagger, and physical bitwise S†S^\dagger implements logical S.

Together with H, CNOT, and Paulis these operations generate Clifford gates. Clifford circuits are not computationally universal, and Eastin–Knill precludes a universal entirely transversal set under its finite-dimensional code assumptions. A protected non-Clifford resource and its own fault analysis are still needed.

Derive the frozen X- and Z-type weight-two aliases, identify each residual logical operator, and compare the number of promised error sectors with the quantum Hamming bound.

Solution

Since h1+h2=h3h_1+h_2=h_3, syndrome addition gives s(X1X2)=s(X3)=011∣000s(X_1X_2)=s(X_3)=011\mid000. The lookup applies X3X_3, leaving X1X2X3∼X‾X_1X_2X_3\sim\overline X. Similarly, s(Z1Z2)=s(Z3)=000∣011s(Z_1Z_2)=s(Z_3)=000\mid011, and applying Z3Z_3 leaves Z1Z2Z3∼Z‾Z_1Z_2Z_3\sim\overline Z. These are decoder failures outside the one-error promise, not measurement inconsistencies.

The nondegenerate radius-one spaces occupy 2[1+3(71)]=442[1+3\binom71]=44 physical dimensions, whereas seven qubits have dimension 128128. Equivalently, the identity and twenty-one one-qubit errors use only twenty-two of sixty-four syndromes. The strict inequality proves that this quantum code is not perfect.

Count the weight-two errors that fail under the separated lookup and derive the leading small-pp logical-failure probability. As a finite computational extension, explain how to reproduce the full residual-class enumerator and exact polynomial without making a stochastic estimate.

Solution

The weight-two row contains 189=(72)32189=\binom723^2 Paulis. The identity-logical column contains forty-two, so 147147 fail; equivalently, sum the other columns as 63+21+6363+21+63. Each particular weight-two Pauli has probability (p/3)2(1−p)5(p/3)^2(1-p)^5, hence

pL=147(p3)2+O(p3)=493p2+O(p3).p_L=147\left(\frac p3\right)^2+O(p^3) =\frac{49}{3}p^2+O(p^3).

For the exact extension, iterate deterministically over the 474^7 strings in {I,X,Y,Z}⊗7\{I,X,Y,Z\}^{\otimes7}. XOR their single-site syndrome contributions, apply R(a∣b)R(a\mid b), and compare the zero-syndrome residual with the four cosets generated by S\mathcal S, X‾\overline X, Y‾\overline Y, and Z‾\overline Z. Bin by physical weight and logical class. The resulting integer ledger must match the displayed table, with every row, grand total, and logical-column sum checked. Weight its three nonidentity columns by (p/3)w(1−p)7−w(p/3)^w(1-p)^{7-w}, sum over ww, and expand; this reproduces the displayed seventh-degree polynomial exactly, with no Monte Carlo error.

  • Calderbank, A. R., and P. W. Shor. “Good Quantum Error-Correcting Codes Exist.” Physical Review A 54, 1098–1105 (1996). doi:10.1103/PhysRevA.54.1098.
  • Eastin, B., and E. Knill. “Restrictions on Transversal Encoded Quantum Gate Sets.” Physical Review Letters 102, 110502 (2009). doi:10.1103/PhysRevLett.102.110502.
  • Gottesman, D. Stabilizer Codes and Quantum Error Correction. Ph.D. thesis, California Institute of Technology (1997). doi:10.7907/rzr7-dt72; arXiv:quant-ph/9705052.
  • Knill, E., and R. Laflamme. “Theory of Quantum Error-Correcting Codes.” Physical Review A 55, 900–911 (1997). doi:10.1103/PhysRevA.55.900.
  • Preskill, J. Quantum Information, Chapter 7, “Quantum Error Correction.” Official working draft, updated March 2026. PDF.
  • Steane, A. M. “Error Correcting Codes in Quantum Theory.” Physical Review Letters 77, 793–797 (1996). doi:10.1103/PhysRevLett.77.793.
  • Steane, A. M. “Multiple-Particle Interference and Quantum Error Correction.” Proceedings of the Royal Society A 452, 2551–2577 (1996). doi:10.1098/rspa.1996.0136.
  • Steane, A. M. “Active Stabilization, Quantum Computation, and Quantum State Synthesis.” Physical Review Letters 78, 2252–2255 (1997). doi:10.1103/PhysRevLett.78.2252.