3
$\begingroup$

I have an pair of inequalities joined by Or that I can't get Simplify or FullSimplify to simplify:

Simplify[x > y || x > y + z, Assumptions -> {x > 0, y > 0, z > 0}]
(* x > y || x > y + z *)

when I expected

(* x > y *)

since x > y + z seems to imply x > y when z > 0.

Any ideas on how to get this result? (unless I'm making a boneheaded logical error myself :)

$\endgroup$
2
  • $\begingroup$ Perhaps, you should advise Wolfram, Inc of this problem. $\endgroup$
    – bbgodfrey
    Commented Oct 14, 2016 at 19:27
  • $\begingroup$ I hadn't considered it an actual bug, but that may be worth a shot. $\endgroup$
    – Chris K
    Commented Oct 14, 2016 at 20:45

1 Answer 1

2
$\begingroup$

Use Reduce instead.

Reduce[(x > y || x > y + z) && x > 0 && y > 0 && z > 0] 
(* y > 0 && x > y && z > 0 *)

Edit: As suggested by Julien Kluge, using Refine as well produces a cleaner answer.

Refine[Reduce[(x > y || x > y + z), (x | y | z) ∈ Reals] , x > 0 && y > 0 && z > 0]
(* y < x *)
$\endgroup$
3
  • $\begingroup$ This could be further shortened if we use Refine with the same Assumptions as above. $\endgroup$ Commented Oct 13, 2016 at 21:26
  • 2
    $\begingroup$ No no. Reduce is nessecary. Refine would only be useful to shorten your output to the expected x>y. $\endgroup$ Commented Oct 13, 2016 at 21:32
  • $\begingroup$ Both of these functions are unfamiliar to me, so thanks! Unfortunately I won't know what the variables are in my application, so Reduce isn't so great for that application. $\endgroup$
    – Chris K
    Commented Oct 14, 2016 at 2:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.