On Fri, Mar 20, 2026 at 01:26:12AM -0400, Tim Daly wrote:
>
> [p4] Albert Rich had been taking an almost diametrically opposite
> approach to indefinite integration, and had been developing a very
> extensive rule-based system called RUBI [26].
>
> [p5] The code there is still available and can be useful for those who
> have a Mathematica license (or for that company to embed within their
> commercial system), but porting it out for use elsewhere has proved
> non-trivial [40].
>
> [me] Prior to joining the Scratchpad group I was one of the co-authors
> of the IBM Rule-Based system ECLPS based on Charles Forgy's Rete
> algorithm so I was quite familiar with rule-based programming.
>
> I had several interactions with Albert based on my efforts to extend
> Axiom with RUBI-like rules. It was a non-trivial effort to try to
> insert RUBI rules into Axiom's algebraic structure.
>
> RUBI makes "leaps" as I called them that simply stepped over
> mathematical structures that Axiom supported. The strong typing of
> Axiom made the two systems incompatible, at least at the level of
> skill I could bring to bear.
>
> I tried to "lift" both systems results to Hypergeometric Functions
> which would regularize both Axiom and RUBI results but failed, mostly
> due to needing to learn too much new mathematics. Serge Lang's book
> was a bridge too far for me.
>
> That said, I think Albert's work was excellent.
I think that there are no principal difficultines integrating
Rubi or something Rubi-like as long as you accept fact that
this is "foregign body". That is it needs its own data structures
which probably should be organized as specific domain.
I think that Albert did not fully understand open source dynamics.
Namely, nobody wanted to fork Rubi, that is maintain their own
version. But Rubi was distributed as Mathematica code, so
using "official: Rubu means need to implement Mathematica
parser. There was smaller annoyance: Albert used various
special symbols to name rules so merely tracking evolution
a single rule required some effort. Bigger problem was
dependence on specific features of Mathematica. One example
of this is using Mathematica partial fraction decomposition,
that one is easy to emulate in other system once you understand
that Rubi uses it. But apparently there are subtler dependecies
on Mathematica pattern matcher. Namely IIUC Sympy folks implemented
Mathematica-compatible data structures and pattern matcher. But
their success rate on Rubi testsute was quite low, They attributed
problem to differences in their pattern matcher and Mathematica
one.
From my point of view big problem with Rubi is bulk, rules amount
to about 20000 lines. Most of the rules are quite unintersting,
they just implement special cases of Hermite integration (which
is rather simple algorithm). But if one wants to mechanically
adapt Rubi rules, then one needs to deal with Mathematica
specifics. Due to bulk trying to find interesting rules and
adapting them by hand would require quite a lot of work.
One extra remark about hipergeometric functions: IMO their use
is misleading. "True" hipergeometric functions should never
appear in result of integration of elementary function. What
may appear are "degenetate" cases, where hipergeometric
function reduces to a Liovilian one. In particular probably
about 90% of cases where Rubi testsuite has answer in terms
of hipergeometric functions should be expressed in terms of
incomplete beta function.
Another thing is that AFAIK Albert never explained methods that
he used to create and manage the rules. Basic thing is clar,
namely he systematically generated collection of expressions
fed them to various CAS-es (mainly Mathematica) and looked
for expression that given CAS could integrate. This lead
to initial candidates for rules. But beynd that, it is not clear
how he handled possible redundancy, how he resolved possible
cycles, etc.
BTW: Mathematica has an algorithm that expresses various integrals
in terms of hypergeometric functions. Clearly Mathematica output
is the source of hypergeometric functions in Rubi results.
--
Waldek Hebisch