MathGroup Archive 2000

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: A strange bug in Solve

  • To: mathgroup at
  • Subject: [mg24537] Re: [mg24354] A strange bug in Solve
  • From: Richard Fateman <fateman at>
  • Date: Mon, 24 Jul 2000 03:04:15 -0400 (EDT)
  • Organization: University of California, Berkeley
  • References: <8kjccd$> <ZU0d5.917$> <8l3fgt$>
  • Sender: owner-wri-mathgroup at

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..

Philip C Mendelsohn wrote:
> Kevin J. McCann (kevinmccann at 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

  • Prev by Date: Re: Mathematica 3.0: reliability close to LogZero?
  • Next by Date: HairyPooter IV.75 cont.
  • Previous by thread: Re: A strange bug in Solve
  • Next by thread: Re: A strange bug in Solve