# Under what conditions are two sets of Pauli operators Clifford-equivalent?

Suppose I have two set of $$N$$-qubit Pauli operators $$\mathcal{S} = \{P_1,\ldots,P_K\}$$ and $$\mathcal{T} = \{Q_1,\ldots,Q_K\}$$. In this context, a Pauli operator is a Hermitian element of the Pauli group. I also define a Clifford unitary to be a unitary in the Clifford group, which is defined by the property that it sends Pauli operators to Pauli operators. I would like to know when it is possible to send $$\mathcal{S}$$ to $$\mathcal{T}$$ using a Clifford unitary. To be precise, I have two questions:

1. What are necessary and sufficient algebraic conditions on $$\mathcal{S}, \mathcal{T}$$ for there to exist a Clifford unitary $$U$$ such that, for all $$k$$, $$U P_k U^\dagger = Q_k$$.
2. In the case that $$U$$ exists, how does one find it? I'm primarily interested in the algebraic form of the Clifford unitary as follows:

$$U = \prod_{\alpha}\frac{X_{\alpha} + Y_{\alpha}}{\sqrt{2}}, \quad \{X_\alpha, Y_\alpha\} = 0$$

I was unable to find any reference answering this question, so any assistance would be helpful!

In trying to answer this question myself, I arrived at two necessary, but not necessarily sufficient conditions for $$U$$ to exist.

1. Any Clifford unitary preserves the graph of commutation relations between Pauli operators. Given a set $$\mathcal{S}$$ of Pauli operators, we can define a graph in which each Pauli operator in $$\mathcal{S}$$ corresponds to a vertex, and two vertices share an edge if and only if their corresponding Pauli operators commute. It is trivial that any Clifford unitary must preserve this graph. Therefore, it is necessary that the graphs of $$\mathcal{S}$$ and $$\mathcal{T}$$ are isomorphic.

2. Any unitary, Clifford or not, preserves products. Thus, if $$P_c = P_a P_b$$, for $$P_a, P_b, P_c \in \mathcal{S}$$, then there must be $$Q_c = Q_a Q_b$$ for some $$Q_a, Q_b, Q_c \in \mathcal{T}$$, and any unitary that maps $$\mathcal{S}$$ to $$\mathcal{T}$$ must map $$(P_a, P_b, P_c)$$ to $$(Q_a, Q_b, Q_c)$$.

These are the only conditions I could come up with. Are they also sufficient, and, if so, can I find the Clifford unitary given only these properties?

• I beleive that if you check that S and T generate the same size subgroup then you should be able to find a clifford element that maps one to the other... Commented Mar 30 at 15:18

What I would do is to extend S and T into full Clifford tableaus $$C_S$$ and $$C_T$$ by discarding linearly dependent products and filling in generators for the unspanned $$n$$-qubit space. The Clifford $$C_T \cdot C_S^{-1}$$ will then map generators of $$S$$ to single-qubit Z operators then map those single-qubit Z operators to generators of $$T$$.

One possible issue with this approach, depending on the exact definition of your problem, is that if $$T$$ contains $$A$$ and $$B$$ but not $$A \cdot B$$, while $$S$$ contains $$C$$ and $$D$$ and $$C \cdot D$$, then the operation will map $$C \cdot D \in S$$ to $$A \cdot B \notin T$$. But if you think in terms of the spaces spanned by the entries in $$S$$ and spanned by the entries in $$T$$ then the method will work.

import stim

def s_to_t(s: list[stim.PauliString], t: list[stim.PauliString]) -> stim.Tableau:
c_s = stim.Tableau.from_stabilizers(
s,
allow_redundant=True,
allow_underconstrained=True,
)
c_t = stim.Tableau.from_stabilizers(
t,
allow_redundant=True,
allow_underconstrained=True,
)
deg_s = sum(
c_s.z_output(k) in s
for k in range(len(c_s))
)
deg_t = sum(
c_t.z_output(k) in t
for k in range(len(c_t))
)
if deg_s > deg_t:
raise ValueError("The input generates a larger space than the output.")
return c_t * (c_s**-1)