toqito.channel_props.is_unital

toqito.channel_props.is_unital(phi, rtol=1e-05, atol=1e-08)[source]

Determine whether the given channel is unital [WatUnital18].

A map \(\Phi \in \text{T} \left(\mathcal{X}, \mathcal{Y} \right)\) is unital if it holds that

\[\Phi(\mathbb{I}_{\mathcal{X}}) = \mathbb{I}_{\mathcal{Y}}.\]

Examples

Consider the channel whose Choi matrix is the swap operator. This channel is an example of a unital channel.

>>> from toqito.perms import swap_operator
>>> from toqito.channel_props import is_unital
>>>
>>> choi = swap_operator(3)
>>> is_unital(choi)
True

Alternatively, the channel whose Choi matrix is the depolarizing channel is an example of a non-unital channel.

>>> from toqito.channels import depolarizing
>>> from toqito.channel_props import is_unital
>>>
>>> choi = depolarizing(4)
>>> is_unital(choi)
False

References

[WatUnital18]

Watrous, John. “The theory of quantum information.” Chapter: Unital channels and majorization Cambridge University Press, 2018.

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

  • rtol – The relative tolerance parameter (default 1e-05).

  • atol – The absolute tolerance parameter (default 1e-08).

Returns:

True if the channel is unital, and False otherwise.