+
    ‹°³jÊ$  ã                   óÄ  € ^ RI Ht ^ RIHt ^ RIHtHtHtHtH	t	H
t
 ^ RIHt ^ RIHt ^ RIHtHtHtHt ^ RIHt R tR	 tR
 t ! R R4      t]! 4       t]
! R4      t]P9                  ]4      R 4       t]P9                  ]4      R 4       t]P=                  ]4      R 4       t]P9                  ]4      R 4       t]P=                  ]4      R 4       t]P=                  ]4      R 4       t]P=                  ]4      R 4       t]P=                  ]4      R 4       t]P=                  ]4      R 4       t]P9                  ]4      R 4       t]P>                  R ]P@                  R ]PB                  R ]PD                  R ]PF                  R ]PH                  R ]PJ                  R ]PL                  R ]PN                  R  ]PP                  R! /
t)]P9                  ]]	]4      R" 4       tR## )$é    )Údefaultdict)ÚQ)ÚAddÚMulÚPowÚNumberÚNumberSymbolÚSymbol)ÚImaginaryUnit)ÚAbs)Ú
EquivalentÚAndÚOrÚImplies)ÚMatMulc           	     ón   € \        VP                   Uu. uF  q1P                  W4      NK  	  up!  # u upi )aº  
Apply all arguments of the expression to the fact structure.

Parameters
==========

symbol : Symbol
    A placeholder symbol.

fact : Boolean
    Resulting ``Boolean`` expression.

expr : Expr

Examples
========

>>> from sympy import Q
>>> from sympy.assumptions.sathandlers import allargs
>>> from sympy.abc import x, y
>>> allargs(x, Q.negative(x) | Q.positive(x), x*y)
(Q.negative(x) | Q.positive(x)) & (Q.negative(y) | Q.positive(y))

)r   ÚargsÚsubs©ÚsymbolÚfactÚexprÚargs   &&& Ú^/home/luca/screen-checking/.venv/lib/python3.14/site-packages/sympy/assumptions/sathandlers.pyÚallargsr      s,   € ô2 °4·9²9Ó=±9¨C—‘˜6Ö'±9Ñ=Ñ>Ð>ùÒ=ó   ”2c           	     ón   € \        VP                   Uu. uF  q1P                  W4      NK  	  up!  # u upi )a·  
Apply any argument of the expression to the fact structure.

Parameters
==========

symbol : Symbol
    A placeholder symbol.

fact : Boolean
    Resulting ``Boolean`` expression.

expr : Expr

Examples
========

>>> from sympy import Q
>>> from sympy.assumptions.sathandlers import anyarg
>>> from sympy.abc import x, y
>>> anyarg(x, Q.negative(x) & Q.positive(x), x*y)
(Q.negative(x) & Q.positive(x)) | (Q.negative(y) & Q.positive(y))

)r   r   r   r   s   &&& r   Úanyargr   +   s,   € ô2 °$·)²)Ó<±)¨3—	‘	˜&Ö&±)Ñ<Ñ=Ð=ùÒ<r   c                ó:  € VP                    Uu. uF  q1P                  W4      NK  	  pp\        \        \	        V4      4       UUu. uF9  p\        WE,          .VRV WE^,           R ,            Uu. uF  qf( NK  	  upO5!  NK;  	  upp!  pV# u upi u upi u uppi )a¿  
Apply exactly one argument of the expression to the fact structure.

Parameters
==========

symbol : Symbol
    A placeholder symbol.

fact : Boolean
    Resulting ``Boolean`` expression.

expr : Expr

Examples
========

>>> from sympy import Q
>>> from sympy.assumptions.sathandlers import exactlyonearg
>>> from sympy.abc import x, y
>>> exactlyonearg(x, Q.positive(x), x*y)
(Q.positive(x) & ~Q.positive(y)) | (Q.positive(y) & ~Q.positive(x))

N)r   r   r   ÚrangeÚlenr   )r   r   r   r   Ú	pred_argsÚiÚlitÚress   &&&     r   Úexactlyoneargr&   G   s¤   € ð2 48·9²9Ó=±9¨C—‘˜6Ö'±9€IÐ=Ü
Ü#(¬¨Y«Ô#8ô:Ù#8˜aô �9•<ð °9¸R¸a°=Ø�A•#�$ˆö4ó #ñ 4¨C£4ñ 4ñ #ö Ù#8ò:ñ ;€Cà€Jùò >ùò#ùó :s   �BÁ)B
Á/BÁ:B
ÂB
c                   óB   a € ] tR t^ht o RtR tR tR tR tR t	Rt
V tR# )	ÚClassFactRegistrya  
Register handlers against classes.

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

