Encoding constraints:
One key advantage of the IR syntax is that the algorithmic constraints in all simulation kernels, as far as we know, can be naturally encoded.
In some simulation kernels
(e.g., UCCSD [1]}, QAOA for constrained optimization [2]}), the algorithm requires that some Pauli strings should always appear together for some algorithmic purposes like symmetry preserving [3]}, parameter sharing [4]}, [1]}, error suppression [6]}, etc.
Pauli IR employs a \(pauli\_block\)  structure to represent such constraints.
The compiler can extract such information and all the \(pauli\_str\) s inside one \(pauli\_block\)  are always scheduled together in follow-up optimization passes.
In the rest of this paper, \(pauli\_block\)  is denoted by block for simplicity.
