Definition 2: Gauss's Law and Flux Operators #
Statement #
Given a graph G = (V, E) and a collection of cycles C, we define Pauli operators on the extended qubit system V ⊕ E (vertex qubits + edge qubits):
- Gauss's law operator A_v = X_v ∏_{e ∋ v} X_e for each vertex v ∈ V
- Flux operator B_p = ∏_{e ∈ p} Z_e for each cycle p ∈ C
Main Results #
gaussLawOp: the Gauss's law operator A_vfluxOp: the flux operator B_pgaussLawOp_is_pure_X: A_v is pure X-type (zVec = 0)fluxOp_is_pure_Z: B_p is pure Z-type (xVec = 0)gaussLaw_commute: [A_v, A_v'] = 0flux_commute: [B_p, B_p'] = 0gauss_flux_commute: [A_v, B_p] = 0gaussLaw_product: ∏v A_v = L = ∏{v ∈ V} X_v (the logical operator)
Corollaries #
- Support characterization lemmas
- X-support and Z-support computations
Extended qubit type: V ⊕ G.edgeSet #
The extended qubit type: vertex qubits (Sum.inl v) and edge qubits (Sum.inr e).
Equations
- GaussFlux.ExtQubit G = (V ⊕ ↑G.edgeSet)
Instances For
Equations
- GaussFlux.instFintypeExtQubit G = inferInstanceAs (Fintype (V ⊕ ↑G.edgeSet))
Equations
Incident edges #
The finset of edges incident to vertex v.
Equations
- GaussFlux.incidentEdges G v = {e : ↑G.edgeSet | v ∈ ↑e}
Instances For
Gauss's Law Operator #
The Gauss's law operator A_v on the extended system V ⊕ E. A_v = X_v ∏_{e ∋ v} X_e: acts with X on vertex qubit v and all incident edge qubits.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A_v is pure X-type: its Z-vector is identically zero.
Flux Operator #
The flux operator B_p on the extended system V ⊕ E. B_p = ∏_{e ∈ p} Z_e: acts with Z on all edge qubits in cycle p.
Equations
Instances For
B_p is pure Z-type: its X-vector is identically zero.
Pure X-type / Z-type Properties #
A_v is pure X-type: it has no Z support.
B_p is pure Z-type: it has no X support.
Commutation: Gauss operators mutually commute #
All Gauss's law operators mutually commute: [A_v, A_w] = 0. This holds because they are all pure X-type.
Commutation: Flux operators mutually commute #
All flux operators mutually commute: [B_p, B_q] = 0. This holds because they are all pure Z-type.
Commutation: Gauss and flux operators commute #
The number of edges in cycle p that are incident to vertex v. For a cycle, this is always even (0 or 2).
Instances For
Gauss's law operators commute with flux operators: [A_v, B_p] = 0. This holds because the symplectic inner product counts the overlap of X-support(A_v) with Z-support(B_p), which equals the number of edges in p incident to v. For a valid cycle, this is always even.
X-support characterization #
The X-support of A_v on vertex qubits is {v}.
The X-support of A_v on edge qubits is the set of incident edges.
The Z-support of B_p on edge qubits is the set of edges in the cycle.
The Z-support of B_p on vertex qubits is empty.
Gauss Product Property #
The logical operator L = ∏_{v ∈ V} X_v on the extended system: acts X on all vertex qubits and I on all edge qubits.
Equations
- GaussFlux.logicalOp G = { xVec := fun (q : GaussFlux.ExtQubit G) => match q with | Sum.inl val => 1 | Sum.inr val => 0, zVec := 0 }
Instances For
Helper: The product of Gauss's law operators is computed pointwise as the sum of their x-vectors in ZMod 2. On vertex qubits, each vertex v contributes 1 exactly once (from A_v). On edge qubits, each edge e = {a,b} contributes 1 from A_a and 1 from A_b, so the sum is 0 (mod 2).
Gauss product property (clean version): ∏_{v ∈ V} A_v = L, the logical X operator on all vertices. Each vertex gets X exactly once; each edge gets X² = I.
Logical operator is pure X-type #
The logical operator L is pure X-type.
Commutation of logical with flux #
The logical operator commutes with all flux operators.
Summary: All Commutation Relations #
All three commutation relations hold simultaneously: (i) [A_v, A_w] = 0 for all v, w ∈ V (ii) [B_p, B_q] = 0 for all p, q ∈ C (iii) [A_v, B_p] = 0 for all v ∈ V, p ∈ C
Relationship to Boundary Maps #
The Gauss's law operator A_v has X-support related to the coboundary map: the X-support on edges is exactly the set of edges incident to v, which is described by δ(1_v) in the boundary map formalism.
The flux operator B_p has Z-support related to the second boundary map: the Z-support on edges is exactly the set of edges in cycle p, which is described by ∂₂(1_p) in the boundary map formalism.