The inequality testing software is elaborate but not really
very powerful. There are some very tricky issues, and a satisfactory
solution to some of them would make a good contribution to
the software.
(a) geometric reasoning (linear and algebraic functions of any number
of variables)
(b) calculation of constants to high precision, e.g.
is (%pi> 411557987/131002976) ?
You can't tell using floating point arithmetic.
I believe there was a lot of work on this issue (b) in the commercial
Macsyma,
and probably no work on issue (a).
RJF
Stavros Macrakis wrote:
>>assume(a+z>0,b-z>0)$
>>(C7) is((a+z)+(b-z)>0);
>>...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?
>>
>>
>
>The simplification can be turned off using Simp:false. But many parts
>of Maxima will not work correctly with Simp=false. In particular, with
>Simp=false, neither is((a+z)+(b-z)>0) nor is((a+z)*(b-z)>0) is
>evaluated. I don't think there is any way to 'convince' IS to handle
>this case correctly.
>
>Indeed, the "is" subsystem seems to be rather weak (cf bug report
>769910). For example:
>
> assume(p>0)
> assume(p*q>0)
> sign(q) => PNZ (should be POS)
>
>and
>
> assume(a*b>0)
> asksign(a^2*b^2) =>
> Is a*b zero or nonzero (!!!)
>
>I have not looked into the IS code (compar.lisp). Some of these look
>like fairly simple bugs, others may be more subtle bugs (that is, the
>code was intended to handle the case, but messes up somehow), or perhaps
>were never part of the design of the code.
>
>
>
>>would be preferrable to have a uniform format when presenting
>>inequalities. Say, zero stands at the right hand side always.
>>
>>
>
>Interesting idea. I don't know how hard it would be to implement this.
>Currently assume canonicalizes for its own internal convenience.
>
> facts() => [z + a > 0, b > z]
> facts(a) => []
>
>This looks like a bug. Could you please report it? (Run bug_report()
>for instructions.)
>
> -s
>
>_______________________________________________
>Maxima mailing list
>Maxima@www.math.utexas.edu
>http://www.math.utexas.edu/mailman/listinfo/maxima
>
>