Documentation

QEC1.Remarks.Rem_21_CSSCodeInitializationAsGauging

Rem_21: CSS Code Initialization as Gauging #

Statement #

Standard CSS code initialization can be implemented via hypergraph gauging.

Standard initialization: A CSS code is typically initialized by preparing |0⟩^⊗n and measuring all X-type checks.

Gauging formulation:

  1. Start with a trivial code having one dummy vertex for each X-type check of the target CSS code
  2. Perform the generalized gauging measurement using the hypergraph corresponding to the Z-type checks of the CSS code
  3. The ungauging step performs readout measurement of Z on all qubits

Steane-style measurement via gauging: The state preparation and readout gauging procedure can be combined with another gauging measurement to implement a Steane-style measurement of a stabilizer group:

  1. Perform state preparation of an ancilla code block via gauging as described above
  2. Perform a gauging measurement of XX on pairs of matching qubits between the data code block and the ancilla code block
  3. Perform the ungauging step to read out Z on all ancilla qubits

This connection shows that many existing fault-tolerant gadgets can be unified under the gauging framework.

Formalization Approach #

We formalize the algebraic content underlying CSS initialization as gauging:

  1. CSS code structure with X-type and Z-type checks satisfying orthogonality
  2. The Z-check initialization hypergraph
  3. Core theorem: CSS orthogonality implies X-checks lie in ker(H_Z), making them measurable via the hypergraph gauging procedure
  4. Dummy vertex structure for the trivial starting code
  5. Steane-style measurement: data + ancilla blocks with pairwise XX operators

Main Results #

Section 1: CSS Code Structure #

A CSS (Calderbank-Shor-Steane) code has two types of check generators:

The CSS condition requires: every X-check commutes with every Z-check. In binary vector language: |supp(X_check) ∩ supp(Z_check)| ≡ 0 (mod 2).

A CSS code with separate X-type and Z-type checks satisfying orthogonality.

