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