ASKSAGE: Sage Q&A Forum - RSS feedhttps://ask.sagemath.org/questions/Q&A Forum for SageenCopyright Sage, 2010. Some rights reserved under creative commons license.Tue, 31 Jan 2012 17:37:14 +0100simplify_full developmenthttps://ask.sagemath.org/question/8684/simplify_full-development/Hi! Could someone elaborate on the status of the simplification routines in SAGE? I've noticed that the simplify_full can't exactly be said to compete with e.g. mathematica's corresponding FullSimplify...
I don't know if the simplify functions operate as replacement rules or such, but if they do, I might be able to contribute in the development (I'm not much of a programmer though).
So could someone please explain about how simplify_full and other simplification functions work, and how I and others can participate? This post could work as an info for all who want to take part!Tue, 31 Jan 2012 11:03:17 +0100https://ask.sagemath.org/question/8684/simplify_full-development/Answer by burcin for <p>Hi! Could someone elaborate on the status of the simplification routines in SAGE? I've noticed that the simplify_full can't exactly be said to compete with e.g. mathematica's corresponding FullSimplify...</p>
<p>I don't know if the simplify functions operate as replacement rules or such, but if they do, I might be able to contribute in the development (I'm not much of a programmer though).</p>
<p>So could someone please explain about how simplify_full and other simplification functions work, and how I and others can participate? This post could work as an info for all who want to take part!</p>
https://ask.sagemath.org/question/8684/simplify_full-development/?answer=13220#post-id-13220There is a really old wiki page to coordinate development of symbolics functionality:
[http://wiki.sagemath.org/symbolics](http://wiki.sagemath.org/symbolics)
It hasn't been used much, since most work in this area concentrated on wrapping more functionality from maxima instead of implementing it in Sage.
That page lists a few items under simplification:
- Basic simplification routines
- trig
- radical
- rational
- binomial/factorial?
The link to the maxima documentation should point [here](http://maxima.sourceforge.net/docs/manual/en/maxima_100.html#Category_003a-Simplification-functions).
From these, only
- simplify_trig() which calls maxima functions `trigexpand()` and `trigsimp()`
- simplify_factorial() which calls maxima functions `factcomb()` and `minfactorial()`
are based on rewriting. It would be great to find out what maxima does and implement that in Sage.
AFAICT, rational simplify is just eliminating gcd's from the numerator and denominator of a rational function. This should be equivalent to the `normal()` function in pynac, which is wrapped in [ticket #12068](http://trac.sagemath.org/sage_trac/ticket/12068).
Finding normal forms of expressions involving radicals is a nice problem. With all the mathematics functionality in the Sage library, we should be able to do much better than maxima here. I'd be interested to see what FriCAS does for this.
I'd be happy to help anyone in implementing these in Sage. If there is any missing infrastructure missing in symbolics, I could also spend some time to fix that. :)Tue, 31 Jan 2012 17:37:14 +0100https://ask.sagemath.org/question/8684/simplify_full-development/?answer=13220#post-id-13220Answer by kcrisman for <p>Hi! Could someone elaborate on the status of the simplification routines in SAGE? I've noticed that the simplify_full can't exactly be said to compete with e.g. mathematica's corresponding FullSimplify...</p>
<p>I don't know if the simplify functions operate as replacement rules or such, but if they do, I might be able to contribute in the development (I'm not much of a programmer though).</p>
<p>So could someone please explain about how simplify_full and other simplification functions work, and how I and others can participate? This post could work as an info for all who want to take part!</p>
https://ask.sagemath.org/question/8684/simplify_full-development/?answer=13218#post-id-13218Simplification in Sage is pretty much exclusively a not-so-sophisticated use of Maxima routines. I do not know how they do things - I don't think it's as pattern-matching as I've heard Mathematica is.
Here is an example (and one that sometimes causes trouble, because of course simplification *simplifies* and so things may not be 100% identical (like $x^2/x\neq x$).
sage: x.simplify_exp??
<snip>
from sage.calculus.calculus import maxima
maxima.eval('domain: real$')
res = self.parent()(self._maxima_().radcan())
maxima.eval('domain: complex$')
return res
There are a lot of tickets related to this [here](http://trac.sagemath.org/sage_trac/wiki/symbolics), so please feel free to contribute! Or even help make Maxima's simplification routines more robust; they should be written in a combination of Lisp and Maxima's own language.Tue, 31 Jan 2012 11:51:39 +0100https://ask.sagemath.org/question/8684/simplify_full-development/?answer=13218#post-id-13218