- Boxes
- definitions
- Ellipses
- theorems and lemmas
- Blue border
- the statement of this result is ready to be formalized; all prerequisites are done
- Orange border
- the statement of this result is not ready to be formalized; the blueprint needs more work
- Blue background
- the proof of this result is ready to be formalized; all prerequisites are done
- Green border
- the statement of this result is formalized
- Green background
- the proof of this result is formalized
- Dark green background
- the proof of this result and all its ancestors are formalized
- Dark green border
- this is in Mathlib
The centralizer \(\mathcal{C}(\mathcal{S})\) of a stabilizer group inside \(\mathcal{P}_n\): the Pauli operators commuting with every element of \(\mathcal{S}\). These are exactly the operators that preserve the codespace, so they are the candidates for logical operators.
The \(Z\)-type counterpart of definition 53, used for the dual side of the CSS code.
The check matrix of a list of \(\mathcal{P}_n\) elements: the matrix over \(\mathbb {F}_2\) whose rows are the symplectic vectors (definition 14) of the listed generators. For a CSS code it is block diagonal, carrying the two classical parity-check matrices \(H_X\) and \(H_Z\) on the diagonal.
An \([[n,k,d]]\) code: a definition 37 bundled with a proof of definition 39. The headline results of this development are inhabitants of this type.
\(Z_1 = \ker \partial _1 \le C_1\). Under definition 53 these are exactly the chains whose \(X\) operator commutes with every \(Z\)-check.
The smallest code correcting an arbitrary single-qubit error, and the first non-CSS code in this development: its generators mix \(X\) and \(Z\) on the same qubit, so the CSS machinery does not apply and the distance argument is a direct search over weight-one and weight-two anti-witnesses.
The smallest error-*detecting* code, encoding two qubits with distance two. Its distance is closed by theorem 44.
The \([[144,12,12]]\) gross code as an inhabitant of definition 41 — the headline result of this development.
IBM’s gross code presented as a definition 37 with \(n = 144\) and \(k = 12\).
\(H_1 = Z_1 / B_1\) (definition 48, definition 49). The slogan of the whole framework is *logical operators are homology classes*: nontrivial logical operators correspond to nonzero classes in \(H_1\), and the code distance is the minimum weight of a chain representing a nonzero class.
A code *has distance \(d\)* when every nontrivial logical operator (definition 31) has weight at least \(d\), and some nontrivial logical operator has weight exactly \(d\). Both halves matter: the lower bound is the error-correction guarantee, the witness makes the value exact rather than merely a bound.
The abstract input to the CSS-from-homology machine: a length-three chain complex of \(\mathbb {F}_2\) vector spaces \(C_2 \xrightarrow {\partial _2} C_1 \xrightarrow {\partial _1} C_0\) with \(\partial _1 \partial _2 = 0\), where \(C_1\) is indexed by the physical qubits, \(C_0\) by the \(Z\)-checks and \(C_2\) by the \(X\)-checks. Every topological code in this development is an instance.
The parametric generalized-parity family with exactly two stabilizer generators, the all-\(X\) and all-\(Z\) operators. Distance two for every \(m\), again via theorem 44.
A state \(\psi \) is stabilized by \(g \in \mathcal{P}_n\) when \(g\psi = \psi \), i.e. \(\psi \) is a \(+1\) eigenvector of the unitary definition 5.
A *nontrivial* logical operator is one that acts on the encoded information rather than fixing it. The predicate has two conditions: \(g\) is in the centralizer, and no element of \(\mathcal{S}\) has the same operator part as \(g\).
The second condition is stronger than the familiar \(g \notin \mathcal{S}\) (which it implies, at \(s = g\)) and is what makes the CSS bridge arguments work: with only the weaker condition, \(g\) could differ from a stabilizer by a phase, which is not a nontrivial action on the codespace.
An element of the \(n\)-qubit Pauli group \(\mathcal{P}_n\) is a phase exponent in \(\mathbb {Z}_4\) together with an \(n\)-qubit Pauli operator (definition 3), i.e. a tensor product \(i^a\, P_1 \otimes \cdots \otimes P_n\). Every operator statement in this development is ultimately a statement about elements of \(\mathcal{P}_n\).
An element of the single-qubit Pauli group \(\mathcal{P}_1 = \{ \, i^a P : a \in \mathbb {Z}_4,\ P \in \{ I,X,Y,Z\} \, \} \), represented as a pair of a phase exponent \(a \in \mathbb {Z}_4\) and an operator \(P\) (definition 1). Splitting the phase off from the operator is what makes the \(n\)-qubit multiplication rule computable.
A Pauli operator is *logical* when it lies in the centralizer definition 26, i.e. it commutes with every stabilizer and therefore maps the codespace to itself.
The four single-qubit Pauli *operators* \(I\), \(X\), \(Y\), \(Z\), taken without a phase. This is the operator part of a Pauli group element; the phase is tracked separately by definition 2.
The unitary matrix \(i^a\, P_1 \otimes \cdots \otimes P_n\) on \((\mathbb {C}^2)^{\otimes n}\) represented by a Pauli group element. This is the semantic anchor of the formalization: it is what makes the syntactic bookkeeping over \(\mathbb {Z}_4 \times \{ I,X,Y,Z\} ^n\) a statement about operators on a Hilbert space.
The weight \(\operatorname {wt}(g)\) of a Pauli group element is the cardinality of its support (definition 8) — the number of qubits it acts on nontrivially. Code distance is a statement about weights.
The bit-flip repetition code as a stabilizer code, with \(Z_i Z_{i+1}\) generators. It has distance one as a *quantum* code — phase errors are undetectable — which is why it appears here as a degenerate reference point rather than as a usable code.
The rows of the check matrix (definition 18) are linearly independent over \(\mathbb {F}_2\). This is the computable criterion used to discharge the independence obligation of definition 37.
An \([[n,k]]\) stabilizer code: a list of \(n-k\) independent, pairwise commuting generators avoiding \(-I\) — and nothing else. The code *is* its stabilizer group; a choice of logical operators is derived data, bundled separately by definition 38. The type carries \(n\) and \(k\), so instantiating it *is* the theorem that a given family of operators encodes \(k\) qubits into \(n\).
A definition 37 together with \(k\) pairs of logical operators (definition 34), one per encoded qubit, such that the pairs of distinct qubits commute. This is what the constructions that genuinely need a basis consume — logical Clifford actions, the encoding step of code concatenation — while distance (definition 39) lives on the bare code.
A *stabilizer group* is an abelian subgroup \(\mathcal{S} \le \mathcal{P}_n\) that does not contain \(-I\). The two conditions are exactly what is needed for the common \(+1\) eigenspace to be nonzero: commutativity makes the eigenspace projectors compatible, and excluding \(-I\) rules out the contradiction \(\psi = -\psi \).
The CSS code built from the classical \([7,4,3]\) Hamming code, with all-\(X\) and all-\(Z\) logical operators, packaged with its distance. The Hamming check matrix has as columns the seven nonzero vectors of \(\mathbb {F}_2^3\), so theorem 45 applies with the same three rows on both sides; \(X\) on qubits \(\{ 3,5,6\} \) is the weight-three logical.
The linear-algebra shadow of a Pauli operator: an \(n\)-qubit Pauli operator is sent to a vector in \(\mathbb {F}_2^{2n}\), recording in its first \(n\) coordinates which qubits carry an \(X\) component and in its last \(n\) which carry a \(Z\) component (so \(Y\) contributes to both). Products of Paulis become sums of vectors, which is what turns questions about the group \(\mathcal{P}_n\) into linear algebra over \(\mathbb {F}_2\).
The \(L \times L\) square lattice on the torus, packaged as a definition 46: \(C_0\) is spanned by vertices, \(C_1\) by the \(2L^2\) edges (the physical qubits), \(C_2\) by faces, with \(\partial _2\) the face boundary and \(\partial _1\) the edge boundary.
The \(L \times L\) toric code presented as a definition 37 with \(n = 2L^2\) and \(k = 2\).
The natural generating set has \(2L^2\) elements, two more than the \(n - k = 2L^2 - 2\) that definition 37 demands, because the vertex checks multiply to the identity and so do the face checks. The packaging therefore uses a *trimmed* list, and the homological identities are what prove the trimmed list generates the same subgroup.
The \([[2L^2, 2, L]]\) toric code as an inhabitant of definition 41, for every \(L \ge 2\).
\(H_1\) of definition 59, i.e. the first homology of the torus with \(\mathbb {F}_2\) coefficients.
\(\varphi : H_1 \to \mathbb {F}_2^2\), \([c] \mapsto (h(c), v(c))\), well defined by theorem 64.
The data exhibiting one bivariate-bicycle complex as a free double cover of another: a deck transformation \(\sigma \) of order two acting freely, commuting with both boundary maps, with the base recovered as the quotient. The gross \([[144,12,12]]\) code covers the \([[72,12,6]]\) base exactly this way, and the doubling of the distance from \(6\) to \(12\) is what the cover is used to prove.
A Pauli group element whose operator part uses only \(I\) and \(Z\), with trivial phase. A CSS code is one whose stabilizer is generated by elements each of which is \(X\)-type (definition 42) or \(Z\)-type.
Two elements of \(\mathcal{P}_n\) commute if and only if the number of qubits at which they anticommute (definition 10) is even.
Two elements of \(\mathcal{P}_n\) commute if and only if their symplectic vectors are orthogonal under definition 16. This is the bridge that lets the whole theory be done with linear algebra over \(\mathbb {F}_2\): an abelian subgroup becomes a self-orthogonal subspace.
Let a CSS code have \(Z\)-checks and \(X\)-checks supported on the rows of two classical parity-check matrices. If both matrices have nonzero, pairwise distinct columns — both classical codes have distance at least \(3\) — and some nontrivial logical operator of weight \(3\) exists, then the code has distance exactly \(3\).
The gross code (definition 78) has distance exactly \(12\), unconditionally.
Pulled back along the cover of definition 72, the base floor gives a weight-six lower bound for every nontrivial logical operator of the gross code.
Every nontrivial gross logical operator falls into one of two sectors, and in each the weight is at least twelve: the *safe* sector, where the two sheets of the cover contribute independently, and the *dangerous* sector, where they do not and a finer argument is needed.
If the rows of the check matrix are linearly independent over \(\mathbb {F}_2\) (definition 19) then the generators are independent in the sense of definition 35.
The two conditions of definition 31 spelled out as a conjunction, which is the form the concrete distance proofs consume.
Multiplication on \(\mathcal{P}_n\) is associative. Together with the unit \(I^{\otimes n}\) and the inverse \(g^{-1} = i^{-a}P\) this makes definition 4 a group.
From a definition 73 certificate, every nonzero cycle has weight at least six.
Definition 14 is injective: a Pauli operator is determined by its symplectic vector. Phases are of course not recorded.
For every \(L \ge 2\) the \(L \times L\) toric code (definition 67) has distance exactly \(L\), so it is an \([[2L^2, 2, L]]\) code.
Both wrapping numbers vanish on \(B_1\), so they descend to well-defined functions on \(H_1\).
The \(X\) operator of a chain commutes with every \(Z\)-check if and only if the chain is a cycle (definition 48).