§
    PŠtj¥�  ã                   óV  — d Z ddlZddlmZ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 ddlmZmZ ddlmZmZmZmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlm Z m!Z!m"Z" ddl#m$Z$ ddl%m&Z&m'Z' ddl(m)Z)m*Z* ddl+m,Z, d„ Z-d„ Z.d„ Z/dd„Z0d„ Z1d„ Z2dej3        dfd„Z4d„ Z5d d„Z6d„ Z7g fd„Z8dS )!z<Tools for solving inequalities and systems of inequalities. é    N)Úcontinuous_domainÚperiodicityÚfunction_range©Úsympify)Úfactor_terms)Ú
RelationalÚLtÚGeÚEq)ÚSymbolÚDummy)ÚIntervalÚ	FiniteSetÚUnionÚIntersection)ÚS)Ú
expand_mul)ÚAbs©ÚAnd)ÚPolyÚPolynomialErrorÚparallel_poly_from_expr)Ú_nsort)ÚsolvifyÚsolveset)ÚsiftÚiterable)Ú
filldedentc           
      ó<  — t          | t          ¦  «        st          d¦  «        ‚|                      ¦   «         j        rkt          |                      ¦   «         d|¦  «        }|t          j        u rt          j        gS |t          j	        u rt          j
        gS t          d|z  ¦  «        ‚|                      d¬¦  «        g }}|dk    r/|D ]*\  }}t          ||¦  «        }|                     |¦  «         Œ+�n¦|dk    rOt          j        }|t          j        dfgz   D ].\  }	}t          ||	d	d	¦  «        }|                     |¦  «         |	}Œ/�nQ|                      ¦   «         dk    rd}
nd
}
d\  }}|dk    rd}n3|dk    rd
}n*|dk    rd\  }}n|dk    rd\  }}nt          d|z  ¦  «        ‚t          j        d	}}	t%          |¦  «        D ]Ÿ\  }}|dz  r6|
|k    r'|                     dt          ||	| |¦  «        ¦  «         |
 || }}	}
Œ@|
|k    r-|s+|                     dt          ||	d	|¦  «        ¦  «         |d	}}	Œs|
|k    r&|r$|                     dt          ||¦  «        ¦  «         Œ |
|k    r0|                     dt          t          j        |	d	|¦  «        ¦  «         |S )a  Solve a polynomial inequality with rational coefficients.

    Examples
    ========

    >>> from sympy import solve_poly_inequality, Poly
    >>> from sympy.abc import x

    >>> solve_poly_inequality(Poly(x, x, domain='ZZ'), '==')
    [{0}]

    >>> solve_poly_inequality(Poly(x**2 - 1, x, domain='ZZ'), '!=')
    [Interval.open(-oo, -1), Interval.open(-1, 1), Interval.open(1, oo)]

    >>> solve_poly_inequality(Poly(x**2 - 1, x, domain='ZZ'), '==')
    [{-1}, {1}]

    See Also
    ========
    solve_poly_inequalities
    z8For efficiency reasons, `poly` should be a Poly instancer   ú%could not determine truth value of %sF)Úmultipleú==ú!=é   Téÿÿÿÿ)NFú>ú<ú>=)r&   Tú<=)r'   Tz'%s' is not a valid relationé   )Ú
isinstancer   Ú
ValueErrorÚas_exprÚ	is_numberr	   r   ÚtrueÚRealsÚfalseÚEmptySetÚNotImplementedErrorÚ
real_rootsr   ÚappendÚNegativeInfinityÚInfinityÚLCÚreversedÚinsert)ÚpolyÚrelÚtÚrealsÚ	intervalsÚrootÚ_ÚintervalÚleftÚrightÚsignÚeq_signÚequalÚ
right_openÚmultiplicitys                  úX/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/solvers/inequalities.pyÚsolve_poly_inequalityrM      s   € õ, �d�DÑ!Ô!ð HÝØFñHô Hð 	Hà‡|‚|�~„~Ôð =Ý�t—|’|‘~”~ q¨#Ñ.Ô.ˆØ•”ˆ;ˆ;Ý”G�9ÐØ•!”'ˆ\ˆ\Ý”J�<Ðå%Ø7¸!Ñ;ñ=ô =ð =ð —’°�Ñ6Ô6¸ˆ9€Eà
ˆd‚{€{Øð 	'ð 	'‰GˆD�!Ý  dÑ+Ô+ˆHØ×Ò˜XÑ&Ô&Ð&Ð&ñ	'ð 
�ŠˆÝÔ!ˆà¥!¤*¨a Ð 1Ñ1ð 	ð 	‰HˆE�1Ý  e¨T°4Ñ8Ô8ˆHØ×Ò˜XÑ&Ô&Ð&ØˆDˆDñ	ð
 �7Š7‰9Œ9�qŠ=ˆ=ØˆDˆDàˆDà$‰ˆ�à�#Š:ˆ:ØˆGˆGØ�CŠZˆZØˆGˆGØ�DŠ[ˆ[Ø%‰NˆG�U�UØ�DŠ[ˆ[Ø%‰NˆG�U�UåÐ;¸cÑAÑBÔBÐBåœJ¨ˆzˆå"*¨5¡/¤/ð 	>ð 	>ÑˆD�,Ø˜aÑð >Ø˜7’?�?Ø×$Ò$Ø�8 D¨%°U°¸JÑGÔGñIô Ið Ið ,0¨%°¸5°y˜Z�e��à˜7’?�?¨5�?Ø×$Ò$Ø�8 D¨%°°zÑBÔBñDô Dð Dà(,¨d˜:�E�EØ˜W’_�_¨�_Ø×$Ò$ Q­°°tÑ(<Ô(<Ñ=Ô=Ð=øà�7Š?ˆ?Ø×ÒØ•8�AÔ.°°t¸ZÑHÔHñJô Jð Jð Ðó    c                 ó(   — t          d„ | D ¦   «         Ž S )a�  Solve polynomial inequalities with rational coefficients.

    Examples
    ========

    >>> from sympy import Poly
    >>> from sympy.solvers.inequalities import solve_poly_inequalities
    >>> from sympy.abc import x
    >>> solve_poly_inequalities(((
    ... Poly(x**2 - 3), ">"), (
    ... Poly(-x**2 + 1), ">")))
    Union(Interval.open(-oo, -sqrt(3)), Interval.open(-1, 1), Interval.open(sqrt(3), oo))
    c                 ó*   — g | ]}t          |Ž D ]}|‘ŒŒS © )rM   )Ú.0ÚpÚss      rL   ú
