# How to properly interpret a seemingly contradictory result in Mathematica?

I have a problem with interpreting the results of my notebook outputs. It is important that I do not err with the interpretation.

Here is the full input:

$Assumptions = 0 < a <= 1/2 && 0 <= T < 1 && 0 <= d <= 1 && F > 0 && 0 < r < 1 && c >= 0 && a ∈ Reals && T ∈ Reals && d ∈ Reals && F ∈ Reals && r ∈ Reals && m ∈ Reals && c ∈ Reals && m > c && (-2 c + m - 2 F r)/(1 + d (-1 + r)) >= 0 && T*F < r*F + (1 - r)*d*T*F && m > 2*F; LogicalExpand@ Reduce[(-m - 2*F*r + 2*F*T)/(2*(-1 + r)*(-c + m - F*T)) - ((1/(2*F*(-1 + r)^2))*(m + c*(-1 + r) + F*(-1 + r)^2 - m*r + Sqrt[((-1 + r)^2)*(c^2 + m^2 - 2*c*(F + m) + 2*c*F*r + F*(F - 2*(F + m)*r + F*r^2))])) == 0 &&$Assumptions]
(* False *)

$Assumptions = 0 < a <= 1/2 && 0 <= T < 1 && 0 <= d <= 1 && F > 0 && 0 < r < 1 && c >= 0 && a ∈ Reals && T ∈ Reals && d ∈ Reals && F ∈ Reals && r ∈ Reals && m ∈ Reals && c ∈ Reals && m > c && (-2 c + m - 2 F r)/(1 + d (-1 + r)) >= 0 && T*F < r*F + (1 - r)*d*T*F && m > 2*F; LogicalExpand@ Reduce[(-m - 2*F*r + 2*F*T)/(2*(-1 + r)*(-c + m - F*T)) - ((1/(2*F*(-1 + r)^2))*(m + c*(-1 + r) + F*(-1 + r)^2 - m*r + Sqrt[((-1 + r)^2)*(c^2 + m^2 - 2*c*(F + m) + 2*c*F*r + F*(F - 2*(F + m)*r + F*r^2))])) > 0 &&$Assumptions]
(* False *)

$Assumptions = 0 < a <= 1/2 && 0 <= T < 1 && 0 <= d <= 1 && F > 0 && 0 < r < 1 && c >= 0 && a ∈ Reals && T ∈ Reals && d ∈ Reals && F ∈ Reals && r ∈ Reals && m ∈ Reals && c ∈ Reals && m > c && (-2 c + m - 2 F r)/(1 + d (-1 + r)) >= 0 && T*F < r*F + (1 - r)*d*T*F && m > 2*F; LogicalExpand@ Reduce[(-m - 2*F*r + 2*F*T)/(2*(-1 + r)*(-c + m - F*T)) - ((1/(2*F*(-1 + r)^2))*(m + c*(-1 + r) + F*(-1 + r)^2 - m*r + Sqrt[((-1 + r)^2)*(c^2 + m^2 - 2*c*(F + m) + 2*c*F*r + F*(F - 2*(F + m)*r + F*r^2))])) < 0 &&$Assumptions]
(* (c == 0 && T == r && m > 0 && 0 < a && 0 < d && 0 < F &&
0 < r && F < m/2 && r < 1 && a <= 1/2 && d <= 1) || (c == 0 &&
m > 0 && 0 < a && 0 < F && 0 < r && F < m/2 && r < 1 && r < T &&
T < 1 && (r - T)/(-T + r T) < d && a <= 1/2 && d <= 1) || (c == 0 &&
m > 0 && 0 < a && 0 < F && 0 < r && F < m/2 && r < 1 && T < r &&
0 <= d && 0 <= T && a <= 1/2 && d <= 1) || (T == r && m > 0 &&
0 < a && 0 < c && 0 < d && 0 < F && 0 < r && c < m/2 && r < 1 &&
a <= 1/2 && d <= 1 && F <= 1/2 (-2 c + m)) || (T == r && m > 0 &&
0 < a && 0 < c && 0 < d && 0 < r && c < m/2 && F < m/2 &&
1/2 (-2 c + m) < F && a <= 1/2 && d <= 1 &&
r <= (-2 c + m)/(2 F)) || (m > 0 && 0 < a && 0 < c && 0 < F &&
0 < r && c < m/2 && r < 1 && r < T &&
T < 1 && (r - T)/(-T + r T) < d && a <= 1/2 && d <= 1 &&
F <= 1/2 (-2 c + m)) || (m > 0 && 0 < a && 0 < c && 0 < F &&
0 < r && c < m/2 && r < 1 && T < r && 0 <= d && 0 <= T &&
a <= 1/2 && d <= 1 && F <= 1/2 (-2 c + m)) || (m > 0 && 0 < a &&
0 < c && 0 < r && c < m/2 && F < m/2 && 1/2 (-2 c + m) < F &&
r < T && T < 1 && (r - T)/(-T + r T) < d && a <= 1/2 && d <= 1 &&
r <= (-2 c + m)/(2 F)) || (m > 0 && 0 < a && 0 < c && 0 < r &&
c < m/2 && F < m/2 && 1/2 (-2 c + m) < F && T < r && 0 <= d &&
0 <= T && a <= 1/2 && d <= 1 && r <= (-2 c + m)/(2 F)) *)