Instances For

    Weight of the i-th X-type check

    Equations
    Instances For

      Weight of the j-th Z-type check

      Equations
      Instances For

        Section 2: Initialization Hypergraph #

        For CSS initialization via gauging, the Z-type checks define the hypergraph:

        This hypergraph encodes the "gauging structure" for initialization.

        The initialization hypergraph: vertices are qubits, hyperedges are Z-check supports.

        Equations
        Instances For

          The initialization hypergraph has numQubits vertices

          The initialization hypergraph has numZChecks hyperedges

          Section 3: X-Checks in Kernel of H_Z #

          The key algebraic fact: CSS orthogonality ensures that every X-type check is in the kernel of the Z-check parity-check map (H_Z).

          This is why gauging with the Z-check hypergraph allows measuring X-checks: operators in ker(H_Z) commute with all Z-type hyperedge operators.

          The i-th X-check as a binary vector on qubits: 1 at qubit v if v ∈ supp(X_i)

          Equations
          Instances For

            Core Theorem: X-checks are in the kernel of the initialization hypergraph.

            H_Z(x_i)j = ∑{v ∈ supp(Z_j)} x_i(v) = |supp(X_i) ∩ supp(Z_j)| (mod 2) = 0

            This follows directly from CSS orthogonality.

            X-checks are measurable via the hypergraph gauging procedure.

            Sum (XOR) of X-checks is also in the kernel (closure under addition).

            Section 4: Dummy Vertex Structure #

            In the gauging interpretation, we start with a "trivial code" having one dummy vertex per X-type check. Each dummy corresponds to an X-check measurement. The dummy vertices are initialized in |+⟩ and have no effect on the gauging outcome (measuring X on |+⟩ always returns +1).

            Vertex type for CSS initialization: physical qubits plus one dummy per X-check

            Instances For
              Equations
              • One or more equations did not get rendered due to their size.
              Instances For

                Fintype instance for CSSInitVertex

                Equations
                • One or more equations did not get rendered due to their size.

                Total initialization vertices = physical qubits + dummies (one per X-check)

                There are exactly numXChecks dummy vertices

                Section 5: Gauging Procedure for Initialization #

                The three-step gauging procedure for CSS initialization:

                Step 1: Start with a trivial code. The dummy vertices represent the X-check generators. The initialization state is |0⟩^⊗n on qubits and |+⟩ on dummies.

                Step 2: Perform generalized gauging with Z-check hypergraph. This measures the generalized Gauss's law operators A_v = X_v ∏_{e ∋ v} X_e. Since X-checks are in ker(H_Z), they are preserved by the gauging.

                Step 3: Ungauging readout: measure Z on all qubits.

                The key algebraic property connecting these steps is that X-checks being in ker(H_Z) means they are measurable via the gauging procedure.

                The gauging procedure for CSS initialization introduces numZChecks new qubits (one per hyperedge = one per Z-check).

                The gauging procedure introduces numQubits new checks (one Gauss law operator A_v per qubit vertex).

                The sum of all Gauss law vertex supports equals the all-ones vector, representing L = ∏_v X_v (the product of all X operators).

                Section 6: Steane-Style Measurement via Gauging #

                Steane's method for fault-tolerant measurement of a stabilizer group:

                1. Initialize ancilla code block via CSS gauging (as above)
                2. Perform gauging measurement of XX on matching qubit pairs between data and ancilla blocks
                3. Ungauge to read out Z on all ancilla qubits

                We formalize the data/ancilla block structure and the pairwise XX operators.

                Vertex type for Steane measurement: data block + ancilla block, both with n qubits

                Instances For
                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For

                    Fintype instance for SteaneVertex

                    Equations
                    • One or more equations did not get rendered due to their size.

                    Total Steane vertices = 2n (data block + ancilla block)

                    Pairwise XX operator support: 1 on data[i] and ancilla[i], 0 elsewhere. Represents the XX operator on matching qubit pairs for Steane measurement.

                    Equations
                    Instances For

                      Weight of pairwise XX operator is 2: each XX acts on exactly 2 qubits.

                      All pairwise XX operators commute with each other (they are X-type operators).

                      Section 7: Steane Gauging Hypergraph #

                      The Steane measurement can be formulated as a gauging measurement using a hypergraph on the combined data + ancilla vertex set. The hyperedges are the pairwise XX connections between matching qubits.

                      The Steane gauging hypergraph: vertices are data + ancilla qubits, hyperedges correspond to pairwise XX connections.

                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For

                        Each hyperedge of the Steane hypergraph has exactly 2 vertices.

                        The Steane hypergraph is graph-like (all edges have size 2).

                        The all-ones vector on all Steane vertices is in the kernel (each edge has even cardinality).

                        Section 8: Three-Step Steane Procedure as Gauging #

                        The complete Steane-style measurement decomposes into three gauging steps:

                        1. State preparation: Initialize ancilla code block via CSS gauging (prepare |0⟩^⊗n, gauge with Z-check hypergraph to measure X-checks)

                        2. Entangling step: Gauge with pairwise XX between data and ancilla (this is equivalent to transversal CNOT in Steane's original)

                        3. Readout: Ungauge by measuring Z on all ancilla qubits

                        We formalize the key algebraic property: the composition of these steps preserves the measurability of the stabilizer group.

                        The three steps of Steane measurement via gauging.

                        Instances For
                          Equations
                          • One or more equations did not get rendered due to their size.

                          There are exactly 3 steps in the Steane gauging procedure.

                          @[simp]

                          Readout support is nonzero only on ancilla qubits

                          The number of qubits measured in readout is n (all ancilla qubits).

                          Section 9: Unification Under Gauging Framework #

                          The key insight: standard fault-tolerant gadgets (CSS initialization, Steane measurement) are special cases of the hypergraph gauging framework from Rem_15.

                          CSS initialization is a special case of hypergraph gauging: the Z-check hypergraph has the property that all X-checks are in its kernel (measurable group).

                          The measurable group for CSS initialization contains all X-check combinations.

                          The Steane gauging hypergraph is 2-local (graph-like).

                          Combining CSS initialization and Steane measurement: the pairwise XX operators have even overlap with the Steane hypergraph (since each XX acts on exactly one vertex per edge).

                          Sum of all pairwise XX operators is the all-ones vector (product of all XX).

                          Summary #

                          This formalization captures Remark 21 about CSS code initialization as gauging:

                          Definitions:

                          Key Results: