Hi to all,
I have some questions concerning one part of the Maxima
knowledge database.
Consider the follwing calculations:
(C1) assume(a>0,b>0)$ is(a*b>0); is(a+b>0);
(C2)
(D2) TRUE
(C3)
(D3) TRUE
(C4) forget(a>0,b>0)$ assume(a+z>0,b-z>0)$ is((a+z)*(b-z)>0);
(C5)
(C6)
(D6) TRUE
(C7) is((a+z)+(b-z)>0);
MACSYMA was unable to evaluate the predicate:
b + a > 0
-- an error. Quitting. To debug this try DEBUGMODE(TRUE);)
(C8) facts();
(D8) [z + a > 0, b > z]
Things go fine from (C1) through (D6). But in (C7), it seems that MACSYMA
execute a simplification (a+z)+(b-z) => b + a , which prevents it
from evaluating (C7) exactly the same way as it does for "is(a+b>0)" in (C3),
above. Is this type of behavior required for some deep reasons, and could
it be switched off and on by means available in the current version of Maxima?
Another question (suggestion) is about the format in (D8). It would be preferrable to have a uniform format when presenting inequalities. Say, zero stands
at the right hand side always. This can be essential when doing programming
with the output of the "facts()" command.
One more question (suggestion) is about "facts(v)" command.
Consider the following.
(C14) facts();
(D14) [z + a > 0, b > z]
(C15) facts(a);
(D15) []
(C16) facts(b);
(D16) [b > z]
(C17) facts(z);
(D17) [b > z]
(C18) facts(z + a);
(D18) []
This means that while executing facts(v) with all pertinent 'v' one cannot
generate the entire output of the "facts()". Well, what are those remaining
facts about if not about a,b,z? Is there indeed no facts about a in the (D14)?
I would prefer to have
facts(z); => [z + a > 0, z + b > 0]
facts(a); => [z + a > 0]
facts(b); => [z + b > 0]
Best regards,
--
Alexander