Remark 7: Codespace Dimension After Gauging #
Statement #
The deformed code on the extended qubit system V ⊕ E(G) has parameters that differ from the original code. If the original code has parameters [[n, k, d]] with J checks, and the gauging graph G = (V, E) has a cycle collection C that generates the full cycle space (so |C| = |E| - |V| + 1 for a connected graph), then the deformed code has n + |E| physical qubits and |V| + |C| + |J| checks, giving:
k_new = (n + |E|) - (|V| + |C| + |J|) = k - 1
The gauging measurement consumes exactly one logical qubit.
Main Results #
codespace_dimension_change_after_gauging: The nominal parameter count k drops by 1deformed_numQubits_eq: numQubits of deformed code = n + |E|deformed_numChecks_eq: numChecks of deformed code = |V| + |C| + |J|cycle_rank_property: The relation |C| = |E| - |V| + 1 for a complete cycle basis
Restatement of basic parameter counts #
The number of physical qubits in the deformed code equals |V| + |E|.
The number of checks in the deformed code equals |V| + |C| + |J|.
Cycle rank property #
For a connected graph G with a complete cycle basis C (meaning the cycles in C generate all cycles), we have |C| = |E| - |V| + 1. This is the cycle rank (first Betti number) of the graph.
The cycle rank property: |C| = |E| - |V| + 1, stated as |C| + |V| = |E| + 1. This holds when C is a complete cycle basis for a connected graph G. We state it as an equation on natural numbers, avoiding subtraction issues.
Equations
- CodespaceDimension.CycleRankProperty G = (Fintype.card C + Fintype.card V = Fintype.card ↑G.edgeSet + 1)
Instances For
Main theorem: codespace dimension changes by 1 #
Codespace dimension after gauging: If the original code on n qubits with J checks has nominal parameter k = n - J, and the gauging graph G has a cycle collection C satisfying the cycle rank property |C| + |V| = |E| + 1, then the deformed code has nominal parameter k_new = (n + |E|) - (|V| + |C| + |J|) = k - 1.
Stated without subtraction: if n = k + J and |C| + |V| = |E| + 1, then (n + |E|) = (k - 1) + (|V| + |C| + |J|) when k ≥ 1.
We state this as: the deformed code's numQubits - numChecks equals the original code's (numQubits - numChecks) minus 1.
Alternative formulation: the number of additional checks exceeds the number of additional qubits by exactly 1, relative to the original code. Specifically: (|V| + |C| + |J|) - |J| = (|V| + |E|) - n + 1 i.e., the net check increase minus net qubit increase equals 1.
Corollaries #
When the original code has k = 0 (no logical qubits), the deformed code has numQubits ≤ numChecks (i.e., the subtraction underflows to 0).
The deformed code numChecks is always at least 1 more than what would preserve k, i.e., numChecks - numQubits of the deformed code ≥ numChecks - numQubits of the original code + 1 (in the appropriate sense).
The net effect on parameters: if the original code encodes k logical qubits and k ≥ 1, the deformed code encodes k - 1 logical qubits. Stated using the HasParameters predicate from Rem_3.
The number of additional qubits (|E|) and additional checks (|V| + |C|) satisfy the relation: additional checks = additional qubits + 1.
Expressed differently: the edge count equals the vertex + cycle count minus 1.