Def_3: Flux Operators #
Statement #
Given a connected graph $G = (V_G, E_G)$ with a generating set of cycles $\{p\}_C$ (where $C = |E_G| - |V_G| + 1$ is the number of independent cycles by Euler's formula for connected graphs), the flux operators are the set $\mathcal{B} = \{B_p\}_{p \in C}$ where: $$B_p = \prod_{e \in p} Z_e$$ Here $Z_e$ is the Pauli-$Z$ operator on the edge qubit $e$, and the product is over all edges $e$ that belong to cycle $p$.
The flux operators arise from the initial state $|0\rangle^{\otimes E_G}$ of the edge qubits:
- Initially, $Z_e |0\rangle_e = |0\rangle_e$ for each edge, so each $Z_e$ is a stabilizer.
- After measuring the Gauss's law operators $A_v$ (which involve $X_e$ terms), individual $Z_e$ operators are no longer stabilizers.
- However, products $B_p = \prod_{e \in p} Z_e$ over cycles remain stabilizers because they commute with all $A_v$: $[B_p, A_v] = 0$ for all $p, v$.
To verify: $B_p$ and $A_v$ commute because the number of edges in cycle $p$ incident to vertex $v$ is always even (either 0 or 2), so the number of anticommuting $X_e$-$Z_e$ pairs is even.
Main Definitions #
fluxOperator_edgeSupport: The Z-support of flux operator B_p on edge qubitsfluxOperator_vertexSupport: The X-support of B_p (always zero since B_p is Z-type)independentCycleCount: C = |E| - |V| + 1 (Euler's formula)
Key Properties #
flux_hermitian: B_p² = I (Hermitian with eigenvalues ±1)flux_commute: [B_p, B_q] = 0 for all p, q (Z-type operators always commute)flux_commutes_with_gaussLaw: [B_p, A_v] = 0 for all p, v
Corollaries #
flux_stabilizes_initial_state: Each B_p stabilizes |0⟩^⊗Eflux_commutation_reason: Edges in cycle p incident to v form an even set
Flux Operator Support #
A flux operator B_p is a Z-type Pauli operator. We represent it by its support:
- On vertex qubits: 0 everywhere (B_p has no X component)
- On edge qubits: 1 at edges in cycle p, 0 elsewhere
In the binary vector representation (Rem_3), the Z-support encodes where Z operators act.
Euler's Formula for Connected Graphs #
For a connected graph with |V| vertices and |E| edges, the number of independent cycles (first Betti number / cyclomatic number) is C = |E| - |V| + 1.
This is a consequence of Euler's formula: V - E + F = 2 for planar graphs, where F includes the outer face. For general connected graphs, it follows from spanning tree arguments: a spanning tree has |V| - 1 edges, so there are |E| - (|V| - 1) = |E| - |V| + 1 edges outside the spanning tree, each creating one independent cycle.
The number of independent cycles in a connected graph according to Euler's formula. For a connected graph: C = |E| - |V| + 1. We represent this as an integer to handle the subtraction correctly.
Equations
- GraphWithCycles.independentCycleCount = ↑(Fintype.card E) - ↑(Fintype.card V) + 1
Instances For
The vertex support of flux operator B_p: zero everywhere. B_p is a Z-type operator and has no X component on vertices.
Equations
- _G.fluxOperator_vertexSupport _p = 0
Instances For
The edge support of flux operator B_p: 1 at edges in cycle p, 0 elsewhere. This represents B_p = ∏_{e ∈ p} Z_e.
Equations
Instances For
Basic Properties of Flux Operator Support #
The edge support at an edge e
Property 1: B_p² = I (Hermitian with eigenvalues ±1) #
In the binary vector representation over ZMod 2:
- Z² = I means the support XOR'd with itself gives 0
- Since x + x = 0 in ZMod 2 for any x, we have B_p² = I
This implies B_p is Hermitian (since Z† = Z, products of Z are Hermitian) and has eigenvalues ±1 (from B² = I, any eigenvalue λ satisfies λ² = 1).
B_p² = I on edge support: support + support = 0 (in ZMod 2)
Property 1: B_p is Hermitian with eigenvalues ±1. Represented by B_p² = I, which in ZMod 2 is: 2 • support = 0.
Property 2: All B_p mutually commute #
For Pauli operators, [A, B] = 0 iff the symplectic form ω(A, B) ≡ 0 (mod 2), where: ω(A, B) = |supp_X(A) ∩ supp_Z(B)| + |supp_Z(A) ∩ supp_X(B)|
Since flux operators are Z-type (only Z, no X), they have:
- supp_X(B_p) = ∅ for all p
Therefore ω(B_p, B_q) = |∅ ∩ supp_Z(B_q)| + |supp_Z(B_p) ∩ ∅| = 0.
The X-support of a flux operator on vertices is empty (Z-type operators have no X component)
Equations
- _G.flux_XSupport_vertex _p = ∅
Instances For
The X-support on edges is also empty
Equations
- _G.flux_XSupport_edge _p = ∅
Instances For
The symplectic form between two flux operators. For Z-type operators: ω(B_p, B_q) = |X_p ∩ Z_q| + |Z_p ∩ X_q| = 0 + 0 = 0
Equations
- G.flux_symplectic p q = (G.flux_XSupport_edge q).card + (G.flux_XSupport_edge p).card
Instances For
The symplectic form is zero for Z-type operators
Property 2: Two flux operators commute. [B_p, B_q] = 0 since ω(B_p, B_q) = 0 (Z-type operators always commute).
Key Property: Flux Operators Commute with Gauss Law Operators #
For B_p and A_v to commute, we need the symplectic form ω(B_p, A_v) ≡ 0 (mod 2).
ω(B_p, A_v) = |supp_X(B_p) ∩ supp_Z(A_v)| + |supp_Z(B_p) ∩ supp_X(A_v)|
Since B_p is Z-type (supp_X(B_p) = ∅) and A_v is X-type (supp_Z(A_v) = ∅):
- First term: |∅ ∩ ∅| = 0
- Second term: |supp_Z(B_p) ∩ supp_X(A_v)| = |{edges in cycle p} ∩ {edges incident to v}|
The key insight: the number of edges in cycle p incident to vertex v is always even:
- If v is not on cycle p: 0 edges (even)
- If v is on cycle p: exactly 2 edges (the incoming and outgoing edges)
Therefore ω(B_p, A_v) ≡ 0 (mod 2), so [B_p, A_v] = 0.
The set of edges that are both in cycle p and incident to vertex v
Equations
- G.cycleEdgesIncidentTo p v = {e ∈ G.cycles p | G.isIncident e v}
Instances For
The symplectic form between a flux operator B_p and a Gauss law operator A_v. ω(B_p, A_v) = |Z-support of B_p ∩ X-support of A_v on edges| = |edges in cycle p incident to v|
Equations
- G.flux_gaussLaw_symplectic p v = (G.cycleEdgesIncidentTo p v).card
Instances For
The number of edges in a cycle incident to any vertex is even (0 or 2).
For a cycle p and vertex v:
- If v is not on the cycle: 0 edges are incident (even)
- If v is on the cycle: exactly 2 edges are incident (the two edges of the cycle at v)
This is because a cycle visits each of its vertices exactly once, entering and leaving via two distinct edges.
Note: This property requires that cycles are "proper" in the sense that they form a
simple path returning to the start. We state it as a hypothesis since the structure
GraphWithCycles allows arbitrary finsets of edges as "cycles". In practice, cycles
arising from Euler's formula satisfy this property.
Flux operators commute with Gauss law operators. This requires the cycle validity hypothesis that each vertex has 0 or 2 incident edges from the cycle.
Initial State Stabilization #
The flux operators B_p arise from the initial state |0⟩^⊗E of the edge qubits.
Property: Z|0⟩ = |0⟩ (the |0⟩ state is a +1 eigenstate of Z).
Initially:
- Each Z_e stabilizes |0⟩_e (i.e., Z_e|0⟩_e = |0⟩_e)
- Therefore B_p = ∏_{e∈p} Z_e stabilizes |0⟩^⊗E with eigenvalue +1
After measuring A_v:
- Individual Z_e operators are disturbed (no longer stabilizers)
- But products B_p = ∏_{e∈p} Z_e remain stabilizers
This is because B_p commutes with all A_v (shown above), so measuring A_v doesn't disturb the eigenvalue of B_p.
In the computational basis, |0⟩ is a +1 eigenstate of Z. We represent this as: the eigenvalue of B_p on |0⟩^⊗E is (+1)^|p| = +1. The eigenvalue (+1)^|p| = +1 because any power of +1 is +1. In ZMod 2: the phase contribution from Z operators on |0⟩ states is 0.
The initial stabilizer condition: each edge qubit in state |0⟩ is stabilized by Z_e. Represented as: Z|0⟩ = +|0⟩, so measurement outcome is 0 (for +1) in ZMod 2.
Equations
Instances For
Product of initial stabilizer outcomes for B_p is +1 (represented as 0 in ZMod 2)
Relationship to Second Boundary Map #
The edge support of B_p equals ∂₂(p) where ∂₂ is the second boundary map from Def_1. This connects flux operators to the chain complex structure.
The edge support of B_p equals the second boundary of the basis vector at p
The flux operator support is exactly the characteristic vector of the cycle
Support Size #
The weight (support size) of B_p equals the number of edges in cycle p.
The support size of B_p on edge qubits equals the size of cycle p
The weight of flux operator B_p
Equations
- G.fluxOperator_weight p = (G.cycles p).card
Instances For
The weight equals the support size
Product of Flux Operators #
When cycles share edges, the product of their flux operators corresponds to the symmetric difference of their edge sets.
Sum (product) of edge supports of two flux operators
Commutativity Verification Details #
We provide a more detailed verification of why B_p commutes with A_v.
The Z-support of B_p on edges (edges in cycle p)
Equations
- G.flux_ZSupport p = G.cycles p
Instances For
The X-support of A_v on edges (edges incident to v)
Equations
- G.gaussLaw_XSupport v = G.incidentEdges v
Instances For
The intersection of Z-support of B_p and X-support of A_v
Equations
- G.flux_gaussLaw_intersection p v = G.flux_ZSupport p ∩ G.gaussLaw_XSupport v
Instances For
The intersection equals the cycle edges incident to v
The symplectic form equals the cardinality of this intersection
Type Characterization #
Flux operators are purely Z-type: they act only via Pauli-Z operators on edges, with no X or Y components.
B_p is purely Z-type: no X support on vertices
B_p is purely Z-type: no X support on edges
Comparison with Gauss Law Operators #
Gauss law operators A_v are X-type, flux operators B_p are Z-type:
- A_v: X-support on v and incident edges, Z-support empty
- B_p: X-support empty, Z-support on edges in cycle p
This complementary structure ensures they commute.
Summary: A_v is X-type (Z-support empty)
Summary: B_p is Z-type (X-support empty)
Combined: The symplectic form ω(B_p, A_v) counts edges in cycle p incident to v
Valid Cycle Condition #
For the commutativity proof to work, we need that cycles are "valid" in the sense that each vertex has 0 or 2 incident edges from the cycle.
This is automatically satisfied for cycles arising from Euler's formula in a
connected graph, but we state it explicitly since our GraphWithCycles structure
allows arbitrary finsets of edges.
A cycle is valid if every vertex has 0 or 2 incident edges from the cycle
Equations
- G.IsValidCycle p = ∀ (v : V), (G.cycleEdgesIncidentTo p v).card = 0 ∨ (G.cycleEdgesIncidentTo p v).card = 2
Instances For
For valid cycles, flux operators commute with all Gauss law operators
Euler's Formula Statement #
The number of independent cycles in a connected graph is |E| - |V| + 1.
Euler's formula for connected graphs: the cycle rank (first Betti number) is |E| - |V| + 1. This theorem states that if the cycle type C has the correct cardinality, then |C| = |E| - |V| + 1.
Note: For connected graphs with at least one cycle, we have |E| ≥ |V| (spanning tree has |V| - 1 edges, so any additional edge creates a cycle). This hypothesis ensures natural number subtraction matches integer subtraction.
Summary #
The flux operators formalize the second key concept from the gauging measurement protocol:
Definition: B_p = ∏_{e ∈ p} Z_e represented as binary vectors over ZMod 2
- Vertex support: zero everywhere (Z-type has no X component)
- Edge support: boundary₂(e_p) (1 at edges in cycle p, 0 elsewhere)
Property 1 (Hermitian): B_p² = I
- In ZMod 2: support + support = 0
- Implies eigenvalues are ±1
Property 2 (Commutativity among flux ops): [B_p, B_q] = 0 for all p, q
- Z-type operators have zero symplectic form with each other
- All flux operators mutually commute
Property 3 (Commutativity with Gauss law): [B_p, A_v] = 0
- The symplectic form ω(B_p, A_v) = |edges in cycle p incident to v|
- This is always even (0 or 2 for valid cycles)
- Therefore flux and Gauss law operators commute
Initial State: B_p stabilizes |0⟩^⊗E
- Z|0⟩ = |0⟩, so products of Z also stabilize |0⟩
- This stabilizer structure is preserved after measuring A_v
Euler's Formula: C = |E| - |V| + 1 independent cycles
- The cycle type C has this many elements for a connected graph
- Each independent cycle gives one flux operator
Relationship to Chain Complex:
- Edge support of B_p = ∂₂(e_p) (second boundary map from Def_1)
- Connects to the algebraic structure of the graph