Inconsistent Outputs Using MuPAD "assume" Command

1 view (last 30 days)
Why does the following MuPAD code generate the "UNKNOWN" outputs shown? I should be getting "FALSE" outputs instead.
delete x: delete a: delete b: delete c:
assume(a>0); assumeAlso(0<c<1): assumeAlso((a*(1-c))<x<(a*(1+c))):
is((a*(1-c))>0);
is(x>(a*(1-c)));
delete x: delete a: delete b: delete c:
assume(a>0); assumeAlso(0<c<1): assumeAlso((a*(1-c))<x<(a*(1+c))):
is((a*(1-c))<0);
is(x<(a*(1-c)));
TRUE
TRUE
UNKNOWN
UNKNOWN

Answers (1)

Walter Roberson
Walter Roberson on 23 Mar 2014
if is((a*(1-c))>0) is TRUE then why would is((a*(1-c))<0) be TRUE ? The first expression is the same but the comparison is opposite so they are disjunctions. If one is TRUE then the other should be FALSE.
  2 Comments
Amr
Amr on 23 Mar 2014
Of course, it should give me FALSE. My mistake. I corrected the question. Still though, why is MuPAD giving me UNKNOWN?
Walter Roberson
Walter Roberson on 23 Mar 2014
I don't know at the moment. Try reversing the order of the subsections. If it is the first subsection that works, then you need to use a "syms clear" not just a "clear"; see http://www.mathworks.com/help/symbolic/clear-assumptions-and-reset-the-symbolic-engine.html

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!