Rem_15: Hypergraph Generalization of Gauging Measurement #
Statement #
The gauging measurement procedure can be generalized by replacing the graph G with a hypergraph to measure multiple operators simultaneously.
Setup: Consider an abelian group of operators describable as the X-type operators that commute with an auxiliary set of k-local Z-type checks. Using the stabilizer formalism, this group can be equivalently formulated as the kernel of a sparse linear map over F_2.
Procedure: For qubits, this is equivalent to replacing the graph G with a hypergraph. The generalized gauging procedure performs a code deformation by:
- Introducing a qubit for each hyperedge
- Measuring into new Gauss's law checks A_v given by the product of X on a vertex and the adjacent hyperedges: A_v = X_v ∏_{e ∋ v, e ∈ hyperedges} X_e
Application: This allows measuring any abelian group of commuting logical operators that can be characterized as the kernel of a sparse parity-check matrix.
Main Definitions #
Hypergraph: A hypergraph with vertices V and hyperedges HHypergraph.incidenceMatrix: The incidence matrix over ZMod 2Hypergraph.parityCheckMap: The parity-check map H_Z : Z₂^V → Z₂^HHypergraph.gaussLawSupport: The support of a generalized Gauss law operator A_vHypergraph.toGraphWithCycles: A graph is a special case of a hypergraph (with edge size 2)
Key Properties #
gaussLaw_commute_hypergraph: All generalized A_v commute (symplectic inner product = 0)gaussLaw_vertex_support_sum_allOnes: ∑_v A_v support = all-ones on V (represents L)kernel_is_abelian_group: The abelian group of operators equals ker(H_Z)ofGraphWithCycles_isGraphLike: Ordinary graphs embed into hypergraphskLocal_means_sparse_row: k-local Z-checks ↔ sparse parity-check matrix
Hypergraph Definition #
A hypergraph generalizes a graph: each hyperedge connects a set of vertices (not necessarily just two).
A hypergraph on vertices V with hyperedges indexed by H. Each hyperedge is a subset of vertices (represented as a Finset V).
- incidence : H → Finset V
Each hyperedge maps to its set of incident vertices
Instances For
Binary Vector Types #
Binary vectors over vertices: Z₂^V
Equations
Instances For
Binary vectors over hyperedges: Z₂^H
Equations
Instances For
Incidence Matrix and Parity-Check Map #
The incidence matrix M over F_2 has M_{h,v} = 1 iff vertex v ∈ hyperedge h. The parity-check map is the corresponding linear map Z₂^V → Z₂^H.
The incidence matrix entry: 1 if vertex v is in hyperedge h, 0 otherwise
Instances For
The parity-check map H_Z : Z₂^V → Z₂^H. For each hyperedge h, (H_Z(x))h = ∑{v ∈ h} x_v (mod 2). This is the linear map whose kernel characterizes the abelian group.
Equations
- HG.parityCheckMap = { toFun := fun (x : QEC1.HypergraphGeneralization.Hypergraph.VectorV V) (h : H) => ∑ v ∈ HG.incidence h, x v, map_add' := ⋯, map_smul' := ⋯ }
Instances For
Kernel Characterization #
The abelian group of X-type operators that commute with all k-local Z-type checks is exactly the kernel of the parity-check map.
The kernel of the parity-check map: vectors x ∈ Z₂^V such that H_Z(x) = 0. This characterizes the abelian group of commuting X-type operators.
Equations
- HG.operatorKernel = HG.parityCheckMap.ker
Instances For
Membership in the kernel: x ∈ ker(H_Z) iff ∑_{v ∈ h} x_v = 0 for all hyperedges h
k-Locality #
A Z-type check is k-local if the corresponding hyperedge has at most k vertices.
A hyperedge h is k-local if it contains at most k vertices
Instances For
The hypergraph is k-local if all hyperedges are k-local
Equations
- HG.isKLocalHypergraph k = ∀ (h : H), HG.isKLocal k h
Instances For
k-locality means the parity-check map is sparse: each row has at most k nonzero entries
Generalized Gauss Law Operators #
In the hypergraph setting, the Gauss law operator A_v is: A_v = X_v ∏_{e ∋ v, e ∈ hyperedges} X_e
The support on vertex qubits: 1 at v, 0 elsewhere The support on hyperedge qubits: 1 at each hyperedge containing v
The set of hyperedges incident to vertex v
Equations
- HG.incidentHyperedges v = {h : H | v ∈ HG.incidence h}
Instances For
The vertex support of the generalized Gauss law operator A_v: a binary vector on V with 1 at v, 0 elsewhere (represents X_v)
Equations
- _HG.gaussLawVertexSupport v = Pi.single v 1
Instances For
The hyperedge support of A_v: 1 at each hyperedge containing v, 0 elsewhere
Instances For
Properties of Generalized Gauss Law Operators #
All generalized Gauss law operators commute. Two Pauli operators P₁, P₂ commute iff the symplectic inner product of their supports is 0 (mod 2). Since A_v are purely X-type operators (no Z component), the Z-type support of each A_v is empty. Therefore the symplectic overlap is always 0.
We model this as: the Z-type support of each A_v is the zero vector (trivial), so the symplectic inner product ∑_i (X-support₁(i) * Z-support₂(i) + Z-support₁(i) * X-support₂(i)) is 0 for any pair of A_v operators.
Equations
- _HG.gaussLawZTypeSupport _v = 0
Instances For
Equations
- _HG.gaussLawZTypeHyperedgeSupport _v = 0
Instances For
The symplectic inner product of two Pauli operators on the vertex qubits. For X-type support vectors xS₁, xS₂ and Z-type support vectors zS₁, zS₂, the symplectic product is ∑_i (xS₁(i) * zS₂(i) + zS₁(i) * xS₂(i)).
Equations
- QEC1.HypergraphGeneralization.Hypergraph.symplecticInnerProductV xS₁ zS₁ xS₂ zS₂ = ∑ i : V, (xS₁ i * zS₂ i + zS₁ i * xS₂ i)
Instances For
The symplectic inner product on hyperedge qubits.
Equations
- QEC1.HypergraphGeneralization.Hypergraph.symplecticInnerProductH xS₁ zS₁ xS₂ zS₂ = ∑ i : H, (xS₁ i * zS₂ i + zS₁ i * xS₂ i)
Instances For
All generalized Gauss law operators A_v commute: the symplectic inner product of A_v₁ and A_v₂ is 0 on both vertex and hyperedge qubits. This is because A_v has trivial (zero) Z-type support.
The sum of all vertex supports is the all-ones vector on V. This corresponds to ∏_v A_v having L = ∏_v X_v as its vertex component.
The sum of all hyperedge supports gives the cardinality (mod 2) at each hyperedge, because each hyperedge h has |incidence h| vertices contributing. In the graph case (each hyperedge has exactly 2 vertices), this is 0 mod 2.
For the graph case: when every hyperedge has exactly 2 vertices, the sum of all hyperedge supports is 0 (mod 2).
Graphs as Special Case of Hypergraphs #
An ordinary graph (where every edge connects exactly 2 vertices) is a hypergraph where every hyperedge has exactly 2 vertices.
A hypergraph is graph-like if every hyperedge has exactly 2 vertices
Equations
- HG.isGraphLike = ∀ (h : H), (HG.incidence h).card = 2
Instances For
Construct a hypergraph from a GraphWithCycles
Equations
- QEC1.HypergraphGeneralization.Hypergraph.ofGraphWithCycles G = { incidence := fun (e : E) => G.edgeVertices e }
Instances For
A hypergraph derived from a graph is graph-like
Parity Check Matrix Sparsity #
The parity-check matrix is sparse when the hypergraph is k-local.
For a k-local hypergraph, the parity-check matrix has at most k entries per row
The total number of nonzero entries in the incidence matrix is bounded by k * |H|
Application: Measuring Abelian Groups via Kernel #
Any abelian group of commuting X-type logical operators that can be characterized as the kernel of a sparse parity-check matrix can be measured via hypergraph gauging.
The kernel of the parity-check map is a submodule (abelian group over F_2)
Zero vector is always in the kernel
The kernel is closed under addition (symmetric difference of supports)
Generalized Gauging Procedure #
The generalized gauging procedure introduces one qubit per hyperedge and measures generalized Gauss law operators A_v = X_v ∏_{e ∋ v} X_e.
The number of new qubits introduced = number of hyperedges
Equations
- _HG.newQubitCount = Fintype.card H
Instances For
The number of new checks = number of vertices (one A_v per vertex)
Equations
- _HG.newCheckCount = Fintype.card V
Instances For
The generalized coboundary map δ : Z₂^V → Z₂^H for the hypergraph. For vertex v, δ(v) = indicator vector of hyperedges containing v. This is the transpose of the incidence matrix.
Equations
- HG.hypergraphCoboundary = { toFun := fun (x : QEC1.HypergraphGeneralization.Hypergraph.VectorV V) (h : H) => ∑ v ∈ HG.incidence h, x v, map_add' := ⋯, map_smul' := ⋯ }
Instances For
The hypergraph coboundary equals the parity-check map
The all-ones vector on V represents the logical operator L = ∏_v X_v
Equations
Instances For
The logical operator L is in the kernel iff every hyperedge has even cardinality
In the graph case, the logical is always in the kernel (each edge has 2 vertices)
Summary #
This formalization captures Remark 15 about the hypergraph generalization of gauging:
Definitions:
Hypergraph: A hypergraph with vertices V and hyperedges H, each hyperedge is a set of verticesparityCheckMap: The sparse linear map H_Z : Z₂^V → Z₂^H whose kernel characterizes the abelian group of operatorsoperatorKernel: The kernel of H_Z, representing the abelian group of commuting operatorsgaussLawVertexSupport/gaussLawHyperedgeSupport: X-type support vectors for A_v operatorsgaussLawZTypeSupport/gaussLawZTypeHyperedgeSupport: Z-type support (trivially zero for A_v)symplecticInnerProductV/symplecticInnerProductH: Symplectic inner product for commutativity
Key Results:
gaussLaw_commute_hypergraph: A_v operators commute (symplectic inner product = 0)mem_operatorKernel_iff: x ∈ ker(H_Z) iff ∑_{v ∈ h} x_v = 0 for all hyperedges hkernel_is_abelian_group: The kernel characterizes commuting operators (x ∈ S ↔ H_Z(x) = 0)gaussLaw_vertex_support_sum_allOnes: Product of all A_v vertex parts gives LofGraphWithCycles_isGraphLike: Ordinary graphs embed as graph-like hypergraphskLocal_means_sparse_row: k-local checks correspond to sparse parity-check matrixlogical_in_kernel_iff: L ∈ ker(H_Z) iff all hyperedges have even cardinality