o
    8VaA                     @   s   d dl mZ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mZmZmZmZ eeedd Zeeed	d Zeeed
d Zeeedd Zeeedd Zeeedd Zeeedd ZdS )    )Eqis_eq)Basic)	fuzzy_and
fuzzy_bool)And)dispatch)tfn
ProductSetInterval	FiniteSetSetc                 C      dS NF lhsrhsr   r   @/usr/lib/python3/dist-packages/sympy/sets/handlers/comparison.py_eval_is_eq	      r   c                 C   r   r   r   r   r   r   r   r      r   c                 C   s2   t t| j|jt| j|j| j|jk| j|jkS N)r   r   leftrightZ	left_openZ
right_openr   r   r   r   r      s
   

c                    s    fdd}t t|  S )Nc                  3   sR    t  j} t j}t fdd||  D V  tfdd| | D V  d S )Nc                 3       | ]}  |V  qd S r   Z	_contains.0e)r   r   r   	<genexpr>       z3_eval_is_eq.<locals>.all_in_both.<locals>.<genexpr>c                 3   r   r   r   r   )r   r   r   r       r    )setargsr   )Zs_setZo_setr   r   r   all_in_both   s
   

 z _eval_is_eq.<locals>.all_in_bothr	   r   )r   r   r#   r   r   r   r      s   c                 C   sB   t | jt |jkrdS dd t| j|jD }tttt| S )NFc                 s   s    | ]
\}}t ||V  qd S r   )r   )r   xyr   r   r   r   *       _eval_is_eq.<locals>.<genexpr>)lenZsetszipr	   r   mapr   )r   r   Zeqsr   r   r   r   %   s   c                 C   r   r   r   r   r   r   r   r   .   r   c                 C   s"   t tdd | |f|| ffD  S )Nc                 s   s    | ]
\}}| |V  qd S r   )Z	is_subset)r   abr   r   r   r   5   r'   r(   r$   r   r   r   r   r   3   s   "N)Zsympy.core.relationalr   r   Zsympy.core.basicr   Zsympy.core.logicr   r   Zsympy.logic.boolalgr   Zsympy.multipledispatchr   Zsympy.sets.setsr	   r
   r   r   r   r   r   r   r   r   <module>   s(    






