Re: seruous solve bug? only when used with simplifying

*To*: mathgroup at smc.vnet.net*Subject*: [mg48672] Re: [mg48634] seruous solve bug? only when used with simplifying*From*: Andrzej Kozlowski <akoz at mimuw.edu.pl>*Date*: Thu, 10 Jun 2004 02:43:09 -0400 (EDT)*References*: <200406090816.EAA15571@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

On 9 Jun 2004, at 17:16, sean kim wrote: > hello group, > > i think i have a serious Solve[], Simplify[], FullSimplify[] bug... > > > Take a system of equations as below. (apb is actually (a+b). i defined > it as apb to keep Mathematica crunching away at it) > > sys = > {c1[t] == (c*(16*a^4 + 8*a^3*kd + 4*a^2*apb*kd + 2*a*apb^2*kd + > apb^3*kd))/(apb^4*kd), > c2[t] == (2*(8*a^3 + 4*a^2*apb + 2*a*apb^2 + apb^3)*b*c)/(apb^4*d), > c3[t] == (2*(8*a^3 + 4*a^2*apb + 2*a*apb^2 + apb^3)*b*c)/(apb^4*kd)} > > sys1 = sys /.{apb -> (a + b)} > sys2 = sys/.{apb -> (a + b)}//Simplify > sys3 = sys/.{apb -> (a + b)}//FullSimplify > > and then use > > TrueQ[sys1 == sys1] > TrueQ[sys1 == sys2] > TrueQ[sys1 == sys3] > TrueQ[sys2 == sys3] > > then it gives, > > Out[18]=True > Out[19]=False > Out[20]=False > Out[21]=False > > Simplify and FullSimplify changed the system so much that they are not > equal? > > Basically, unless I define the (a+b) as a single constant apb, the > Mathematica > will do soemthing with it then it messes it up. I think... > > Why is this happening? and how do i prevent it from happening again > with other more obsucre systems? Above I got lucky in finding the > cause (a+b) > > thanks in advance for any and all comments. > > Sean > > There is no bug here at all, just that TrueQ is not for that purpose! For example: TrueQ[(a+b)^2==a^2+2 a b + b^2] False Now think about that, if TrueQ did what you think it does that would be some bug! TrueQ is not meant to check if something is true or not, it is used to "force" Mathematica to give an answer True or Flase in all cases, even when Mathematica does not know what the answer is. If you just evaluate (a + b)^2 == a^2 + 2*a*b + b^2 Mathematica will return the same thing as output (a + b)^2 == a^2 + 2*b*a + b^2 since does not perform the necessary simplifications to decide if both sides are equal. If you now use TrueQ you will force it to give a True or False answer without any additional simplifications and it will of course return False. On the other hand Simplify[%] True without nay need for TrueQ. Anyway, to summarise: TrueQ is basically used for programming and not for the purpose you have intended. No serious bug or even a very unserious one. Andrzej Kozlowski Chiba, Japan http://www.mimuw.edu.pl/~akoz/

**References**:**seruous solve bug? only when used with simplifying***From:*sean_incali@yahoo.com (sean kim)