catalyst icon indicating copy to clipboard operation
catalyst copied to clipboard

Create a finite state machine analysis pass to propagate Pauli basis states, and use it to disentangle CNOTs

Open paul0403 opened this issue 1 year ago • 2 comments

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]

paul0403 avatar Sep 24 '24 18:09 paul0403