A subsystem code [1]}, [2]} is a generalization of a stabilizer
code where we ignore some of the logical qubits and treat them as “gauge” degrees of freedom.
More precisely, in a subsystem code the stabilized subspace \(\mathcal {H}_S\)  further
decomposes into a tensor product \(\mathcal {H}_S = \mathcal {H}_L \otimes \mathcal {H}_G\) , where by convention we still
require that \(\mathcal {H}_L\)  is a \(2^k\) -dimensional space, and the space \(\mathcal {H}_G\)  contains the
unused logical qubits called gauge qubits. The gauge qubits give rise to a gauge group
\(\mathcal {G}\)  generated by former logical operators \(G_i\)  (which obey the Pauli algebra
commutation relations for a set of qubits) together with the stabilizer operators. We note that
\(-I\)  is always in the gauge group, assuming that there is at least one
gauge qubit. The logical operators in a subsystem code are given by
\(\mathcal {L}= N(\mathcal {G})\)  and still preserve the code space. The center of the
gauge group \(Z(\mathcal {G})\)  is defined to be the subgroup of all elements in
\(\mathcal {G}\)  that commute with everything in \(\mathcal {G}\) . Since \(Z(\mathcal {G})\)  contains
\(-I\) , it cannot be the set of stabilizers for any nontrivial
subspace. Instead we define the stabilizer subgroup
\(\mathcal {S}\)  to be isomorphic to \(Z(\mathcal {G})/\lbrace \pm I\rbrace \) . Concretely, if
\(Z(\mathcal {G})\)  has generators \(\langle -I, S_1,\ldots ,S_l\rangle \)  then we
define the stabilizer group to be \(\langle \epsilon _1 S_1,\ldots , \epsilon _lS_l\rangle \)  for some arbitrary choice of \(\epsilon _1,\ldots ,\epsilon _l \in \lbrace \pm 1\rbrace \) .
