Def_14: Gross Code #
Statement #
The Gross code is a specific [[144, 12, 12]] Bivariate Bicycle code, so named because a 'gross' is a dozen dozens (144).
Parameters: ℓ = 12, m = 6, giving n = 2 · 12 · 6 = 144 qubits.
Polynomials: A = x³ + y² + y, B = y³ + x² + x
Logical operators: A convenient basis of logical operators uses the polynomials: f = 1 + x + x² + x³ + x⁶ + x⁷ + x⁸ + x⁹ + (x + x⁵ + x⁷ + x¹¹)y³ g = x + x²y + (1 + x)y² + x²y³ + y⁴ h = 1 + (1 + x)y + y² + (1 + x)y³
Then for any monomials α, β ∈ M:
- X̄_α = X(αf, 0) are X-type logical operators of weight 12
- X̄'_β = X(βg, βh) are X-type logical operators
- Z̄_β = Z(βh^T, βg^T) are Z-type logical operators
- Z̄'_α = Z(0, αf^T) are Z-type logical operators
Main Definitions #
GrossCode: The Gross code as a BivariateBicycleCode with ℓ = 12, m = 6GrossCode.polyF: Polynomial f for X-type logical operatorsGrossCode.polyG: Polynomial g for X-type logical operatorsGrossCode.polyH: Polynomial h for X-type logical operatorsGrossCode.logicalX: X̄_α = X(αf, 0)GrossCode.logicalXPrime: X̄'_β = X(βg, βh)GrossCode.logicalZ: Z̄_β = Z(βh^T, βg^T)GrossCode.logicalZPrime: Z̄'_α = Z(0, αf^T)
Corollaries #
GrossCode.numQubits_eq: The number of physical qubits is 144GrossCode.ell_val: ℓ = 12GrossCode.m_val: m = 6
Section 1: Parameters #
The Gross code has ℓ = 12, m = 6.
The ℓ parameter of the Gross code.
Equations
Instances For
The m parameter of the Gross code.
Equations
Instances For
The monomial set for the Gross code.
Instances For
The group algebra for the Gross code.
Equations
Instances For
Section 2: Convenience for building polynomials #
We use the monomial function from the BB code definitions.
Shorthand for monomials x^a y^b in the Gross code group algebra.
Equations
Instances For
Section 3: The polynomials A and B #
A = x³ + y² + y B = y³ + x² + x
Polynomial A = x³ + y² + y for the Gross code.
Equations
Instances For
Polynomial B = y³ + x² + x for the Gross code.
Equations
Instances For
Section 4: The Gross Code #
The Gross code is a BB code with the above parameters and polynomials.
The Gross code: a [[144, 12, 12]] Bivariate Bicycle code.
Equations
- QEC1.GrossCode.grossCode = { polyA := QEC1.GrossCode.polyA, polyB := QEC1.GrossCode.polyB }
Instances For
Section 5: Parameter verification #
The number of physical qubits in the Gross code is 144.
The number of left qubits is 72.
The number of right qubits is 72.
The number of X checks is 72.
The number of Z checks is 72.
Section 6: Logical operator polynomials #
f = 1 + x + x² + x³ + x⁶ + x⁷ + x⁸ + x⁹ + (x + x⁵ + x⁷ + x¹¹)y³ g = x + x²y + (1 + x)y² + x²y³ + y⁴ h = 1 + (1 + x)y + y² + (1 + x)y³
Polynomial f for X-type logical operators. f = 1 + x + x² + x³ + x⁶ + x⁷ + x⁸ + x⁹ + (x + x⁵ + x⁷ + x¹¹)y³
Equations
- One or more equations did not get rendered due to their size.
Instances For
Polynomial g for logical operators. g = x + x²y + (1 + x)y² + x²y³ + y⁴
Equations
- QEC1.GrossCode.polyG = QEC1.GrossCode.mon 1 0 + QEC1.GrossCode.mon 2 1 + QEC1.GrossCode.mon 0 2 + QEC1.GrossCode.mon 1 2 + QEC1.GrossCode.mon 2 3 + QEC1.GrossCode.mon 0 4
Instances For
Polynomial h for logical operators. h = 1 + (1 + x)y + y² + (1 + x)y³
Equations
- QEC1.GrossCode.polyH = QEC1.GrossCode.mon 0 0 + QEC1.GrossCode.mon 0 1 + QEC1.GrossCode.mon 1 1 + QEC1.GrossCode.mon 0 2 + QEC1.GrossCode.mon 0 3 + QEC1.GrossCode.mon 1 3
Instances For
Section 7: Logical Operators #
For any monomials α, β ∈ M:
- X̄_α = X(αf, 0) are X-type logical operators of weight 12
- X̄'_β = X(βg, βh) are X-type logical operators
- Z̄_β = Z(βh^T, βg^T) are Z-type logical operators
- Z̄'_α = Z(0, αf^T) are Z-type logical operators
Multiplication of a monomial by a group algebra element (left multiplication). α · p shifts all monomials in p by α.
Equations
- QEC1.GrossCode.monomialMul α p = Finsupp.mapDomain (fun (x : QEC1.BivariateBicycle.M QEC1.GrossCode.ell QEC1.GrossCode.m_param) => x + α) p
Instances For
X̄_α = X(αf, 0): X-type logical operator of weight 12.
Equations
- QEC1.GrossCode.logicalX α = { leftPoly := QEC1.GrossCode.monomialMul α QEC1.GrossCode.polyF, rightPoly := 0 }
Instances For
X̄'_β = X(βg, βh): X-type logical operator.
Equations
- QEC1.GrossCode.logicalXPrime β = { leftPoly := QEC1.GrossCode.monomialMul β QEC1.GrossCode.polyG, rightPoly := QEC1.GrossCode.monomialMul β QEC1.GrossCode.polyH }
Instances For
Z̄_β = Z(βh^T, βg^T): Z-type logical operator.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Z̄'_α = Z(0, αf^T): Z-type logical operator.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Section 8: Symmetry #
The symmetry in the BB code construction means that if gauging measurements are constructed for X̄_α and X̄'_β, the same Tanner graph connectivity works for Z̄'_α and Z̄_β.
The symmetry arises from the relationship between X and Z logical operators: X̄_α uses (αf, 0) while Z̄'_α uses (0, αf^T), X̄'_β uses (βg, βh) while Z̄_β uses (βh^T, βg^T).
The Z̄'_α right polynomial is the transpose of the X̄_α left polynomial.
Structural symmetry: logicalX uses (αf, 0) and logicalZPrime uses (0, αf^T).
Structural symmetry: logicalXPrime uses (βg, βh) and logicalZ uses (βh^T, βg^T).
Section 9: Code parameters record #
The Gross code is a [[144, 12, 12]] code. We record the claimed parameters.
The claimed parameters of the Gross code: [[144, 12, 12]].
Equations
- QEC1.GrossCode.grossCodeParams = { n := 144, k := 12, d := 12 }
Instances For
144 = 12 × 12, i.e., a gross is a dozen dozens.
The number of physical qubits matches the code parameter n.
Section 10: Simp lemmas for the Gross code polynomials #
The logicalZPrime operator has zero left component.