I try (in Mathematica 10)
FullSimplify[l >= l1 + l2, {l <= l1 + l2, Element[l | l1 | l2, Integers]}]
But that gives back
l >= l1 + l2
Whereas I expected
l == l1 + l2
However, (as stated in the comments)
FullSimplify[l >= l1 + l2 && l <= l1 + l2]
yields
l == l1 + l2
Superficially these two variants (inequality as assumption, or as equation) look equivalent. What is the technical difference between the two?
To counter the claim that my question is easily answered with the documentation or that it is a simple mistake, the documentation for FullSimplify reads
Assumptions can consist of equations, inequalities, domain specifications such as x[Element]Integers, and logical combinations of these.
which led me to believe my initial attempt should be equivalent to the solution given in the comments.
FullSimplify[l >= l1 + l2 && l <= l1 + l2]
$\endgroup$Reduce[{l >= l1 + l2, l <= l1 + l2}, l]
... $\endgroup$l == l1 + l2
is simpler thanl >= l1 + l2 && l <= l1 + l2
but not simpler thanl >= l1 + l2
(as measured bySimplify`SimplifyCount[expr]
). Note: aSimplifyCount
function is given in the docs forComplexityFunction
. See also (26172). $\endgroup$TransformationFunctions
that will transforml >= l1 + l2.
under the assumptionl <= l1 + l2
. (AFAIR, I couldn't find one a couple of days ago. I should have though ciao's first comment would be tried internally. Maybe it is, but a customComplexityFunction
that prefers==
to>=
didn't work.) $\endgroup$