
    g%                     z    d dl m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 ddlmZ  G d	 d
e
          ZdS )    )S)sympify)EqNe)global_parameters)Boolean)	func_name   )Setc                   @     e Zd ZdZd fd	Zed             Zd Z xZS )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
    Nc                    t          |          }t          |          }|t          j        }t          |t                    st          dt          |          z            |rX|                    |          }t          |t                    r|t          j
        t          j        fv r|S n|t          d          t                                          | ||          S )Nzexpecting Set, not %sz)_contains() should return Boolean or None)r   r   evaluate
isinstancer   	TypeErrorr	   	_containsr   r   truefalsesuper__new__)clsxsr   result	__class__s        O/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/sets/contains.pyr   zContains.__new__   s    AJJAJJ(1H!S!! 	D3illBCCC 
	M [[^^F&'** Mafag...!M /# KLLLwwsAq)))    c                 b     t                      j        d | j        d         j        D              S )Nc                 p    g | ]3}|j         s#|j        st          |t          t          f          ,|j        4S  )
is_Boolean	is_Symbolr   r   r   binary_symbols).0is     r   
<listcomp>z+Contains.binary_symbols.<locals>.<listcomp>9   sT     % % %|% {% q2r(##%Q- % % %r   r
   )setunionargsselfs    r   r#   zContains.binary_symbols7   s<    suu{ % %Yq\&% % % & 	&r   c                     | j         d         S )Nr
   )r)   r*   s    r   as_setzContains.as_set>   s    y|r   )N)	__name__
__module____qualname____doc__r   propertyr#   r-   __classcell__)r   s   @r   r   r   
   sq         (* * * * * *0 & & X&      r   r   N)
sympy.corer   sympy.core.sympifyr   sympy.core.relationalr   r   sympy.core.parametersr   sympy.logic.boolalgr   sympy.utilities.miscr	   setsr   r   r    r   r   <module>r;      s          & & & & & & ( ( ( ( ( ( ( ( 3 3 3 3 3 3 ' ' ' ' ' ' * * * * * *      5 5 5 5 5w 5 5 5 5 5r   