Re: A strange bug in Solve

*To*: mathgroup at smc.vnet.net*Subject*: [mg24537] Re: [mg24354] A strange bug in Solve*From*: Richard Fateman <fateman at cs.berkeley.edu>*Date*: Mon, 24 Jul 2000 03:04:15 -0400 (EDT)*Organization*: University of California, Berkeley*References*: <8kjccd$dov@smc.vnet.net> <ZU0d5.917$f6.240494@ralph.vnet.net> <8l3fgt$kvk@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

I agree with Kevin, disagree mostly with Philip: 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. 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. 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. As for what the right form of input is for "functions" (by which I assume PCM means computer algebra system commands) some of them routinely convert everything to (say) an expanded polynomial, on which the command is guaranteed to work, subject to decidability issues. Decidability makes almost anything a CAS might attempt to do, theoretically impossible. e.g. consider f[x_]:= If [x==0, Good, Bad] 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.. RJF Philip C Mendelsohn wrote: > > Kevin J. McCann (kevinmccann at Home.com) wrote: > : While using Simplify is all well and good, its use presupposes that you know > : what the answer is or that there is an answer. I have often seen posts on > : similar types of problems which suggest that if you just do this, this, and > : this to your problem then Mathematica will find the answer. This is NOT > : satisfactory. If Mathematica needs to simplify the input before it executes Solve, > : then it should do it. One should not be expected to know the answer before > : asking Mathematica for it. > > I would respectfully submit that one should reasonably be expected to > know something *about* the answer before giving it to M. > > It would be too flippant to suggest that the extrapolation of your > assertion is that M should be able to "do what one means, not what one > types." > > It is probably reasonable to program a routine to trap Solve errors and > try again using other algorithms, or other forms of the input, but M > does that to varying degrees already, if I understand things correctly. > > It is almost trivial to try again after Simplifying (or massaging in > a large number of ways,) and the number of input conditions so vast that > I suspect this is a conscious design choice: to let it be implemented > by the user as they see fit. > > I, for one, would be interested in any algorithm you or anyone else comes > up with for deciding on the appropriate form of input to different functions. > > Cheers, > > Phil Mendelsohn > > -- > Lottery: a tax on people who are bad at math