As some of you might know, I'm working with Albert Rich to improve the accessibility of his Rubi package for rule-based integration. I'm almost done with a first version that contains several improvements, but for the current task, I'd like to ask for input from the community.
One major strength of Rubi is that it can provide all steps and intermediate results of an integration. This, however, was a bit broken since the intermediate output was not overwritten when you evaluate an integration again. I reworked this completely and now the big question is how to format rules and intermediate results in the most stunning way.
A "step" can either be a RubiRule
or a RubiIntermediateResult
and I get them as
RubiRule[conditionString,
HoldComplete[leftHandSide],
HoldComplete[rightHandSide],
ruleNumber]
RubiIntermediateResult[HoldComplete[expression]]
The conditionString
and the ruleNumber
is not always there, but often we have this information.
Question: Who can come up with the most stunning display of these two types of expressions? Go crazy with Style
, Panel
, Grid
, etc. but in the end, we need a nice looking output for both types.
I have prepared a small notebook that contains an example list of steps in the last portion of the Reap
result. This notebook is not meant to be evaluated since you obviously don't have my development version of Rubi.m
, but you can use the output that I provided to implement and test pretty-printing for RubiRule
and RubiIntermediateResult
.
Import["http://halirutan.github.io/Mathematica-SE-Tools/decode.m"]["https://i.sstatic.net/K0wqL.png"]
At the moment, it looks like this in Rubi