Remark 19: Bivariate Bicycle Code Notation #
Statement #
The Bivariate Bicycle (BB) code construction uses cyclic permutation matrices and their tensor products to define CSS codes on 2ℓm qubits.
Main Results #
BBMonomial: the monomial group M = Z_ℓ × Z_m indexing qubits and checksBBGroupAlgebra: the group algebra F₂[x,y]/(x^ℓ-1, y^m-1) as ZMod 2-valued functionsBBQubit: the qubit type for a BB code (L ⊕ R, each indexed by M)bbConvolve: polynomial multiplication in the group algebra (convolution)bbTranspose: the transpose operation A(x,y) ↦ A(x⁻¹,y⁻¹)bbCheckX,bbCheckZ: X-type and Z-type parity checksBBCode: the bivariate bicycle code as a stabilizer codepauliXBB,pauliZBB: the Pauli notation X(p,q) and Z(p,q)
Corollaries #
bbConvolve_comm: convolution is commutative (the monomial group is abelian)bbTranspose_involutive: transpose is an involutionbbCode_numQubits: the code has 2ℓm physical qubitsbbChecks_commute: X and Z checks commute (CSS property)
The monomial group and group algebra #
The monomial group M = Z_ℓ × Z_m, representing monomials x^a y^b with a ∈ {0,...,ℓ-1} and b ∈ {0,...,m-1}. We use ZMod for the additive group structure (addition corresponds to monomial multiplication).
Equations
- BivariateBicycle.BBMonomial ℓ m = (ZMod ℓ × ZMod m)
Instances For
The group algebra F₂[x,y]/(x^ℓ-1, y^m-1). An element is a function M → ZMod 2, where the value at (a,b) is the coefficient of x^a y^b.
Equations
- BivariateBicycle.BBGroupAlgebra ℓ m = (BivariateBicycle.BBMonomial ℓ m → ZMod 2)
Instances For
The monomial x^a y^b as an element of the group algebra: the indicator function of the single element (a, b).
Instances For
The unit polynomial 1 = x^0 y^0.
Equations
Instances For
Addition in the group algebra (pointwise XOR, since coefficients are in ZMod 2).
Equations
- BivariateBicycle.bbAdd p q = p + q
Instances For
Convolution (polynomial multiplication) in F₂[x,y]/(x^ℓ-1, y^m-1). (p * q)(γ) = Σ_{α} p(α) · q(γ - α) where subtraction is in Z_ℓ × Z_m. This corresponds to matrix multiplication of the associated circulant-like matrices.
Equations
- BivariateBicycle.bbConvolve p q γ = ∑ α : BivariateBicycle.BBMonomial ℓ m, p α * q (γ - α)
Instances For
The support of a polynomial: the set of monomials with nonzero coefficient.
Equations
- BivariateBicycle.bbSupport p = {α : BivariateBicycle.BBMonomial ℓ m | p α ≠ 0}
Instances For
The support as a finset (decidable).
Equations
- BivariateBicycle.bbSupportFinset p = {α : BivariateBicycle.BBMonomial ℓ m | p α ≠ 0}
Instances For
The transpose operation: A^T(x,y) = A(x⁻¹, y⁻¹). Since x^{-1} = x^{ℓ-1} and y^{-1} = y^{m-1} in the quotient ring, this maps the coefficient of x^a y^b to x^{-a} y^{-b}.
Equations
- BivariateBicycle.bbTranspose p α = p (-α)
Instances For
Transpose properties #
Convolution properties #
The BB qubit type #
The qubit type for a BB code: Left (L) qubits and Right (R) qubits, each indexed by the monomial group M = Z_ℓ × Z_m.
Equations
Instances For
The number of physical qubits in a BB code is 2ℓm.
Pauli operators on BB codes #
The X-type Pauli operator X(p, q) on a BB code. Acts with X on L qubit γ iff p(γ) = 1, and on R qubit δ iff q(δ) = 1. This is a pure X-type operator (zVec = 0).
Equations
- BivariateBicycle.pauliXBB p q = { xVec := Sum.elim p q, zVec := 0 }
Instances For
The Z-type Pauli operator Z(p, q) on a BB code. Acts with Z on L qubit γ iff p(γ) = 1, and on R qubit δ iff q(δ) = 1. This is a pure Z-type operator (xVec = 0).
Equations
- BivariateBicycle.pauliZBB p q = { xVec := 0, zVec := Sum.elim p q }
Instances For
The shifted polynomial: α-shift of p is p(· - α), i.e., convolution with δ_α #
Left-shift a polynomial by monomial α: (shift_α p)(γ) = p(γ - α). This corresponds to multiplication by x^a y^b in the group algebra.
Equations
- BivariateBicycle.bbShift α p γ = p (γ - α)
Instances For
X-type and Z-type checks of the BB code #
The X-type check indexed by α ∈ M. Its X-support on L qubits is the support of αA, and on R qubits is the support of αB. Using the shift representation: check (α, X) = X(shift_α A, shift_α B).
Equations
Instances For
The Z-type check indexed by β ∈ M. Its Z-support on L qubits is the support of βB^T, and on R qubits is the support of βA^T. Using the shift representation: check (β, Z) = Z(shift_β B^T, shift_β A^T).
Equations
Instances For
X checks are pure X-type, Z checks are pure Z-type #
CSS commutation: X checks commute with Z checks #
X checks commute with each other (both pure X, so symplectic inner product = 0).
Z checks commute with each other (both pure Z, so symplectic inner product = 0).
The CSS commutation condition: X check α commutes with Z check β iff Σ_γ A(γ-α)·B(-γ+β) + Σ_δ B(δ-α)·A(-δ+β) = 0 in ZMod 2. This is the condition H_X · H_Z^T = 0, equivalently A·B^T = B·A^T.
The CSS condition: AB^T = BA^T (in the group algebra) #
The CSS condition for a BB code: A * B^T = B * A^T as convolutions. This is the necessary and sufficient condition for all X and Z checks to commute.
Equations
Instances For
Under the CSS condition, all X and Z checks commute. In fact, for BB codes over abelian groups the commutation is automatic: each sum equals the convolution bbConvolve evaluated at β-α, and by commutativity of convolution their sum vanishes in characteristic 2.
The BB code check index and the full stabilizer code #
Check index for a BB code: X checks indexed by M, Z checks indexed by M.
Equations
Instances For
The number of checks in a BB code is 2ℓm.
The check map for a BB code: X checks on the left, Z checks on the right.
Equations
- BivariateBicycle.bbCheck A B (Sum.inl α) = BivariateBicycle.bbCheckX A B α
- BivariateBicycle.bbCheck A B (Sum.inr β) = BivariateBicycle.bbCheckZ A B β
Instances For
Under the CSS condition, all checks in a BB code pairwise commute.
A BB code forms a valid stabilizer code under the CSS condition.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Properties of the cyclic shift operators x and y #
The x-shift operator: multiplication by x = x^1 y^0 in the group algebra. Maps coefficient at (a, b) to (a-1, b), i.e., shifts the first coordinate.
Equations
Instances For
The y-shift operator: multiplication by y = x^0 y^1 in the group algebra. Maps coefficient at (a, b) to (a, b-1), i.e., shifts the second coordinate.
Equations
Instances For
Transpose as variable inversion #
The transpose satisfies A^T(γ) = A(-γ), which corresponds to substituting x → x⁻¹ = x^{ℓ-1} and y → y⁻¹ = y^{m-1}.
Transpose of a monomial: (x^a y^b)^T = x^{-a} y^{-b}.
Convolution distributes over transposition #
The labeling convention #
Left qubit labeled by γ ∈ M.
Equations
Instances For
Right qubit labeled by δ ∈ M.
Equations
Instances For
X check labeled by α ∈ M.
Equations
Instances For
Z check labeled by β ∈ M.
Equations
Instances For
The check at index (α, X) is the X check for α.
The check at index (β, Z) is the Z check for β.
The CSS condition is equivalent to AB^T = BA^T #
The CSS condition states that A * B^T = B * A^T in the group algebra. This ensures the parity check matrices H_X and H_Z satisfy H_X · H_Z^T = 0. Equivalently: for every γ ∈ M, Σ_α A(α) · B(α - γ) = Σ_α B(α) · A(α - γ).
Pauli notation properties #
X(p, q) is pure X-type.
Z(p, q) is pure Z-type.
X(0, 0) is the identity operator.
Z(0, 0) is the identity operator.
Two X-type Pauli operators always commute.
Two Z-type Pauli operators always commute.
The symplectic inner product of X(p₁,q₁) and Z(p₂,q₂) equals Σ_γ p₁(γ)·p₂(γ) + Σ_δ q₁(δ)·q₂(δ), which is ⟨p₁,p₂⟩ + ⟨q₁,q₂⟩ where ⟨·,·⟩ is the standard inner product in ZMod 2.
X check is exactly X(shift_α A, shift_α B) #
Z check is exactly Z(shift_β B^T, shift_β A^T).
Monomial group cardinality #
The monomial group has ℓm elements.
Check acts on qubit characterization #
X check (α, X) acts on L qubit γ iff A(γ - α) = 1, i.e., γ is in the support of the shifted polynomial αA.
X check (α, X) acts on R qubit δ iff B(δ - α) = 1, i.e., δ is in the support of the shifted polynomial αB.
Z check (β, Z) acts on L qubit γ iff B^T(γ - β) = B(β - γ) = 1, i.e., γ is in the support of the shifted polynomial β B^T.
Z check (β, Z) acts on R qubit δ iff A^T(δ - β) = A(β - δ) = 1, i.e., δ is in the support of the shifted polynomial β A^T.
Self-inverse properties #
X checks are self-inverse: (α, X) · (α, X) = I.
Z checks are self-inverse: (β, Z) · (β, Z) = I.