toqito.channel_props.is_unitary

toqito.channel_props.is_unitary(phi)[source]

Given a quantum channel, determine if it is unitary [WatIU18].

Let \(\mathcal{X}\) be a complex Euclidean space an let \(U \in U(\mathcal{X})\) be a unitary operator. Then a unitary channel is defined as:

\[\Phi(X) = U X U^*.\]

Examples

The identity channel is one example of a unitary channel:

\[\begin{split}U = \begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix}.\end{split}\]

We can verify this as follows:

>>> from toqito.channel_props import is_unitary
>>> import numpy as np
>>> kraus_ops = [[np.identity(2), np.identity(2)]]
>>> is_unitary(kraus_ops)
True

We can also specify the input as a Choi matrix. For instance, consider the Choi matrix corresponding to the \(2\)-dimensional completely depolarizing channel.

\[\begin{split}\Omega = \frac{1}{2} \begin{pmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{pmatrix}.\end{split}\]

We may verify that this channel is not a unitary channel.

>>> from toqito.channels import depolarizing
>>> from toqito.channel_props import is_unitary
>>> is_unitary(depolarizing(2))
False

References

[WatIU18]

Watrous, John. “The Theory of Quantum Information.” Section: “2.2.1 Definitions and basic notions concerning channels”. Cambridge University Press, 2018.

Parameters:

phi – The channel provided as either a Choi matrix or a list of Kraus operators.

Returns:

True if the channel is a unitary channel, and False otherwise.