Documentation

QEC1.Remarks.Rem_4_ZTypeSupportConvention

Rem_4: Z-Type Support Convention #

Statement #

For a Pauli operator $P$, the $Z$-type support of $P$, denoted $\mathcal{S}_Z$, is the set of qubits on which $P$ acts via $Y$ or $Z$ operators. Similarly, the $X$-type support, denoted $\mathcal{S}_X$, is the set of qubits on which $P$ acts via $X$ or $Y$ operators. A Pauli operator $P$ can be written as $P = i^{\sigma} \prod_{v \in \mathcal{S}_X} X_v \prod_{v \in \mathcal{S}_Z} Z_v$ for some phase $\sigma \in \{0,1,2,3\}$. If $P$ commutes with an $X$-type logical operator $L = \prod_v X_v$, then $|\mathcal{S}_Z| \equiv 0 \pmod{2}$ (the $Z$-type support has even cardinality).

Main Definitions #

The X-type and Z-type support definitions are in Rem_1_StabilizerCodeConvention. This file focuses on the decomposition and commutation properties.

Main Results #

Corollaries #

Recap of X-type and Z-type Support #

The definitions are already in Rem_1:

@[simp]

X and Y contribute to X-type support

@[simp]

Z and Y contribute to Z-type support

A Pauli is nontrivial iff it is X-type or Z-type (or both, i.e., Y)

The anticommutation rule: X and Z anticommute

theorem StabPauliType.anticommutes_iff (p q : StabPauliType) :
p.commutes q = false p = X q = Z p = Z q = X p = X q = Y p = Y q = X p = Z q = Y p = Y q = Z

Two Paulis anticommute iff one is purely X-type (X) and the other is purely Z-type (Z), or one involves both (Y) and the other involves just one component

For pure X (not Y), anticommutes with Z-type but not X-type

For pure Z (not Y), anticommutes with X-type but not Z-type

Commutation of Multi-Qubit Pauli Operators #

def PauliOp.zSupportOverlap {n : } (P Q : PauliOp n) :

The overlap between Z-type support of P and support of Q

Equations
Instances For

    The anticommuting positions between P and a pure X operator on support S

    Equations
    Instances For

      Alternative characterization: positions where P is Z-type and S has X

      theorem PauliOp.commutes_with_pureX_iff {n : } (P : PauliOp n) (S : Finset (Fin n)) :
      P.commutes (pureX S) (P.zSupport S).card % 2 = 0

      P commutes with pureX S iff the number of Z-type positions in S is even

      theorem PauliOp.zSupport_inter_even_of_commutes_pureX {n : } (P : PauliOp n) (S : Finset (Fin n)) (h : P.commutes (pureX S)) :
      (P.zSupport S).card % 2 = 0

      If P commutes with pureX S, then |P.zSupport ∩ S| is even

      theorem PauliOp.commutes_pureX_of_zSupport_inter_even {n : } (P : PauliOp n) (S : Finset (Fin n)) (h : (P.zSupport S).card % 2 = 0) :

      Converse: if |P.zSupport ∩ S| is even, then P commutes with pureX S

      Even cardinality characterization

      Equations
      Instances For
        @[simp]

        Empty set has even cardinality

        The Main Theorem: Commutation with X-type Logical #

        Main theorem: If P commutes with an X-type logical operator L = ∏_{v ∈ supp(L)} X_v, then the Z-type support of P restricted to supp(L) has even cardinality.

        This is because:

        • L acts as X on each qubit in its support
        • P and L anticommute at position i iff P is Z-type at i and i ∈ supp(L)
        • For P and L to commute overall, the number of anticommuting positions must be even
        • Hence |S_Z(P) ∩ supp(L)| ≡ 0 (mod 2)

        When L has full support (acts on all n qubits), the condition becomes: P commutes with L implies |S_Z(P)| is even

        The X-Z Decomposition #

        Every Pauli type can be written as X^a Z^b for a, b ∈ {0,1} (ignoring phase). I = X^0 Z^0, X = X^1 Z^0, Z = X^0 Z^1, Y = X^1 Z^1 (up to phase i)

        Equations
        Instances For

          The X exponent is 1 iff the Pauli is X-type

          The Z exponent is 1 iff the Pauli is Z-type

          structure PauliOp.XZDecomposition {n : } (P : PauliOp n) :

          The X-Z decomposition of a Pauli operator: P = i^σ ∏{v ∈ S_X} X_v ∏{v ∈ S_Z} Z_v

          This structure captures that any Pauli operator factors into X-part and Z-part.

          Instances For

            Every Pauli operator has an X-Z decomposition

            @[simp]

            X-type support equals {v : P.paulis v ∈ {X, Y}}

            @[simp]

            Z-type support equals {v : P.paulis v ∈ {Z, Y}}

            Corollaries #

            @[simp]

            The Z-type support of a pure X operator is empty

            @[simp]
            theorem PauliOp.pureX_commutes_self {n : } (S : Finset (Fin n)) :

            A pure X operator always commutes with itself

            theorem PauliOp.pureX_commutes_pureX {n : } (S T : Finset (Fin n)) :

            Two pure X operators always commute

            The intersection of X-type support and Z-type support gives qubits with Y

            The support of P is the union of pure X positions and pure Z positions and Y positions

            Summary #

            The Z-type support convention establishes:

            1. X-type Support S_X: Qubits where P acts as X or Y (has X component)

            2. Z-type Support S_Z: Qubits where P acts as Z or Y (has Z component)

            3. Decomposition: P = i^σ ∏{v ∈ S_X} X_v ∏{v ∈ S_Z} Z_v for some phase σ ∈ {0,1,2,3}

            4. Key Commutation Property: If P commutes with an X-type logical operator L = ∏_{v ∈ supp(L)} X_v, then |S_Z ∩ supp(L)| ≡ 0 (mod 2)

              This is because:

              • P anticommutes with X at position i iff P is Z-type at i
              • P and L anticommute iff the number of such positions in supp(L) is odd
              • For commutation, this number must be even

            This property is fundamental to the gauging construction: it ensures that deformed operators (which must commute with the logical L) have edge-paths with even boundary, making them well-defined.