I am definitely in favor of this idea. A lot of examples of problems with autosimplification can be found on the strategies/rewrite_rules pull requests and forum discussions.
On 10 April 2013 12:18, Tom Bachmann <[email protected]> wrote: > This mail is not directly related to removing the old assumptions, but > rather to the next steps after that. > > One issue that comes up every now and then seems to be that we dislike, in > general, automatic simplification (and automatic evaluation). > > Autosimplification uses the old assumptions system. For example. > > In [1]: x = Symbol('x', positive=True) > In [2]: abs(x) > Out[2]: x > > refine is the "new approach", using new assumptions: > > In [3]: abs(y) > Out[3]: │y│ > In [4]: refine(abs(y), Q.positive(y)) > Out[4]: y > > There is also the unify/ module, which I know nothing about. > > > Once the old assumptions system has been replaced by the new one, the > following question comes up naturally: in what form do we re-use the (still > existent) autosimplification code? > > For example, we could implement a function which does "refinement using > autosimplification": > > def autorefine(expr, facts): > with assuming(facts): > re-build the expr tree > return the new version > > This seems like a good idea mid-term, but now we have refinement code > scattered through all the classes, and some refinement code separate. This > seems suboptimal. What should the long-term strategy be? > > It seems to me that, eventually, the separate refine code should be so easy > to write that all of the autosimplification can be transcribed with > reasonable effort. Once we are there, we can remove the autosimplification > code, and make autosimplification optional (i.e. we can implement some > mechanism to optionally automatically refine newly created objects). Most > sympy modules will likely break with autorefinement disabled, but one has to > make a start somewhere. In particular, now all the modules can transition at > their own pace, and some might decide never to do it. > > Does this seem like a reasonable description of the consensus on > autosimplification? > > Thanks, > Tom > > -- > You received this message because you are subscribed to the Google Groups > "sympy" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/sympy?hl=en-US. > For more options, visit https://groups.google.com/groups/opt_out. > > -- You received this message because you are subscribed to the Google Groups "sympy" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/sympy?hl=en-US. For more options, visit https://groups.google.com/groups/opt_out.