``register`` method registers the handler function for a class. Here,
handler function should return a single fact. ``multiregister`` method
registers the handler function for multiple classes. Here, handler function
should return a container of multiple facts.

``registry(expr)`` returns a set of facts for *expr*.

Examples
========

Here, we register the facts for ``Abs``.

>>> from sympy import Abs, Equivalent, Q
>>> from sympy.assumptions.sathandlers import ClassFactRegistry
>>> reg = ClassFactRegistry()
>>> @reg.register(Abs)
... def f1(expr):
...     return Q.nonnegative(expr)
>>> @reg.register(Abs)
... def f2(expr):
...     arg = expr.args[0]
...     return Equivalent(~Q.zero(arg), ~Q.zero(expr))

Calling the registry with expression returns the defined facts for the
expression.

>>> from sympy.abc import x
>>> reg(Abs(x))
{Q.nonnegative(Abs(x)), Equivalent(~Q.zero(x), ~Q.zero(Abs(x)))}

Multiple facts can be registered at once by ``multiregister`` method.

>>> reg2 = ClassFactRegistry()
>>> @reg2.multiregister(Abs)
... def _(expr):
...     arg = expr.args[0]
...     return [Q.even(arg) >> Q.even(expr), Q.odd(arg) >> Q.odd(expr)]
>>> reg2(Abs(x))
{Implies(Q.even(x), Q.even(Abs(x))), Implies(Q.odd(x), Q.odd(Abs(x)))}