<listcomp>z+solve_poly_inequalities.<locals>.<listcomp>   s+   € ÐGÐGÐG˜Õ-BÀAÐ-FÐGÐG¨�1ÐGÐGÐGÐGrN   )r   )Úpolyss    rL   Úsolve_poly_inequalitiesrW   q   s   € õ ÐGÐG˜eÐGÑGÔGÐHÐHrN   c                 ó.  — t           j        }| D �]}|sŒt          t           j        t           j        ¦  «        g}|D ]¼\  \  }}}t          ||z  |¦  «        }t          |d¦  «        }g }	t          j        ||¦  «        D ]=\  }
}|
                     |¦  «        }|t           j        ur|	 	                    |¦  «         Œ>|	}g }	|D ]/}|D ]}||z  }Œ|t           j        ur|	 	                    |¦  «         Œ0|	}|s nŒ½|D ]}| 
                    |¦  «        }Œ�Œ|S )a3  Solve a system of rational inequalities with rational coefficients.

    Examples
    ========

    >>> from sympy.abc import x
    >>> from sympy import solve_rational_inequalities, Poly

    >>> solve_rational_inequalities([[
    ... ((Poly(-x + 1), Poly(1, x)), '>='),
    ... ((Poly(-x + 1), Poly(1, x)), '<=')]])
    {1}

    >>> solve_rational_inequalities([[
    ... ((Poly(x), Poly(1, x)), '!='),
    ... ((Poly(-x + 1), Poly(1, x)), '>=')]])
    Union(Interval.open(-oo, 0), Interval.Lopen(0, 1))

    See Also
    ========
    solve_poly_inequality
    r$   )r   r4   r   r8   r9   rM   Ú	itertoolsÚproductÚ	intersectr7   Úunion)ÚeqsÚresultÚ_eqsÚglobal_intervalsÚnumerÚdenomr>   Únumer_intervalsÚdenom_intervalsrA   Únumer_intervalÚglobal_intervalrD   Údenom_intervals                 rL   Úsolve_rational_inequalitiesrh   ‚   sw  € õ. ŒZ€Fàð $,ñ $,ˆØð 	Øå$¥QÔ%7½¼ÑDÔDÐEÐà#'ð 	ð 	Ñ‰NˆU�E˜CÝ3°E¸%±KÀÑEÔEˆOÝ3°E¸4Ñ@Ô@ˆOàˆIå3<Ô3DØ#Ð%5ñ47ô 47ð /ð /Ñ/� à)×3Ò3°OÑDÔD�à¥1¤:Ð-Ð-Ø×$Ò$ XÑ.Ô.Ð.øà(ÐàˆIà#3ð 6ð 6�Ø&5ð 6ð 6�NØ# ~Ñ5�O�Oà"­!¬*Ð4Ð4Ø×$Ò$ _Ñ5Ô5Ð5øà(Ðà#ð Ø�ðð )ð 	,ð 	,ˆHØ—\’\ (Ñ+Ô+ˆFˆFñ	,ð €MrN   Tc                 ót  ‡— d}g }t           j        }| D �]ó}|sŒg }t           j        }|D �] }	t          |	t          ¦  «        r|	\  }	}
n |	j        r|	j        |	j        z
  |	j        }
}	nd}
|	t           j	        u rt           j
        t           j        d}
}}nR|	t           j        u rt           j        t           j        d}
}}n)|	                     ¦   «                              ¦   «         \  }}	 t          ||f‰¦  «        \  \  }}}n*# t           $ r t!          t#          d¦  «        ¦  «        ‚w xY w|j        j        s*|                     ¦   «         |                     ¦   «         d}}}|j                             ¦   «         }|j        s4|j        s-||z  }	t1          |	d|
¦  «        }	|t3          |	‰d¬¦  «        z  }�Œ‡|                     ||f|
f¦  «         �Œ¢|r4|t7          |g¦  «        z  }t7          ˆfd„|D ¦   «         g¦  «        }||z  }||z  }�Œõ|s|r|                     ¦   «         }|r|                     ‰¦  «        }|S )a8  Reduce a system of rational inequalities with rational coefficients.

    Examples
    ========

    >>> from sympy import Symbol
    >>> from sympy.solvers.inequalities import reduce_rational_inequalities

    >>> x = Symbol('x', real=True)

    >>> reduce_rational_inequalities([[x**2 <= 0]], x)
    Eq(x, 0)

    >>> reduce_rational_inequalities([[x + 2 > 0]], x)
    -2 < x
    >>> reduce_rational_inequalities([[(x + 2, ">")]], x)
    -2 < x
    >>> reduce_rational_inequalities([[x + 2]], x)
    Eq(x, -2)

    This function find the non-infinite solution set so if the unknown symbol
    is declared as extended real rather than real then the result may include
    finiteness conditions:

    >>> y = Symbol('y', extended_real=True)
    >>> reduce_rational_inequalities([[y + 2 > 0]], y)
    (-2 < y) & (y < oo)
    Tr$   z„
                    only polynomials and rational functions are
                    supported in this context.
                    Fr   )Ú
relationalc                 óf   •— g | ]-}|D ](\  \  }}}|                      ‰¦  «        ¯||j        fd f‘Œ)Œ.S )r$   )ÚhasÚone)rR   ÚiÚnÚdrC   Úgens        €rL   rU   z0reduce_rational_inequalities.<locals>.<listcomp>  sh   ø€ ð 4Að 4Að 4AØ°ð4Að 4AÙ!,¡& 1 a¨!°Q·U²U¸3±Z´Zð4A°a¸¼°ZÀÐ4Fð 4Að 4Að 4Að 4ArN   )r   r4   r2   r-   ÚtupleÚis_RelationalÚlhsÚrhsÚrel_opr1   ÚZeroÚOner3   ÚtogetherÚas_numer_denomr   r   r    ÚdomainÚis_ExactÚto_exactÚ	get_exactÚis_ZZÚis_QQr	   Úsolve_univariate_inequalityr7   rh   ÚevalfÚas_relational)Úexprsrq   rj   Úexactr]   ÚsolutionÚ_exprsr_   Ú_solÚexprr>   ra   rb   Úoptr{   Úexcludes    `              rL   Úreduce_rational_inequalitiesrŒ   Ä   s¬  ø€ ð: €EØ
€CÝŒz€HØð 0ñ 0ˆØð 	ØØˆÝŒwˆØð #	3ñ #	3ˆDÝ˜$¥Ñ&Ô&ð Ø ‘	��c�càÔ%ð Ø $¤¨4¬8Ñ 3°T´[˜#�D�Dà�Cà•q”vˆ~ˆ~Ý$%¤F­A¬E°4˜c�u��Ø�œ��Ý$%¤E­1¬5°$˜c�u��à#Ÿ}š}™œ×=Ò=Ñ?Ô?‘��uðÝ&=Ø˜E�N Cñ')ô ')Ñ#‘�˜  øå"ð ð ð Ý%¥jð 2ñ 'ô 'ñ ô ð ðøøøð ”:Ô&ð PØ&+§n¢nÑ&6Ô&6¸¿ºÑ8HÔ8HÈ%˜e�u�à”Z×)Ò)Ñ+Ô+ˆFà”Lð 3 F¤Lð 3Ø˜U‘{�Ý! $¨¨3Ñ/Ô/�ØÕ3°D¸#È%ÐPÑPÔPÑP�‘à—’˜e U˜^¨SÐ1Ñ2Ô2Ð2Ñ2àð 	ØÕ/°°Ñ7Ô7Ñ7ˆDÝ1ð 4Að 4Að 4Að 4AØð4Añ 4Aô 4Að 3Bñ Cô CˆGà�G‰OˆDà�DÑˆ‰àð $�Xð $Ø—>’>Ñ#Ô#ˆàð /Ø×)Ò)¨#Ñ.Ô.ˆà€Os   Ã$C=Ã='D$c                 óZ  ‡— |j         du rt          t          d¦  «        ¦  «        ‚ˆfd„Šdddœ}g } ‰| ¦  «        D ]^\  } }||                     ¦   «         vrt	          | d|¦  «        } nt	          |  d||         ¦  «        } |                     | g|z   ¦  «         Œ_t          ||¦  «        S )a�  Reduce an inequality with nested absolute values.

    Examples
    ========

    >>> from sympy import reduce_abs_inequality, Abs, Symbol
    >>> x = Symbol('x', real=True)

    >>> reduce_abs_inequality(Abs(x - 5) - 3, '<', x)
    (2 < x) & (x < 8)

    >>> reduce_abs_inequality(Abs(x + 2)*3 - 13, '<', x)
    (-19/3 < x) & (x < 7/3)

    See Also
    ========

    reduce_abs_inequalities
    Fzs
            Cannot solve inequalities with absolute values containing
            non-real variables.
            c           	      ór  •‡‡— g }| j         s| j        rC| j        Š| j        D ]3} ‰|¦  «        }|s|}Œˆfd„t	          j        ||¦  «        D ¦   «         }Œ4nà| j        rM| j        Š‰j        st          d¦  «        ‚| 
                    ˆfd„ ‰| j        ¦  «        D ¦   «         ¦  «         nŒt          | t          ¦  «        rr ‰| j        d         ¦  «        }|D ]X\  } }|                     | |t          | d¦  «        gz   f¦  «         |                     |  |t!          | d¦  «        gz   f¦  «         ŒYn| g fg}|S )Nc                 óD   •— g | ]\  \  }}\  }} ‰||¦  «        ||z   f‘ŒS rQ   rQ   )rR   r‰   ÚcondsÚ_exprÚ_condsÚops        €rL   rU   zBreduce_abs_inequality.<locals>._bottom_up_scan.<locals>.<listcomp>E  sH   ø€ ð >ð >ð >ÑCaÁ=ÀDÈ%ÑRaÐSXÐZ`˜b˜b  u™oœo¨u°v©~Ð>ð >ð >ð >rN   z'Only Integer Powers are allowed on Abs.c              3   ó,   •K  — | ]\  }}|‰z  |fV — Œd S ©NrQ   )rR   r‰   r�   ro   s      €rL   ú	<genexpr>zAreduce_abs_inequality.<locals>._bottom_up_scan.<locals>.<genexpr>L  s0   øè è € ÐXÐX©k¨d°E˜$ ™' 5Ð)ÐXÐXÐXÐXÐXÐXrN   r   )Úis_AddÚis_MulÚfuncÚargsrY   rZ   Úis_PowÚexpÚ
