square root expression simplification



Richard Fateman wrote:

> Here is a suggestion on simplification, in terms of setting policy.
.....
> 
> Deciding that sqrt(4) must be 2 seems harmless, but what policy does
> that imply, for consistency,
> for (4)^(1/4)?    Note, incidentally, that some writers consider
> sqrt(x)  and x^(1/2)  to have different
> meanings.
> 
> RJF
> 

I agree completely with prof. Fateman here. The main use of a symbolic
computation program is to perform all computations and simplifications
one would have hard time doing by hand otherwise.  The question of 
correctness is secondary in my opinion. As soon as one considers general 
algebraic functions, this idea of using particular branch cuts and 
particular "principal values" becomes obviously weak. The only correct way 
is to consider the Riemann surface defined by the algebraic function, and
this is not the job of a CAS. 

In particular, Maple has a "symbolic" flag to do simplifications without 
considering the signs of the radicals, i reproduce here the corresponding
documentation:

Calling Sequence
     simplify(expr, sqrt)

     simplify(expr, sqrt, symbolic)
.....

- When the name symbolic is specified, square roots are computed without
  caring for possible complex or negative values of variables. No csgn() or 
  signum() will appear in the answer. The purpose of this feature is to      
allow simplification of expressions in contexts where the sign has no 
meaning, such as when x is an algebraic indeterminate. In particular, 
simplify( sqrt(x^2 - 2*x*y + y^2), sqrt, symbolic), will return at random 
either x-y or y-x. Furthermore, there is no guarantee that the choice will 
be the same as that made by sqrt( x^2 - 2*x*y + y^2, symbolic). 




-- 
Michel Talon