solve remembers too much, asks odd questions.



Richard Fateman wrote:



> 
> A solution is discussed here ..
> http://www.cs.berkeley.edu/~fateman/papers/y=z2w.pdf

I have read the paper and i do not agree with what you are saying. 
sqrt(z) has 2 values for any complex values of z, except 0 and
infinity. This shows the inanity of the conventional cut on the negative 
real axis which indeed leads to the difficulties you mention. In fact
the cut between 0 and infinity is completely arbitrary and can be 
any curve in the complex plane joining these two points, which are 
themselves intrinsic as branch points of a branched covering.

The real problem is not this one, it is "how many values take
sqrt(2) + sqrt(5)" for example, or worse "sqrt(2)+5^{1/3}". Or for another 
example, how many values take the Cardan solutions of the degree 3 
equations. You know in this case there are 3 solutions, which is not 
immediately obvious from the Cardan formulas. 

The answer to such questions lies in the theory of Riemann surfaces, and 
requires non trivial analysis of the considered algebraic equation. One may 
represent the Riemann surface as a branched covering of some degree, with 
some arbitrary well chosen cuts between the branch points. Then one may 
define a determination of the algebraic function on the cut complex plane.

> or just letting the program run and see what comes out.

Still this is the main benefit one can get from a CAS program in case it 
finds a non obvious simplification. There is nothing as irritating as a CAS
which is unable to simplify an expression with a bunch of square roots 
without getting "expression too large errors" (i got that under Maple) and 
wasting hours of your time for computations that you finally do by hand in a 
couple of minutes. All these sign considerations and "assumptions" get in 
the way of the computation, for zero benefit in general. Expecting a CAS to 
give correct results for non trivial computations (integrals, etc.) is not 
reasonable, one certainly needs to check the result by all sorts of means, 
but a CAS may be of great help by finding an unexpected  "simple" form.
And of course one expects a CAS to give correct results for "trivial" 
computations, that is purely polynomial computations, however large they may 
be. 

  

-- 
Michel Talon