is_Integerr.   ÚextendÚbaser-   r   r7   r   r
   )r‰   r„   Úargr‡   r�   ro   r“   Ú_bottom_up_scans        @@€rL   r¡   z.reduce_abs_inequality.<locals>._bottom_up_scan9  s”  øøø€ ØˆàŒ;ð 	!˜$œ+ð 	!Ø”ˆBà”yð >ð >�Ø(˜¨Ñ-Ô-�àð >Ø"�E�Eð>ð >ð >ð >Ý%Ô-¨e°VÑ<Ô<ð>ñ >ô >�E�Eð>ð Œ[ð 	!Ø”ˆAØ”<ð LÝ Ð!JÑKÔKÐKà�LŠLÐXÐXÐXÐX¸_¸_ÈTÌYÑ=WÔ=WÐXÑXÔXÑXÔXÐXÐXÝ˜�cÑ"Ô"ð 	!Ø$�_ T¤Y¨q¤\Ñ2Ô2ˆFà%ð =ð =‘��eØ—’˜t U­b°°q©k¬k¨]Ñ%:Ð;Ñ<Ô<Ð<Ø—’˜t˜e U­b°°q©k¬k¨]Ñ%:Ð;Ñ<Ô<Ð<Ð<ð=ð ˜B�Z�LˆEàˆrN   r(   r*   ©r)   r+   r   )Úis_extended_realÚ	TypeErrorr    Úkeysr	   r7   rŒ   )r‰   r>   rq   ÚmappingÚinequalitiesr�   r¡   s         @rL   Úreduce_abs_inequalityr¨     sê   ø€ ð( Ô˜uÐ$Ð$Ý�
ð $ñ ô ñ ô ð 	ð
ð ð ð ð ð> ˜tÐ$Ð$€GØ€Là&� tÑ,Ô,ð ,ð ,‰ˆˆeØ�g—l’l‘n”nÐ$Ð$Ý˜t Q¨Ñ,Ô,ˆDˆDå˜t˜e Q¨°¬Ñ5Ô5ˆDà×Ò˜T˜F U™NÑ+Ô+Ð+Ð+å'¨°cÑ:Ô:Ð:rN   c                 ó.   ‡— t          ˆfd„| D ¦   «         Ž S )a  Reduce a system of inequalities with nested absolute values.

    Examples
    ========

    >>> from sympy import reduce_abs_inequalities, Abs, Symbol
    >>> x = Symbol('x', extended_real=True)

    >>> reduce_abs_inequalities([(Abs(3*x - 5) - 7, '<'),
    ... (Abs(x + 25) - 13, '>')], x)
    (-2/3 < x) & (x < 4) & (((-oo < x) & (x < -38)) | ((-12 < x) & (x < oo)))

    >>> reduce_abs_inequalities([(Abs(x - 4) + Abs(3*x - 5) - 7, '<')], x)
    (1/2 < x) & (x < 4)

    See Also
    ========

    reduce_abs_inequality
    c                 ó8   •— g | ]\  }}t          ||‰¦  «        ‘ŒS rQ   )r¨   )rR   r‰   r>   rq   s      €rL   rU   z+reduce_abs_inequalities.<locals>.<listcomp>{  s9   ø€ ð !ð !ð !ÙˆD�#õ (¨¨c°3Ñ7Ô7ð !ð !ð !rN   r   )r„   rq   s    `rL   Úreduce_abs_inequalitiesr«   f  s8   ø€ õ* ð !ð !ð !ð !Øð!ñ !ô !ð "ð "rN   Fc                 ó$  ‡ ‡‡)— ddl m} |                     t          j        ¦  «        du rt          t          d¦  «        ¦  «        ‚|t          j        ur?t          ‰ ‰d|¬¦  «                             |¦  «        }|r| 	                    ‰¦  «        }|S 	 ‰}|}‰j
        du r%t          j        }|s|n| 	                    |¦  «        S ‰j
        €Tt          dd¬	¦  «        Š	 ‰                      |‰i¦  «        Š n*# t          $ r t          t          d
¦  «        ¦  «        ‚w xY wd}‰ t          j        u r|}�nÃ‰ t          j        u rt          j        }�n§‰ j        ‰ j        z
  }	t'          |	‰¦  «        }
|
t          j        k    rRt+          |	¦  «        }	‰                      |	d¦  «        }|t          j        u r|}�n|t          j        u rt          j        }nó|
�ñt/          |	‰|¦  «        }‰ j        }|dv rF‰                      |j        d¦  «        r|}nq‰                      |j        d¦  «        st          j        }nI|dv rE‰                      |j        d¦  «        r|}n'‰                      |j        d¦  «        st          j        }|j        |j        }}||z
  t          j        u r't9          d|
