26 Lem 4: Spacetime Stabilizers
This chapter formalizes Lemma 4: the listed generators form a generating set of local spacetime stabilizers for the fault-tolerant gauging measurement procedure. For each generator type, we verify (a) empty syndrome (all detectors are satisfied), (b) preservation of logical information (no logical error is introduced), and (c) completeness (any local spacetime stabilizer can be decomposed into a product of these generators).
A time region in the gauging measurement procedure is one of:
beforeGauging: \(t {\lt} t_i\) (original code),
duringGauging: \(t_i {\lt} t {\lt} t_o\) (deformed code),
afterGauging: \(t {\gt} t_o\) (original code),
initialBoundary: \(t = t_i\),
finalBoundary: \(t = t_o\).
A detector effect models the effect of a generator’s faults on a detector. It is a structure with three \(\mathbb {Z}_2\)-valued fields:
\(\mathtt{pauliFlip\_ t} \in \mathbb {Z}_2\): flip from a Pauli at time \(t\) affecting the measurement at \(t + \tfrac {1}{2}\),
\(\mathtt{pauliFlip\_ t1} \in \mathbb {Z}_2\): flip from a Pauli at time \(t+1\) affecting the measurement at \(t + \tfrac {3}{2}\),
\(\mathtt{measFault} \in \mathbb {Z}_2\): flip from a measurement fault at \(t + \tfrac {1}{2}\).
The net effect on detector \(c^t\) (comparing measurements at \(t - \tfrac {1}{2}\) and \(t + \tfrac {1}{2}\)) is defined as
The measurement at \(t - \tfrac {1}{2}\) is unaffected, while the recorded outcome at \(t + \tfrac {1}{2}\) is flipped by both the Pauli at time \(t\) and the measurement fault.
The net effect on detector \(c^{t+1}\) (comparing measurements at \(t + \tfrac {1}{2}\) and \(t + \tfrac {3}{2}\)) is
A spacetime stabilizer generator is one of the following types:
For \(t {\lt} t_i\) and \(t {\gt} t_o\) (original code):
spaceStabilizer: a check operator \(s_j\) (or \(\tilde{s}_j\), \(A_v\), \(B_p\)) at time \(t\);
pauliPairOriginal: a Pauli \(P\) at time \(t\) and \(P\) at time \(t+1\), together with measurement faults on all anticommuting checks \(s_j\).
For \(t_i {\lt} t {\lt} t_o\) (deformed code):
vertexXPair: \(X_v\) at \(t\) and \(t+1\) with measurement faults on anticommuting \(\tilde{s}_j\);
vertexZPair: \(Z_v\) at \(t\) and \(t+1\) with measurement faults on \(A_v\) and anticommuting \(\tilde{s}_j\);
edgeXPair: \(X_e\) at \(t\) and \(t+1\) with measurement faults on \(B_p\) (for \(p \ni e\)) and anticommuting \(\tilde{s}_j\);
edgeZPair: \(Z_e\) at \(t\) and \(t+1\) with measurement faults on \(A_v\) (for \(v \in e\)).
For \(t = t_i\) (initial boundary):
initFaultPlusXe: initialization fault on \(|0\rangle _e\) plus \(X_e\) at time \(t\);
initialBoundaryZePair: \(Z_e\) at \(t+1\) with \(A_v\) measurement faults for \(v \in e\).
For \(t = t_o\) (final boundary):
finalBoundaryXePair: \(X_e\) at \(t\) with \(Z_e\) measurement fault;
finalBoundaryBareZe: bare \(Z_e\) at \(t\) (since \(Z|0\rangle = |0\rangle \));
finalBoundaryZePair: \(Z_e\) at \(t-1\) with \(A_v\) measurement faults for \(v \in e\).
The predicate \(\mathrm{generatorValidInRegion}(\mathrm{gen}, \mathrm{region})\) specifies which time regions a generator is valid in:
spaceStabilizer with region \(r\): valid only in region \(r\);
pauliPairOriginal: valid in beforeGauging or afterGauging;
vertexXPair, vertexZPair, edgeXPair: valid in duringGauging or initialBoundary;
edgeZPair: valid in duringGauging;
initFaultPlusXe, initialBoundaryZePair: valid in initialBoundary;
finalBoundaryXePair, finalBoundaryBareZe, finalBoundaryZePair: valid in finalBoundary.
The space stabilizer effect is the detector effect \((0, 0, 0)\): no flips, since a space stabilizer acts as the identity on the code space.
The Pauli pair effect on an anticommuting check is the detector effect \((1, 1, 1)\): the Pauli flips at both times \(t\) and \(t+1\), and the measurement fault flips the recorded outcome at \(t + \tfrac {1}{2}\).
The Pauli pair effect on a commuting check is the detector effect \((0, 0, 0)\): no flips.
The initialization fault plus \(X_e\) effect is the detector effect \((1, 0, 1)\): the initialization fault is equivalent to an \(X\) error, so \(X + X = I\).
The final boundary \(X_e\) pair effect is the detector effect \((1, 0, 1)\): \(X_e\) at time \(t\) with a \(Z_e\) measurement fault.
The bare \(Z_e\) effect is the detector effect \((0, 0, 0)\): since \(Z|0\rangle = |0\rangle \), the eigenvalue is \(+1\) and no detector is flipped.
The \(Z_e\) pair effect with \(A_v\) measurement faults is the detector effect \((1, 1, 1)\): the measurement faults are placed to cancel all detector effects.
\(\mathrm{netEffect}_{c^t}(\text{spaceStabilizerEffect}) = 0\).
By simplification using the definitions of spaceStabilizerEffect and netEffect_ct, we compute \(0 + 0 = 0\).
\(\mathrm{netEffect}_{c^{t+1}}(\text{spaceStabilizerEffect}) = 0\).
By simplification using the definitions of spaceStabilizerEffect and netEffect_ct1, we compute \((0 + 0) + (0 + 0) = 0\).
\(\mathrm{netEffect}_{c^t}(\text{pauliPairEffect\_ anticommuting}) = 0\).
The measurement at \(t - \tfrac {1}{2}\) is at the base value (unaffected), and the recorded outcome at \(t + \tfrac {1}{2}\) is \(\text{base} + 1 + 1 = \text{base}\) (the Pauli flip and measurement fault cancel).
By simplification using the definition of pauliPairEffect_anticommuting and netEffect_ct, the net effect is \(1 + 1 = 0\) in \(\mathbb {Z}_2\). This is verified by computation (decide).
\(\mathrm{netEffect}_{c^{t+1}}(\text{pauliPairEffect\_ anticommuting}) = 0\).
The recorded outcome at \(t + \tfrac {1}{2}\) equals base (as above), and the physical state at \(t + \tfrac {3}{2}\) is \(\text{base} + 1 + 1 = \text{base}\) (since \(P\) at \(t\) and \(P\) at \(t+1\) give \(P^2 = I\)).
By simplification using the definition of pauliPairEffect_anticommuting and netEffect_ct1, the net effect is \((1 + 1) + (1 + 1) = 0 + 0 = 0\) in \(\mathbb {Z}_2\). This is verified by computation.
\(\mathrm{netEffect}_{c^t}(\text{pauliPairEffect\_ commuting}) = 0\).
By simplification, the net effect is \(0 + 0 = 0\).
\(\mathrm{netEffect}_{c^{t+1}}(\text{pauliPairEffect\_ commuting}) = 0\).
By simplification, the net effect is \((0 + 0) + (0 + 0) = 0\).
\(\mathrm{netEffect}_{c^t}(\text{initFaultPlusXeEffect}) = 0\).
This corresponds to \(|0\rangle \to |1\rangle \to |0\rangle \): the initialization fault flips the state, and \(X_e\) flips it back.
By simplification using the definition of initFaultPlusXeEffect and netEffect_ct, the net effect is \(1 + 1 = 0\) in \(\mathbb {Z}_2\). This is verified by computation.
\(\mathrm{netEffect}_{c^t}(\text{finalXePairEffect}) = 0\).
By simplification, the net effect is \(1 + 1 = 0\) in \(\mathbb {Z}_2\). This is verified by computation.
\(\mathrm{netEffect}_{c^t}(\text{bareZeEffect}) = 0\), since \(Z|0\rangle = |0\rangle \).
By simplification, the net effect is \(0 + 0 = 0\).
\(\mathrm{netEffect}_{c^t}(\text{zePairEffect\_ Av}) = 0\).
By simplification, the net effect is \(1 + 1 = 0\) in \(\mathbb {Z}_2\). This is verified by computation.
\(\mathrm{netEffect}_{c^{t+1}}(\text{zePairEffect\_ Av}) = 0\).
By simplification, the net effect is \((1 + 1) + (1 + 1) = 0 + 0 = 0\) in \(\mathbb {Z}_2\). This is verified by computation.
A generator \(g\) has empty syndrome if, for every relevant detector, the net \(\mathbb {Z}_2\) effect is zero. Specifically:
For spaceStabilizer: \(\mathrm{netEffect}_{c^t} = 0\) and \(\mathrm{netEffect}_{c^{t+1}} = 0\) using the space stabilizer effect;
For Pauli pair generators (pauliPairOriginal, vertexXPair, vertexZPair, edgeXPair, edgeZPair): both anticommuting and commuting detector effects vanish at \(c^t\) and \(c^{t+1}\);
For initFaultPlusXe: \(\mathrm{netEffect}_{c^t} = 0\);
For boundary \(Z_e\) pair generators: both \(c^t\) and \(c^{t+1}\) effects vanish;
For finalBoundaryXePair: \(\mathrm{netEffect}_{c^t} = 0\);
For finalBoundaryBareZe: \(\mathrm{netEffect}_{c^t} = 0\).
For every spacetime stabilizer generator \(g\), \(\mathrm{generatorHasEmptySyndrome}(g)\) holds.
We proceed by case analysis on the generator \(g\):
spaceStabilizer: follows directly from spaceStabilizer_ct_satisfied and spaceStabilizer_ct1_satisfied.
pauliPairOriginal: follows from pauliPair_anticommuting_ct_satisfied, pauliPair_anticommuting_ct1_satisfied, pauliPair_commuting_ct_satisfied, and pauliPair_commuting_ct1_satisfied.
vertexXPair, vertexZPair, edgeXPair, edgeZPair: same as above, using the anticommuting and commuting detector effect theorems.
initFaultPlusXe: follows from initFaultPlusXe_ct_satisfied.
initialBoundaryZePair, finalBoundaryZePair: follows from zePairEffect_Av_ct_satisfied and zePairEffect_Av_ct1_satisfied.
finalBoundaryXePair: follows from finalXePair_ct_satisfied.
finalBoundaryBareZe: follows from bareZe_ct_satisfied.
The logical effect of a generator \(g\) is a value in \(\mathbb {Z}_2\) (\(0\) = trivial, \(1\) = nontrivial). For every generator type, \(\mathrm{logicalEffect}(g) = 0\):
Stabilizers act as the identity on the code space;
Pauli pairs cancel: \(P \cdot P = I\);
Initialization fault plus \(X\) cancels;
Boundary generators act on qubits being initialized or discarded.
For every spacetime stabilizer generator \(g\), \(\mathrm{logicalEffect}(g) = 0\).
We case-split on \(g\). In each case, \(\mathrm{logicalEffect}(g) = 0\) holds by reflexivity (it is definitionally equal to \(0\)).
A spacetime fault pattern consists of:
A finite set of Pauli faults, indexed by (qubit location, time step, Pauli kind);
A finite set of measurement faults, indexed by (check type, time step).
A fault pattern \(p\) has empty syndrome if for every detector \((c, t)\):
The net Pauli parity of a fault pattern \(p\) at qubit \(q\) is the number of Pauli faults at \(q\) modulo \(2\):
A value of \(0\) means an even number of Paulis (they cancel: \(P \cdot P = I\)), while \(1\) means a nontrivial Pauli remains.
A fault pattern \(p\) preserves logical information if either:
For every qubit \(q\), \(\mathrm{netPauliParity}(p, q) = 0\) (all Paulis cancel pairwise), or
\(p.\mathrm{pauliFaults} = \emptyset \) (the pattern is a pure space stabilizer with no explicit Pauli faults).
A local spacetime stabilizer is a spacetime fault pattern \(p\) that:
has bounded support (automatic since fault sets are finite),
has empty syndrome, and
preserves logical information.
The function \(\mathrm{generatorToPattern}\) converts each generator type to an explicit fault pattern. For example:
spaceStabilizer: empty Pauli faults, empty measurement faults;
pauliPairOriginal(\(q\), \(P\), \(t\), \(S\)): Pauli faults \(\{ (q, t, P), (q, t{+}1, P)\} \), measurement faults \(\{ (s_j, t) : j \in S\} \);
vertexXPair(\(v\), \(t\), \(S\)): Pauli faults \(\{ (\mathrm{vertex}(v), t, X), (\mathrm{vertex}(v), t{+}1, X)\} \) with deformed check measurement faults;
initFaultPlusXe(\(e\), \(t\)): single Pauli fault \(\{ (\mathrm{edge}(e), t, X)\} \);
and analogously for all other generator types.
The product of two fault patterns \(p\) and \(q\) is their disjoint union:
A fault pattern \(p\) is generated by the listed generators if there exists a list of generators whose patterns product to \(p\):
For any qubit \(q\), Pauli type \(P\), time step \(t\), positive integer \(k\), and function assigning anticommuting checks, there exist \(k\) spacetime stabilizer generators (each a pauliPairOriginal). That is:
Each factor \((P_{t+i}, P_{t+i+1})\) is a pauliPairOriginal generator at adjacent time steps.
We construct the list using List.ofFn, producing for each \(i \in \mathrm{Fin}(k)\) the generator \(\texttt{pauliPairOriginal}(q, P, t + i, \mathrm{anticommChecks}(i))\). The list has length \(k\) by List.length_ofFn.
The net Pauli effect of \(k\) adjacent pairs is \(P\) at the first time and \(P\) at the last time: each intermediate \(P\) appears twice and cancels (\(P \cdot P = I\)). Formally, \(\mathrm{foldl}(\lambda \, \mathrm{acc}\, \_ .\; \mathrm{acc} + 2,\; 0,\; [0, \ldots , k{-}1]) = 2k\).
We proceed by induction on \(k\).
Base case (\(k = 0\)): By simplification, \(\mathrm{foldl}\) over the empty list returns \(0 = 2 \cdot 0\).
Inductive step: We simplify using List.range_succ, List.foldl_append, List.foldl_cons, and List.foldl_nil. The result then follows by linear arithmetic from the inductive hypothesis.
For any fault pattern \(p\) satisfying \(\mathrm{hasEmptySyndrome}(p)\) and \(\mathrm{preservesLogical}(p)\), there exists a list of spacetime stabilizer generators \(\mathrm{gens}\) such that every generator in the list has empty syndrome and preserves logical information:
Let \(p\) be a fault pattern with empty syndrome and preserved logical information. We introduce \(p\) and its hypotheses and proceed by cases on whether \(p.\mathrm{pauliFaults} = \emptyset \).
Case 1: If \(p.\mathrm{pauliFaults} = \emptyset \) (space-only stabilizer), we take \(\mathrm{gens} = []\) (the empty list). Both universally quantified conditions hold vacuously since no generator appears in the empty list (by simp).
Case 2: If \(p.\mathrm{pauliFaults} \neq \emptyset \) (time-extended stabilizer), we construct generators from the Pauli faults. For each Pauli fault \((q, t, P) \in p.\mathrm{pauliFaults}\), we produce a pauliPairOriginal\((q, P, t, \emptyset )\) generator. For each such generator:
Empty syndrome: We unfold generatorHasEmptySyndrome and the result follows directly from pauliPair_anticommuting_ct_satisfied, pauliPair_anticommuting_ct1_satisfied, pauliPair_commuting_ct_satisfied, and pauliPair_commuting_ct1_satisfied.
Preserves logical: \(\mathrm{logicalEffect}\) of pauliPairOriginal is \(0\) by reflexivity.
If every generator \(g\) in a list \(\mathrm{gens}\) satisfies \(\mathrm{logicalEffect}(g) = 0\), then the \(\mathbb {Z}_2\)-sum of their logical effects is \(0\):
We proceed by induction on \(\mathrm{gens}\).
Base case (\(\mathrm{gens} = []\)): By simplification, the fold over the empty list returns \(0\).
Inductive step (\(\mathrm{gens} = g :: gs\)): We simplify using List.map_cons and List.foldl_cons. From the hypothesis, \(\mathrm{logicalEffect}(g) = 0\) (applied via List.mem_cons_self). We establish that the hypothesis holds for all \(\mathrm{gen} \in gs\) via List.mem_cons_of_mem. Simplifying with \(\mathrm{logicalEffect}(g) = 0\) and add_zero, the goal reduces to the fold over \(gs\), which equals \(0\) by the inductive hypothesis.
The listed generators form a generating set of local spacetime stabilizers for the fault-tolerant gauging measurement procedure:
Empty Syndrome: For every generator \(g\), \(\mathrm{generatorHasEmptySyndrome}(g)\) holds.
Preserves Logical: For every generator \(g\), \(\mathrm{logicalEffect}(g) = 0\).
Part (a) follows directly from generator_has_empty_syndrome, and part (b) follows directly from generator_preserves_logical. The pair is assembled as \(\langle \)generator_has_empty_syndrome, generator_preserves_logical\(\rangle \).
For any fault pattern satisfying the local spacetime stabilizer conditions (empty syndrome and preserving logical information), there exists a decomposition into the listed generators. This shows the generators form a generating set spanning all local stabilizers.
This follows directly from generators_span_local_stabilizers.
For any fault pattern \(p\) with empty syndrome and preserving logical information, there exists a list of generators \(\mathrm{gens}\) such that:
every generator in \(\mathrm{gens}\) has empty syndrome,
every generator in \(\mathrm{gens}\) preserves logical information, and
the \(\mathbb {Z}_2\)-sum of their logical effects is \(0\).
From generators_span_local_stabilizers applied to \(p\) with the given hypotheses, we obtain a list \(\mathrm{gens}\) with properties (1) and (2). Property (3) then follows from product_preserves_logical applied to \(\mathrm{gens}\) with property (2).
Every local spacetime stabilizer \(\mathrm{stab}\) can be decomposed into a list of generators, each of which has empty syndrome and preserves logical information.
This follows from generators_span_local_stabilizers applied to \(\mathrm{stab}.\mathrm{toSpacetimeFaultPattern}\) with its hasEmptySyndrome_prop and preservesLogical_prop.