Re: A strange bug in Solve

*To*: mathgroup at smc.vnet.net*Subject*: [mg24609] Re: [mg24354] A strange bug in Solve*From*: mend0070 at garnet.tc.umn.edu (Philip C Mendelsohn)*Date*: Fri, 28 Jul 2000 17:23:45 -0400 (EDT)*Organization*: University of Minnesota, Twin Cities Campus*References*: <8kjccd$dov@smc.vnet.net> <ZU0d5.917$f6.240494@ralph.vnet.net> <8l3fgt$kvk@smc.vnet.net> <8lgrnc$28v@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

Richard Fateman (fateman at cs.berkeley.edu) wrote: : I agree with Kevin, disagree mostly with Philip: I don't know that Kevin and I have mutually exclusive points here. : If Mathematica is allowed to give wrong answers when the user : doesn't know enough about the answer to say if it is wrong, : that is a pretty bad specification for a program. Sure, though I don't believe that was suggested. I tried to say that to expect Mathematica to give results in the form the user expects all the time is probably not practically feasable, users being as varied as they are. Some common ground is reasonable to expect in solving complex mathematical problems. Not the same as saying that wrong answers are acceptable. : And to suggest that the user should try random : permutations of massaging input in order to get Solve to : work -- well, that assumes that the user knows : more than the program about what the capabilities of : the program are. Actually, random permutations wasn't said, and I hope wasn't suggested. Algorithmic manipulation is the thing at which I was driving. The question becomes whether that is best implemented outside the loop by Those That Know Best, or whether it should be determined by the user at run-time. Kevin and I agreed off list that a user option is probably the correct answer -- allowing one to do it "manually" if they prefer, or make use of the computer's algorithm either because it works faster, or to "see what it gives." : I can see the vendor of a CAS arguing the case : "I could spend hours trying to find a simpler form for : the input each time you call solve, so I'm leaving it : up to you". But this is not a useful perspective : for a user. This is not useful for *some* users. If the developer chose as a default a simplification that was not appropriate for the users given problem, then he would probably prefer that they had left it alone. Again, a selectable option is probably the correct answer. : How much simplification should be done on f[BigHairyMess]? : It has been known since 1968 or so (Dan Richardson's dissertation) : that building a general algorithm to test if an expression : is 0 or not, cannot be done. (The class of expressions is : not very complicated... far simpler than what Mathematica knows about.. If I read that correctly, it justifies further research in Symbolic Computation. There are many ways to do things, and the trick is in optimally choosing the correct one. Best, Phil Mendelsohn