dd¦  «                             |¦  «        }|}|�€0|	                     ¦   «         \  }}	 ‰|j        vrtA          |	j        ¦  «        dk    rtB          ‚tE          |	‰|¦  «        }|€tB          ‚nU# tB          t
          f$ rA t          t          d‰  #                    ‰tI          d¦  «        ¦  «        z  ¦  «        ¦  «        ‚w xY wt+          |	¦  «        Š)ˆ)ˆ ˆfd„}g } |‰ ‰¦  «        D ]&}| %                    tE          |‰|¦  «        ¦  «         Œ'|stM          ‰)‰|¦  «        }d‰ j        v o
‰ j        dk    }	 tO          |j(        tS          |j        |j        ¦  «        z
  ¦  «        }tS          ||z   tU          |¦  «        z   Ž                      t9          |j        |j        |j        |v|j        |v¦  «        ¦  «        }tW          d„ |D ¦   «         ¦  «        rtY          |d¬¦  «        d         }nat[          |d„ ¦  «        }|d         rt
          ‚	 |d         }tA          |¦  «        dk    rt]          |¦  «        }n# t          $ r t
          ‚w xY wn# t
          $ r t          d¦  «        ‚w xY wt          j        }‰) /                    t          j0        ¦  «        x}t          j        k    �rÏd}tS          ¦   «         }	 tc          |‰|¦  «        }te          |t8          ¦  «        s.|D ]*}||vr$ ||¦  «        r|j
        r|tS          |¦  «        z  }Œ+nñ|j        |j        }!} tY          |tS          |!¦  «        z   ¦  «        D ]¬} || ¦  «        }"| |!k    r— ||¦  «        }#tg          | |¦  «        }$|$|vrx|$j
        rq ||$¦  «        rf|"r|#r|t9          | |¦  «        z  }nN|"r|t9          j4        | |¦  «        z  }n3|#r|t9          j5        | |¦  «        z  }n|t9          j6        | |¦  «        z  }|} Œ­|D ]}%|tS          |%¦  «        z  }Œn# t          $ r t          j        }d}Y nw xY w|t          j        u r7tC          t          d‰  #                    ‰|¦  «        ›d|›d�¦  «        ¦  «        ‚|                     |¦  «        }t          j        g}&|j        } | |v r4 || ¦  «        r)| j7        r"|& 8                    tS          | ¦  «        ¦  «         |D ]©}'|'}! |tg          | |!¦  «        ¦  «        r%|& 8                    t9          | |!dd¦  «        ¦  «         |'|v r| 9                    |'¦  «         nK|'|v r!| 9                    |'¦  «          ||'¦  «        }(n|}(|(r"|& 8                    tS          |'¦  «        ¦  «         |!} Œª|j        }!|!|v r4 ||!¦  «        r)|!j7        r"|& 8                    tS          |!¦  «        ¦  «          |tg          | |!¦  «        ¦  «        r(|& 8                    t9          j6        | |!¦  «        ¦  «         |t          j        k    r|r|                     |¦  «        }n,tu          tw          |&Ž ||¦  «         #                    ‰|¦  «        }|s|n| 	                    |¦  «        S )aT  Solves a real univariate inequality.

    Parameters
    ==========

    expr : Relational
        The target inequality
    gen : Symbol
        The variable for which the inequality is solved
    relational : bool
        A Relational type output is expected or not
    domain : Set
        The domain over which the equation is solved
    continuous: bool
        True if expr is known to be continuous over the given domain
        (and so continuous_domain() does not need to be called on it)

    Raises
    ======

    NotImplementedError
        The solution of the inequality cannot be determined due to limitation
        in :func:`sympy.solvers.solveset.solvify`.

    Notes
    =====

    Currently, we cannot solve all the inequalities due to limitations in
    :func:`sympy.solvers.solveset.solvify`. Also, the solution returned for trigonometric inequalities
    are restricted in its periodic interval.

    See Also
    ========

    sympy.solvers.solveset.solvify: solver returning solveset solutions with solve's output API

    Examples
    ========

    >>> from sympy import solve_univariate_inequality, Symbol, sin, Interval, S
    >>> x = Symbol('x')

    >>> solve_univariate_inequality(x**2 >= 4, x)
    ((2 <= x) & (x < oo)) | ((-oo < x) & (x <= -2))

    >>> solve_univariate_inequality(x**2 >= 4, x, relational=False)
    Union(Interval(-oo, -2), Interval(2, oo))

    >>> domain = Interval(0, S.Infinity)
    >>> solve_univariate_inequality(x**2 >= 4, x, False, domain)
    Interval(2, oo)

    >>> solve_univariate_inequality(sin(x) > 0, x, relational=False)
    Interval.open(0, pi)

    r   ©ÚdenomsFz|
        Inequalities in the complex domain are
        not supported. Try the real domain by
        setting domain=S.Reals)rj   Ú
continuousNrq   T©Úextended_realz–
                When gen is real, the relational has a complex part
                which leads to an invalid comparison like I < 0.
                r¢   )r(   r*   r&   z…
                    The inequality, %s, cannot be solved using
                    solve_univariate_inequality.
                    Úxc                 óœ  •— ‰                      ‰t          | ¦  «        ¦  «        }	 ‰                     |d¦  «        }n# t          $ r t          j        }Y nw xY w|t          j        t          j        fv r|S |j        du rt          j        S |                     d¦  «        }|j	        r‰                     |d¦  «        S t          d|z  ¦  «        ‚)Nr   Fr,   z!relationship did not evaluate: %s)Úsubsr   r™   r¤   r   r3   r1   r£   ro   Úis_comparabler5   )r²   ÚvÚrÚ
expanded_er‰   rq   s      €€€rL   Úvalidz*solve_univariate_inequality.<locals>.valid  sÒ   ø€ ð —O’O C­°A©¬Ñ7Ô7�ð ØŸ	š	 ! Q™œ�A�AøÝ ð  ð  ð  Ýœ�A�A�Að øøøà�œ¥¤Ð)Ð)Ð)Ø�HØÔ%¨Ð.Ð.Ýœ7�NàŸš˜A™œ�AØ”ð /Ø#Ÿyšy¨¨A™œÐ.å-Ø;¸aÑ?ñAô Að As   ¦= ½AÁAú=r%   c              3   ó$   K  — | ]}|j         V — Œd S r•   )r0   )rR   r·   s     rL   r–   z.solve_univariate_inequality.<locals>.<genexpr>@  s$   è è € Ð<Ð< q�q”{Ð<Ð<Ð<Ð<Ð<Ð<rN   )Ú	separatedc                 ó   — | j         S r•   ©r£   )r²   s    rL   ú<lambda>z-solve_univariate_inequality.<locals>.<lambda>C  s	   € ¸QÔ=O€ rN   z'sorting of these roots is not supportedz
                        zZ contains imaginary parts which cannot be
                        made 0 for any value of zm satisfying the
                        inequality, leading to relations like I < 0.
                        )<Úsympy.solvers.solversr®   Ú	is_subsetr   r2   r5   r    r�   Úintersectionrƒ   r£   r4   r   Úxreplacer¤   r1   r3   rt   ru   r   rw   r   r™   r   rv   ÚsupÚinfr9   r   r[   rz   Úfree_symbolsÚlenr.   r   r´   r   rž   r   ÚsetÚboundaryr   ÚlistÚallr   r   ÚsortedÚcoeffÚImaginaryUnitr   r-   Ú_ptÚRopenÚLopenÚopenÚ	is_finiter7   Úremover   r   )*r‰   rq   rj   r{   r¯   r®   ÚrvÚ_genÚ_domainÚeÚperiodÚconstÚfranger>   rÅ   rÄ   ro   rp   Úsolnsr¹   ÚsingularitiesÚ	include_xÚdiscontinuitiesÚcritical_pointsr@   ÚsiftedÚ	make_realÚcoeffIÚcheckÚim_solÚaÚzÚstartÚendÚvalid_startÚvalid_zÚptrT   Úsol_setsr²   Ú_validr¸   s*   ``                                       @rL   r�   r�     sB
  øøø€ ðr -Ð,Ð,Ð,Ð,Ð,à×Ò�œÑ Ô  EÐ)Ð)Ý!¥*ð ."ñ ##ô ##ñ $ô $ð 	$ð 
