§
    OŠtj'%  ã                   óR  — d dl mZ d dlmZ  G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d	„ d
e¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z	 G d„ de¦  «        Z
 G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        ZdS )é    )Ú	Predicate)Ú
Dispatcherc                   ó0   — e Zd ZdZdZ edd¬¦  «        ZdS )ÚNegativePredicateac  
    Negative number predicate.

    Explanation
    ===========

    ``Q.negative(x)`` is true iff ``x`` is a real number and :math:`x < 0`, that is,
    it is in the interval :math:`(-\infty, 0)`.  Note in particular that negative
    infinity is not negative.

    A few important facts about negative numbers:

    - Note that ``Q.nonnegative`` and ``~Q.negative`` are *not* the same
        thing. ``~Q.negative(x)`` simply means that ``x`` is not negative,
        whereas ``Q.nonnegative(x)`` means that ``x`` is real and not
        negative, i.e., ``Q.nonnegative(x)`` is logically equivalent to
        ``Q.zero(x) | Q.positive(x)``.  So for example, ``~Q.negative(I)`` is
        true, whereas ``Q.nonnegative(I)`` is false.

    - See the documentation of ``Q.real`` for more information about
        related facts.

    Examples
    ========

    >>> from sympy import Q, ask, symbols, I
    >>> x = symbols('x')
    >>> ask(Q.negative(x), Q.real(x) & ~Q.positive(x) & ~Q.zero(x))
    True
    >>> ask(Q.negative(-1))
    True
    >>> ask(Q.nonnegative(I))
    False
    >>> ask(~Q.negative(I))
    True

    ÚnegativeÚNegativeHandlerzKHandler for Q.negative. Test that an expression is strictly less than zero.©ÚdocN©Ú__name__Ú
