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

closed
nobody
None
5
2010-10-02
2010-09-25
No

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.

Discussion

• 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 - 2010-10-02
• status: open --> closed

• 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

JavaScript is required for this form.

No, thanks