•q”wÐ	Ð	Ý(Øˆc˜e°
ð<ñ <ô <ß<HºLÈÑ<PÔ<Pð 	àð 	'Ø×!Ò! #Ñ&Ô&ˆBØˆ	àð
 €DØ€GØ
Ô˜uÐ$Ð$ÝŒZˆØ#Ð?ˆrˆr¨×)9Ò)9¸$Ñ)?Ô)?Ð?Ø	Ô	Ð	%Ý�E¨Ð.Ñ.Ô.ˆð	Ø—=’= $¨ Ñ-Ô-ˆDˆDøÝð 	ð 	ð 	Ý�Jð (ñ ô ñ ô ð ð	øøøð 
€Bà�qŒv€~€~Øˆ‰à	•”ˆˆÝŒZˆ‰ð ŒH�t”xÑˆÝ˜Q Ñ$Ô$ˆØ•Q”VÒÐÝ˜1‘”ˆAØ—I’I˜a ‘O”OˆEØ�œˆˆØ�‘Ø�!œ'Ð!Ð!Ý”Z�øØÐÝ# A s¨FÑ3Ô3ˆFà”+ˆCØ�kÐ!Ð!Ø—9’9˜VœZ¨Ñ+Ô+ð $Ø�B�BØŸš 6¤:¨qÑ1Ô1ð $Ýœ�Bøà˜Ð#Ð#Ø—9’9˜VœZ¨Ñ+Ô+ð $Ø�B�BØŸš 6¤:¨qÑ1Ô1ð $Ýœ�Bà”z 6¤:�ˆCØ�S‰y�AœJÐ&Ð&Ý! ! V¨U°DÑ9Ô9×CÒCÀGÑLÔL�Ø �à‰:Ø×#Ò#Ñ%Ô%‰DˆAˆqð8Ø˜aœnÐ,Ð,µ°Q´^Ñ1DÔ1DÀqÒ1HÐ1HÝ$Ð$õ    3¨Ñ/Ô/�Ø�=å$Ð$ð !øõ Õ 3Ð4ð 8ð 8ð 8õ *­*ð 6ð Ÿ)š) C­°©¬Ñ5Ô5ñ66ñ +7ô +7ñ 8ô 8ð 8ð8øøøõ $ A™œˆJðAð Að Að Að Að Að Að6 ˆMØ�V˜D #Ñ&Ô&ð >ð >�Ø×$Ò$¥W¨Q°°VÑ%<Ô%<Ñ=Ô=Ð=Ð=Øð DÝ*¨:°s¸FÑCÔC�à˜tœ{Ð*ÐB¨t¬{¸dÒ/BˆIðUÝ"% f¤oÝ˜fœj¨&¬*Ñ5Ô5ñ'6ñ #7ô #7�õ #,¨e°mÑ.CÅdØ#ñG%ô G%ñ /%ð #'ß'3¢|Ý˜VœZ¨¬Ø”J fÐ,¨f¬jÀÐ.FñHô Hñ(Iô (Ið  õ Ð<Ð<¨OÐ<Ñ<Ô<Ñ<Ô<ð 2Ý" ?¸dÐCÑCÔCÀAÔF�E�Eå! /Ð3OÐ3OÑPÔP�FØ˜d”|ð 2õ 2Ð1ð2Ø & t¤˜Ý˜u™:œ:¨š>˜>Ý$*¨5¡M¤M˜EøøÝ$ð 2ð 2ð 2Ý1Ð1ð2øøøøøå&ð Uð Uð UÝ)Ð*SÑTÔTÐTðUøøøõ
 œˆIØ$×*Ò*­1¬?Ñ;Ô;Ð;�ÅÄÒFÑFØ�Ý"™œ�ð"Ý  ¨¨fÑ5Ô5�AÝ% a­Ñ2Ô2ð 3Ø!"ð 7ð 7˜AØ ¨Ð5Ð5¸%¸%À¹(¼(Ð5ÀqÔGYÐ5Ø &­)°A©,¬,Ñ 6 øð7ð &'¤U¨A¬E˜s˜Ý!'¨½)ÀC¹.¼.Ñ(HÑ!IÔ!Ið &ð &˜AØ*/¨%°©,¬,˜KØ$¨š|˜|Ø*/¨%°©(¬( Ý%(¨°¡]¤] Ø#%¨]Ð#:Ð#:¸rÔ?RÐ#:ÐW\ÐW\Ð]_ÑW`ÔW`Ð#:Ø'2ð %J°wð %JØ(.µ(¸5À!Ñ2DÔ2DÑ(D¨¨Ø)4ð %JØ(.µ(´.ÀÈÑ2JÔ2JÑ(J¨¨Ø)0ð %JØ(.µ(´.ÀÈÑ2JÔ2JÑ(J¨¨à(.µ(´-ÀÀqÑ2IÔ2IÑ(I¨Ø$%˜E˜EØ!.ð 3ð 3˜AØ"¥i°¡l¤lÑ2˜F˜FøøÝ!ð "ð "ð "ÝœW�FØ!�E�E�Eð"øøøð �QœZÐ'Ð'Ý$¥Z Zð !%§	¢	¨#¨tÑ 4Ô 4Ð 4Ð 4°d°d°dð	1<ñ &=ô &=ñ >ô >ð >ð &×/Ò/°Ñ7Ô7�	åœ
�|ˆHà”JˆEØ˜ˆˆ 5 5¨¡<¤<ˆ°E´OˆØ—’¥	¨%Ñ 0Ô 0Ñ1Ô1Ð1àð ð �Ø�à�5�˜U C™œÑ)Ô)ð FØ—O’O¥H¨U°C¸¸tÑ$DÔ$DÑEÔEÐEà˜Ð%Ð%Ø!×(Ò(¨Ñ+Ô+Ð+Ð+à˜OÐ+Ð+Ø'×.Ò.¨qÑ1Ô1Ð1Ø!&  q¡¤˜˜à!*˜Øð 6Ø Ÿš­	°!©¬Ñ5Ô5Ð5à��à”*ˆCØ�fˆ}ˆ}   s¡¤ˆ}°´ˆ}Ø—’¥	¨#¡¤Ñ/Ô/Ð/àˆu•S˜ ‘_”_Ñ%Ô%ð ;Ø—’¥¤¨e°SÑ 9Ô 9Ñ:Ô:Ð:à�œÒÐ EÐØ×*Ò*¨7Ñ3Ô3��å!Ý˜HÐ%¨	°7ñ<ô <ß<@ºDÀÀd¹O¼Oð ð  Ð;ˆ2ˆ2 R×%5Ò%5°dÑ%;Ô%;Ð;sR   Ã C8 Ã8'DË!AL$ Ì$AM6Ï,CT Ó*S/ Ó.T Ó/TÔT ÔTÕ/EZ5 Ú5[Û[c                 óÂ  — | j         s|j         s	| |z   dz  }nÇ| j         r|j         rt          j        }n¬| j         r| j        �|j         r|j        €t	          d¦  «        ‚|j         r|j        s| j         r| j        r|| }} |j         r*| j        r| dz  }nM| j        r| t          j        z  }n6| dz   }n0| j         r)|j        r|t          j        z  }n|j        r|dz  }n|dz
  }|S )z$Return a point between start and endr,   Nz,cannot proceed with unsigned infinite valuesr&   )Úis_infiniter   rw   Úis_extended_positiver.   Úis_extended_negativeÚHalf)rè   ré   rì   s      rL   rÏ   rÏ   ¦  s8  € àÔð  S¤_ð Ø�c‰k˜1‰_ˆˆØ	Ô	ð ˜sœð ÝŒVˆˆàÔð 	M %Ô"<Ð"DØ”ð #EØ$'Ô$<Ð$DÝÐKÑLÔLÐLØŒOð 	$ Ô 8ð 	$ØÔ!ð	$Ø&+Ô&@ð	$à˜e�3ˆEð Œ?ð 	ØÔ)ð Ø˜1‘W��ØÔ+ð Ø�1œ6‘\��à˜Q‘Y��ØÔð 	ØÔ'ð Ø�œ‘Z��ØÔ)ð Ø˜‘U��à˜1‘W�Ø€IrN   c                 ót  — ddl m} || j        vr| S | j        |k    r| j        } | j        |k    r|| j        j        vr| S d„ }d}t          j        }| j        | j        z
  }	 t          ||¦  «        }| 	                    ¦   «         dk    r)|  
                    |                     ¦   «         d¦  «        }n!|s| 	                    ¦   «         dk    rt          ‚�nd# t          t          f$ �rO |�s:	 t          | gg|¦  «        }n # t          $ r t          | |¦  «        }Y nw xY w || ||¦  «        }	|	t          j        u r3 ||||¦  «        t          j        u r|                     ||k     d¦  «        } || || ¦  «        }
