home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   sci.math.symbolic      Symbolic algebra discussion      10,432 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 9,379 of 10,432   
   Richard Fateman to clicliclic@freenet.de   
   Algebra vs Analysis. Was Re: The Risch a   
   16 Apr 17 16:56:57   
   
   From: fateman@cs.berkeley.edu   
      
   On 4/16/2017 1:19 PM, clicliclic@freenet.de wrote:   
   >   
      
   >   
   > This kind of dangerous inconsistency is only found in systems whose   
   > design reaches back to the 1960's to 80's. It would simply constitute a   
   > bug in Maple, Mathematica, Derive, and Sympy.   
      
   I think that this is wishful thinking.   
      
   We routinely expect algebraic identities to hold.   
   After all, these systems are called Computer Algebra Systems.   
      
      
   Analytically (x^2-1)/(x-1)  differs from x+1   when x=-1.   
   Just about every system "simplifies" one to the other, and   
   if it didn't, the system would be rather weak.   
      
      
   The Maple (version 7) command   
   simplify(sqrt(x^2))  returns csgn(x)*x .   
   A moment's consideration should tell you that sqrt(x^2) has   
   two values, -x  and x.  It is irrelevant where x is   
   located in the complex plane, and thus csgn(x),  its   
   "sign" in the complex plane, doesn't really affect   
   the mathematical answer.   
      
      
   There are endless inconsistencies in Mathematica.   
      
   One of the principles behind coherent semantic   
   discourse  (as we might hope to achieve in writing   
   mathematics and in conveying our intentions for   
   computing to a CAS) is support of Referential   
   Transparency.  (Lots of discussion -- try googling).   
      
   What this means for Mathematica and its Simplify   
   functionality is this:   
      
   f[a]   
      
   and   
      
   Simplify[ f[x]] /. x-> a   
      
   must give the same result for various definitions of f and a.   
      
   Before reading further, decide if you agree with this.   
   (for those unfamiliar with Mathematica syntax, here's a version   
   in Maple-ish syntax.   
      
   subst(x=a, simplify(f(x))   
      
   Using our previous example, let's   
   define in Mathematica,   
     f[x_]:=(x^2-1)/(x-1)  suppose a=1.   
      
   Mathematica fails.   
   Maple, too.   
      
   While sympy is newer, I have seen rather little   
   evidence that it differs in mathematical correctness   
   from earlier systems. Its major benefit seem to be   
   that it is more accessible from python's popular   
   ecosystem than previously packaged systems.   
      
      
    From the perspective of "Mathematical Knowledge Management"   
   this is a flaw.  This problem was, in internal discussions,   
   acknowledged by the Macsyma people at MIT at least as early   
   as 1971. Doing it "right" is quite challenging. It was   
   clear from the outset that Maple wasn't going to do it.   
   Same for Mathematica, decades later.   
   I have not tried it, but I fully expect sympy to   
   fail to be referentially transparent as well.   
      
   It would be nice to address complex analysis correctly, but   
   there is the hope that -- if one can reduce a question in   
   complex analysis to algebra -- that one can make headway   
   in some computation.   
      
   If you want an analytic "solution" to an integration problem,   
   you can consider how to translate it to a solvable question   
   in algebra  (perhaps via Risch method).  But you must address   
   the translation from analysis to (perhaps several?) algebraic   
   problems first.   
      
   This message is getting way to long but here's a thought.   
      
   If you (or your program)   
     are clever enough to realize that there are two ALGEBRAIC   
   solutions depending on the domain of x,  then do this   
   assume(xp>0);   
   integrate(log(xp)*log(xp^2),xp)   
   assume(xn<0);   
   integrate(log(xn)*log(xn^2),xn);   
      
   This resolution, phrased exactly this way,   
   is I think, correctly handled in   
   Maxima.  One of those "old" systems.   
      
   reminder: the Risch methods are ALGEBRAIC in nature.   
      
   Basically, this is not enough -- I would hope that a discussion   
   of functions (of one complex variable) in the complex plane would   
   have to have descriptions of branch cuts and surfaces etc.  And   
   for functions of several complex variables, I'm unaware of any   
   satisfactory computationally-oriented references.   
      
   RJF   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca