Welcome to Rubi, the Rulebased Integrator
By systematically applying its extensive, coherent collection of symbolic integration rules, Rubi is able to find the optimal antiderivative of large classes of mathematical expressions. Also Rubi can show the rules and intermediate steps it uses to integrate an expression, making the system a great tool for both learning and doing mathematics.
The over 6700 rules Rubi uses are organized as a decision tree based on the form of the integrand. Click on Rules to view the mathematical formula and application conditions for each rule expressed in standard 2D mathematical notation.
If the Mathematica computer algebra system is available on your computer, click on Install Rubi for instructions how to download and install the system. Then click on Using Rubi to learn how to integrate expressions and optionally show the steps required to do so.
An extensive testsuite of over 72,000 integration problems is used to test each new release of Rubi. Since it can also be used to test other symbolic integrators, the testsuite has been translated into the syntax of several popular computer algebra systems. Click on Test Problem to download the available translations of the testsuite. Click on Test Results to view the very illuminating results of running the testsuite on Rubi and on Mathematica’s builtin integrator.
Click on Vision to read a short, plainlanguage essay describing the numerous advantages of organizing mathematical knowledge as a rulebased decision tree like Rubi does. Finally, click on About to read about Rubi’s development and developers.
Comparison with other symbolic integrators
Rubi dramatically outperforms other symbolic integrators, including Maple and Mathematica, on a grueling testsuite of integration problems. Each problem consists of an integrand and its optimal antiderivative. For each problem the result produced by a system is given a grade as follows:
 A  if the result is no more than twice the size of the optimal antiderivative and involves functions no higherlevel than those in the optimal antiderivative.
 B  if the result is more than twice the size of the optimal antiderivative.
 C  if the result involves higherlevel functions than those in the optimal antiderivative. For example, the result involves special functions, but the optimal antiderivative only involves elementary ones.
 F  if the result involves an integral, no result is produced within 2 minutes, or the system hangs or crashes.
Nasser M. Abbasi has independently done extensive testing of the integration capabilities of several computer algebra systems. Detailed test results are available at his Computer algebra independent integration tests website. The following chart based on his test results summarizes the grades given Rubi, Mathematica and Maple on the integration testsuite:
Articles referencing rulebased integration

Alexes Mes and Jed Stephens (2018). An Application of Rubi: Series Expansion of the Quark Mass Renormalization Group Equation. arXiv:1811.04892.

Patrick Scheibe (2018). Rubi  The Rulebased Integrator for Mathematica. Wolfram Community post 1421180.

Patrick Scheibe (2018). Rubi  A Rulebased Integrator for Mathematical Expressions. Blog post.

David Jeffrey and Albert D. Rich (2016). Developments in Rubi: Rulebased integration. Presentation.

David J. Jeffrey, Albert D. Rich, and Junrui Hu (2015). Rubi and integration as term rewriting. ACM Communications in Computer Algebra. 49. 3434. 10.1145/2768577.2768649.

Albert D. Rich and David J. Jeffrey (2010). Reducing expression size using rulebased integration. Intelligent Computer Mathematics. Ed: S.Autexier, J.Calmet, D. Delahaye, P.D.F.Ion, L.Rideau, R.Rioboo, A.P.Sexton. LNAI 6167, pp234246, Springer.

Albert D. Rich and David J. Jeffrey (2009). A knowledge repository for indefinite integration based on transformation rules. Intelligent Computer Mathematics, LNCS 5625, pp480485, Springer.
Rulebased integration resources

To discuss issues related to rulebased integration, you are welcome to join Rubi’s chatroom on Gitter at https://gitter.im/RuleBasedIntegration/Lobby using your GitHub login.

To report bugs, request features or suggest new integration rules, please open an issue on GitHub at https://github.com/RuleBasedIntegration/Rubi/issues and describe as clearly as possible the bug, request or suggestion.

Rubi is a freely available system of integration rules. The complete source code is available as Mathematica notebook files on GitHub at https://github.com/RuleBasedIntegration/Rubi. The notebooks contain the integration rules in both human and machinereadable form, and everything required to build and use it as Mathematica package.

Rubi’s Wikipage at https://github.com/RuleBasedIntegration/Rubi/wiki is intended to contain detailed information about Rubi’s development process.