|
t          j        u rP |||| ¦  «        t          j        u r6|                     | |k     d¦  «        }|                     || k    d¦  «        }|t          j        u r=|	t          j        u r||k    n||k     }|
t          j        urt'          | |k     |¦  «        }nt          |¦  «        }Y nw xY wg }|�€ß|                     ¦   «         }d}|                     |d¬¦  «        \  }}||z  }||z  }t+          |¦  «        }|                     |d¬¦  «        \  }}|j        dk    s |j        |j        cxk    r	 €n n| j        d	vr|}t          j        }||z  }|j        r|  
                    ||¦  «        }n| j         
                    ||¦  «        } || j        ¦  «         || j        ¦  «        z  } ||¦  «        }||z
  D ]v}t7          t9          |d¦  «        ||¬
¦  «        }t;          |t8          ¦  «        r?|j        |k    r4 ||||j        ¦  «        t          j        u r|                     | ¦  «         Œw| |fD ]W} ||||¦  «        t          j        u r< || ||¦  «        t          j        ur#|                     ||u r||k     n||k     ¦  «         ŒX|                     |¦  «         t'          |Ž S )a�  Return the inequality with s isolated on the left, if possible.
    If the relationship is non-linear, a solution involving And or Or
    may be returned. False or True are returned if the relationship
    is never True or always True, respectively.

    If `linear` is True (default is False) an `s`-dependent expression
    will be isolated on the left, if possible
    but it will not be solved for `s` unless the expression is linear
    in `s`. Furthermore, only "safe" operations which do not change the
    sense of the relationship are applied: no division by an unsigned
    value is attempted unless the relationship involves Eq or Ne and
    no division by a value not known to be nonzero is ever attempted.

    Examples
    ========

    >>> from sympy import Eq, Symbol
    >>> from sympy.solvers.inequalities import _solve_inequality as f
    >>> from sympy.abc import x, y

    For linear expressions, the symbol can be isolated:

    >>> f(x - 2 < 0, x)
    x < 2
    >>> f(-x - 6 < x, x)
    x > -3

    Sometimes nonlinear relationships will be False

    >>> f(x**2 + 4 < 0, x)
    False

    Or they may involve more than one region of values:

    >>> f(x**2 - 4 < 0, x)
    (-2 < x) & (x < 2)

    To restrict the solution to a relational, set linear=True
    and only the x-dependent portion will be isolated on the left:

    >>> f(x**2 - 4 < 0, x, linear=True)
    x**2 < 4

    Division of only nonzero quantities is allowed, so x cannot
    be isolated by dividing by y:

    >>> y.is_nonzero is None  # it is unknown whether it is 0 or not
    True
    >>> f(x*y < 1, x)
    x*y < 1

    And while an equality (or inequality) still holds after dividing by a
    non-zero quantity

    >>> nz = Symbol('nz', nonzero=True)
    >>> f(Eq(x*nz, 1), x)
    Eq(x, 1/nz)

    the sign must be known for other inequalities involving > or <:

    >>> f(x*nz <= 1, x)
    nz*x <= 1
    >>> p = Symbol('p', positive=True)
    >>> f(x*p <= 1, x)
    x <= 1/p

    When there are denominators in the original expression that
    are removed by expansion, conditions for them will be returned
    as part of the result:

    >>> f(x < x*(2/x - 1), x)
    (x < 1) & Ne(x, 0)
    r   r­   c                 ó˜   — 	 |                       ||¦  «        }|t          j        u r|S |dvrd S |S # t          $ r t          j        cY S w xY w)N©TF)r´   r   ÚNaNr¤   )ÚierT   rn   r¶   s       rL   Úclassifyz#_solve_inequality.<locals>.classify  sc   € ð	Ø—’˜˜1‘”ˆAØ•A”EˆzˆzØ�Ø˜-Ð'Ð'Ø�ØˆHøÝð 	ð 	ð 	Ý”5ˆLˆLˆLð	øøøs   ‚%0 ¨0 ®0 °A	ÁA	Nr&   T)Úas_AddF)r%   r$   )Úlinear)rÀ   r®   rÆ   ru   r;   rt   r   r9   r   Údegreer™   r/   r5   r   rŒ   r�   r1   r3   r´   r   Úas_independentr   Úis_zeroÚis_negativeÚis_positiverv   rx   Ú_solve_inequalityr   r-   r7   )rø   rT   rû   r®   rù   rÕ   Úoor‰   rS   ÚokooÚoknoor�   rØ   ru   ÚbÚaxÚefræ   Úbeginning_denomsÚcurrent_denomsrp   Úcrn   s                          rL   r  r  Ç  s±  € ðT -Ð,Ð,Ð,Ð,Ð,Ø�”ÐÐØˆ	Ø	„v�‚{€{ØŒ[ˆØ	„v�‚{€{�q ¤Ô 3Ð3Ð3Øˆ	ðð ð ð 
