about bug 1044318



Valery,

> the problem is how to make maxima to evaluate automaticaly.
> after declaration
> (declare(a,real), assume(a>0, sqrt(2*sqrt(a^2+1)+a^2+2)-a > 0,
> 2*sqrt(a^2+1)-a^2-2 < 0, sqrt(-2*sqrt(a^2+1)+a^2+2)-a < 0);
> maxima still ask about sign of
> sqrt(-2*sqrt(a^2+1)+a^2+2)-a

This is a weakness in the assume / asksign system, which is easily triggered.
For many expressions FOO, Maxima does not know sign(FOO) even after assume.

(%i2) prederror : false;
(%o2) false

(%i3) declare (a, real);
(%o3) done

(%i4) assume (sqrt (-2 * sqrt (a^2 + 1) + a^2 + 2) - a < 0);
(%o4) [a-sqrt(-2*sqrt(a^2+1)+a^2+2) > 0]

(%i5) is (sqrt (-2 * sqrt (a^2 + 1) + a^2 + 2) - a < 0);
(%o5) true

(%i6) is (sqrt (-2 * sqrt (a^2 + 1) + a^2 + 2) - a > 0);
(%o6) unknown

(%i7) is (equal (sqrt (-2 * sqrt (a^2 + 1) + a^2 + 2) - a, 0));
(%o7) unknown

(%i8) sign (sqrt (-2 * sqrt (a^2 + 1) + a^2 + 2) - a);
(%o8) pnz

(%i9) asksign (sqrt (-2 * sqrt (a^2 + 1) + a^2 + 2) - a);
Is  sqrt(-2*sqrt(a^2+1)+a^2+2)-a  positive, negative, or zero?


Improvements in assume and asksign would resolve a lot of
problems throughout Maxima ... Unfortunately I don't know much
about those functions.

All the best,
Robert Dodier