
    Ed                        d dl mZ d dlmZ d dlmZmZmZmZ d dl	m
Z
 d dlmZmZmZmZmZ d dlmZmZmZmZ d dlmZ ej        ej        ej        ej        ej        ej        gZ ed          Ze                    ee          d	             Ze                    ee          d
             Ze                    ee          d             Ze                    ee          d             Ze                    ee          d             Ze                    ee          d             Ze                    ee          d             Ze                    ee          d             Ze                    ee          d             Ze                    ee          d             Ze                    ee          d             Ze                    ee          d             Ze                    ee          d             Ze                    ee          d             Ze                    ee          d             Ze                    ee          d             ZdS )    )S)Symbol)	fuzzy_and
fuzzy_bool	fuzzy_notfuzzy_or)Eq)	FiniteSetIntervalSetUnion
ProductSet)	ComplexesRealsRange	Rationals)
Dispatcheris_subset_setsc                     d S N abs     <lib/python3.11/site-packages/sympy/sets/handlers/issubset.py_r          4    c                 f   t          | j        |j        k               rdS t          | j        |j        k              rdS |j        r0| j        s)t          t	          | j        |j                            rdS |j        r0| j        s+t          t	          | j        |j                            rdS d S d S d S NF)r   startend	left_openr	   
right_openr   s     r   r   r      s     !'AG#$$ u!%!%-   u	 AK Jr!'177K7K,L,L u	 Q\ jAE159I9I.J.J u     r   c                 <    t          | j        j                  rdS d S r    )r   measureis_zero)
a_intervalb_fss     r   r   r       s)     #+,, u r   c                 >    t          d |j        D                       rxd |j        D             }t           fd|D                       rdS t           fd|D                       rdS  j        j        r#d t           fd|D                       rdS d S d S d S )Nc              3   N   K   | ] }t          |t          t          f          V  !d S r   )
isinstancer   r
   .0ss     r   	<genexpr>z_.<locals>.<genexpr>)   s1      
B
BA:a(I.//
B
B
B
B
B
Br   c                 <    g | ]}t          |t                    |S r   )r,   r   r-   s     r   
<listcomp>z_.<locals>.<listcomp>*   s'    DDD1Jq(,C,CDQDDDr   c              3   R   K   | ]!}t          j        |j        k               V  "d S r   )r   r!   r.   r/   r(   s     r   r0   z_.<locals>.<genexpr>+   s5      II!z**QW455IIIIIIr   Fc              3   R   K   | ]!}t          j        |j        k              V  "d S r   )r   r"   r4   s     r   r0   z_.<locals>.<genexpr>-   s4      EEaz*.15011EEEEEEr   c                     t          t          | j        |j        k              t          | j        |j        k              g          S r   )r   r   r"   r!   )s1s2s     r   <lambda>z_.<locals>.<lambda>0   s=    rv122rx261222 ) ) r   c              3   0   K   | ]} |          V  d S r   r   )r.   r/   r(   
no_overlaps     r   r0   z_.<locals>.<genexpr>4   s/      @@::a,,@@@@@@r   )allargsr&   
is_nonzero)r(   b_u	intervalsr;   s   `  @r   r   r   '   s    

B
B
B
B
BBB DDDDD	IIIIyIIIII 	5EEEE9EEEEE 	5( 	 J @@@@@i@@@@@ u 	 	
 r   c                     | j         |j         cxk    rdk    rKn d S t          t          | j        |j        k              t          | j        |j        k              g          S d S )N   )stepr   r   r!   stopr   s     r   r   r   7   s    v 9 9 9 91 9 9 9 9 9 9*QW%788$QVqv%5668 9 9 	99 9r   c                    | j         j        ry|j        r| j        j        r| j        |j        k    }n| j        |j        k    }|j        r| j        j        r| j        |j        k     }n| j        |j        k    }t          ||g          S d S r   )
rC   is_positiver#   inf	is_finiteleftr$   suprightr   )a_range
b_interval	cond_left
cond_rights       r   r   r   =   s    | 	2 	7GK$9 	7jo5IIz6I  	9W[%: 	9 z'77JJ 
(88J)Z0111	2 	2r   c                    	 | j         }n# t          $ r Y d S w xY w|t                    k    rdS t          d | j        D                       rt          fd| D                       S t          |           }t                    }d}D ]m}|j        r|                    |           nt          |j
                  rn|dz  }|dz  }t          |          ||z   k    r dS t          |          dk    r dS nd S )NFc              3   J   K   | ]}|                     t                    V  d S r   )hasr   )r.   args     r   r0   z_.<locals>.<genexpr>S   s,      55SWWV__555555r   c              3   B   K   | ]}                     |          V  d S r   contains)r.   xb_finitesets     r   r0   z_.<locals>.<genexpr>T   s1      BBQ--a00BBBBBBr   r   rB   T)size
ValueErrorlenanyr=   r   set
is_Integerdiscardr   
is_integer)rL   rX   a_sizea_setb_remainingcnt_candidater   s    `     r   r   r   J   sM      tt K    u	55555	5	5 BBBB'BBBBBB G+&&  	 	A| #a    1<(( #"1K5zzK-77 uu5zzQ ttts    
c                 "    | j         j        rdS d S r    r&   is_extended_nonzero)r(   b_ranges     r   r   r   l       - u r   c                 "    | j         j        rdS d S r    rf   )r(   b_rationalss     r   r   r   q   ri   r   c                     dS NTr   r   s     r   r   r   v   r   r   c                     dS r    r   r   s     r   r   r   z       5r   c                     dS r    r   r   s     r   r   r   ~   ro   r   c                     dS r    r   r   s     r   r   r      ro   r   c                     dS rm   r   r   s     r   r   r      r   r   c                     dS r    r   r   s     r   r   r      ro   r   c                 :    t          fd| D                       S )Nc              3   B   K   | ]}                     |          V  d S r   rU   )r.   rW   r)   s     r   r0   z_.<locals>.<genexpr>   s/      44!T]]1%%444444r   )r   )a_psr)   s    `r   r   r      s&    4444t444444r   N)sympy.core.singletonr   sympy.core.symbolr   sympy.core.logicr   r   r   r   sympy.core.relationalr	   sympy.sets.setsr
   r   r   r   r   sympy.sets.fancysetsr   r   r   r   sympy.multipledispatchr   Naturals	Naturals0Integers	_inf_setsr   registerr   r   r   r   <module>r      s   " " " " " " $ $ $ $ $ $ G G G G G G G G G G G G $ $ $ $ $ $ G G G G G G G G G G G G G G C C C C C C C C C C C C - - - - - - Zaj!+qwT	 ,-- c""  #" 8,,	 	 -,	 9--  .- 5))  *) &&9 9 '&9
 ))
2 
2 *)
2 	**  +*B 5))  *) 9--  .- 	**  +* H--  .- E**  +* I..  /. E**  +* E**  +* Y//5 5 0/5 5 5r   