docs: def _absorb_z_into_w(moment_index: int,
                       op: ops.Operation,
                       state: _OptimizerState) -> None:
      """Absorbs a Z^t gate into a W(a) flip.
  
      [Where W(a) is shorthand for PhasedX(phase_exponent=a).]
  
      Uses the following identity:
          ───W(a)───Z^t───
          ≡ ───W(a)───────────Z^t/2──────────Z^t/2─── (split Z)
          ≡ ───W(a)───W(a)───Z^-t/2───W(a)───Z^t/2─── (flip Z)
          ≡ ───W(a)───W(a)──────────W(a+t/2)───────── (phase W)
          ≡ ────────────────────────W(a+t/2)───────── (cancel Ws)
          ≡ ───W(a+t/2)───
      """
      t = cast(float, _try_get_known_z_half_turns(op))
      q = op.qubits[0]
      state.held_w_phases[q] = cast(float, state.held_w_phases[q]) + t / 2
      state.deletions.append((moment_index, op))