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
    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
    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$ 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$ 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
    Oct 14, 2016 at 2:14

Your Answer

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

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