Re: Gross Bug in Simplify

• To: mathgroup at smc.vnet.net
• Subject: [mg32653] Re: [mg32585] Gross Bug in Simplify
• From: "Fred Simons" <f.h.simons at tue.nl>
• Date: Fri, 1 Feb 2002 16:10:58 -0500 (EST)
• References: <200201300819.DAA29963@smc.vnet.net>
• Sender: owner-wri-mathgroup at wolfram.com

```During the long time I am using Mathematica I met many bugs, but after some
thinking in most cases I found that it was not a bug in Mathematica but a
bug in understanding. I think the same applies to the Gross Bug in
Simplify. To me it seems to be regular behaviour with respect to a rule that
from a mathematical point of view makes no sense. It has nothing to do with
the indicated pattern matching.

Let us have a closer look at the example. A substitution rule is defined for
expressions with head Power. So when entering expressions such as 2 - f[4]
nothing happens since Power is not involved in the evaluation. But since
Simplify has a curious effect, somewhere during the simplification
expressions with head Power must occur.

We can ask Mathematica to print these cases.

Unprotect[Power]; Power[x___] := Null /; (Print["Power"[x]]; False)

ClearAll[f]; Simplify[ 3 + 4 f[4] ]

results in the printing of

Power[f[4],0]
Power[f[4],1]

So it seems that during simplification Mathematica replaces the integer 1
with f[4]^0 and f[4] itself with f[4]^1.

By defining

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

we allow Mathematica to replace the number 1 with f[4]. It is not
Mathematica that introduces this strange substitution!

Anyway, 3 + 4 f[4] now simplifies along the lines 3*1+4f[4], 3f[4]+4f[4],
7f[4].

That 1-x f[4] does not simplify to (1-x)f[4] is because of the latter
expression is not simpler.

It is an interesting puzzle to explain why 5+f[3]-f[4] now simplifies to
5 f[3] f[4], a product!

Fred Simons
Eindhoven University of Technology

```

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