# Shor's Code: Understanding how it satisfies Knill Laflamme Theorem

I'm new to Quantum Error Correction, and I have a question on Shor's Code.

If we have a protected subspace, $$V \subset \mathbf{C}^2\otimes \cdots \otimes \mathbf{C}^2$$

$$V=\operatorname{span}\{|0_{l}\rangle, |1_{L}\rangle.$$ We also consider Pauli basis of $$\mathbf{C}^2\otimes \cdots \otimes \mathbf{C}^2$$ of 9 copies, and constructed as follows: Take the basis of $$M_2$$ consisting of: $$\begin{eqnarray} \nonumber X=\begin{pmatrix} 0 & 1\\ 1 & 0 \end{pmatrix}, Y= \begin{pmatrix} 0 & i \\ -i & 0 \end{pmatrix}, Z=\begin{pmatrix} 1 & 0\\ 0 & -1 \end{pmatrix} & \text{and} & 1_2. \end{eqnarray}$$ We list the 1-Paulis as $$U_1,\cdots ,U_{28}.$$ Define the error map as $$\mathscr{E}:M_{2^9}\rightarrow M_{2^9}$$ by $$\mathscr{E}(X)=\frac{1}{28}\sum_{i=1}^{28}U_iXU_i^*$$. $$\mathscr{E}$$ is completely positive and trace preserving. How do we say that it satisfies the Knill Laflamme Theorem and thus ensure the existence of a recovery operator?

Cross-posted on math.SE

Strictly, what you have to calculate is that for all $$i$$ and $$j$$ $$\langle 0_L|U_iU_j|1_L\rangle=0$$ and $$\langle 0_L|U_iU_j|0_L\rangle=\langle 1_L|U_iU_j|1_L\rangle.$$ (I've ignored the Hermitian conjugate because all the single-qubit errors are Hermitian.)
Obviously there's a lot of work involved in calculating all $$28^2$$ cases of $$i,j$$. You can at least simplify this by using symmetry - there's permutation invariance within blocks of three qubits and between blocks of three qubits. This means that you can reduce your work to two sets of cases: (i) two Pauli errors on the same block of 3 qubits (of which there are $$9^2$$ cases, but we can take the two errors to be on the first two qubits, or two on the first, reducing to $$3+3^2$$ cases) and (ii) one Pauli error on each of 3 qubits (of which there are $$9^2$$ cases, but we can assume the errors are on the first qubit of each block, reducing to $$3^2$$ cases). 21 error combinations is a much more tolerable calculation.