Documentation

MerLeanBpqc.Definitions.Def_6_SubsystemCSSCode

Definition 6: Subsystem CSS Code #

A subsystem CSS code is a CSS code (Def_4) where the homology H₀ = ker(H_X) / im(H_Z^T) is split as a direct sum of 𝔽₂-vector spaces H₀ = H₀^L ⊕ H₀^G, where H₀^L corresponds to logical qubits and H₀^G corresponds to gauge qubits.

The nondegenerate pairing between H₀ and the cohomology H⁰ (Def_2) induces a compatible splitting H⁰ = H⁰_L ⊕ H⁰_G, where compatible means H₀^L pairs nondegenerately with H⁰_L and H₀^G pairs nondegenerately with H⁰_G (and the cross-pairings vanish).

The Z-distance d_Z is the minimum Hamming weight of a representative of a homology class whose projection onto H₀^L is nonzero. The X-distance d_X is defined equivalently using the cohomology splitting. The distance is d = min(d_X, d_Z).

Main Definitions #

Homology and cohomology quotient types #

@[reducible, inline]
noncomputable abbrev CSSCode.boundariesInCycles {n rX rZ : } (Q : CSSCode n rX rZ) :

The submodule of boundaries inside cycles for the CSS code homology: im(H_Z^T) ∩ ker(H_X) viewed as a submodule of ker(H_X).

