MathGroup Archive 1997

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

Search the Archive

Bug in FullSimplify[] confirmed by Wolfram Research

  • To: mathgroup at
  • Subject: [mg7747] Bug in FullSimplify[] confirmed by Wolfram Research
  • From: "James H. Steiger" <steiger at>
  • Date: Mon, 7 Jul 1997 04:41:20 -0400
  • Sender: owner-wri-mathgroup at

Mathematica's FullSimplify[] function has a bug which causes incorrect
evaluation of expressions whose simplification path involves the 
Beta function and its relatives.

The existence of the bug was verified by Dave Withoff of Wolfram
Research in an email exchange [TS13750].

I discovered the bug while using Mathematica to generate some
results in the Binomial Distribution. A portion of my original letter 
to Wolfram Research, together with the Tech Support response, is shown

Note that the bug can affect results that have no apparent connection
with the Beta function, because such expressions may, upon
simplification, reduce to an expression involving the Beta function.

This demonstrates that FullSimplify is not reliable, and any results 
generated with it should be checked carefully. 

**************** Portions of original correspondence with WRI *****
************ My Note to Wolfram ***********************************
Recently, using Mathematica 3.0, I 
had an experience which struck me as

I began by defining the CDF of the Binomial 
probability distribution in terms 
of Beta and Gamma functions

BinomialCDF[N_, p_, x_] := 
1 - Beta[p, x + 1, N - x] Gamma[N + 1]/(Gamma[x + 1] Gamma[N - x])

Then I try a sample calculation:


1 - 28120950 Beta[7/10, 18, 9]

The numerical answer, given below, agrees with the output of all other 
programs I have tried, including Mathematica. It is correct.
In[3]:= N[%]
Out[3]= 0.372596

Yet, trying Mathematica's FullSimplify[] function produces 
a rather surprising result.

In[4]:= BinomialCDF[26,7/10,17]
Out[4]= 1 - 28120950 Beta[7/10, 18, 9]
In[5]:= FullSimplify[%]
Out[5]= 1

Mathematica's FullSimplify function "simplifies"
Beta[7/10,18,9] to 0, although it clearly is not 0.

Can anybody explain this result? I have been puzzling over it. 
Unless there is some obvious explanation which I cannot grasp
(I am not a mathematician) it would seem to indicate a VERY serious bug. 
Note that, if one substitutes .7 for 7/10, one obtains the correct 
answer! Note also that if one simply changes the 7/10 to 1/2, 
one obtains a correct answer, identical to the one obtained with 
the value .5!!

Out[29]= 1 - 28120950 Beta[1/2, 18, 9]

*********************** Response from WRI

Thank you for taking the time to report this error.  You are correct
in observing that there is an error in the transformation of the
Beta function in FullSimplify.  I was not previously aware of this
error, and have forwarded this example to the people in our development
group so that this can be investigated.

The only currently available workaround is to avoid using FullSimplify
for expressions that contain Beta functions.

We apologize for any difficulties caused by this error.

Dave Withoff
Wolfram Research

Mr. Withoff's suggestion, though helpful, really will not solve the problem,
the user cannot be expected to know how the expression submitted to 
"FullSimplify" will simplify!

For example, try loading 


then see that 


returns the value 0, instead of the correct answer, which is




Unless the user is aware of the connection between the CDF of the
Binomial Distribution and the Beta function, he/she would not know
to avoid using FullSimplify[].

FullSimplify does have an option, ExcludedForms, that can be useful
in solving such problems. 

Of course the question remains, are there other widely used functions
that FullSimplify does not handle properly?

Professor James H. Steiger                  Department of Psychology
(steiger at                      2136 West Mall
Office: 604-822-2706                        University of British Columbia
Fax: 604-822-6923                           Vancouver, B.C., Canada V6T 1Z4

  • Prev by Date: Re: How to define an auto-Collect function (fwd)
  • Next by Date: Re: nested * and ** (rules for commutative quantities)
  • Previous by thread: Re: How to define an auto-Collect function (fwd)
  • Next by thread: 2-D Graphics Options