def _singleton_violation(pat, interpretation):
    """
    Checks if an abstraction pattern violates the singleton constraints in a
    given interpretation, that is, if the interpretation already contains an
    observation of the same type of the hypothesis of the pattern, and that
    hypothesis is a singleton.

    Parameters
    ----------
    pat:
        PatternAutomata.
    interpretation:
        Interpretation.
    """
    return issubclass(pat.Hypothesis, tuple(interpretation.singletons))