42 Rem 20: The Gross Code Definition
The Gross code is a \([\! [144, 12, 12]\! ]\) bivariate bicycle (BB) code with parameters \(\ell = 12\), \(m = 6\). The polynomials defining the code are \(A = x^3 + y^2 + y\) and \(B = y^3 + x^2 + x\) in \(\mathbb {F}_2[x,y]/(x^{12}-1, y^6-1)\). This section defines the Gross code, its logical operators, and establishes key properties including weight, type purity, and centralizer membership.
The monomial group for the Gross code is \(\operatorname {BBMonomial}(12, 6) = \mathbb {Z}_{12} \times \mathbb {Z}_6\).
The group algebra for the Gross code is \(\operatorname {BBGroupAlgebra}(12, 6) = \mathbb {F}_2[x,y]/(x^{12}-1, y^6-1)\).
The qubit type for the Gross code is \(\operatorname {BBQubit}(12, 6)\), consisting of left (\(L\)) and right (\(R\)) qubits indexed by elements of \(\mathbb {Z}_{12} \times \mathbb {Z}_6\).
The polynomial \(A \in \mathbb {F}_2[x,y]/(x^{12}-1, y^6-1)\) is defined as
The polynomial \(B \in \mathbb {F}_2[x,y]/(x^{12}-1, y^6-1)\) is defined as
For all \(\alpha , \beta \in \mathbb {Z}_{12} \times \mathbb {Z}_6\), the X-check \(\operatorname {bbCheckX}(A, B, \alpha )\) and the Z-check \(\operatorname {bbCheckZ}(A, B, \beta )\) commute as Pauli operators.
We rewrite using the characterization that X and Z checks commute if and only if a certain convolution sum vanishes. This convolution condition is then verified by native computation.
For all check indices \(i, j\), the checks \(\operatorname {bbCheck}(A, B, i)\) and \(\operatorname {bbCheck}(A, B, j)\) commute.
We case-split on whether each check index is an X-check (\(\operatorname {inl}\)) or a Z-check (\(\operatorname {inr}\)):
Case \((\operatorname {inl}~ \alpha _1, \operatorname {inl}~ \alpha _2)\): Both are X-checks, so they commute by the general BB X-check commutativity theorem.
Case \((\operatorname {inl}~ \alpha , \operatorname {inr}~ \beta )\): This follows from the XZ commutation theorem above.
Case \((\operatorname {inr}~ \beta , \operatorname {inl}~ \alpha )\): By commutativity of PauliCommute, this reduces to the XZ case.
Case \((\operatorname {inr}~ \beta _1, \operatorname {inr}~ \beta _2)\): Both are Z-checks, so they commute by the general BB Z-check commutativity theorem.
The Gross code is a stabilizer code with check index set \(\operatorname {BBCheckIndex}(12,6)\), check map \(\operatorname {bbCheck}(A, B)\), and the proof that all checks pairwise commute.
The Gross code has \(n = 144\) physical qubits: \(\operatorname {grossCode.numQubits} = 144\).
By simplification using the definition of \(\operatorname {numQubits}\) as the cardinality of the qubit type \(\operatorname {BBQubit}(12,6) = (\mathbb {Z}_{12} \times \mathbb {Z}_6) \oplus (\mathbb {Z}_{12} \times \mathbb {Z}_6)\), we compute \(|\mathbb {Z}_{12}| \cdot |\mathbb {Z}_6| \cdot 2 = 12 \cdot 6 \cdot 2 = 144\) by numerical computation.
The Gross code has \(144\) checks: \(\operatorname {grossCode.numChecks} = 144\).
By simplification using the definition of \(\operatorname {numChecks}\) as the cardinality of \(\operatorname {BBCheckIndex}(12,6) = (\mathbb {Z}_{12} \times \mathbb {Z}_6) \oplus (\mathbb {Z}_{12} \times \mathbb {Z}_6)\), we compute \(12 \cdot 6 \cdot 2 = 144\) by numerical computation.
The logical operator polynomial \(f \in \mathbb {F}_2[x,y]/(x^{12}-1, y^6-1)\) is defined as
The logical operator polynomial \(g \in \mathbb {F}_2[x,y]/(x^{12}-1, y^6-1)\) is defined as
The logical operator polynomial \(h \in \mathbb {F}_2[x,y]/(x^{12}-1, y^6-1)\) is defined as
For \(\alpha \in \mathbb {Z}_{12} \times \mathbb {Z}_6\), the logical X operator is
where \(\alpha \cdot f\) denotes the shift of \(f\) by \(\alpha \).
For \(\beta \in \mathbb {Z}_{12} \times \mathbb {Z}_6\), the logical X\('\) operator is
For \(\beta \in \mathbb {Z}_{12} \times \mathbb {Z}_6\), the logical Z operator is
where \(h^T\) and \(g^T\) denote the transposes (negation of exponents) of \(h\) and \(g\).
For \(\alpha \in \mathbb {Z}_{12} \times \mathbb {Z}_6\), the logical Z\('\) operator is
For all \(\alpha \), \(\bar{X}_\alpha \) has no Z-support: \((\bar{X}_\alpha ).\operatorname {zVec} = 0\).
By simplification using the definitions of \(\operatorname {logicalXBar}\) and \(\operatorname {pauliXBB}\), the Z-component is identically zero.
For all \(\beta \), \(\bar{X}'_\beta \) has no Z-support: \((\bar{X}'_\beta ).\operatorname {zVec} = 0\).
By simplification using the definitions of \(\operatorname {logicalXBar}'\) and \(\operatorname {pauliXBB}\), the Z-component is identically zero.
For all \(\beta \), \(\bar{Z}_\beta \) has no X-support: \((\bar{Z}_\beta ).\operatorname {xVec} = 0\).
By simplification using the definitions of \(\operatorname {logicalZBar}\) and \(\operatorname {pauliZBB}\), the X-component is identically zero.
For all \(\alpha \), \(\bar{Z}'_\alpha \) has no X-support: \((\bar{Z}'_\alpha ).\operatorname {xVec} = 0\).
By simplification using the definitions of \(\operatorname {logicalZBar}'\) and \(\operatorname {pauliZBB}\), the X-component is identically zero.
For all \(\alpha \) and all \(\delta \in \mathbb {Z}_{12} \times \mathbb {Z}_6\), the X-support of \(\bar{X}_\alpha \) on the right (\(R\)) qubit indexed by \(\delta \) is zero:
By simplification using the definitions of \(\operatorname {logicalXBar}\) and \(\operatorname {pauliXBB}\), the right component of the X-vector is zero since the second argument to \(\operatorname {pauliXBB}\) is \(0\).
For all \(\alpha \) and all \(\gamma \in \mathbb {Z}_{12} \times \mathbb {Z}_6\), the Z-support of \(\bar{Z}'_\alpha \) on the left (\(L\)) qubit indexed by \(\gamma \) is zero:
By simplification using the definitions of \(\operatorname {logicalZBar}'\) and \(\operatorname {pauliZBB}\), the left component of the Z-vector is zero since the first argument to \(\operatorname {pauliZBB}\) is \(0\).
The polynomial \(f\) has exactly 12 nonzero coefficients:
This is verified by native computation.
The polynomial \(A\) has exactly 3 nonzero coefficients:
This is verified by native computation.
The polynomial \(B\) has exactly 3 nonzero coefficients:
This is verified by native computation.
For all \(\alpha \in \mathbb {Z}_{12} \times \mathbb {Z}_6\), the logical operator \(\bar{X}_\alpha \) has weight 12:
By simplification using the definitions of weight and support, the support cardinality of \(\operatorname {pauliXBB}(\alpha \cdot f, 0)\) is shift-invariant. Rewriting using this shift-invariance reduces the computation to the case \(\alpha = 0\), which is verified by native computation to equal 12.
For all \(\alpha \), \(\bar{X}_\alpha \cdot \bar{X}_\alpha = \mathbf{1}\).
Expanding \(\operatorname {logicalXBar}\) and applying the \(\operatorname {pauliXBB}\) multiplication rule, we verify equality by extensionality. For the X-component: on left qubits \((\operatorname {inl}~ \gamma )\), each coefficient is \(f(\gamma - \alpha ) + f(\gamma - \alpha ) = 0\) by characteristic 2; on right qubits \((\operatorname {inr}~ \delta )\), both sides are \(0\). For the Z-component, both sides are \(0\) by the pure X-type property.
For all \(\beta \), \(\bar{X}'_\beta \cdot \bar{X}'_\beta = \mathbf{1}\).
Expanding and applying the \(\operatorname {pauliXBB}\) multiplication rule, we verify by extensionality. For the X-component on left qubits, each coefficient is \(g(\gamma - \beta ) + g(\gamma - \beta ) = 0\); on right qubits, \(h(\delta - \beta ) + h(\delta - \beta ) = 0\), both by characteristic 2. The Z-component is zero on both sides.
For all \(\beta \), \(\bar{Z}_\beta \cdot \bar{Z}_\beta = \mathbf{1}\).
Expanding and applying the \(\operatorname {pauliZBB}\) multiplication rule, we verify by extensionality. The X-component is zero on both sides. For the Z-component on left qubits, \(h^T(\gamma - \beta ) + h^T(\gamma - \beta ) = 0\); on right qubits, \(g^T(\delta - \beta ) + g^T(\delta - \beta ) = 0\), both by characteristic 2.
For all \(\alpha \), \(\bar{Z}'_\alpha \cdot \bar{Z}'_\alpha = \mathbf{1}\).
Expanding and applying the \(\operatorname {pauliZBB}\) multiplication rule, we verify by extensionality. The X-component is zero on both sides. For the Z-component: on left qubits \((\operatorname {inl}~ \gamma )\), both sides are \(0\) since the first argument is \(0\); on right qubits \((\operatorname {inr}~ \delta )\), \(f^T(\delta - \alpha ) + f^T(\delta - \alpha ) = 0\) by characteristic 2.
For all \(\alpha , \beta \), \(\bar{X}_\alpha \) commutes with the X-check at \(\beta \).
By simplification: both operators are pure X-type, so the symplectic inner product vanishes identically.
For all \(\alpha , \beta \), \(\bar{X}_\alpha \) commutes with the Z-check at \(\beta \).
Rewriting the Pauli commutation condition into the symplectic inner product, we expand the definitions. After simplification, the sum splits over \(L\) and \(R\) qubits, and the \(R\) contribution vanishes. The remaining \(L\) contribution reduces by a change of variables \(\delta \mapsto \delta - \alpha \) to the convolution \(\sum _\delta f(\delta ) \cdot B^T(\delta - (\beta - \alpha ))\), which equals zero by the kernel condition \(fB^T = 0\) verified by native computation.
For all \(\alpha \) and all check indices \(i\), \(\bar{X}_\alpha \) commutes with the check at \(i\).
We case-split on whether \(i\) is an X-check or Z-check and apply the respective commutation theorems.
For all \(\alpha , \beta \), \(\bar{X}'_\alpha \) commutes with the X-check at \(\beta \).
Both operators are pure X-type, so the symplectic inner product vanishes identically.
For all \(\alpha , \beta \), \(\bar{X}'_\alpha \) commutes with the Z-check at \(\beta \).
Rewriting the Pauli commutation into the symplectic inner product, we expand definitions and split over qubit types. After the change of variables \(\delta \mapsto \delta - \alpha \), the sum reduces to \(\sum _\delta g(\delta ) B^T(\delta - (\beta - \alpha )) + \sum _\delta h(\delta ) A^T(\delta - (\beta - \alpha ))\), which equals zero by the kernel condition \(gB^T + hA^T = 0\) verified by native computation.
For all \(\beta \) and all check indices \(i\), \(\bar{X}'_\beta \) commutes with the check at \(i\).
We case-split on whether \(i\) is an X-check or Z-check and apply the respective commutation theorems.
For all \(\alpha , \beta \), \(\bar{Z}_\alpha \) commutes with the Z-check at \(\beta \).
Both operators are pure Z-type, so the symplectic inner product vanishes identically.
For all \(\alpha , \beta \), \(\bar{Z}_\alpha \) commutes with the X-check at \(\beta \).
Using commutativity of PauliCommute, we rewrite the symplectic inner product from the X-check’s perspective. Expanding definitions and splitting over qubit types, after the change of variables \(\delta \mapsto \delta - \beta \), the sum reduces to \(\sum _\delta A(\delta ) h^T(\delta - (\alpha - \beta )) + \sum _\delta B(\delta ) g^T(\delta - (\alpha - \beta ))\), which equals zero by the kernel condition \(Ah^T + Bg^T = 0\) verified by native computation.
For all \(\beta \) and all check indices \(i\), \(\bar{Z}_\beta \) commutes with the check at \(i\).
We case-split on whether \(i\) is an X-check or Z-check and apply the respective commutation theorems.
For all \(\alpha , \beta \), \(\bar{Z}'_\alpha \) commutes with the Z-check at \(\beta \).
Both operators are pure Z-type, so the symplectic inner product vanishes identically.
For all \(\alpha , \beta \), \(\bar{Z}'_\alpha \) commutes with the X-check at \(\beta \).
Using commutativity of PauliCommute, we rewrite the symplectic inner product. Expanding definitions and splitting over qubit types, the \(L\) contribution vanishes since the first argument to \(\operatorname {pauliZBB}\) is \(0\). After the change of variables \(\delta \mapsto \delta - \beta \), the remaining \(R\) contribution is \(\sum _\delta B(\delta ) f^T(\delta - (\alpha - \beta ))\), which equals zero by the kernel condition \(Bf^T = 0\) verified by native computation.
For all \(\alpha \) and all check indices \(i\), \(\bar{Z}'_\alpha \) commutes with the check at \(i\).
We case-split on whether \(i\) is an X-check or Z-check and apply the respective commutation theorems.
For all \(\alpha \), \(\bar{X}_\alpha \) is in the centralizer of the Gross code.
Let \(i\) be an arbitrary check index. The result follows directly from the fact that \(\bar{X}_\alpha \) commutes with all checks.
For all \(\beta \), \(\bar{X}'_\beta \) is in the centralizer of the Gross code.
Let \(i\) be an arbitrary check index. The result follows directly from the fact that \(\bar{X}'_\beta \) commutes with all checks.
For all \(\beta \), \(\bar{Z}_\beta \) is in the centralizer of the Gross code.
Let \(i\) be an arbitrary check index. The result follows directly from the fact that \(\bar{Z}_\beta \) commutes with all checks.
For all \(\alpha \), \(\bar{Z}'_\alpha \) is in the centralizer of the Gross code.
Let \(i\) be an arbitrary check index. The result follows directly from the fact that \(\bar{Z}'_\alpha \) commutes with all checks.
Each X-check of the Gross code has weight 6: for all \(\alpha \),
By simplification using the definitions of weight and support, the support cardinality of the X-check is shift-invariant. Rewriting reduces the computation to the case \(\alpha = 0\), which is verified by native computation to equal 6.
For all \(\alpha \in \mathbb {Z}_{12} \times \mathbb {Z}_6\), the following four properties hold simultaneously:
\(\operatorname {weight}(\bar{X}_\alpha ) = 12\),
\((\bar{X}_\alpha ).\operatorname {zVec} = 0\) (pure X-type),
\(\forall \delta ,\; (\bar{X}_\alpha ).\operatorname {xVec}(\operatorname {inr}~ \delta ) = 0\) (acts only on \(L\) qubits),
\(|\operatorname {supp}(A)| = 3\).
Since \(\bar{X}_\alpha \) acts only on \(L\) qubits and each \(L\) qubit participates in at most \(|\operatorname {supp}(A)| = 3\) X-type checks, the Tanner subgraph on the support of \(\bar{X}_\alpha \) has limited expansion.
This is the conjunction of the four previously established results: the weight theorem, the pure X-type theorem, the \(L\)-qubit-only theorem, and the support cardinality of \(A\).
The Gross code has 144 qubits and 144 checks:
This is the conjunction of the two previously established parameter theorems.