ó
¡¼™\c           @   sÎ   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 d	 S(
   sR   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
i   (   t   rl(   t   traverse(   t   rm_idt   unpackt   flattent   sortt   glomt
   distributet   rebuild(   t   new(   t	   conditiont   debugt   chaint	   null_safet   do_onet   exhaustt   minimizet   tryit(   t   canont   typed(   t   branchN(   t   __doc__t    R    R   R   R   R   R   R   R   R   t   utilR	   t   coreR
   R   R   R   R   R   R   R   t   toolsR   R   R   (    (    (    s8   lib/python2.7/site-packages/sympy/strategies/__init__.pyt   <module>   s   4: