§
    ¸§gz  ã                   óž   — d Z ddlmZ ddlmZ ddlmZmZmZmZmZm	Z	m
Z
 ddlmZ ddlmZmZmZmZmZmZmZmZ ddlmZmZ ddlmZ g d	¢Zd
S )aR   Rewrite Rules

DISCLAIMER: This module is experimental. The interface is subject to change.

A rule is a function that transforms one expression into another

    Rule :: Expr -> Expr

A strategy is a function that says how a rule should be applied to a syntax
tree. In general strategies take rules and produce a new rule

    Strategy :: [Rules], Other-stuff -> Rule

This allows developers to separate a mathematical transformation from the
algorithmic details of applying that transformation. The goal is to separate
the work of mathematical programming from algorithmic programming.

Submodules

strategies.rl         - some fundamental rules
strategies.core       - generic non-SymPy specific strategies
strategies.traverse   - strategies that traverse a SymPy tree
strategies.tools      - some conglomerate strategies that do depend on SymPy
é   )Úrl)Útraverse)Úrm_idÚunpackÚflattenÚsortÚglomÚ
distributeÚrebuild)Únew)Ú	conditionÚdebugÚchainÚ	null_safeÚdo_oneÚexhaustÚminimizeÚtryit)ÚcanonÚtyped)Úbranch)r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   N)Ú__doc__Ú r   r   r   r   r   r   r	   r
   r   Úutilr   Úcorer   r   r   r   r   r   r   r   Útoolsr   r   r   Ú__all__© ó    úU/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/strategies/__init__.pyú<module>r!      s4  ððð ð2 Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GØ Ð Ð Ð Ð Ð ðJð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jà Ð Ð Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ðð ð €€€r   