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