
    \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    X/var/www/auris/envauris/lib/python3.13/site-packages/sympy/strategies/branch/traverse.py<lambda>top_down.<locals>.<lambda>
   s    d8E3#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d8DS78E$&&& s   AA)r   get)r   r   r   r   r   r   r   s   `  @@@@r   r   r      s.    !#''+LMBXt' ' Mr   N)__doc__	itertoolsr   sympy.strategies.utilr   corer   r   r   r   r    r   r   <module>r'      s)    /  + ) ) " E  r   