I encourage those interested in Computer Algebra Systems to read this comparison report: <a href="https://www.12000.org/my_notes/CAS_integration_tests/reports/summer_2022/indexchapter1.htm#x2-10001" rel="nofollow">https://www.12000.org/my_notes/CAS_integration_tests/reports...</a><p>AFAIK, this is the only recent benchmark-type study that compares modern CAS software (Mathematica vs Maxima vs FriCAS vs etc).
I used this a while back to do an awkward integral that no other CAS was able to do and was able to show up a paper that had claimed there was no closed-form solution.<p>Unfortunately the answer was in terms of hypergeometric functions and was scarcely more useful than the unevaluated integral. In any case I found Rubi to be very impressivein terms of results.<p>Digging into the code wasn't much fun, as it's just a colossal Mathematica rules engine, like reading Gradshteyn and Ryzhik, but with square brakets everywhere.
What is it fundamentally about symbolic integration that makes it so much more difficult to do? I mean, I studied calculus and learned any number of the rules but it's a curious thing that one operation, differentiation is trivial, yet the opposite, integration is massively complex.
There is a Golang based CAS that follows the Mathematica language which makes use of Rubi for integration.<p><a href="https://github.com/corywalker/expreduce">https://github.com/corywalker/expreduce</a>
This is cool! The page by Abbasi they link to also contains a comparison between MMA and Maple in solving differential equations<p><a href="https://12000.org/my_notes/kamek/kamke_differential_equations.htm" rel="nofollow">https://12000.org/my_notes/kamek/kamke_differential_equation...</a>
Has anyone looked at writing a script to transform those rules for yacas? Making yacas 94% as good as Mathematica at integration sounds like a worthy goal considering how easy it is to deploy it.