Assume behavior



On Mon, Sep 28, 2009 at 11:49 AM, Karl-Dieter Crisman
<kcrisman at gmail.com> wrote:

> (%i1) assume(x>=y,y>=z,z>=x);
> (%o1) ? ? ? ? ? ? ? ? ? ? ?[x >= y, y >= z, z >= x]
> (%i2) is(x=z);
> (%o2) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?false

Well, it's true that assume isn't very strong, but at least Maxima
seems to be able to figure out these examples.
What you want is equal(x, z) instead of x = z.
"=" is essentially identity (i.e. are the left and right-hand sides
the same expression), while equal is equivalence (equal value).
Likewise the distinction between "#" and notequal.

Here's what I get with Maxima 5.19.2.

(%i2)  assume(x>=y,y>=z,z>=x);
(%o2)                      [x >= y, y >= z, z >= x]
(%i3) is(equal(x,z));
(%o3)                                true
(%i4) assume(a>=1,1>=a);
(%o4)                          [a >= 1, a <= 1]
(%i5) is(equal(a,1));
(%o5)                                true
(%i6) assume(b>1);
(%o6)                               [b > 1]
(%i7) is(equal(b,1));
(%o7)                                false
(%i8) is(notequal(b,1));
(%o8)                                true

I think %o3, %o5, %o7, and %o8 are all as expected, right?

Hope this helps, & thanks for your interest in Maxima.

Robert Dodier