catalyst
catalyst copied to clipboard
Create a finite state machine analysis pass to propagate Pauli basis states, and use it to disentangle CNOTs
Context: In circuits that mostly involve the six Pauli eigenstates, the effect of gates can be described by a simple six-state finite state machine. This allows us to deduce their midcircuit state at compile time.
The knowledge of the snapshot midcircuit states can be useful when:
- Deducing CNOT/Toffoli/SWAP/... effect and decouple them. We decouple CNOT in this PR.
- Replace complicated circuits whose results are |01+-LR> with standard preparation routines
- Potentially more
Description of the Change:
Added an analysis pass --propagate-simple-states (and tests).
Benefits: More compile time circuit information for potential compile time transformation/optimization.
Possible Drawbacks: This algorithm is from an external paper. We need to properly cite it. https://arxiv.org/abs/2012.07711 (fig.5)
Related GitHub Issues:
sc epic: https://app.shortcut.com/xanaduai/epic/74389
[sc-74649]