€BÝ	
Œ€BØŒ6�B”F‰?€DðÝ��q‰MŒMˆØ�8Š8‰:Œ:˜Š?ˆ?Ø—’˜Ÿš™œ aÑ(Ô(ˆBˆBØð 	&˜AŸHšH™JœJ¨šN˜Nå%Ð%ùøÝÕ0Ð1ð ñ ð Øñ 	ð8Ý1°B°4°&¸!Ñ<Ô<��øÝ"ð 8ð 8ð 8Ý0°°QÑ7Ô7���ð8øøøð �8˜B  2Ñ&Ô&ˆDØ•q”vˆ~ˆ~ ( (¨2¨q°"Ñ"5Ô"5½¼Ð"@Ð"@Ø—W’W˜Q šV TÑ*Ô*�Ø�H˜R  R CÑ(Ô(ˆEØ�œ��Ø�H˜R  R CÑ(Ô(­A¬GÐ3Ð3Ø—W’W˜b˜S 1šW dÑ+Ô+�Ø—W’W˜Q " šW dÑ+Ô+�Ø•Q”Vˆ|ˆ|Ø"&­!¬& . .�a˜2’g�g°q¸2²v�Ø¥¤Ð&Ð&Ý˜b˜S 1šW bÑ)Ô)�Bøå�T‘
”
ˆAøøð+øøøð. €EØ	�zØ�IŠI‰KŒKˆð
 ˆØ× Ò  ¨4Ð Ñ0Ô0‰ˆˆ2Ø	ˆQ‰ˆØˆq‰ˆÝ˜!‰_Œ_ˆØ× Ò  ¨5Ð Ñ1Ô1‰ˆˆ1ØŒI˜ÒÐØ”Ø”ð&ð &ò &ð &Ø!%ð&ð &ð &ð &à”	 Ð-Ð-ØˆAÝ”ˆAØˆq‰ˆØŒ=ð 	*Ø—’˜˜C‘”ˆBˆBà”×!Ò! ! SÑ)Ô)ˆBð "˜6 "¤&™>œ>¨F¨F°2´6©N¬NÑ:ÐØ˜ ™œˆØ! NÑ2ð 	%ð 	%ˆAÝ!¥" Q¨¡(¤(¨A°fÐ=Ñ=Ô=ˆAÝ˜!�RÑ Ô ð % Q¤U¨a¢Z ZØ�8˜B  1¤5Ñ)Ô)­Q¬VÐ3Ð3à—L’L ! Ñ$Ô$Ð$øØ�#�r�ð 	:ð 	:ˆAØ�˜˜Q Ñ"Ô"¥a¤fÐ,Ð,Ø�H˜R  AÑ&Ô&­a¬fÐ4Ð4Ø—’ a¨2 g g˜Q šU˜U°1°q²5Ñ9Ô9Ð9øà	‡L‚L�ÑÔÐÝ�ˆ;Ðs8   Á A2C ÃH5Ã*C=Ã<H5Ã=DÄH5ÄDÄDH5È4H5c           
      óü  ‡— i i }}g }| D �]§}|j         |j        }}|                     t          ¦  «        }t	          |¦  «        dk    r|                     ¦   «         Šn€|j        |z  }	t	          |	¦  «        dk    rG|	                     ¦   «         Š|                     t          t          |d|¦  «        ‰¦  «        ¦  «         Œ·t          t          d¦  «        ¦  «        ‚|                     ‰¦  «        r-|                     ‰g ¦  «                             ||f¦  «         �Œ|                     ˆfd„¦  «        }
|
rFt          d„ |
D ¦   «         ¦  «        r-|                     ‰g ¦  «                             ||f¦  «         �Œu|                     t          t          |d|¦  «        ‰¦  «        ¦  «         �Œ©d„ |                     ¦   «         D ¦   «         }d„ |                     ¦   «         D ¦   «         }t#          ||z   |z   Ž S )Nr&   r   zZ
                    inequality has more than one symbol of interest.
                    c                 ód   •— |                       ‰¦  «        o| j        p| j        o| j        j         S r•   )rl   Úis_Functionr›   rœ   r�   )Úurq   s    €rL   r¿   z&_reduce_inequalities.<locals>.<lambda>“  s4   ø€ Ø—’�c‘
”
ð DØ”ÐB ¤Ð!B°!´%Ô2BÐ.Bð rN   c              3   ó@   K  — | ]}t          |t          ¦  «        V — Œd S r•   )r-   r   ©rR   rn   s     rL   r–   z'_reduce_inequalities.<locals>.<genexpr>–  s,   è è € Ð!IÐ!I¸¥*¨QµÑ"4Ô"4Ð!IÐ!IÐ!IÐ!IÐ!IÐ!IrN   c                 ó6   — g | ]\  }}t          |g|¦  «        ‘ŒS rQ   )rŒ   ©rR   rq   r„   s      rL   rU   z(_reduce_inequalities.<locals>.<listcomp>›  s)   € ÐcÐcÐcÁ:À3ÈÕ0°%°¸#Ñ>Ô>ÐcÐcÐcrN   c                 ó4   — g | ]\  }}t          ||¦  «        ‘ŒS rQ   )r«   r  s      rL   rU   z(_reduce_inequalities.<locals>.<listcomp>œ  s'   € ÐZÐZÐZ¹:¸3ÀÕ*¨5°#Ñ6Ô6ÐZÐZÐZrN   )rt   rv   Úatomsr   rÇ   ÚpoprÆ   r7   r  r	   r5   r    Úis_polynomialÚ
setdefaultÚfindrË   Úitemsr   )r§   ÚsymbolsÚ	poly_partÚabs_partÚotherÚ
inequalityr‰   r>   ÚgensÚcommonÚ
componentsÚpoly_reducedÚabs_reducedrq   s                @rL   Ú_reduce_inequalitiesr$  t  s!  ø€ ð ˜bˆx€IØ€Eà"ð Oñ Oˆ
à”N JÔ$5ˆcˆð
 �zŠz�&Ñ!Ô!ˆåˆt‰9Œ9˜Š>ˆ>Ø—(’(‘*”*ˆCˆCàÔ&¨Ñ0ˆFÝ�6‰{Œ{˜aÒÐØ—j’j‘l”l�Ø—’Õ.­z¸$ÀÀ3Ñ/GÔ/GÈÑMÔMÑNÔNÐNØå)­*ð 6ñ +ô +ñ ô ð ð ×Ò˜cÑ"Ô"ð 		OØ× Ò   bÑ)Ô)×0Ò0°$¸°Ñ=Ô=Ð=Ñ=àŸšð $Dð $Dð $Dð $Dñ Eô EˆJð ð O�cÐ!IÐ!I¸jÐ!IÑ!IÔ!IÑIÔIð OØ×#Ò# C¨Ñ,Ô,×3Ò3°T¸3°KÑ@Ô@Ð@Ñ@à—’Õ.­z¸$ÀÀ3Ñ/GÔ/GÈÑMÔMÑNÔNÐNÑNàcÐcÐQZ×Q`ÒQ`ÑQbÔQbÐcÑcÔc€LØZÐZÈÏÊÑIYÔIYÐZÑZÔZ€Kå� Ñ+¨eÑ3Ð5Ð5rN   c                 óš  ‡— t          | ¦  «        s| g} d„ | D ¦   «         }  t          ¦   «         j        d„ | D ¦   «         Ž }t          |¦  «        s|g}t          |¦  «        p||z  }t          d„ |D ¦   «         ¦  «        rt	          t          d¦  «        ¦  «        ‚d„ |D ¦   «         Šˆfd„| D ¦   «         } ˆfd„|D ¦   «         }g }| D ]Á}t          |t          ¦  «        rH|                     |j	         
                    ¦   «         |j         
                    ¦   «         z
  d¦  «        }n|d	vrt          |d¦  «        }|d
