Re: A harmless and amusing bug

*To*: mathgroup at smc.vnet.net*Subject*: [mg76314] Re: A harmless and amusing bug*From*: Ray Koopman <koopman at sfu.ca>*Date*: Sat, 19 May 2007 04:47:12 -0400 (EDT)*References*: <f2jtne$cef$1@smc.vnet.net>

On May 18, 3:04 am, Fred Simons <f.h.sim... 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 In[7]:= FullForm[y] Out[7]//FullForm= Function[List[t], Plus[Times[Power[E,Times[-1,t]],C[1]], Times[Power[E,Times[-1,t]],t,C[2]], Times[Rational[-1,2],Cos[t]]]] In[8]:= FullForm[z] Out[8]//FullForm= Function[List[t], Plus[Times[Power[E,Times[-1,t]],C[1]], Times[Power[E,Times[-1,t]],t,C[2]], Times[-1,Times[Cos[t],Power[2,-1]]]]]