What I need to know is if the researched term is positive, negative or zero. As you can see here, Mathematica tells me that the term is neither positive nor zero (False/False). However, it gives me many combinations of parameter assumptions for which the term gets negative. Why is this? If it is neither positive nor zero for any combinations shouldn't it always be negative? Why does it give me these combinations of assumptions that seem to be necessary. It is important for me to interpret the results correctly.

I always saw it like that: If I put in a term (not that specific term) and wanted to evaluate if it is for example negative, than Mathematica would give me all combinations of parameter assumptions -possible under the frame of my model- for which the term is negative. All possible cases would be departed by the double vertical lines. For this example:

(* (c == 0 && T == r && m > 0 && 0 < a && 0 < d && 0 < F &&
0 < r && F < m/2 && r < 1 && a <= 1/2 && d <= 1) || (c == 0 &&
m > 0 && 0 < a && 0 < F && 0 < r && F < m/2 && r < 1 && r < T &&
T < 1 && (r - T)/(-T + r T) < d && a <= 1/2 && d <= 1) || (c == 0 &&
m > 0 && 0 < a && 0 < F && 0 < r && F < m/2 && r < 1 && T < r &&
0 <= d && 0 <= T && a <= 1/2 && d <= 1) || (T == r && m > 0 &&
0 < a && 0 < c && 0 < d && 0 < F && 0 < r && c < m/2 && r < 1 &&
a <= 1/2 && d <= 1 && F <= 1/2 (-2 c + m)) || (T == r && m > 0 &&
0 < a && 0 < c && 0 < d && 0 < r && c < m/2 && F < m/2 &&
1/2 (-2 c + m) < F && a <= 1/2 && d <= 1 &&
r <= (-2 c + m)/(2 F)) || (m > 0 && 0 < a && 0 < c && 0 < F &&
0 < r && c < m/2 && r < 1 && r < T &&
T < 1 && (r - T)/(-T + r T) < d && a <= 1/2 && d <= 1 &&
F <= 1/2 (-2 c + m)) || (m > 0 && 0 < a && 0 < c && 0 < F &&
0 < r && c < m/2 && r < 1 && T < r && 0 <= d && 0 <= T &&
a <= 1/2 && d <= 1 && F <= 1/2 (-2 c + m)) || (m > 0 && 0 < a &&
0 < c && 0 < r && c < m/2 && F < m/2 && 1/2 (-2 c + m) < F &&
r < T && T < 1 && (r - T)/(-T + r T) < d && a <= 1/2 && d <= 1 &&
r <= (-2 c + m)/(2 F)) || (m > 0 && 0 < a && 0 < c && 0 < r &&
c < m/2 && F < m/2 && 1/2 (-2 c + m) < F && T < r && 0 <= d &&
0 <= T && a <= 1/2 && d <= 1 && r <= (-2 c + m)/(2 F)) *)


