Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2011

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Why doesn't TrueQ return True here?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg119763] Re: Why doesn't TrueQ return True here?
  • From: Bob Hanlon <hanlonr at cox.net>
  • Date: Tue, 21 Jun 2011 05:51:59 -0400 (EDT)
  • Reply-to: hanlonr at cox.net

If t is real then t^2 is nonnegative and the Sqrt is always real. Since the Sqrt of a nonnegative number is always nonnegative, it is not always equal to t but is always equal to Abs[t]. For t>0 then Abs[t] = t

Sqrt[#^2] & /@ {-3, 3}

{3, 3}

Simplify[Sqrt[t^2], #] & /@ {True, Element[t, Reals], t >= 0, 
  t > 0, ! t < 0}

{Sqrt[t^2], Abs[t], t, t, t}


Bob Hanlon

---- Jacare Omoplata <walkeystalkey at gmail.com> wrote: 

=============
Thanks for the answers. I'll use Simplify in the future. I also
learned that TrueQ is just used to force a True or False answer out.
It gives True when the answer is explicitly true, and gives False in
all other instances. I guess this is useful in programming.

So, if I wanted Mathematica to work on t1 and t2 like real numbers I
should use "$Assumptions = Element[{t1,t2},Reals]" ?

It does SOMETHING, according to the following output, because Out[3],
where I've used t1 and t2, is different from Out[4], where I've used
the undeclared variables s1 and s2.

But it still doesn't give t2-t1 as the answer, but gives Abs[t1-t2]
instead. But I get t2-t1 as the answer in Out[6] and Out[7], where I
have declared that t2>t1 beforehand.

-----------output-below-------------

In[1]:= $Assumptions = Element[{t1, t2}, Reals]

Out[1]= (t1 | t2) \[Element] Reals

In[3]:= FullSimplify[Sqrt[(t2 - t1)^2]]

Out[3]= Abs[t1 - t2]

In[4]:= FullSimplify[Sqrt[(s2 - s1)^2]]

Out[4]= Sqrt[(s1 - s2)^2]

In[5]:= $Assumptions = t2 > t1

Out[5]= t2 > t1

In[6]:= FullSimplify[Sqrt[(t2 - t1)^2]]

Out[6]= -t1 + t2

In[7]:= FullSimplify[Sqrt[(t1 - t2)^2]]

Out[7]= -t1 + t2

In[10]:= $Assumptions = Element[{t1, t2}, Complexes]

Out[10]= (t1 | t2) \[Element] Complexes

In[11]:= FullSimplify[Sqrt[(t2 - t1)^2]]

Out[11]= Sqrt[(t1 - t2)^2]

In[12]:= FullSimplify[Sqrt[(s2 - s1)^2]]

Out[12]= Sqrt[(s1 - s2)^2]


On Jun 20, 8:05 am, Bob Hanlon <hanl... at cox.net> wrote:
> ??$Assumptions
>
> $Assumptions is the default setting for the Assumptions option used in such functions as Simplify, Refine and Integrate.  >>
>
> $Assumptions=True
>
> TrueQ is not one of the functions that makes use of $Assumptions.
>
> $Assumptions = t2 > t1;
>
> Simplify[(t2 - t1) > 0]
>
> True
>
> TrueQ[Simplify[(t2 - t1) > 0]]
>
> True
>
> Bob Hanlon
>
> ---- Jacare Omoplata <walkeystal... at gmail.com> wrote:
>
> =============
> Here's the output.
> -------------------------------------------------------
> In[29]:= Element[{t1, t2}, Reals]
>
> Out[29]= (t1 | t2) \[Element] Reals
>
> In[30]:= $Assumptions = t2 > t1
>
> Out[30]= t2 > t1
>
> In[31]:= TrueQ[(t2 - t1) > 0]
>
> Out[31]= False
> ------------------------------------------------------
>
> I would expect TrueQ to return True, not False. Why does it return False?
>
> And how can I test whether t2-t1 is positive?
>
> Thanks.



--

Bob Hanlon



  • Prev by Date: Re: Why doesn't TrueQ return True here?
  • Next by Date: Re: Why doesn't TrueQ return True here?
  • Previous by thread: Re: Why doesn't TrueQ return True here?
  • Next by thread: Re: Why doesn't TrueQ return True here?