k    rŒz|dk    rt          j        c S |j	        j        rt!          d|z  ¦  «        ‚|                     |¦  «         ŒÂ|} ~t%          | |¦  «        }|                     d„ ‰                     ¦   «         D ¦   «         ¦  «        S )aE  Reduce a system of inequalities with rational coefficients.

    Examples
    ========

    >>> from sympy.abc import x, y
    >>> from sympy import reduce_inequalities

    >>> reduce_inequalities(0 <= x + 3, [])
    (-3 <= x) & (x < oo)

    >>> reduce_inequalities(0 <= x + y*2 - 1, [x])
    (x < oo) & (x >= 1 - 2*y)
    c                 ó,   — g | ]}t          |¦  «        ‘ŒS rQ   r   r  s     rL   rU   z'reduce_inequalities.<locals>.<listcomp>²  s   € Ð5Ð5Ð5 1•G˜A‘J”JÐ5Ð5Ð5rN   c                 ó   — g | ]	}|j         ‘Œ
S rQ   )rÆ   r  s     rL   rU   z'reduce_inequalities.<locals>.<listcomp>´  s   € Ð>Ð>Ð>¨A˜œÐ>Ð>Ð>rN   c              3   ó(   K  — | ]}|j         d u V — ŒdS )FNr¾   r  s     rL   r–   z&reduce_inequalities.<locals>.<genexpr>¹  s*   è è € Ð
8Ð
8¨1ˆ1Ô Ð&Ð
8Ð
8Ð
8Ð
8Ð
8Ð
8rN   zP
            inequalities cannot contain symbols that are not real.
            c                 óJ   — i | ] }|j         ­	|t          |j        d¬¦  «        “Œ!S )NTr°   )r£   r   Únamer  s     rL   ú
<dictcomp>z'reduce_inequalities.<locals>.<dictcomp>¿  s;   € ð 5ð 5ð 5Ø˜Ô+Ð3ð •�q”v¨TÐ2Ñ2Ô2Ø3Ð3Ð3rN   c                 ó:   •— g | ]}|                      ‰¦  «        ‘ŒS rQ   ©rÃ   ©rR   rn   Úrecasts     €rL   rU   z'reduce_inequalities.<locals>.<listcomp>Á  s%   ø€ Ð=Ð=Ð=¨1�A—J’J˜vÑ&Ô&Ð=Ð=Ð=rN   c                 ó:   •— h | ]}|                      ‰¦  «        ’ŒS rQ   r-  r.  s     €rL   ú	<setcomp>z&reduce_inequalities.<locals>.<setcomp>Â  s%   ø€ Ð3Ð3Ð3 aˆq�zŠz˜&Ñ!Ô!Ð3Ð3Ð3rN   r   rö   TFr"   c                 ó   — i | ]\  }}||“Œ	S rQ   rQ   )rR   Úkr¶   s      rL   r+  z'reduce_inequalities.<locals>.<dictcomp>Ú  s   € Ð8Ð8Ð8¡  A˜˜1Ð8Ð8Ð8rN   )r   rÈ   r\   Úanyr¤   r    r-   r	   r™   rt   r/   ru   r   r   r3   r0   r5   r7   r$  rÃ   r  )r§   r  r  Úkeeprn   rÕ   r/  s         @rL   Úreduce_inequalitiesr6  ¡  s  ø€ õ �LÑ!Ô!ð &Ø$�~ˆØ5Ð5¨Ð5Ñ5Ô5€Là�3‰5Œ5Œ;Ð>Ð>°Ð>Ñ>Ô>Ð?€Då�GÑÔð Ø�)ˆÝ�7‰|Œ|Ð#˜t tÑ+€GÝ
Ð
8Ð
8°Ð
8Ñ
8Ô
8Ñ8Ô8ð Ý�
ð $ñ ô ñ ô ð 	ð
5ð 5Øð5ñ 5ô 5€Fà=Ð=Ð=Ð=°Ð=Ñ=Ô=€LØ3Ð3Ð3Ð3¨7Ð3Ñ3Ô3€Gð €DØð ð ˆÝ�a�Ñ$Ô$ð 	Ø—’�q”u—}’}‘”¨¬¯ª©¬Ñ8¸!Ñ<Ô<ˆAˆAØ�mÐ#Ð#Ý�1�a‘”ˆAØ�Š9ˆ9ØØ�%ŠZˆZÝ”7ˆNˆNˆNØŒ5Œ?ð 	=Ý%Ø7¸!Ñ;ñ=ô =ð =à�Š�A‰ŒˆˆØ€LØõ 
˜l¨GÑ	4Ô	4€Bð �;Š;Ð8Ð8¨¯ª©¬Ð8Ñ8Ô8Ñ9Ô9Ð9rN   )T)F)9Ú__doc__rY   Úsympy.calculus.utilr   r   r   Ú
sympy.corer   Úsympy.core.exprtoolsr   Úsympy.core.relationalr	   r
   r   r   Úsympy.core.symbolr   r   Úsympy.sets.setsr   r   r   r   Úsympy.core.singletonr   Úsympy.core.functionr   Ú$sympy.functions.elementary.complexesr   Úsympy.logicr   Úsympy.polysr   r   r   Úsympy.polys.polyutilsr   Úsympy.solvers.solvesetr   r   Úsympy.utilities.iterablesr   r   Úsympy.utilities.miscr    rM   rW   rh   rŒ   r¨   r«   r2   r�   rÏ   r  r$  r6  rQ   rN   rL   ú<module>rG     sx  ðØ BÐ BØ Ð Ð Ð ðð ð ð ð ð ð ð ð ð à Ð Ð Ð Ð Ð Ø -Ð -Ð -Ð -Ð -Ð -Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ø DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DØ "Ð "Ð "Ð "Ð "Ð "Ø *Ð *Ð *Ð *Ð *Ð *Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø Ð Ð Ð Ð Ð Ø FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FØ (Ð (Ð (Ð (Ð (Ð (Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø +Ð +Ð +Ð +Ð +Ð +ðXð Xð XðvIð Ið Ið"?ð ?ð ?ðDXð Xð Xð XðvD;ð D;ð D;ðN"ð "ð "ð2 7;À1Ä7ÐW\ð d<ð d<ð d<ð d<ðN	ð ð ðBjð jð jð jðZ*6ð *6ð *6ðZ /1ð 9:ð 9:ð 9:ð 9:ð 9:ð 9:rN   