+
    ‹°³j  ã                   óH   € R t ^ RIHt ^ RIHt ^ RIHt ^ RIHtH	t	 RR lt
R# )z4Functions to support rewriting of SymPy expressions )ÚExpr)Úask)Úsubs)ÚrebuildÚunifyNc                ó(   a aaaa€ RVVV VV3R llpV# )a{  Rewrite rule.

Transform expressions that match source into expressions that match target
treating all ``variables`` as wilds.

Examples
========

>>> from sympy.abc import w, x, y, z
>>> from sympy.unify.rewrite import rewriterule
>>> from sympy import default_sort_key
>>> rl = rewriterule(x + y, x**y, [x, y])
>>> sorted(rl(z + 3), key=default_sort_key)
[3**z, z**3]

Use ``condition`` to specify additional requirements.  Inputs are taken in
the same order as is found in variables.

>>> rl = rewriterule(x + y, x**y, [x, y], lambda x, y: x.is_integer)
>>> list(rl(z + 3))
[3**z]

Use ``assume`` to specify additional requirements using new assumptions.

>>> from sympy.assumptions import Q
>>> rl = rewriterule(x + y, x**y, [x, y], assume=Q.integer(x))
>>> list(rl(z + 3))
[3**z]

Assumptions for the local context are provided at rule runtime

>>> list(rl(w + z, Q.integer(z)))
[z**w]
c           
   3   óp  <"  € \        SV / S	R 7       F˜  pS'       d-   S! S	 Uu. uF  q2P                  W34      NK  	  up!  '       g   K7  S'       d$   \        SP                  V4      V4      '       g   Kb  \	        V4      ! S4      p\        V\        4      '       d   \        V4      pVx € Kš  	  R# u upi 5i))Ú	variablesN)r   Úgetr   Úxreplacer   Ú
isinstancer   r   )
ÚexprÚassumptionsÚmatchÚvarÚexpr2ÚassumeÚ	conditionÚsourceÚtargetr	   s
   &&   €€€€€ÚT/home/luca/screen-checking/.venv/lib/python3.14/site-packages/sympy/unify/rewrite.pyÚ
rewrite_rlÚrewriterule.<locals>.rewrite_rl,   sŠ   øé € Ü˜6 4¨°y×AˆEßÙ¹yÓI¹y¸§	¡	¨#Ö 3¹yÑI×JÐJÙßœs 6§?¡?°5Ó#9¸;×GÒGÙÜ˜”K Ó'ˆEÜ˜%¤×&Ò&Ü ›�ØŒKó BùâIùs   ƒ!B6¤B1
½
B6Á	B6ÁA$B6)T© )r   r   r	   r   r   r   s   fffff r   Úrewriteruler      s   ü€ ÷H
ó 
ð Ðó    )r   NN)Ú__doc__Úsympy.core.exprr   Úsympy.assumptionsr   Úsympy.strategies.toolsr   Úsympy.unify.usympyr   r   r   r   r   r   Ú<module>r!      s   ðÙ ;å  Ý !Ý 'ß -ö/r   