Lean, informalized

Nielsen & Chuang · Chapter 10, Quantum error-correction · p. 474

Exercise 10.61 - The syndrome of each single qubit Pauli error and the recovery it selects

Correcting a single qubit error on the Steane code.

Hover over a blue or green term in the text, or a node in the graph, to find it in the other. Select it to read its declaration both in Lean and in words.

The Exercise

The Steane code encodes one qubit in seven. Its codewords are the states of the seven qubits left unchanged by six commuting Pauli operators, the generators of the code. Suppose a codeword suffers an error on at most one qubit: an XX, a YY or a ZZ on one of the seven, or nothing at all, which makes 22 possible errors. Measuring the six generators then gives six outcomes ±1\pm 1 that depend on the error alone, and written as bits they form the error syndrome. The exercise is to say which recovery operation each syndrome calls for, and to show that it undoes the error behind it.

Pauli Strings

In the library every operator of the exercise is a Pauli string on the seven qubits. A Pauli string gg on nn qubits assigns to each qubit k=1,…,nk = 1, \dots, n one of the four Paulis gk∈{I,X,Y,Z}g_k \in \{I, X, Y, Z\}, and stands for the operator g1⊗…⊗gng_1 \otimes \dots \otimes g_n up to an overall phase. We write XkX_k for the string with XX on qubit kk and II elsewhere, and likewise YkY_k and ZkZ_k; a product such as X1X5X_1 X_5 carries XX on both qubits, and II alone is the string with II on every qubit.

The XX bit x(a)x(a) and the ZZ bit z(a)z(a) of a single qubit Pauli aa are the two bits of its binary symplectic representation, which mark an XX factor and a ZZ factor in aa: x(I)=x(Z)=0,x(X)=x(Y)=1,z(I)=z(X)=0,z(Y)=z(Z)=1.x(I) = x(Z) = 0, \quad x(X) = x(Y) = 1, \qquad z(I) = z(X) = 0, \quad z(Y) = z(Z) = 1.(1) The symplectic pairing of two single qubit Paulis aa and bb is the number ω(a,b)=x(a)z(b)+z(a)x(b)\omega(a, b) = x(a)\, z(b) + z(a)\, x(b).✦ The symplectic form of two Pauli strings gg and hh on nn qubits is the sum of the pairings of their factors, ω(g,h)=∑k=1nω(gk,hk),\omega(g, h) = \sum_{k=1}^{n} \omega(g_k, h_k),(2)✦ and its parity is 00 when gg and hh commute and 11 when they anticommute.

The product a⊙ba \odot b of two single qubit Paulis aa and bb is the Pauli proportional to the operator abab: a⊙b=b⊙a,I⊙a=a,a⊙a=I,X⊙Y=Z,Y⊙Z=X,Z⊙X=Y.a \odot b = b \odot a, \quad I \odot a = a, \quad a \odot a = I, \quad X \odot Y = Z, \quad Y \odot Z = X, \quad Z \odot X = Y.(3)✦ The product g⊙hg \odot h of two Pauli strings on nn qubits is taken qubit by qubit, (g⊙h)k=gk⊙hk(g \odot h)_k = g_k \odot h_k, and is the operator product ghgh up to phase.✦

Syndrome and Recovery

The standard form generators g1,…,g6g_1, \dots, g_6 of the Steane code are six Pauli strings on the seven qubits, three of XX type and three of ZZ type: g1=X1X5X6X7,g2=X2X4X6X7,g3=X3X4X5X6,g4=Z1Z3Z4Z7,g5=Z2Z3Z5Z7,g6=Z1Z2Z3Z6.\begin{aligned} g_1 &= X_1 X_5 X_6 X_7, & g_2 &= X_2 X_4 X_6 X_7, & g_3 &= X_3 X_4 X_5 X_6,\\ g_4 &= Z_1 Z_3 Z_4 Z_7, & g_5 &= Z_2 Z_3 Z_5 Z_7, & g_6 &= Z_1 Z_2 Z_3 Z_6. \end{aligned}(4)✦ The syndrome β(E)\beta(E) of a Pauli string EE on the seven qubits is the string of six bits whose bit aa is the parity of the symplectic form of gag_a with EE: βa(E)=ω(ga,E)mod⁡2,a=1,…,6.\beta_a(E) = \omega(g_a, E) \bmod 2, \qquad a = 1, \dots, 6.(5)✦

The 22 errors E0,…,E21E_0, \dots, E_{21} are the Pauli strings on the seven qubits with at most one factor other than II, in the order E0=I,Ek=Xk,E7+k=Yk,E14+k=Zk(k=1,…,7).E_0 = I, \qquad E_k = X_k, \quad E_{7+k} = Y_k, \quad E_{14+k} = Z_k \qquad (k = 1, \dots, 7).(6)✦ The recovery R(s)R(s) for a string ss of six bits is the Pauli string on the seven qubits read off the list (6): R(s)={Ej,j the least index with β(Ej)=s,I,no Ej has syndrome s.R(s) = \begin{cases} E_j, & j \text{ the least index with } \beta(E_j) = s,\\ I, & \text{no } E_j \text{ has syndrome } s. \end{cases}(7)✦

The Claim

Theorem 1. Let EjE_j be any of the 22 errors of (6). The recovery for its syndrome is EjE_j itself, R(β(Ej))=Ej,R\bigl(\beta(E_j)\bigr) = E_j,(8)✦ and the recovery applied after the error leaves the identity on every qubit, R(β(Ej))⊙Ej=I.R\bigl(\beta(E_j)\bigr) \odot E_j = I.(9)✦

What Is Checked

The claim is stated over the generators (4), the syndrome (5) they assign to a Pauli string through the symplectic form (2), the list of errors (6), the recovery table (7) and the product ⊙\odot of Pauli strings.

By (8), no two of the 22 errors share a syndrome.