
    Цi                     ,   S r SSKJrJrJr  SSKJrJr  SSKJ	r	  SSK
JrJr  SSKJrJrJrJrJrJrJrJr  SSKJr  SS	KJrJr   " S
 S5      r " S S\5      r\R:                  " \5      S 5       r\R:                  " \5      S 5       r\R:                  " \5      S 5       r\R:                  " \5      S 5       r\R:                  " \5      S 5       r\R:                  " \5      S 5       r\R:                  " \5      S 5       r\R:                  " \5      S 5       r\R:                  " \5      S 5       r\R:                  " \5      S 5       r\R:                  " \5      S 5       r\R:                  " \5      S 5       r\R:                  " \5      S 5       rS r g)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)NaNNumber)AndBooleanTrueBooleanFalse	conjuncts
EquivalentImpliesNotOr)sympy_deprecation_warning   )CommutativePredicateIsTruePredicatec                   ,   ^  \ rS rSrSrU 4S jrSrU =r$ )
AskHandler   z.Base class that all Ask Handlers must inherit.c                 B   > [        SSSS9  [        TU ]  " U /UQ70 UD6$ )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/html/ai-image-ml/venv/lib/python3.13/site-packages/sympy/assumptions/handlers/common.pyr   AskHandler.__new__   s3    ! &+'>	
 ws4T4V44     )__name__
__module____qualname____firstlineno____doc__r   __static_attributes____classcell__)r"   s   @r#   r   r      s    8	5 	5r%   r   c                   L    \ rS rSrSr\S 5       r\S 5       r\S 5       r\r	Sr
g)CommonHandler   z5Defines some useful methods common to most Handlers. c                     gNTr&   exprassumptionss     r#   
AlwaysTrueCommonHandler.AlwaysTrue#       r%   c                     gNFr&   r3   s     r#   AlwaysFalseCommonHandler.AlwaysFalse'   s    r%   c                     g Nr&   r3   s     r#   
AlwaysNoneCommonHandler.AlwaysNone+   r8   r%   r&   N)r'   r(   r)   r*   r+   staticmethodr6   r;   r?   r	   r,   r&   r%   r#   r/   r/      sF    ?      Cr%   r/   c                     [        U5      nU R                  b-  U R                  =(       a    [        R                  " U 5      ) U;  $ [        R                  " U 5      U;   a  g[        R                  " U 5      ) U;   a  gg)z>Objects are expected to be commutative unless otherwise statedTF)r   is_commutativer   commutative)r4   r5   assumpss      r#   _rF   4   sj     $G&""JAMM$,?+?7+JJ}}Tg%
--
		(r%   c                 x    U R                    H*  n[        [        R                  " U5      U5      (       a  M*    g   g)NFT)r    r   r   rD   )r4   r5   args      r#   rF   rF   @   s.    yy1==%{33  r%   c                     gr2   r&   r3   s     r#   rF   rF   G       r%   c                     gr2   r&   r3   s     r#   rF   rF   K   rJ   r%   c                     U $ r>   r&   r3   s     r#   rF   rF   R   s    Kr%   c                     gr2   r&   r3   s     r#   rF   rF   V   rJ   r%   c                     gr:   r&   r3   s     r#   rF   rF   Z   s    r%   c                     [        X5      $ r>   r   r3   s     r#   rF   rF   ^   s    t!!r%   c                 r    U R                   S   nUR                  (       a  g [        X!S9nUS;   a  U(       + $ g )Nr   r5   )TF)r    	is_Symbolr   )r4   r5   rH   values       r#   rF   rF   b   s6    
))A,C
}}-Eyr%   c                 ^    SnU R                    H  n[        X1S9nUSL a    gUb  M  S nM     U$ )NFrR   Tr    r   r4   r5   resultrH   ps        r#   rF   rF   n   s:    Fyy-99F  Mr%   c                 ^    SnU R                    H  n[        X1S9nUSL a    gUb  M  S nM     U$ )NTrR   FrV   rW   s        r#   rF   rF   y   s:    Fyy-:9F  Mr%   c                 :    U R                   u  p#[        U) U-  US9$ NrR   rV   )r4   r5   rY   qs       r#   rF   rF      s     99DArAv;//r%   c                 Z    U R                   u  p#[        X!S9nUc  g [        X1S9nUc  g XE:H  $ r\   rV   )r4   r5   rY   r]   ptqts         r#   rF   rF      s8    99DA	Q	(B	z	Q	(B	z8Or%   c                 D   ^^ [        UU4S jU R                   5       SS9$ )zG
Test for membership in a group with respect
to the current operation.
c              3   H   >#    U  H  n[        T" U5      T5      v   M     g 7fr>   rP   ).0ar5   keys     r#   	<genexpr>$test_closed_group.<locals>.<genexpr>   s     59aSV[	!	!9s   "T)
quick_exit)r   r    )r4   r5   re   s    ``r#   test_closed_groupri      s"    
 54995$H Hr%   N)!r+   sympy.assumptionsr   r   r   
sympy.corer   r   sympy.core.logicr   sympy.core.numbersr	   r
   sympy.logic.boolalgr   r   r   r   r   r   r   r   sympy.utilities.exceptionsr   predicates.commonr   r   r   r/   registerrF   boolri   r&   r%   r#   <module>rs      s  
 7 6 $ ) *" " " @ E5 5J * v&	 '	 u% & v& ' s# $ $   +& ' ,' ( *+" ," #	 	 "  #  '"0 #0 *% &Hr%   