Re: Equality question
- To: mathgroup at smc.vnet.net
- Subject: [mg29541] Re: [mg29539] Equality question
- From: Andrzej Kozlowski <andrzej at tuins.ac.jp>
- Date: Sun, 24 Jun 2001 02:00:56 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
on 6/23/01 2:47 PM, gleam at flashmail.com at gleam at flashmail.com wrote:
> Hi, I'm new to this mailing list, and rather new to Mathematica.
>
> Why doesn't Mathematica 4.1 yield True for this expression:
>
> TrueQ[(n - 1)^2 + n == n^2 - n + 1]
>
>
>
The way to check if such an expression is True or False is:
In[5]:=
Simplify[(n - 1)^2 + n == n^2 - n + 1]
Out[5]=
True
The Predicate TrueQ is not meant for such purposes.It does not in itself
invoke any simplifications because if it did it would be inconvenient to use
it programs where you want the expression TrueQ[x] to remain unevaluated.
Also for programming reasons all Mathematica predicates which do not return
True return False (even though that might look like a false answer!). In the
case of very simple expresion Mathematica will perform simplifications
without the use of Simplify, and in such cases applying TrueQ will yield
True because in any case the result of the evaluation was True before TrueQ
was applied, e.g:
In[8]:=
TrueQ[n + 1 + 1 == n + 2]
Out[8]=
True
because
In[9]:=
n + 1 + 1 == n + 2
Out[9]=
True
On the other hand in your case:
In[10]:=
(n - 1)^2 + n == n^2 - n + 1
Out[10]=
2 2
(-1 + n) + n == 1 - n + n
Mathematica does not simplify this expression (without applying Simplify),
so TrueQ, which must return True or False has to return False. It does look
strange, but that is because Mathematica's predicates are not meant to serve
the purpose of "answering a question", which beginners sometimes assume them
to be for
e.g.
In[14]:=
IntegerQ[(1 + Sqrt[2])^2 - 1 - 2*Sqrt[2]]
Out[14]=
False
but are intended for writing fucntions of the kind
If[IntegerQ[x], ....]
and so on.
I hope this is clear enough.
--
Andrzej Kozlowski
Toyama International University
JAPAN
http://platon.c.u-tokyo.ac.jp/andrzej/
http://sigma.tuins.ac.jp/~andrzej/