The Theorem
A quantum computation on a register of 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 amplitudes of the state. It keeps 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 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 , the identity, and (1)✦
For a string of labels in , the Pauli string on the register is the operator .✦ In the computational basis , labelled by strings of bits , its matrix entries are (2)✦
An elementary Clifford gate on the register is a Hadamard gate on a qubit , a phase gate on a qubit , or a controlled NOT gate with control qubit and target qubit .✦
A stabilizer operation on the register is one of four kinds: the preparation of the register in the computational basis state , an elementary Clifford gate, the Pauli gate for a string of labels, or the measurement of the observable .✦ Only the last kind counts as a measurement: (3)✦
A stabilizer computation on qubits is a finite sequence of stabilizer operations on the register; its length is the number of its operations.✦ Each operation acts on the vectors of the register, sending to . The state after the computation, from a vector of the register, is the vector reached by letting the operations act in turn, first to last: (4)✦
The Tableau
A stabilizer tableau on qubits is an array of labels together with a column of complex numbers , the signs: (5)✦ Row is the generator , the Pauli string of the labels with its sign.
The tableau stabilizes a vector of the register when each of its generators leaves the vector unchanged: (6)✦
Every operation also updates a tableau, . The run of a computation on a tableau is the tableau reached by applying the updates of its operations in turn: (7)✦
The cost of an operation is , the number of entries of a tableau, unless is a measurement, which costs twice as much.✦ The simulation cost of a computation is the sum of the costs of its operations: (8)✦
The Claim
Theorem 1.
Let be a stabilizer computation on qubits none of whose operations is a measurement, and let be a tableau that stabilizes a vector of the register. Then the run , with labels and signs , stabilizes the state after the computation: (9)✦
There is a constant such that every stabilizer computation of length on qubits, whatever and , has simulation cost (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).