Re: Truth in inequalities
- To: mathgroup at smc.vnet.net
- Subject: [mg29364] Re: [mg29347] Truth in inequalities
- From: Andrzej Kozlowski <andrzej at tuins.ac.jp>
- Date: Fri, 15 Jun 2001 02:23:35 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
Obviously the only person that can give you an authoritative answer is the person who designed this behaviour. But in my personal opinion this is quite reasonable and, as is common with many apparent "quirks" in Mathematica, the explanation should be sought in programming convenience rather than in logic. I seems to me the expression x<Infinity is likely to appear as a condition (as in your example) where you would not like it to evaluate automatically to -Infinity. On the other hand expressions like a-Infinity are likely to be encountered in other situations, e.g.: In[2]:= Limit[a - x, x -> Infinity] Out[2]= -Infinity I think this is the behaviour that most users would expect. Mathematica often makes tacit assumptions on the basis of the situation in which a certain expression (particularly an ambiguous one) is most likely to be encountered. One should always remember that a mathematical computer program can't behave the way a mathematical paper or book does. In the latter case everything is clearly defined at the start (usually anyway). Thus a symbol like x will in general have a different meaning in a book on group theory and in one on complex analysis. But this is impossible in a multi-context program like Mathematica. Thus when you enter a symbol like x in Mathematica it is immediately ambiguous. It can represent an indeterminate, an element of some algebraic structure or a "complex variable", and in fact lots of "other things" (consider possible values of x like Infinity, -Infinity, ComplexInfinity and so on). Mathematica often has to make certain tacit decisions about the meaning of such expressions (for example, x/x reduces to 1, which is appropriate for an "indeterminate" but not really for the "complex variable" x), and it may decide that the appropriate meaning is different in a different context. Anyway, my answer is, that the two expressions that you are comparing are most likely to appear in different context. But of course as many such issues it is ultimately a matter of design, and whatever design is chosen someone is likely not to like it. -- Andrzej Kozlowski Toyama International University JAPAN http://platon.c.u-tokyo.ac.jp/andrzej/ http://sigma.tuins.ac.jp/~andrzej/ on 01.6.14 3:27 PM, Jack Goldberg at jackgold at math.lsa.umich.edu 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 > > > >