Extended real arithmetic (was Re: inf - inf = 0 ??)



  On 9/13/2010 7:17 AM, Viktor T. Toth wrote:
> On the other hand, not making this assumption about symbols (and expressions
> containing unevaluated symbols) would mean that the simplifier is not
> allowed to simplify 0*x, for instance, seriously reducing its practical
> utility. So in a sense, you have to draw the line somewhere, sacrificing
> mathematical purity for the sake of constructing a practical CAS.

The "answer" to the extent that there is one, is to set aside what the 
user of a CAS wants
(correct results), and offer what the computer program can compute.  
This amounts to
rigorously defining a computation domain in which you provide a formal 
manipulation
system.  You know what you are computing.  If you are smart, you keep in 
mind the
fact that what you are computing is NOT what the user thinks you are 
computing, exactly.
More typically, the programmer doesn't understand there is a difference.

For example, if you refuse to allow substitution of a number for a 
symbol, you can do
arithmetic in  Z(x) mod (x^3-2).  Which is sort of like dividing by 
x^3-2.   You could ask,
what if x^3-2 is zero.
But x^3-2 is ALWAYS zero in that system...

Then you take the result from that calculation and you do something else 
with it, outside that
formal system.  It could be legitimate or not, but it is done without 
reference to that earlier
computation.


A CAS typically has stuff like this going on in several places.
Like formally integrating expressions to get results that are apparently
algebraically correct (just compute the derivative), but have gratuitous 
undefined pieces.
Sometimes the results from "solve" are questionable, too, with 
extraneous roots.

RJF