Equations
Instances For
    @[reducible, inline]
    noncomputable abbrev CSSCode.Homology₀ {n rX rZ : } (Q : CSSCode n rX rZ) :

    The homology type H₀ = ker(H_X) / im(H_Z^T).

    Equations
    Instances For
      @[reducible, inline]
      noncomputable abbrev CSSCode.coboundariesInCocycles {n rX rZ : } (Q : CSSCode n rX rZ) :

      The submodule of coboundaries inside cocycles for the CSS code cohomology: im(H_X^T) ∩ ker(H_Z) viewed as a submodule of ker(H_Z), where H_Z = (H_Z^T)^T = dualMap(H_Z^T) and H_X^T = dualMap(H_X).

      Equations
      Instances For
        @[reducible, inline]
        noncomputable abbrev CSSCode.Cohomology₀ {n rX rZ : } (Q : CSSCode n rX rZ) :

        The cohomology type H⁰ = ker(H_Z) / im(H_X^T).

        Equations
        Instances For
          @[reducible, inline]
          noncomputable abbrev CSSCode.homologyMkQ {n rX rZ : } (Q : CSSCode n rX rZ) :

          The quotient map from ker(H_X) to the homology H₀.

          Equations
          Instances For
            @[reducible, inline]
            noncomputable abbrev CSSCode.cohomologyMkQ {n rX rZ : } (Q : CSSCode n rX rZ) :

            The quotient map from ker(H_Z) (= ker(dualMap H_Z^T)) to the cohomology H⁰.

            Equations
            Instances For

              Subsystem CSS Code Structure #

              structure SubsystemCSSCode (n rX rZ : ) extends CSSCode n rX rZ :

              A subsystem CSS code is a CSS code (Def_4) together with a direct sum decomposition of the homology H₀ = H₀^L ⊕ H₀^G and a compatible splitting of the cohomology H⁰ = H⁰_L ⊕ H⁰_G, induced by a linear equivalence H₀ ≃ H⁰ that respects the decomposition.

              The submodule HL (logical) and HG (gauge) of the homology quotient satisfy IsCompl HL HG, giving the direct sum decomposition. The linear equivalence equiv between homology and cohomology (encoding the nondegenerate pairing) induces the cohomology splitting: H⁰_L = equiv(H₀^L) and H⁰_G = equiv(H₀^G). This ensures that H₀^L pairs nondegenerately with H⁰_L, H₀^G pairs nondegenerately with H⁰_G, and the cross-pairings vanish.

              Instances For

                Derived cohomology splitting #

                noncomputable def SubsystemCSSCode.coHL {n rX rZ : } (S : SubsystemCSSCode n rX rZ) :

                The logical subspace H⁰_L of the cohomology, defined as the image of H₀^L under the equivalence equiv : H₀ ≃ H⁰.

                Equations
                Instances For
                  noncomputable def SubsystemCSSCode.coHG {n rX rZ : } (S : SubsystemCSSCode n rX rZ) :

                  The gauge subspace H⁰_G of the cohomology, defined as the image of H₀^G under the equivalence equiv : H₀ ≃ H⁰.

                  Equations
                  Instances For
                    theorem SubsystemCSSCode.cohcompl {n rX rZ : } (S : SubsystemCSSCode n rX rZ) :

                    The cohomology splitting H⁰ = H⁰_L ⊕ H⁰_G is induced by the homology splitting and the linear equivalence.

                    Projection onto the logical subspace #

                    noncomputable def SubsystemCSSCode.projL {n rX rZ : } (S : SubsystemCSSCode n rX rZ) :

                    The linear projection from H₀ onto the logical subspace H₀^L, using the direct sum decomposition H₀ = H₀^L ⊕ H₀^G.

                    Equations
                    Instances For
                      noncomputable def SubsystemCSSCode.coprojL {n rX rZ : } (S : SubsystemCSSCode n rX rZ) :

                      The linear projection from H⁰ onto the logical cohomology subspace H⁰_L, using the derived direct sum decomposition H⁰ = H⁰_L ⊕ H⁰_G.

                      Equations
                      Instances For

                        Number of logical qubits #

                        noncomputable def SubsystemCSSCode.logicalQubits {n rX rZ : } (S : SubsystemCSSCode n rX rZ) :

                        The number of logical qubits k = dim H₀^L. In a subsystem code, only the logical subspace H₀^L encodes information, while the gauge subspace H₀^G corresponds to gauge degrees of freedom.

                        Equations
                        Instances For

                          Subsystem Z-distance #

                          noncomputable def SubsystemCSSCode.dZ {n rX rZ : } (S : SubsystemCSSCode n rX rZ) :

                          The Z-distance d_Z for a subsystem CSS code. This is the minimum Hamming weight of a representative z ∈ ker(H_X) of a homology class [z] ∈ H₀ whose projection onto the logical subspace H₀^L is nonzero. Equivalently, d_Z is the largest integer such that every representative of a class with nonzero logical projection has Hamming weight at least d_Z.

                          By convention, d_Z = 0 when there is no such class (i.e., H₀^L = 0).

                          Equations
                          Instances For

                            Subsystem X-distance #

                            noncomputable def SubsystemCSSCode.dX {n rX rZ : } (S : SubsystemCSSCode n rX rZ) :

                            The X-distance d_X for a subsystem CSS code. This is the minimum Hamming weight (under the dotProductEquiv identification Dual(𝔽₂^n) ≅ 𝔽₂^n) of a representative ζ ∈ ker(H_Z) of a cohomology class [ζ] ∈ H⁰ whose projection onto H⁰_L is nonzero.

                            By convention, d_X = 0 when H⁰_L = 0.

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

                              Overall distance #

                              noncomputable def SubsystemCSSCode.distance {n rX rZ : } (S : SubsystemCSSCode n rX rZ) :

                              The overall distance d = min(d_X, d_Z).

                              Equations
                              Instances For

                                Code parameter predicates #

                                def SubsystemCSSCode.IsNKDCode {n rX rZ : } (S : SubsystemCSSCode n rX rZ) (k d : ) :

                                A subsystem CSS code is an [[n, k, d]]-code if it has k logical qubits and distance d.

                                Equations
                                Instances For
                                  def SubsystemCSSCode.IsNKDXZCode {n rX rZ : } (S : SubsystemCSSCode n rX rZ) (k dX_val dZ_val : ) :

                                  A subsystem CSS code is an [[n, k, d_X, d_Z]]-code when X- and Z-distances differ.

                                  Equations
                                  Instances For