Ë
    7^(hÚ  ã                   ó@  — d Z ddlmZmZmZ ddlmZmZ ddlm	Z	m
Z
mZ ddlmZmZ ddlmZmZmZmZmZmZmZmZ ddlmZ dd	lmZmZ  G d
„ d«      Z G d„ de«      Z ej>                  e«      d„ «       Z  ej>                  e«      d„ «       Z  ej>                  e«      d„ «       Z  ej>                  e«      d„ «       Z  ej>                  e!«      d„ «       Z  ej>                  e«      d„ «       Z  ej>                  e«      d„ «       Z  ej>                  e«      d„ «       Z  ej>                  e«      d„ «       Z  ej>                  e«      d„ «       Z  ej>                  e«      d„ «       Z  ej>                  e«      d„ «       Z  ej>                  e«      d„ «       Z d„ Z"d„ Z#d„ Z$y)zj
This module defines base class for handlers and some core handlers:
``Q.commutative`` and ``Q.is_true``.
é    )ÚQÚaskÚAppliedPredicate)ÚBasicÚSymbol)Ú_fuzzy_groupÚ	fuzzy_andÚfuzzy_or)ÚNaNÚNumber)ÚAndÚBooleanTrueÚBooleanFalseÚ	conjunctsÚ
EquivalentÚImpliesÚNotÚOr)Úsympy_deprecation_warningé   )ÚCommutativePredicateÚIsTruePredicatec                   ó"   ‡ — e Zd ZdZˆ fd„Zˆ xZS )Ú
AskHandlerz.Base class that all Ask Handlers must inherit.c                 óF   •— t        ddd¬«       t        ‰| �  | g|¢­i |¤ŽS )Nz¡
            The AskHandler system is deprecated. The AskHandler class should
            be replaced with the multipledispatch handler of Predicate
            z1.8zdeprecated-askhandler)Údeprecated_since_versionÚactive_deprecations_target)r   ÚsuperÚ__new__)ÚclsÚargsÚkwargsÚ	__class__s      €ú_/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/assumptions/handlers/common.pyr   zAskHandler.__new__   s3   ø€ Ü!ðð &+Ø'>õ	
ô ‰w‰˜sÐ4 TÒ4¨VÑ4Ð4ó    )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__classcell__)r#   s   @r$   r   r      s   ø„ Ù8÷	5ð 	5r%   r   c                   óD   — e Zd ZdZed„ «       Zed„ «       Zed„ «       ZeZy)ÚCommonHandlerz5Defines some useful methods common to most Handlers. c                  ó   — y©NT© ©ÚexprÚassumptionss     r$   Ú
AlwaysTruezCommonHandler.AlwaysTrue#   ó   € àr%   c                  ó   — y©NFr/   r0   s     r$   ÚAlwaysFalsezCommonHandler.AlwaysFalse'   s   € àr%   c                  ó   — y ©Nr/   r0   s     r$   Ú
AlwaysNonezCommonHandler.AlwaysNone+   r4   r%   N)	r&   r'   r(   r)   Ústaticmethodr3   r7   r:   r   r/   r%   r$   r,   r,      sF   „ á?àñó ðð ñó ðð ñó ðð �Cr%   r,   c                 óà   — t        |«      }| j                  �&| j                  xr t        j                  | «       |vS t        j                  | «      |v ryt        j                  | «       |v ryy)z>Objects are expected to be commutative unless otherwise statedTF)r   Úis_commutativer   Úcommutative)r1   r2   Úassumpss      r$   Ú_r@   4   sj   € ô ˜Ó$€GØ×ÑÐ&Ø×"Ñ"ÒJ¬A¯M©M¸$Ó,?Ð+?À7Ð+JÐJÜ‡}�}�TÓ˜gÑ%ØÜ
�-‰-˜Ó
Ð	 Ñ	(ØØr%   c                 óh   — | j                   D ]#  }t        t        j                  |«      |«      rŒ# y y)NFT)r!   r   r   r>   )r1   r2   Úargs      r$   r@   r@   @   s0   € à�y‰yò ˆÜ”1—=‘= Ó% {Õ3Ùðð r%   c                  ó   — yr.   r/   r0   s     r$   r@   r@   G   ó   € àr%   c                  ó   — yr.   r/   r0   s     r$   r@   r@   K   rD   r%   c                 ó   — | S r9   r/   r0   s     r$   r@   r@   R   s   € à€Kr%   c                  ó   — yr.   r/   r0   s     r$   r@   r@   V   rD   r%   c                  ó   — yr6   r/   r0   s     r$   r@   r@   Z   s   € àr%   c                 ó   — t        | |«      S r9   ©r   r0   s     r$   r@   r@   ^   s   € äˆt�[Ó!Ð!r%   c                 ód   — | j                   d   }|j                  ry t        ||¬«      }|dv r| S y )Nr   ©r2   )TF)r!   Ú	is_Symbolr   )r1   r2   rB   Úvalues       r$   r@   r@   b   s8   € à
�)‰)�A‰,€CØ
‡}‚}àÜ� Ô-€EØ�ÑØˆyÐàr%   c                 ó\   — d}| j                   D ]  }t        ||¬«      }|du r y|�Œd }Œ |S )NFrL   T©r!   r   ©r1   r2   ÚresultrB   Úps        r$   r@   r@   n   sA   € à€FØ�y‰yò ˆÜ� Ô-ˆØ�‰9ÙØ‰9Ø‰Fðð €Mr%   c                 ó\   — d}| j                   D ]  }t        ||¬«      }|du r y|�Œd }Œ |S )NTrL   FrP   rQ   s        r$   r@   r@   y   sA   € à€FØ�y‰yò ˆÜ� Ô-ˆØ�‰:ÙØ‰9Ø‰Fðð €Mr%   c                 óB   — | j                   \  }}t        | |z  |¬«      S ©NrL   rP   )r1   r2   rS   Úqs       r$   r@   r@   „   s"   € à�9‰9�D€A€qÜ�ˆr�A‰v ;Ô/Ð/r%   c                 ój   — | j                   \  }}t        ||¬«      }|€y t        ||¬«      }|€y ||k(  S rV   rP   )r1   r2   rS   rW   ÚptÚqts         r$   r@   r@   ‰   s@   € à�9‰9�D€A€qÜ	ˆQ˜KÔ	(€BØ	€zØÜ	ˆQ˜KÔ	(€BØ	€zØØ�‰8€Or%   c                 óH   ‡‡— t        ˆˆfd„| j                  D «       d¬«      S )zS
    Test for membership in a group with respect
    to the current operation.
    c              3   óB   •K  — | ]  }t         ‰|«      ‰«      –— Œ y ­wr9   rJ   )Ú.0Úar2   Úkeys     €€r$   ú	<genexpr>z$test_closed_group.<locals>.<genexpr>œ   s   øè ø€ Ò5 aŒ‰S�‹V�[×	!Ñ5ùs   ƒT)Ú
