Returns whether the value has a mixture representation.

Used in the notebooks

Used in the tutorials

val The value to check.
allow_decompose Used by internal methods to stop redundant decompositions from being performed (e.g. there's no need to decompose an object to check if it is unitary as part of determining if the object is a quantum channel, when the quantum channel check will already be doing a more general decomposition check). Defaults to True. When false, the decomposition strategy for determining the result is skipped.

If val has a _has_mixture_ method and its result is not NotImplemented, that result is returned. Otherwise, if the value has a _mixture_ method return True if that has a non-default value. Returns False if neither function exists.