There is a really old wiki page to coordinate development of symbolics functionality:
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.
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.
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. :)