Re: Truth in inequalities
- To: mathgroup at smc.vnet.net
- Subject: [mg29390] Re: [mg29347] Truth in inequalities
- From: Mianlai Zhou <lailai at nikhef.nl>
- Date: Sat, 16 Jun 2001 02:48:01 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
Hi Jack I can explain to you a little bit. In the internal notation of Mathematica, Infinity is converted to DirectedInfinity[1] automatically, while -Infinity is converted to DirectedInfinity[-1] (DirectedInfinity[z] means an infinite quantity which is a positive real multiple of the complex number z). Therefore, it will do the following deduction: x < Infinity (its FullForm is Less[x, Infinity]) gives x < DirectedInfinity[1], which cannot be worked out further, therefore it remains this inequality. x - Infinity < 0 (its FullForm is Less[Plus[x, Times[-1, Infinity]], 0]) gives Less[Plus[x, DirectedInfinity[-1]], 0], and furthermore gives Less[DirectedInfinity[-1], 0], and is worked out as True. The crucial point is, in the latter case here it used the rule that anything plus DirectedInfinity[-1] is DirectedInfinity[-1] (and the same holds with DirectedInfinity[1] too). But there is no simplification for the expression Less[anything, DirectedInfinity[1]]. So exactly this is the difference that should be noticed when you use the condition /;(x<y) or /;(x-y<0), since in the latter form x-y will be worked out first before it is compared to zero. I hope these make the things clearer. Mianlai Zhou Theory Group, NIKHEF Amsterdam On Thu, 14 Jun 2001, Jack Goldberg wrote: > Hi group, > > Can someone explain the logic of the following: > > x < Infinity returns x < Infinity > while > x - Infinity < 0 returns True > > I should mention that I am aware of the fact that x - Infinity simplifies > automatically to -Infinity which is then compared to 0 and found wanting. > The issue I'm raising is why should a CAS that has x-Infinity < 0 return > True not also return True for the x < Infinity? One awkwardness of > having this difference of behavior can be seen in the example, > > MyFunction[x_,y_]/;(x<y) := blah > > and > > MyFunction[x_,y_]/;(x-y<0) := blah > > do not do the same thing when, say, y=Infinity. > > Just curious :-) > > Jack > > >