Path: csiph.com!x330-a1.tempe.blueboxinc.net!feeder3.hal-mli.net!nx02.iad01.newshosting.com!newshosting.com!novia!news-out.readnews.com!news-xxxfer.readnews.com!newspump.sol.net!post2.nntp.sol.net!posts.news.twtelecom.net!nnrp3.twtelecom.net!not-for-mail From: Bob Hanlon Newsgroups: comp.soft-sys.math.mathematica Subject: Re: Why doesn't TrueQ return True here? Date: Tue, 21 Jun 2011 11:18:13 +0000 (UTC) Organization: Steven M. Christensen and Associates, Inc and MathTensor, Inc. Sender: steve@smc.vnet.net Approved: Steven M. Christensen , Moderator Message-ID: Reply-To: hanlonr@cox.net Lines: 125 NNTP-Posting-Date: 21 Jun 2011 10:19:37 GMT NNTP-Posting-Host: f31962bc.news.twtelecom.net X-Trace: DXC=MSSYZ3gi;UFKDb82jEOAVKC_A=>8kQj6M=_1NR_H?JPM:XUMBi^ZO?GEFiONJ7[GoFIj=iPnKRlVK X-Complaints-To: abuse@twtelecom.net Xref: x330-a1.tempe.blueboxinc.net comp.soft-sys.math.mathematica:3220 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 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 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 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