I am working on learning grouped measurement and I began by reading this paper by a group out of UChicago showing a method for the synthesis of circuits for the grouped measurement of a set of commuting Pauli Operators. I tried it for a simple problem, electronic Hamiltonian for H2. I used the code they reference on their github and Pennylane and some hacking to get it to work for other groups. However, when I pass this subset of Pauli operators $P = \{ X_0 X_1 Y_2 Y_3, X_0 Y_1 Y_2 X_3, Y_0 X_1 X_2 Y_3, Y_0 Y_1 X_2 X_3 \}$ the algorithm fails to generate a circuit.

The stabilizer matrix takes form $$ S = \begin{pmatrix} 0 & 0& 1& 1 \\ 0& 1& 0& 1 \\ 1& 1& 0& 0 \\ 1& 0& 1& 0 \\ 1& 1& 1& 1 \\ 1& 1& 1& 1 \\ 1& 1& 1& 1 \\ 1& 1& 1& 1 \end{pmatrix} = \begin{pmatrix} Z \\ X \end{pmatrix} $$

Where the Z-matrix refers to the first 4 rows of the stabilizer matrix. Each row corresponds to whether there's an Pauli-Z matrix acting on that site. Similarly, for the X-matrix (bottom 4 rows). A Pauli-Y operator on site i of the jth operator is represented as 1 at the ith row and jth column of the X matrix and a 1 at the ith row and jth column of the Z matrix. We adopt the Pauli group sans phase, i.e. XZ = ZX = Y.

The goal is to get the X-matrix into full rank by applying Hadamard gates, which serve as a row-swap elementary row operation. The problem is, the X-matrix has at most rank 3 even after the application of row-swaps with the Z-matrix. This seems to be a problem since lemma 6 of Efficient Simulation of Stabilizer Circuits, states "it is always possible to apply Hadamard gates to a subset of the qubits so as to make the X matrix have full rank".

I looked into the algebra of this group. The first thought I had was that since the max rank of the X-matrix was 3, maybe a 3-term subset of this group would suffice to span the rest of the set. But this group does not have that property. Any attempt to partition into subsets and you won't be able to get the rest of the elements back via multiplication.

How do I compute the diagonalizing unitary $U; UP_iU^\dagger = I_0...I_{i-1}Z_iI_{i+1}...I_{n-1}$ for this group if not by this method?

  • $\begingroup$ Shouldn't your $S$ matrix be $((0011),(0110),(1001),(1100),....)$. Either way both versions have rank $3$ not $4$ as others have noted $\endgroup$
    – unknown
    Mar 3, 2022 at 17:02
  • $\begingroup$ The code seems to only work for square matrices (the number of Pauli strings in the group have to equal to the length of the Pauli string). So for instance, after you eliminate one of the Pauli string in your list $P = \{ X_0 X_1 Y_2 Y_3, X_0 Y_1 Y_2 X_3, Y_0 X_1 X_2 Y_3, Y_0 Y_1 X_2 X_3 \}$ then I don't think it will work anymore. Is there a version of the code where it works for non-square case? $\endgroup$
    – KAJ226
    Mar 17, 2022 at 4:28

1 Answer 1


It probably doesn't work because

$X_0 X_1 Y_2 Y_3 \cdot X_0 Y_1 Y_2 X_3 \cdot Y_0 X_1 X_2 Y_3 = Y_0 Y_1 X_2 X_3$

so you can't isolate all four from each other. The system is degenerate. Just drop one of them and run the algorithm on that.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.