
    MZd                     Z    d dl mZ d dlmZmZ d dlmZ d dlmZ ddl	m
Z
  G d de      Zy	)
    )S)EqNe)BooleanFunction)	func_name   )Setc                   6    e Zd ZdZed        Zed        Zd Zy)Containsa  
    Asserts that x is an element of the set S.

    Examples
    ========

    >>> from sympy import Symbol, Integer, S, Contains
    >>> Contains(Integer(2), S.Integers)
    True
    >>> Contains(Integer(-2), S.Naturals)
    False
    >>> i = Symbol('i', integer=True)
    >>> Contains(i, S.Naturals)
    Contains(i, Naturals)

    References
    ==========

    .. [1] https://en.wikipedia.org/wiki/Element_%28mathematics%29
    c                     t        |t              st        dt        |      z        |j	                  |      }t        |t
              s5|t        j                  t        j                  fv st        |t              r|S y y )Nzexpecting Set, not %s)	
isinstancer	   	TypeErrorr   containsr   r   truefalse)clsxsrets       5/usr/lib/python3/dist-packages/sympy/sets/contains.pyevalzContains.eval   sh     !S!3ilBCCjjm#x(((JsC,@J -A )    c           
           t               j                  | j                  d   j                  D cg c]<  }|j                  s"|j                  st        |t        t        f      r|j                  > c} S c c}w Nr   )	setunionargs
is_Boolean	is_Symbolr   r   r   binary_symbols)selfis     r   r    zContains.binary_symbols(   sa    su{{YYq\&&%||q{{q2r(# -- % & 	& %s   AA5c                      | j                   d   S r   )r   )r!   s    r   as_setzContains.as_set/   s    yy|r   N)	__name__
__module____qualname____doc__classmethodr   propertyr    r$    r   r   r   r      s4    (   & &r   r   N)
sympy.corer   sympy.core.relationalr   r   sympy.logic.boolalgr   sympy.utilities.miscr   setsr	   r   r+   r   r   <module>r1      s      ( / * ( (r   