<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _double_cross_over_cz(op: ops.Operation, state: _OptimizerState) -> None: """Crosses two W flips over a partial CZ. [Where W(a) is shorthand for PhasedX(phase_exponent=a).] Uses the following identity: ───W(a)───@───── │ ───W(b)───@^t─── ≡ ──────────@────────────W(a)─── │ (single-cross top W over CZ) ───W(b)───@^-t─────────Z^t──── ≡ ──────────@─────Z^-t───W(a)─── │ (single-cross bottom W over CZ) ──────────@^t───W(b)───Z^t──── ≡ ──────────@─────W(a)───Z^t──── │ (flip over Z^-t) ──────────@^t───W(b)───Z^t──── ≡ ──────────@─────W(a+t/2)────── │ (absorb Zs into Ws) ──────────@^t───W(b+t/2)────── ≡ ───@─────W(a+t/2)─── │ ───@^t───W(b+t/2)─── """

    t = cast(float, _try_get_known_cz_half_turns(op))
    for q in op.qubits:
        state.held_w_phases[q] = cast(float, state.held_w_phases[q]) + t / 2