Re: Problems with easy simplifications

*To*: mathgroup at smc.vnet.net*Subject*: [mg54175] Re: [mg54143] Problems with easy simplifications*From*: Chris Chiasson <chris.chiasson at gmail.com>*Date*: Sat, 12 Feb 2005 01:58:04 -0500 (EST)*References*: <200502110834.DAA09274@smc.vnet.net>*Reply-to*: Chris Chiasson <chris.chiasson at gmail.com>*Sender*: owner-wri-mathgroup at wolfram.com

The problem is that there is a type of hold on the function that isn't showing itself. I found it when I checked the attributes of the If command. The following commands do what you want globally, but I haven't been able to selectively mute the HoldRest. H[x_, a_, b_] = If[x < a, a + b, a - b] If[x < a, a + b, a - b] Attributes[If] {HoldRest, Protected} Unprotect[If] {If} ClearAttributes[If, HoldRest] H[x, 0, 0] If[x < 0, 0, 0] On Fri, 11 Feb 2005 03:34:47 -0500 (EST), Antonio González <gonferh2o at esi.us.es> wrote: > I have found some weird behaviors of Mathematica (5.0) related to the > simplifications of easy expressions. > > Take, for instance the function > > H[x_, a_, b_] = If[x < a, a + b, a - b] > > If I try now to evaluate > > H[x,0,0] > > the result > > If[x < 0, 0 + 0, 0 - 0] > > (the values of a and b are irrelevat, a similar result is obtained, for > instance, with a=1, b= 2, or any integer, real or complex values). I > cannot force (at least in a simple way) Mathematica to make the addition > or the substraction. The action of Simplify or FullSimplify leaves the > expression unchanged while a Map of Simplify > > MapAll[Simplify, H[x, 0, 0]] > > produces > > If[x < 0, > Simplify[Simplify[0] + Simplify[0]], Simplify[Simplify[ > 0] + Simplify[Simplify[-1] Simplify[0]]]] > > Something even worse happens if a use values already defined. For instance > > c = 0; d = 0; H[x_] = If[x < c, c + d, c - d] > > produces > > If[x < 0, c + d, c - d] > > In this case, the addition is not necessary. > > c = 0; d = 0; H[x_] = If[x < c, c, d] > > leads to > > If[x < 0, c, d] > > Similar problems arise using the function Which. > > Any explanation or help with this malfunction would be welcome. > > -- > > Antonio > > (Eliminar el agua para responder por e-mail - Remove water to reply by > e-mail) > > -- Chris Chiasson Kettering University Mechanical Engineering Graduate Student 1 810 265 3161

**References**:**Problems with easy simplifications***From:*Antonio González <gonferh2o@esi.us.es>