c                óV   € \        \        4      V n        \        \        4      V n        R # ©N)r   Ú	frozensetÚsinglefactsÚ
multifacts)Úselfs   &r   Ú__init__ÚClassFactRegistry.__init__˜   s   € Ü&¤yÓ1ˆÔÜ%¤iÓ0ˆŽó    c                ó   a a€ VV 3R  lpV# )c                 óH   <€ SP                   S;;,          V 0,          uu&   V # r*   )r,   )ÚfuncÚclsr.   s   &€€r   Ú_Ú%ClassFactRegistry.register.<locals>._�   s    ø€ Ø×Ñ˜S×! d VÕ+Ó!ØˆKr1   © )r.   r5   r6   s   ff r   ÚregisterÚClassFactRegistry.registerœ   s   ù€ ö	ð ˆr1   c                ó   a a€ VV 3R  lpV# )c                 óZ   <€ S F#  pSP                   V;;,          V 0,          uu&   K%  	  V # r*   )r-   )r4   r5   Úclassesr.   s   & €€r   r6   Ú*ClassFactRegistry.multiregister.<locals>._£   s(   ø€ Û�Ø—‘ ×$¨¨Õ.Õ$ñ àˆKr1   r8   )r.   r=   r6   s   fj r   ÚmultiregisterÚClassFactRegistry.multiregister¢   s   ù€ ö	ð ˆr1   c                óP  € V P                   V,          pV P                    F/  p\        W4      '       g   K  W P                   V,          ,          pK1  	  V P                  V,          pV P                   F/  p\        W4      '       g   K  W@P                  V,          ,          pK1  	  W$3# r*   )r,   Ú
issubclassr-   )r.   ÚkeyÚret1ÚkÚret2s   &&   r   Ú__getitem__ÚClassFactRegistry.__getitem__©   s„   € Ø×Ñ Õ$ˆØ×!Ô!ˆAÜ˜#×!Ô!Ø×(Ñ(¨Õ+Õ+’ñ "ð �‰˜sÕ#ˆØ—”ˆAÜ˜#×!Ô!ØŸ™¨Õ*Õ*’ñ !ð ˆzÐr1   c                óº   a€ \        4       pV \        S4      ,          w  r4VP                  V3R  lV 4       4       V F  pVP                  V! S4      4       K  	  V# )c              3   ó2   <"  € T F  q! S4      x € K  	  R # 5ir*   r8   )Ú.0Úhr   s   & €r   Ú	<genexpr>Ú-ClassFactRegistry.__call__.<locals>.<genexpr>»   s   øé € Ð.¡I˜q�1�T—7�7£Iùs   ƒ)ÚsetÚtypeÚupdate)r.   r   ÚretÚ	handlers1Ú	handlers2rL   s   &f    r   Ú__call__ÚClassFactRegistry.__call__¶   sL   ø€ Ü‹eˆà#¤D¨£JÕ/Ñˆ	à�
‰
Ô.¡IÓ.Ô.ÛˆAØ�J‰J‘q˜“wÖñ àˆ
r1   )r-   r,   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r/   r9   r?   rG   rU   Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r   r(   r(   h   s)   ø‡ € ñ.ò^1òòò÷ð r1   r(   Úxc                 óà  € V P                   ^ ,          p\        P                  ! V 4      \        \        P                  ! V4      ( \        P                  ! V 4      ( 4      \        P
                  ! V4      \        P
                  ! V 4      ,	          \        P                  ! V4      \        P                  ! V 4      ,	          \        P                  ! V4      \        P                  ! V 4      ,	          .# )r   )r   r   Únonnegativer   ÚzeroÚevenÚoddÚinteger)r   r   s   & r   r6   r6   Ê   s‹   € à
�)‰)�A�,€CÜ�MŠM˜$ÓÜœŸš˜s›�|¤a§f¢f¨T£l ]Ó3Ü�FŠF�3‹Kœ1Ÿ6š6 $›<Õ'Ü�EŠE�#‹Jœ!Ÿ%š% ›+Õ%Ü�IŠI�c‹NœaŸiši¨›oÕ-ð	ð r1   c                 ó.  € \        \        \        P                  ! \        4      V 4      \        P                  ! V 4      ,	          \        \        \        P                  ! \        4      V 4      \        P                  ! V 4      ,	          \        \        \        P
                  ! \        4      V 4      \        P
                  ! V 4      ,	          \        \        \        P                  ! \        4      V 4      \        P                  ! V 4      ,	          \        \        \        P                  ! \        4      V 4      \        P                  ! V 4      ,	          \        \        \        P                  ! \        4      ( V 4      \        P                  ! V 4      ( ,	          .# r*   )	r   r_   r   ÚpositiveÚnegativeÚrealÚrationalre   r&   ©r   s   &r   r6   r6   ×   sÚ   € ä”A”q—z’z¤!“} dÓ+¬q¯zªz¸$Ó/?Õ?Ü”A”q—z’z¤!“} dÓ+¬q¯zªz¸$Ó/?Õ?Ü”A”q—v’vœa“y $Ó'¬1¯6ª6°$«<Õ7Ü”A”q—z’z¤!“} dÓ+¬q¯zªz¸$Ó/?Õ?Ü”A”q—y’y¤“| TÓ*¬a¯iªi¸«oÕ=Üœ!œaŸiši¬›l˜]¨DÓ1´a·i²iÀ³oÐ5EÕEðð r1   c           	      óú   € \        \        \        P                  ! \        4      V 4      p\	        \        \        P
                  ! \        4      V 4      p\        V\        V\        P
                  ! V 4      4      4      # r*   ©r   r_   r   ri   r&   Ú
irrationalr   ©r   Úallargs_realÚonearg_irrationals   &  r   r6   r6   á   óM   € äœ1œaŸfšf¤Q›i¨Ó.€LÜ%¤a¬¯ª´a«¸$Ó?ÐÜ�<¤Ð):¼A¿LºLÈÓ<NÓ!OÓPÐPr1   c                 óº  € \        \        P                  ! V 4      \        \        \        P                  ! \        4      V 4      4      \        \        \        P                  ! \        4      V 4      \        P                  ! V 4      ,	          \        \        \        P                  ! \        4      V 4      \        P                  ! V 4      ,	          \        \        \        P                  ! \        4      V 4      \        P                  ! V 4      ,	          \        \        \        P                  ! \        4      V 4      \        P                  ! V 4      ,	          \        \        \        P                  ! \        4      ( V 4      \        P                  ! V 4      ( ,	          \        \        \        P                  ! \        4      V 4      \        P                  ! V 4      ,	          .# r*   )r   r   rb   r   r_   r   rg   ri   rj   re   r&   Úcommutativerk   s   &r   r6   r6   ê   sþ   € ä”q—v’v˜d“|¤V¬A¬q¯vªv´a«y¸$Ó%?Ó@Ü”A”q—z’z¤!“} dÓ+¬q¯zªz¸$Ó/?Õ?Ü”A”q—v’vœa“y $Ó'¬1¯6ª6°$«<Õ7Ü”A”q—z’z¤!“} dÓ+¬q¯zªz¸$Ó/?Õ?Ü”A”q—y’y¤“| TÓ*¬a¯iªi¸«oÕ=Üœ!œaŸjšj¬›m˜^¨TÓ2´q·y²yÀ³Ð6FÕFÜ”A”q—}’}¤QÓ'¨Ó.´!·-²-ÀÓ2EÕEðð r1   c                 ó–   € \        \        \        P                  ! \        4      V 4      p\	        V\        P                  ! V 4      ( 4      # r*   )r   r_   r   Úprimer   )r   Úallargs_primes   & r   r6   r6   õ   s1   € ô œAœqŸwšw¤q›z¨4Ó0€MÜ�=¤1§7¢7¨4£= .Ó1Ð1r1   c           	      ó8  € \        \        \        P                  ! \        4      \        P                  ! \        4      ,          V 4      p\        \        \        P                  ! \        4      V 4      p\        V\        V\        P                  ! V 4      4      4      # r*   )r   r_   r   Ú	imaginaryri   r&   r   )r   Úallargs_imag_or_realÚonearg_imaginarys   &  r   r6   r6   þ   s^   € ô #¤1¤a§k¢k´!£n´q·v²v¼a³yÕ&@À$ÓGÐÜ$¤Q¬¯ª´A«¸Ó=ÐÜÐ'¬Ð1AÄ1Ç;Â;ÈtÓCTÓ)UÓVÐVr1   c           	      óú   € \        \        \        P                  ! \        4      V 4      p\	        \        \        P
                  ! \        4      V 4      p\        V\        V\        P
                  ! V 4      4      4      # r*   rm   ro   s   &  r   r6   r6     rr   r1   c           	      óú   € \        \        \        P                  ! \        4      V 4      p\	        \        \        P
                  ! \        4      V 4      p\        V\        V\        P
                  ! V 4      4      4      # r*   )r   r_   r   re   r   rc   r   r   )r   Úallargs_integerÚanyarg_evens   &  r   r6   r6     sL   € ô
 œa¤§¢¬1£¨tÓ4€OÜœœAŸFšF¤1›I tÓ,€KÜ�?¤J¨{¼A¿FºFÀ4»LÓ$IÓJÐJr1   c                 óú   € \        \        \        P                  ! \        4      V 4      p\        \        \        P                  ! \        4      V 4      p\        V\        \        P                  ! V 4      V4      4      # r*   )r   r_   r   ÚsquareÚ
invertibler   r   )r   Úallargs_squareÚallargs_invertibles   &  r   r6   r6     sM   € äœQ¤§¢¬£¨TÓ2€NÜ ¤¤A§L¢L´£O°TÓ:ÐÜ�>¤:¬a¯lªl¸4Ó.@ÐBTÓ#UÓVÐVr1   c           
      ó4  € V P                   V P                  r!\        P                  ! V4      \        P                  ! V4      ,          \        P
                  ! V4      ,          \        P
                  ! V 4      ,	          \        P
                  ! V4      \        P                  ! V4      ,          \        P
                  ! V4      ,          \        P
                  ! V 4      ,	          \        P                  ! V4      \        P                  ! V4      ,          \        P
                  ! V4      ,          \        P                  ! V 4      ,	          \        \        P                  ! V 4      \        P                  ! V4      \        P                  ! V4      ,          4      .# r*   )ÚbaseÚexpr   ri   rc   ra   rd   Únonpositiver   rb   rg   )r   r†   r‡   s   &  r   r6   r6      sâ   € à—	‘	˜4Ÿ8™8ˆ#ä	
�Š�‹œŸš˜s›Õ	#¤a§m¢m°CÓ&8Õ	8¼Q¿]º]È4Ó=PÕPÜ	
�Š�tÓ	œqŸušu S›zÕ	)¬A¯MªM¸#Ó,>Õ	>Ä1Ç=Â=ÐQUÓCVÕVÜ	
�Š�tÓ	œqŸušu S›zÕ	)¬A¯MªM¸#Ó,>Õ	>Ä1Ç=Â=ÐQUÓCVÕVÜ”1—6’6˜$“<¤§¢¨£´·
²
¸3³Õ!?Ó@ð	ð r1   c                 ó   € V P                   # r*   )Úis_positive©Úos   &r   Ú<lambda>r�   .  ó   € ˜!Ÿ-š-r1   c                 ó   € V P                   # r*   )Úis_zeror‹   s   &r   r�   r�   /  ó   € �a—i’ir1   c                 ó   € V P                   # r*   )Úis_negativer‹   s   &r   r�   r�   0  rŽ   r1   c                 ó   € V P                   # r*   )Úis_rationalr‹   s   &r   r�   r�   1  rŽ   r1   c                 ó   € V P                   # r*   )Úis_irrationalr‹   s   &r   r�   r�   2  s   € ˜AŸOšOr1   c                 ó   € V P                   # r*   )Úis_evenr‹   s   &r   r�   r�   3  r‘   r1   c                 ó   € V P                   # r*   )Úis_oddr‹   s   &r   r�   r�   4  s   € �Q—X’Xr1   c                 ó   € V P                   # r*   )Úis_imaginaryr‹   s   &r   r�   r�   5  ó   € ˜1Ÿ>š>r1   c                 ó   € V P                   # r*   )Úis_primer‹   s   &r   r�   r�   6  s   € �q—z’zr1   c                 ó   € V P                   # r*   )Úis_compositer‹   s   &r   r�   r�   7  rž   r1   c                 ó¤   € . p\         P                  4        F5  w  r#V! V 4      pV! V 4      pVf   K  VP                  \        WE4      4       K7  	  V# r*   )Ú_old_assump_gettersÚitemsÚappendr   )r   rR   ÚpÚgetterÚpredÚprops   &     r   r6   r6   :  sL   € à
€CÜ(×.Ñ.Ö0‰	ˆÙ�‹wˆÙ�d‹|ˆØÔØ�J‰J”z $Ó-Ö.ñ	 1ð
 €Jr1   N)*Úcollectionsr   Úsympy.assumptions.askr   Ú
sympy.corer   r   r   r   r	   r
   Úsympy.core.numbersr   Ú$sympy.functions.elementary.complexesr   Úsympy.logic.boolalgr   r   r   r   Úsympy.matrices.expressionsr   r   r   r&   r(   Úclass_fact_registryr_   r?   r6   r9   rg   rb   rh   rj   rn   rc   rd   ry   rv   Ú	compositer¤   r8   r1   r   Ú<module>r´      s%  ðÝ #å #ß D× DÝ ,Ý 4ß >Ó >Ý -ò?ò8>ò8÷BVñ Vñp (Ó)Ð ñ ˆ3ƒK€ð ×"Ñ" 3Ó'ñó (ðð ×"Ñ" 3Ó'ñó (ðð ×Ñ˜cÓ"ñQó #ðQð ×"Ñ" 3Ó'ñó (ðð ×Ñ˜cÓ"ñ2ó #ð2ð ×Ñ˜cÓ"ñWó #ðWð ×Ñ˜cÓ"ñQó #ðQð
 ×Ñ˜cÓ"ñKó #ðKð ×Ñ˜fÓ%ñWó &ðWð ×"Ñ" 3Ó'ñó (ðð ‡J�JÑ'Ø‡F�FÑØ‡J�JÑ'Ø‡J�JÑ'Ø‡L�LÑ+Ø‡F�FÑØ‡E�EÑØ‡K�KÑ)Ø‡G�GÑ!Ø‡K�KÑ)ðÐ ð ×"Ñ" 6¨<¸ÓGñó Hòr1   