__module__Ú__qualname__Ú__doc__Únamer   Úhandler© ó    ú`/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/assumptions/predicates/order.pyr   r      s>   € € € € € ð$ð $ðJ €DØˆjØððñ ô €G€G€Gr   r   c                   ó0   — e Zd ZdZdZ edd¬¦  «        ZdS )ÚNonNegativePredicateah  
    Nonnegative real number predicate.

    Explanation
    ===========

    ``ask(Q.nonnegative(x))`` is true iff ``x`` belongs to the set of
    positive numbers including zero.

    - Note that ``Q.nonnegative`` and ``~Q.negative`` are *not* the same
        thing. ``~Q.negative(x)`` simply means that ``x`` is not negative,
        whereas ``Q.nonnegative(x)`` means that ``x`` is real and not
        negative, i.e., ``Q.nonnegative(x)`` is logically equivalent to
        ``Q.zero(x) | Q.positive(x)``.  So for example, ``~Q.negative(I)`` is
        true, whereas ``Q.nonnegative(I)`` is false.

    Examples
    ========

    >>> from sympy import Q, ask, I
    >>> ask(Q.nonnegative(1))
    True
    >>> ask(Q.nonnegative(0))
    True
    >>> ask(Q.nonnegative(-1))
    False
    >>> ask(Q.nonnegative(I))
    False
    >>> ask(Q.nonnegative(-I))
    False

    ÚnonnegativeÚNonNegativeHandlerzHandler for Q.nonnegative.r	   Nr   r   r   r   r   r   3   s<   € € € € € ðð ð@ €DØˆjØØ)ðñ ô €G€G€Gr   r   c                   ó0   — e Zd ZdZdZ edd¬¦  «        ZdS )ÚNonZeroPredicatea«  
    Nonzero real number predicate.

    Explanation
    ===========

    ``ask(Q.nonzero(x))`` is true iff ``x`` is real and ``x`` is not zero.  Note in
    particular that ``Q.nonzero(x)`` is false if ``x`` is not real.  Use
    ``~Q.zero(x)`` if you want the negation of being zero without any real
    assumptions.

    A few important facts about nonzero numbers:

    - ``Q.nonzero`` is logically equivalent to ``Q.positive | Q.negative``.

    - See the documentation of ``Q.real`` for more information about
        related facts.

    Examples
    ========

    >>> from sympy import Q, ask, symbols, I, oo
    >>> x = symbols('x')
    >>> print(ask(Q.nonzero(x), ~Q.zero(x)))
    None
    >>> ask(Q.nonzero(x), Q.positive(x))
    True
    >>> ask(Q.nonzero(x), Q.zero(x))
    False
    >>> ask(Q.nonzero(0))
    False
    >>> ask(Q.nonzero(I))
    False
    >>> ask(~Q.zero(I))
    True
    >>> ask(Q.nonzero(oo))
    False

    ÚnonzeroÚNonZeroHandlerzKHandler for key 'nonzero'. Test that an expression is not identically zero.r	   Nr   r   r   r   r   r   [   s>   € € € € € ð&ð &ðN €DØˆjØððñ ô €G€G€Gr   r   c                   ó0   — e Zd ZdZdZ edd¬¦  «        ZdS )ÚZeroPredicatea²  
    Zero number predicate.

    Explanation
    ===========

    ``ask(Q.zero(x))`` is true iff the value of ``x`` is zero.

    Examples
    ========

    >>> from sympy import ask, Q, oo, symbols
    >>> x, y = symbols('x, y')
    >>> ask(Q.zero(0))
    True
    >>> ask(Q.zero(1/oo))
    True
    >>> print(ask(Q.zero(0*oo)))
    None
    >>> ask(Q.zero(1))
    False
    >>> ask(Q.zero(x*y), Q.zero(x) | Q.zero(y))
    True

    ÚzeroÚZeroHandlerzHandler for key 'zero'.r	   Nr   r   r   r   r   r   ‹   s;   € € € € € ðð ð2 €DØˆjØØ%ðñ ô €G€G€Gr   r   c                   ó0   — e Zd ZdZdZ edd¬¦  «        ZdS )ÚNonPositivePredicateah  
    Nonpositive real number predicate.

    Explanation
    ===========

    ``ask(Q.nonpositive(x))`` is true iff ``x`` belongs to the set of
    negative numbers including zero.

    - Note that ``Q.nonpositive`` and ``~Q.positive`` are *not* the same
        thing. ``~Q.positive(x)`` simply means that ``x`` is not positive,
        whereas ``Q.nonpositive(x)`` means that ``x`` is real and not
        positive, i.e., ``Q.nonpositive(x)`` is logically equivalent to
        `Q.negative(x) | Q.zero(x)``.  So for example, ``~Q.positive(I)`` is
        true, whereas ``Q.nonpositive(I)`` is false.

    Examples
    ========

    >>> from sympy import Q, ask, I

    >>> ask(Q.nonpositive(-1))
    True
    >>> ask(Q.nonpositive(0))
    True
    >>> ask(Q.nonpositive(1))
    False
    >>> ask(Q.nonpositive(I))
    False
    >>> ask(Q.nonpositive(-I))
    False

    ÚnonpositiveÚNonPositiveHandlerzHandler for key 'nonpositive'.r	   Nr   r   r   r   r"   r"   ¬   s<   € € € € € ð ð  ðB €DØˆjØØ,ðñ ô €G€G€Gr   r"   c                   ó0   — e Zd ZdZdZ edd¬¦  «        ZdS )ÚPositivePredicateaC  
    Positive real number predicate.

    Explanation
    ===========

    ``Q.positive(x)`` is true iff ``x`` is real and `x > 0`, that is if ``x``
    is in the interval `(0, \infty)`.  In particular, infinity is not
    positive.

    A few important facts about positive numbers:

    - Note that ``Q.nonpositive`` and ``~Q.positive`` are *not* the same
        thing. ``~Q.positive(x)`` simply means that ``x`` is not positive,
        whereas ``Q.nonpositive(x)`` means that ``x`` is real and not
        positive, i.e., ``Q.nonpositive(x)`` is logically equivalent to
        `Q.negative(x) | Q.zero(x)``.  So for example, ``~Q.positive(I)`` is
        true, whereas ``Q.nonpositive(I)`` is false.

    - See the documentation of ``Q.real`` for more information about
        related facts.

    Examples
    ========

    >>> from sympy import Q, ask, symbols, I
    >>> x = symbols('x')
    >>> ask(Q.positive(x), Q.real(x) & ~Q.negative(x) & ~Q.zero(x))
    True
    >>> ask(Q.positive(1))
    True
    >>> ask(Q.nonpositive(I))
    False
    >>> ask(~Q.positive(I))
    True

    ÚpositiveÚPositiveHandlerzRHandler for key 'positive'. Test that an expression is strictly greater than zero.r	   Nr   r   r   r   r&   r&   Õ   s>   € € € € € ð$ð $ðJ €DØˆjØððñ ô €G€G€Gr   r&   c                   ó,   — e Zd ZdZdZ ed¦  «        ZdS )ÚExtendedPositivePredicatea¨  
    Positive extended real number predicate.

    Explanation
    ===========

    ``Q.extended_positive(x)`` is true iff ``x`` is extended real and
    `x > 0`, that is if ``x`` is in the interval `(0, \infty]`.

    Examples
    ========

    >>> from sympy import ask, I, oo, Q
    >>> ask(Q.extended_positive(1))
    True
    >>> ask(Q.extended_positive(oo))
    True
    >>> ask(Q.extended_positive(I))
    False

    Úextended_positiveÚExtendedPositiveHandlerNr   r   r   r   r*   r*     ó/   € € € € € ðð ð* €DØˆjÐ2Ñ3Ô3€G€G€Gr   r*   c                   ó,   — e Zd ZdZdZ ed¦  «        ZdS )ÚExtendedNegativePredicatea¬  
    Negative extended real number predicate.

    Explanation
    ===========

    ``Q.extended_negative(x)`` is true iff ``x`` is extended real and
    `x < 0`, that is if ``x`` is in the interval `[-\infty, 0)`.

    Examples
    ========

    >>> from sympy import ask, I, oo, Q
    >>> ask(Q.extended_negative(-1))
    True
    >>> ask(Q.extended_negative(-oo))
    True
    >>> ask(Q.extended_negative(-I))
    False

    Úextended_negativeÚExtendedNegativeHandlerNr   r   r   r   r/   r/     r-   r   r/   c                   ó,   — e Zd ZdZdZ ed¦  «        ZdS )ÚExtendedNonZeroPredicatea€  
    Nonzero extended real number predicate.

    Explanation
    ===========

    ``ask(Q.extended_nonzero(x))`` is true iff ``x`` is extended real and
    ``x`` is not zero.

    Examples
    ========

    >>> from sympy import ask, I, oo, Q
    >>> ask(Q.extended_nonzero(-1))
    True
    >>> ask(Q.extended_nonzero(oo))
    True
    >>> ask(Q.extended_nonzero(I))
    False

    Úextended_nonzeroÚExtendedNonZeroHandlerNr   r   r   r   r3   r3   7  s/   € € € € € ðð ð* €DØˆjÐ1Ñ2Ô2€G€G€Gr   r3   c                   ó,   — e Zd ZdZdZ ed¦  «        ZdS )ÚExtendedNonPositivePredicateaÉ  
    Nonpositive extended real number predicate.

    Explanation
    ===========

    ``ask(Q.extended_nonpositive(x))`` is true iff ``x`` is extended real and
    ``x`` is not positive.

    Examples
    ========

    >>> from sympy import ask, I, oo, Q
    >>> ask(Q.extended_nonpositive(-1))
    True
    >>> ask(Q.extended_nonpositive(oo))
    False
    >>> ask(Q.extended_nonpositive(0))
    True
    >>> ask(Q.extended_nonpositive(I))
    False

    Úextended_nonpositiveÚExtendedNonPositiveHandlerNr   r   r   r   r7   r7   Q  ó/   € € € € € ðð ð. "€DØˆjÐ5Ñ6Ô6€G€G€Gr   r7   c                   ó,   — e Zd ZdZdZ ed¦  «        ZdS )ÚExtendedNonNegativePredicateaÉ  
    Nonnegative extended real number predicate.

    Explanation
    ===========

    ``ask(Q.extended_nonnegative(x))`` is true iff ``x`` is extended real and
    ``x`` is not negative.

    Examples
    ========

    >>> from sympy import ask, I, oo, Q
    >>> ask(Q.extended_nonnegative(-1))
    False
    >>> ask(Q.extended_nonnegative(oo))
    True
    >>> ask(Q.extended_nonnegative(0))
    True
    >>> ask(Q.extended_nonnegative(I))
    False

    Úextended_nonnegativeÚExtendedNonNegativeHandlerNr   r   r   r   r<   r<   m  r:   r   r<   N)Úsympy.assumptionsr   Úsympy.multipledispatchr   r   r   r   r   r"   r&   r*   r/   r3   r7   r<   r   r   r   ú<module>rA      s  ðØ 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø -Ð -Ð -Ð -Ð -Ð -ð+ð +ð +ð +ð +˜	ñ +ô +ð +ð\%ð %ð %ð %ð %˜9ñ %ô %ð %ðP-ð -ð -ð -ð -�yñ -ô -ð -ð`ð ð ð ð �Iñ ô ð ðB&ð &ð &ð &ð &˜9ñ &ô &ð &ðR+ð +ð +ð +ð +˜	ñ +ô +ð +ð\4ð 4ð 4ð 4ð 4 	ñ 4ô 4ð 4ð44ð 4ð 4ð 4ð 4 	ñ 4ô 4ð 4ð43ð 3ð 3ð 3ð 3˜yñ 3ô 3ð 3ð47ð 7ð 7ð 7ð 7 9ñ 7ô 7ð 7ð87ð 7ð 7ð 7ð 7 9ñ 7ô 7ð 7ð 7ð 7r   