MARGS, GREAT, MRAT => trouble



On Thu, Aug 25, 2011 at 10:59, Robert Dodier <robert.dodier at gmail.com>wrote:

> On 8/24/11, Stavros Macrakis <macrakis at alum.mit.edu> wrote:
>
> > I suspect that the problem in your example below is that you are calling
> > (simplus x 1 t) and not (simplus x 1 nil).
> ...
> I am still kind of puzzled by GREAT. Unless MRAT is simplified away,
> it causes an error in GREAT. Shouldn't GREAT be able to compare
> any Maxima expressions?


GREAT is only designed to operate correctly on correctly simplified
expressions in general representation; even (great ($rat 1) ($rat 1)) core
dumps.  Its primary use is in canonicalizing the order of arguments to
commutative operators like MPLUS.

I imagine there would be the same problem with other special
> representations, e.g. Taylor series.
> Are special representations always simplified away? That seems to take away
> their specialness.
>

Since GREAT operates on the syntactic form of expressions, it would be hard
to make it work consistently on objects in special representations without
ratdisrep'ing them, which is what (e.g.) the set package has to do.
 Consider for example rat(x,x) vs. rat(x,y), which are identical in general
representation, but different as CREs. You could imagine some sort of 'lazy'
ratdisrep that only disrep's enough to compare, but that seems like
unnecessary complication.

           -s


>