Skip to content

PauliString.after() crashes for Clifford gate PhXZ(a=0.25,x=-1,z=0) in _decompose_into_cliffords  #6946

Open
@babacry

Description

@babacry

Description of the issue

PauliString.after() should be able to return a PauliString with Clifford ops input, but failed for the Clifford gate PhasedXZGate(axis_phase_exponent=0.25, x_exponent=-1,z_exponent=0).

How to reproduce the issue

>>> a = cirq.NamedQubit('a')
>>> ps = cirq.PauliString() * cirq.Y(a)
>>> phxz = cirq.PhasedXZGate(axis_phase_exponent=0.25, x_exponent=-1,z_exponent=0)
>>> ps.after(phxz.on(a))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/google/home/renyichen/miniconda3/envs/cirq-conda/lib/python3.10/site-packages/cirq/ops/pauli_string.py", line 1008, in after
    return self.conjugated_by(protocols.inverse(ops))
  File "/usr/local/google/home/renyichen/miniconda3/envs/cirq-conda/lib/python3.10/site-packages/cirq/ops/pauli_string.py", line 987, in conjugated_by
    for clifford_op in _decompose_into_cliffords(op)[::-1]:
  File "/usr/local/google/home/renyichen/miniconda3/envs/cirq-conda/lib/python3.10/site-packages/cirq/ops/pauli_string.py", line 1606, in _decompose_into_cliffords
    return [out for sub_op in decomposed for out in _decompose_into_cliffords(sub_op)]
  File "/usr/local/google/home/renyichen/miniconda3/envs/cirq-conda/lib/python3.10/site-packages/cirq/ops/pauli_string.py", line 1606, in <listcomp>
    return [out for sub_op in decomposed for out in _decompose_into_cliffords(sub_op)]
  File "/usr/local/google/home/renyichen/miniconda3/envs/cirq-conda/lib/python3.10/site-packages/cirq/ops/pauli_string.py", line 1608, in _decompose_into_cliffords
    raise TypeError(
TypeError: Operation is not a known Clifford and did not decompose into known Cliffords: (cirq.T**-1).on(cirq.NamedQubit('a'))

Cirq version

1.5.0.dev20250109234340

Metadata

Metadata

Assignees

Labels

area/gatesgood first issueThis issue can be resolved by someone who is not familiar with the codebase. A good starting issue.kind/bug-reportSomething doesn't seem to work.triage/acceptedA consensus emerged that this bug report, feature request, or other action should be worked on

Type

No type

Projects

Status

Done

Relationships

None yet

Development

No branches or pull requests

Issue actions