quick_exit)r   r!   )r1   r2   r_   s    ``r$   Útest_closed_grouprb   –   s"   ù€ ô
 Ü5¨4¯9©9Ô5À$ôHð Hr%   c                 ó,   ‡ — t        ˆ fd„|D «       «      S )Nc              3   ó6   •K  — | ]  }t        |‰«      –— Œ y ­wr9   rJ   ©r]   Úqueryr2   s     €r$   r`   zask_all.<locals>.<genexpr>    ó   øè ø€ Ò6 UŒˆU�K×	 Ñ6ùó   ƒ)r	   ©r2   Úqueriess   ` r$   Úask_allrk   ž   s   ø€ ÜÛ6¨gÔ6ó8ð 8r%   c                 ó,   ‡ — t        ˆ fd„|D «       «      S )Nc              3   ó6   •K  — | ]  }t        |‰«      –— Œ y ­wr9   rJ   re   s     €r$   r`   zask_any.<locals>.<genexpr>¤   rg   rh   )r
   ri   s   ` r$   Úask_anyrn   ¢   s   ø€ ÜÛ6¨gÔ6ó8ð 8r%   N)%r)   Úsympy.assumptionsr   r   r   Ú
sympy.corer   r   Úsympy.core.logicr   r	   r
   Úsympy.core.numbersr   r   Úsympy.logic.boolalgr   r   r   r   r   r   r   r   Úsympy.utilities.exceptionsr   Úpredicates.commonr   r   r   r,   Úregisterr@   Úboolrb   rk   rn   r/   r%   r$   ú<module>rx      s  ðñ÷
 7Ñ 6ß $ß >Ñ >ß *÷"÷ "ó "å @ç E÷5ñ 5ô�Jô ð* Ð×Ñ˜vÓ&ñ	ó 'ð	ð Ð×Ñ˜uÓ%ñó &ðð Ð×Ñ˜vÓ&ñó 'ðð Ð×Ñ˜sÓ#ñó $ðð €×Ñ˜$Óñó  ðð €×Ñ˜+Ó&ñó 'ðð €×Ñ˜,Ó'ñó (ðð €×ÑÐ*Ó+ñ"ó ,ð"ð €×Ñ˜#Óñ	ó ð	ð €×Ñ˜"Óñó ðð €×Ñ˜#Óñó ðð €×Ñ˜'Ó"ñ0ó #ð0ð €×Ñ˜*Ó%ñó &ðòHò8ó8r%   