
    \h                     `    S r SSKJr  SSKJrJr  \4S jr\4S jr\4S jr\4S jr	\4S jr
g	)
zStrategies to Traverse a Tree.    )	basic_fns)chaindo_onec                 (   ^ ^ [        T 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fnsrules    Q/var/www/auris/envauris/lib/python3.13/site-packages/sympy/strategies/traverse.py<lambda>top_down.<locals>.<lambda>   s    D$)<c$B4$H    r   r   r   s   ``r   r   r      s    HIIr   c                 (   ^ ^ [        UU 4S jT 5      $ )z>Apply a rule down a tree running it on the bottom nodes first.c                 <   > [        [        TT5      T5      " U 5      $ r   r
   	bottom_upr   s    r   r   bottom_up.<locals>.<lambda>   s    d9T3#7=dCr   r   r   s   ``r   r   r      s    CTJJr   c                 (   ^ ^ [        T UU 4S j5      $ )z+Apply a rule down a tree - stop on success.c                 <   > [        [        TT5      T5      " U 5      $ r   r	   r   s    r   r   top_down_once.<locals>.<lambda>   s    T(4*=s%CD%Ir   r   r   s   ``r   top_down_oncer      s    $IJJr   c                 (   ^ ^ [        UU 4S jT 5      $ )z)Apply a rule up a tree - stop on success.c                 <   > [        [        TT5      T5      " U 5      $ r   r   r   s    r   r    bottom_up_once.<locals>.<lambda>   s    tIdC$8#>tDr   r   r   s   ``r   bottom_up_oncer#      s    DdKKr   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                 d   > T" U 5      (       a  U $ [        TT" U 5      5      nT" T" U 5      /UQ76 $ r   )map)r   argsr'   r(   r&   r%   r   s     r   all_rlsall.<locals>.all_rl   s5    ::KtXd^,Dr$x'$''r   )r*   get)r   r   r,   r'   r(   r&   r%   s   `  @@@@r   r
   r
      s.    !#''+LMBXt( ( Mr   N)__doc__sympy.strategies.utilr   sympy.strategies.corer   r   r   r   r   r#   r
    r   r   <module>r3      sD    $ + / ! J
 " K
 & K
 ' L
  r   