Notation: Stabilizer Codes #
Statement #
An [[n,k,d]] stabilizer code encodes k logical qubits into n physical qubits with code distance d. The code is specified by a set of commuting Pauli operators called stabilizer checks {s_i} that generate the stabilizer group S. The codespace is the simultaneous +1 eigenspace of all stabilizer checks. A logical operator is a Pauli operator that commutes (in the full Pauli group) with all stabilizers but is not itself a stabilizer (i.e., lies in the centralizer C(S) but not in S). The distance d is the minimum weight of a non-trivial logical operator. A quantum low-density parity-check (qLDPC) code is a stabilizer code where each check has weight bounded by a constant w and each qubit participates in at most a constant number c of checks.
Main Results #
PauliOp.symplecticInner: symplectic inner product determining commutationPauliOp.PauliCommute: two Pauli operators commute iff symplectic inner product is 0StabilizerCode: stabilizer code structure with checks and commutativity conditionStabilizerCode.stabilizerGroup: the stabilizer group generated by the checksStabilizerCode.inCentralizer: centralizer membership predicateStabilizerCode.isLogicalOp: predicate for non-trivial logical operatorsStabilizerCode.distance: the code distanceIsQLDPC: predicate characterizing quantum LDPC codes
Corollaries #
- Basic properties of symplectic inner product
- Stabilizer group contained in centralizer
- Check weight and qubit degree characterizations
Symplectic inner product #
In the full Pauli group (with phases), two Pauli operators P, Q commute iff their symplectic inner product ⟨P, Q⟩ = Σ_v (P.x_v · Q.z_v + P.z_v · Q.x_v) = 0 in ZMod 2.
The symplectic inner product of two Pauli operators, determining commutation in the
full Pauli group: P and Q commute iff symplecticInner P Q = 0.
Instances For
Two Pauli operators commute (in the full Pauli group, including phases) iff their symplectic inner product vanishes.
Equations
- P.PauliCommute Q = (P.symplecticInner Q = 0)
Instances For
Symplectic inner product is additive in the first argument (over ZMod 2).
Symplectic inner product is additive in the second argument (over ZMod 2).
Stabilizer Code #
A stabilizer code on qubits labeled by type V, specified by a finite index type I for stabilizer checks and a map from I to Pauli operators, with the condition that all checks pairwise commute (in the full Pauli group).
- I : Type u_3
Index type for stabilizer checks
Finite type instance for check indices
The stabilizer checks: each index i gives a Pauli operator s_i
- checks_commute (i j : self.I) : (self.check i).PauliCommute (self.check j)
All stabilizer checks pairwise commute in the full Pauli group
Instances For
The stabilizer group #
The stabilizer group S is the subgroup of PauliOp V generated by the checks.
Equations
Instances For
Centralizer: operators commuting with all stabilizers #
A Pauli operator P is in the centralizer of the stabilizer code if it commutes (in the full Pauli group) with every stabilizer check.
Equations
- C.inCentralizer P = ∀ (i : C.I), P.PauliCommute (C.check i)
Instances For
The set of Pauli operators in the centralizer of the stabilizer code.
Equations
- C.centralizerSet = {P : PauliOp V | C.inCentralizer P}
Instances For
Logical operators #
A Pauli operator P is a non-trivial logical operator if:
- It commutes with all stabilizers (is in the centralizer)
- It is not in the stabilizer group
- It is not the identity
Equations
- C.isLogicalOp P = (C.inCentralizer P ∧ P ∉ C.stabilizerGroup ∧ P ≠ 1)
Instances For
Code distance #
The code distance is the minimum weight of a non-trivial logical operator. Defined as the infimum of the set of weights. Returns 0 if no logical operators exist.
Instances For
Code parameters [[n, k, d]] #
A stabilizer code has parameters [[n, k, d]] if it has n physical qubits, encodes k logical qubits, and has distance d.
Instances For
Check weight and qubit participation #
The weight of the i-th stabilizer check.
Equations
- C.checkWeight i = (C.check i).weight
Instances For
The number of checks that act non-trivially on qubit v.
Instances For
Quantum LDPC codes #
A quantum low-density parity-check (qLDPC) code is a stabilizer code where:
- Each check has weight bounded by a constant w (each check acts on at most w qubits)
- Each qubit participates in at most a constant number c of checks
Equations
- IsQLDPC C w c = ((∀ (i : C.I), C.checkWeight i ≤ w) ∧ ∀ (v : V), C.qubitDegree v ≤ c)
Instances For
Basic properties #
The identity is not a logical operator.
The stabilizer group is contained in the centralizer.
A check is not a logical operator.