§
    PŠtjŸ  ã                   óX   — d Z ddlmZ ddlmZmZ efd„Zefd„Zefd„Zefd„Z	efd„Z
d	S )
zStrategies to Traverse a Tree.é    )Ú	basic_fns)ÚchainÚdo_onec                 ó.   ‡ ‡— t          ‰ ˆˆ fd„¦  «        S )z;Apply a rule down a tree running it on the top nodes first.c                 óR   •—  t          t          ‰‰¦  «        ‰¦  «        | ¦  «        S ©N©ÚsallÚtop_down©ÚexprÚfnsÚrules    €€úW/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/strategies/traverse.pyú<lambda>ztop_down.<locals>.<lambda>   s&   ø€ Ð$B¥D­°$¸Ñ)<Ô)<¸cÑ$BÔ$BÀ4Ñ$HÔ$H€ ó    ©r   ©r   r   s   ``r   r   r      s!   øø€ å�ÐHÐHÐHÐHÐHÑIÔIÐIr   c                 ó.   ‡ ‡— t          ˆˆ fd„‰ ¦  «        S )z>Apply a rule down a tree running it on the bottom nodes first.c                 óR   •—  t          t          ‰‰¦  «        ‰¦  «        | ¦  «        S r   ©r
   Ú	bottom_upr   s    €€r   r   zbottom_up.<locals>.<lambda>   s&   ø€ Ð=�d¥9¨T°3Ñ#7Ô#7¸Ñ=Ô=¸dÑCÔC€ r   r   r   s   ``r   r   r      s!   øø€ åÐCÐCÐCÐCÐCÀTÑJÔJÐJr   c                 ó.   ‡ ‡— t          ‰ ˆˆ fd„¦  «        S )z+Apply a rule down a tree - stop on success.c                 óR   •—  t          t          ‰‰¦  «        ‰¦  «        | ¦  «        S r   r	   r   s    €€r   r   ztop_down_once.<locals>.<lambda>   s&   ø€ Ð%C¥T­(°4¸Ñ*=Ô*=¸sÑ%CÔ%CÀDÑ%IÔ%I€ r   ©r   r   s   ``r   Útop_down_oncer      s!   øø€ å�$ÐIÐIÐIÐIÐIÑJÔJÐJr   c                 ó.   ‡ ‡— t          ˆˆ fd„‰ ¦  «        S )z)Apply a rule up a tree - stop on success.c                 óR   •—  t          t          ‰‰¦  «        ‰¦  «        | ¦  «        S r   r   r   s    €€r   r   z bottom_up_once.<locals>.<lambda>   s&   ø€ Ð>�t¥I¨d°CÑ$8Ô$8¸#Ñ>Ô>¸tÑDÔD€ r   r   r   s   ``r   Úbottom_up_oncer      s!   øø€ åÐDÐDÐDÐDÐDÀdÑKÔKÐKr   c                 óV   ‡ ‡‡‡‡— t          |j        d¦  «        \  ŠŠŠŠˆˆˆˆˆ fd„}|S )z#Strategic all - apply rule to args.)ÚopÚnewÚchildrenÚleafc                 ót   •—  ‰| ¦  «        r| S t          ‰ ‰| ¦  «        ¦  «        } ‰ ‰| ¦  «        g|¢R Ž S r   )Úmap)r   Úargsr#   r$   r"   r!   r   s     €€€€€r   Úall_rlzsall.<locals>.all_rl   sO   ø€ Øˆ4�‰:Œ:ð 	(ØˆKå�t˜X˜X d™^œ^Ñ,Ô,ˆDØ�3�r�r˜$‘x”xÐ' $Ð'Ð'Ð'Ð'r   )r&   Úget)r   r   r(   r#   r$   r"   r!   s   `  @@@@r   r
   r
      sV   øøøøø€ å! #¤'Ð+LÑMÔMÑ€BˆˆX�tð(ð (ð (ð (ð (ð (ð (ð (ð (ð €Mr   N)Ú__doc__Úsympy.strategies.utilr   Úsympy.strategies.corer   r   r   r   r   r   r
   © r   r   ú<module>r.      sÌ   ðØ $Ð $Ø +Ð +Ð +Ð +Ð +Ð +Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /ð !ð Jð Jð Jð Jð
 "ð Kð Kð Kð Kð
 &ð Kð Kð Kð Kð
 'ð Lð Lð Lð Lð
 ð ð ð ð ð ð r   