Questions about facts()



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
>  
>