#2082 is(equal(abs(%i * z + 1),z-%i));


Should be unknown, not false:

(%i6) is(equal(abs(%i * z + 1),z-%i));
(%o6) false

The expressions are equal when z = %i.

(%i8) subst(z=%i, abs(%i * z + 1)=z-%i);
(%o8) 0=0

This is rtest_equal #63 -- the expected answer is wrong, I think.


  • Dieter Kaiser

    Dieter Kaiser - 2010-09-25

    I think the handling of complex and real expression and symbols is confusing at a lot of places. If we declare a complex or an imaginary symbol the test of this bug report gives the expected results:

    (%i1) declare(z,complex, j,imaginary)$

    (%i3) is(equal(abs(%i*z+1),z+%i));
    (%o3) unknown

    (%i4) is(equal(abs(%i*j+1),j+%i));
    (%o4) unknown

    A symbol not declared to be complex or imaginary is assumed to be real. With this assumption the following test might be called correct too. The symbol x can not have the value %i, it is assumed to be real:

    (%i5) is(equal(abs(%i*x+1),x+%i));
    (%o5) false

    The problem is that the assumption, that any symbol is real by default sometimes gives the desired results, sometimes not.

    By the way: The option variable domain does not change anything. This is a problem too. I think a clear concept is missing to get all this right.

    Dieter Kaiser

  • Dieter Kaiser

    Dieter Kaiser - 2010-10-02
    • status: open --> closed
  • Dieter Kaiser

    Dieter Kaiser - 2010-10-02

    Because of revision 1.77 of compar.lisp the example works as expected:

    (%i1) is(equal(abs(%i * z + 1),z-%i));
    (%o1) unknown

    Closing this bug report as fixed.
    Dieter Kaiser


Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.

No, thanks