state_props.is_distinguishable

Check if set of states are distinguishable.

Module Contents

Functions

is_distinguishable(states[, probs])

Check whether a collection of vectors are (perfectly) distinguishable or not.

state_props.is_distinguishable.is_distinguishable(states, probs=None)

Check whether a collection of vectors are (perfectly) distinguishable or not.

The ability to determine whether a set of quantum states are distinguishable can be obtained via the state distinguishability SDP as defined in state_distinguishability

Examples

The set of Bell states are an example of distinguishable states. Recall that the Bell states are defined as:

\[\begin{split}u_1 = \frac{1}{\sqrt{2}} \left(|00\rangle + |11\rangle\right), &\quad u_2 = \frac{1}{\sqrt{2}} \left(|00\rangle - |11\rangle\right), \\ u_3 = \frac{1}{\sqrt{2}} \left(|01\rangle + |10\rangle\right), &\quad u_4 = \frac{1}{\sqrt{2}} \left(|01\rangle - |10\rangle\right).\end{split}\]

It can be checked in :code`toqito` that the Bell states are distinguishable:

>>> from toqito.states import bell
>>> from toqito.state_props import is_distinguishable
>>>
>>> bell_states = [bell(0), bell(1), bell(2), bell(3)]
>>> is_distinguishable(bell_states)
True

References

Parameters:
  • states (list[numpy.ndarray]) – A set of vectors consisting of quantum states to determine the distinguishability of.

  • probs (list[float]) – Respective list of probabilities each state is selected. If no probabilities are provided, a uniform probability distribution is assumed.

Returns:

True if the vectors are distinguishable; False otherwise.

Return type:

bool