Cirq
Cirq copied to clipboard
Re-structuring of `kraus` protocol along with of serial concatenation
Summarize the task
Changing the structure of kraus and has_kraus to invoke protocols such as mixture or unitary rather than using getattr. If no protocol or attribute can be used directly be used to create the kraus representation, the protocol should recursively decompose and serially concatenate the kraus operators.
Acceptance criteria - when is the task considered done? The above criteria for the protocols is satisfied and are supported with tests and consistency checks.
Related issues: #3965