Lean, informalized

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

Theorem 10.7 - A tableau of nn stabilizer generators follows the state, at a cost of order n2n^2 per operation

Stabilizer circuits simulated efficiently on a classical computer.

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 Theorem

A quantum computation on a register of nn qubits is restricted to four kinds of step: it prepares the register in a computational basis state, applies Hadamard, phase and controlled NOT gates, applies Pauli gates, and measures observables that are tensor products of Pauli matrices. The theorem of Gottesman and Knill says that such a computation can be simulated efficiently on a classical computer. The simulation never writes down the 2n2^n amplitudes of the state. It keeps nn Pauli operators with signs that each leave the state unchanged, generators of its stabilizer, and after every step it rewrites them so that they leave the new state unchanged. They take n(n+1)n(n+1) numbers to store, and each step costs work of the same order.

The library states the theorem in two parts: the first is the correctness of this bookkeeping through computations without measurements, the second a bound on its cost.

Stabilizer Computations

The Pauli matrices are σ0=I\sigma_0 = I, the identity, and σ1=X=(0110),σ2=Y=(0−ii0),σ3=Z=(100−1).\sigma_1 = X = \begin{pmatrix} 0 & 1 \\ 1 & 0 \end{pmatrix}, \qquad \sigma_2 = Y = \begin{pmatrix} 0 & -i \\ i & 0 \end{pmatrix}, \qquad \sigma_3 = Z = \begin{pmatrix} 1 & 0 \\ 0 & -1 \end{pmatrix}.(1)✦

For a string p=p1⋯pnp = p_1 \cdots p_n of labels in {0,1,2,3}\{0,1,2,3\}, the Pauli string σp\sigma_p on the register is the operator σp1⊗⋯⊗σpn\sigma_{p_1} \otimes \cdots \otimes \sigma_{p_n}.✦ In the computational basis |x⟩|x\rangle, labelled by strings of bits x=x1⋯xnx = x_1 \cdots x_n, its matrix entries are ⟨x|σp|y⟩=∏k=1n(σpk)xkyk.\langle x | \sigma_p | y \rangle = \prod_{k=1}^{n} (\sigma_{p_k})_{x_k y_k}.(2)✦

An elementary Clifford gate on the register is a Hadamard gate HjH_j on a qubit jj, a phase gate SjS_j on a qubit jj, or a controlled NOT gate CNOTct\mathrm{CNOT}_{ct} with control qubit cc and target qubit t≠ct \neq c.✦

A stabilizer operation oo on the register is one of four kinds: the preparation of the register in the computational basis state |0⋯0⟩|0 \cdots 0\rangle, an elementary Clifford gate, the Pauli gate σp\sigma_p for a string pp of labels, or the measurement MpM_p of the observable σp\sigma_p.✦ Only the last kind counts as a measurement: o is a measurement⇔o=Mp for some p∈{0,1,2,3}n.o \text{ is a measurement} \iff o = M_p \text{ for some } p \in \{0,1,2,3\}^n.(3)✦

A stabilizer computation PP on nn qubits is a finite sequence (o1,…,om)(o_1, \dots, o_m) of stabilizer operations on the register; its length is the number mm of its operations.✦ Each operation acts on the vectors of the register, sending |ψ⟩|\psi\rangle to o|ψ⟩o|\psi\rangle. The state P|ψ⟩P|\psi\rangle after the computation, from a vector |ψ⟩|\psi\rangle of the register, is the vector reached by letting the operations act in turn, first to last: P|ψ⟩=om⋯o2o1|ψ⟩.P|\psi\rangle = o_m \cdots o_2\, o_1 |\psi\rangle.(4)✦

The Tableau

A stabilizer tableau TT on nn qubits is an n×nn \times n array of labels gij∈{0,1,2,3}g_{ij} \in \{0,1,2,3\} together with a column of nn complex numbers sis_i, the signs: T=(g11⋯g1ns1⋮⋮⋮gn1⋯gnnsn).T = \begin{pmatrix} g_{11} & \cdots & g_{1n} & s_1 \\ \vdots & & \vdots & \vdots \\ g_{n1} & \cdots & g_{nn} & s_n \end{pmatrix}.(5)✦ Row ii is the generator siσgis_i \sigma_{g_i}, the Pauli string of the labels gi=gi1⋯ging_i = g_{i1} \cdots g_{in} with its sign.

The tableau TT stabilizes a vector |ψ⟩|\psi\rangle of the register when each of its generators leaves the vector unchanged: siσgi|ψ⟩=|ψ⟩,i=1,…,n.s_i\, \sigma_{g_i} |\psi\rangle = |\psi\rangle, \qquad i = 1, \dots, n.(6)✦

Every operation oo also updates a tableau, T↦o[T]T \mapsto o[T]. The run of a computation PP on a tableau TT is the tableau P[T]P[T] reached by applying the updates of its operations in turn: P[T]=om[⋯o2[o1[T]]⋯].P[T] = o_m\big[ \cdots o_2\big[ o_1[T] \big] \cdots \big].(7)✦

The cost c(o)c(o) of an operation oo is n(n+1)n(n+1), the number of entries of a tableau, unless oo is a measurement, which costs twice as much.✦ The simulation cost C(P)C(P) of a computation is the sum of the costs of its operations: c(o)={2n(n+1)if o is a measurement,n(n+1)otherwise,C(P)=∑k=1mc(ok).c(o) = \begin{cases} 2n(n+1) & \text{if $o$ is a measurement,} \\ n(n+1) & \text{otherwise,} \end{cases} \qquad C(P) = \sum_{k=1}^{m} c(o_k).(8)✦

The Claim

Theorem 1.

  1. Let PP be a stabilizer computation on nn qubits none of whose operations is a measurement, and let TT be a tableau that stabilizes a vector |ψ⟩|\psi\rangle of the register. Then the run P[T]P[T], with labels gij′g'_{ij} and signs si′s'_i, stabilizes the state after the computation: si′σgi′P|ψ⟩=P|ψ⟩,i=1,…,n.s'_i\, \sigma_{g'_i}\, P|\psi\rangle = P|\psi\rangle, \qquad i = 1, \dots, n.(9)✦

  2. There is a constant KK such that every stabilizer computation PP of length mm on nn qubits, whatever nn and mm, has simulation cost C(P)≤Kn2m.C(P) \le K\, n^2\, m.(10)✦

What Is Checked

The first part is stated over a tableau (5) stabilizing a vector (6), its run under a computation (7), the state after the computation (4) and the test for a measurement (3); the second is stated over the simulation cost (8) and the length of the computation.

Both parts are stated for these constructions, (9) and (10).