Open
Description
We currently do not have such passes, but imagine a pass that performs
--PauliX--
--> --RX(pi/2)--RX(pi/2)--
This is a valid abstract circuit transformation; however, from a device perspective, it implicitly imposes the requirement that the device support the RX
gate, despite no such guarantees from the original circuit (RX
was not present in the original circuit).
It would be good to have a mechanism to perform such checks, or a "gateset canonicalization pass" that automatically decomposes towards the device's supported gateset every now and then in the pipeline.
This would be quite valuable, since we are starting to consider hardware targeting now.