ó
    ‹*£h  ã                   óL   • S r SSKJr  SSKJr  SSKJrJrJr  \4S jr	\4S jr
g)	z(Branching Strategies to Traverse a Tree é    )Úproduct)Ú	basic_fnsé   )ÚchainÚidentityÚdo_onec                 óD   ^ ^• [        [        T [        5      U U4S j5      $ )z;Apply a rule down a tree running it on the top nodes first c                 ó<   >• [        [        TT5      T5      " U 5      $ ©N)ÚsallÚtop_down)ÚexprÚbruleÚfnss    €€Ú]/home/mande/repo/quber/.venv/lib/python3.13/site-packages/sympy/strategies/branch/traverse.pyÚ<lambda>Útop_down.<locals>.<lambda>
   s   ø€ œd¤8¨E°3Ó#7¸Ô=¸dÔCó    )r   r   r   )r   r   s   ``r   r   r      s   ù€ ä”˜œxÓ(ÝCóEð Er   c                 óZ   ^ ^^^^• [        UR                  S5      u  mmmmU UUUU4S jnU$ )z#Strategic all - apply rule to args )ÚopÚnewÚchildrenÚleafc              3   óš   >#   • T" U 5      (       a  U v •  g T" U 5      n[        [        TT" U 5      5      6 nU H  nT" U/UQ76 v •  M     g 7fr   )r   Úmap)	r   ÚmyopÚargssÚargsr   r   r   r   r   s	       €€€€€r   Úall_rlÚsall.<locals>.all_rl   sL   øé € Ù��:‰:Ø‹Já�d“8ˆDÜœS ©°«Ó7Ð8ˆEÛ�Ù˜$Ð& Ò&Ô&ò ùs   ƒAA)r   Úget)r   r   r   r   r   r   r   s   `  @@@@r   r   r      s.   ü€ ä! #§'¡'Ð+LÓMÑ€BˆˆX�t÷'ñ 'ð €Mr   N)Ú__doc__Ú	itertoolsr   Úsympy.strategies.utilr   Úcorer   r   r   r   r   © r   r   Ú<module>r'      s)   ðÙ /Ý Ý +ß )Ñ )ð "ô Eð õ r   