MathGroup Archive 2002

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

Search the Archive

Re: Gross Bug in Simplify


Mathematica is a bit stupid because it can't read your mind.
Hopefully future versions will improve this deficit.

1= f[u]^0  and f[u]=f[u]^1

But your rule 

f[u__]^v_ ^:= f[u]

say f[u]^0 is f[u]. and 

1-f[u] -> f[u]^0 -f[u] -> f[u]-f[u] ->0

Mathematica make *exactly* what you say, but
it make not what you *mean*  

In[]:= f[u__]^v_ ^:= f[u] /; v>1

If you formulate the rule correct 

In[]:= Simplify[f[4] - 1]

In[]:=Simplify[{1 - f[4], 1 - 7 f[4]^2, 1 + f[4], 1 - x f[4]}]
Out[]={1 - f[4], 1 - 7 f[4], 1 + f[4], 1 - x f[4]}

> There is a destructive bug in Mathematica (v4.1, win2000) in which Simplify
> misparses expressions m + n f[__], where m and n are numeric,  as (m+n)
> f[__].  One can only wonder how many other rule combinations, with or
> without Simplify, are also faulty.

A programming system is never protected against the errors of its

>   The following example is a stripped-down version of some rules for f =
> Kronecker delta, which explains why the upvalue rule is needed.  It is
> specifically this rule that seems to be causing the problem with Simplify.
> However, it's not the upvalue itself -- the problem remains if Power is
> Unprotected and the rule is replaced by Power[f[u__], v_] :> f[u].
> In[1]:=
> Clear[f];
> Simplify[1-f[4]]
> f[u__]^v_ ^:= f[u];
> Simplify[{1-f[4], 1 - 7 f[4], 1 + f[4],  1 - x f[4]}]
> Out[2]=
> 1-f[4]
> Out[4]=
> {0,-6 f[4],2 f[4],1-x f[4]}
> Doesn't WRI test all its built-in functions by running special diagnostic
> code on them round the clock?  It's hard to imagine how a bug like this
> could have gone undetected!

WRI tests Mathematica and Mathematica is right here.


  • Prev by Date: FindMinimum within a specific interval
  • Next by Date: Re: Gross Bug in Simplify
  • Previous by thread: Re: Gross Bug in Simplify
  • Next by thread: Re: Gross Bug in Simplify