Re: A harmless and amusing bug

*To*: mathgroup at smc.vnet.net*Subject*: [mg76322] Re: [mg76215] A harmless and amusing bug*From*: "Chris Chiasson" <chris at chiasson.name>*Date*: Sat, 19 May 2007 04:51:22 -0400 (EDT)*References*: <200705181002.GAA12592@smc.vnet.net>

This is an evaluation control problem. Check the FullForm. You will see that one of the fractions in z has not been evaluated (to Rational) due to the HoldAll Attribute of Function. The reason that your check of the first level of each expression matched was that the check wasn't evaluation leak-proof. On 5/18/07, Fred Simons <f.h.simons at tue.nl> wrote: > I found this example in a very old notebook of mine and I do not > remember if this has already been discussed in this group. > > The following seems to be a harmless and amusing bug. It happens both in > Mathematica 5 and in Mathematica 6 under Windows. > > Execute the following command: > > y = x /. DSolve[x''[t]+ 2 x'[t]+ x[t]==Sin[t], x, t][[1]] > > Copy the result, paste it in the following command and execute. > > z =pasted result > > Obviously, y equals z. However, > > SameQ[y,z] --> False > > So here we have an example of two different Mathematica expressions with > the property that on level 1 all subexpressions are equal: > > And @@ Table[y[[i]] === z[[i]], {i, 0,2}] --> True > > It also is an example of two different expressions that convert to the > same string: > > Equal[ToString /@ {y,z}] --> True > > The expression y has more leaves than can be found at level -1, and > anyway less than the number of leaves of the expression z: > > {LeafCount[#], Length[Level[#, {-1}, Heads->True]]}& /@ {y,z} --> > {{27,25},{29,29}} > > Fred Simons > Eindhoven University of Technology > > -- http://chris.chiasson.name/

**References**:**A harmless and amusing bug***From:*Fred Simons <f.h.simons@tue.nl>