would mean that the term is only negative if either the combination of assumptions

(c == 0 && T == r && m > 0 && 0 < a && 0 < d && 0 < F &&
0 < r && F < m/2 && r < 1 && a <= 1/2 && d <= 1)


or the combination

 (c == 0 &&
m > 0 && 0 < a && 0 < F && 0 < r && F < m/2 && r < 1 && r < T &&
T < 1 && (r - T)/(-T + r T) < d && a <= 1/2 && d <= 1)


or the combination

 (c == 0 &&
m > 0 && 0 < a && 0 < F && 0 < r && F < m/2 && r < 1 && T < r &&
0 <= d && 0 <= T && a <= 1/2 && d <= 1)


is fulfilled and so on and so forth. But is not negative when none of all stated combinations is fulfilled. Am I right with how I interpret this output? It is very important for my further research because when I don't interpret that right all my results that base on that are maybe meaningless.

I hope you can help me and I'm very grateful for your help.

• I don´t know either, but it is really a good question :)
– user30399
Jun 24, 2015 at 21:56

My initial response would have been that a number that is not positive or zero, and that is only negative if certain conditions are met, may still be complex if those conditions are not met. In that case it is neither zero nor positive, nor negative.

So, let's see whether we can find an example of a parameter set that makes the last condition false while still adhering to the assumptions:

Quit

assumptions =
0 < a <= 1/2 && 0 <= T < 1 && 0 <= d <= 1 && F > 0 && 0 < r < 1 &&
c >= 0 && a ∈ Reals && T ∈ Reals &&
d ∈ Reals && F ∈ Reals && r ∈ Reals &&
m ∈ Reals && c ∈ Reals &&
m > c && (-2 c + m - 2 F r)/(1 + d (-1 + r)) >= 0 &&
T*F < r*F + (1 - r)*d*T*F && m > 2*F;

condition =
LogicalExpand@
Reduce[(-m - 2*F*r +
2*F*T)/(2*(-1 + r)*(-c + m -
F*T)) - ((1/(2*F*(-1 + r)^2))*(m + c*(-1 + r) +
F*(-1 + r)^2 - m*r +
Sqrt[((-1 + r)^2)*(c^2 + m^2 - 2*c*(F + m) + 2*c*F*r +
F*(F - 2*(F + m)*r + F*r^2))])) < 0 && assumptions];

FindInstance[(! condition) && assumptions, {c, T, m, a, d, F, r}]
(* {} *)


OK, so it seems that for all variables complying with your assumptions there's not one set to be found that negates the condition.

• When you simplify expression using assumptions you're effectively "getting rid" of those assumptions from expression e.g. Simplify[0 < a < 1, a > 0] (* a < 1 *). In your simp although you added && $Assumptions you simplified it using those global assumptions, so those assumptions are no longer contained in simp. That's why there's nothing strange in the fact that FindInstance[simp, ...] found an instance not fulfilling $Assumptions. Jun 24, 2015 at 15:23
• @jkuczm updated the answer Jun 24, 2015 at 16:04
• First of all, thank you a lot for helping me out in this problem. So if I got you right it means there actually exist no combination of variables for which the term is not negative, meaning it is always negative. So I always just have to check whether FindInstance[(! condition) && assumptions, {c, T, m, a, d, F, r}] (* {} *) holds true and I can be sure? But it is in general right how I interpret the results, like explained by me before? Not that I get it completely wrong. Has anybody an idea why Mahtematica does this? Is it my fault or what is the problem? Jun 24, 2015 at 16:12