Simplify
is at root an expression tree minimizer, equipped with some algebraic and logical transformations. As such, it may have the transformations needed to reach your goal, but its main goal is to apply transformations that result in smaller expression trees. It is also possible that it may not try the transformation needed to get to your goal. Functions whose purpose is to solve algebraic systems, such as Reduce
, are generally more robust. They tend not to mind if all the cases to consider get quite complicated. Whereas Simplify
is like a first-year university student who feels it's time to give up when things get complicated, Reduce
is like a graduate student determined to impress their professor.
Expre10 = (B^2/C + 2 B + B^2/D + (B C)/D + (B D)/C) +
1 (C + D) - (A β σ)/(B C D) (C + D) /. C -> c /.
D -> d;
Assuming[{A > 0, B > 0, c > 0,
d > 0, β > 0, σ > 0,
(A β σ)/(B c d) <= 1},
Reduce[$Assumptions \[Implies] Expre10 > 0, {}, Reals]]
(* True *)
Specifying the domain Reals
is key here, too.
(X > Y) > 0
. To see why this is wrong, imagine doing(2 > 1) > 0
which returnsTrue > 0
- this is incorrect. Your Expre10 already contains a>
sign and yourSimplify
is adding on this extra> 0
at the end. $\endgroup$C
andD
are protected system symbols. Best practice is to avoid single capital letters for your own variables. Recommended practice is to avoid starting your variable/function names with a captial. See mathematica.stackexchange.com/a/18395/4999, point 4. $\endgroup$