1
$\begingroup$

I've been trying to understand why FullSimplify is giving a condition that is implied by the assumptions (otherwise the set is empty). However, I couldn't understand why:

Clear["Global`*"]
l[v_] := v;
q[\[Beta]_, v_] := (\[Beta] - n*c) /(1 + (l[v] + n^2)*c);
Assuming[a > 0 && \[Beta] > 0 && c > 0 && v > 0 && n > 0 && 
  c < (\[Beta]*n - 1)/(l[v] + n^2*(a + 1)), 
 FullSimplify@Reduce[D[q[\[Beta], v], v] < 0]]

It yields:

c n < \[Beta]

The inequality is reversed if I reverse the inequality in the derivative, when I'd expect (reply to comment below explains why):

False

Any ideas about what could possibly be the problem?

$\endgroup$
5
  • $\begingroup$ Why do you expect it to return False in the later case? As far as I can tell, it is producing the right inequality. The denominator you have (once the partial derivative is evaluated) is a square of a real number (ie. it's positive), which then leads the inequality for the numerator that you're seeing. $\endgroup$ – ConservedCharge May 10 at 7:05
  • $\begingroup$ $\beta - nc>\beta- \frac{n(\beta n - 1)}{l(v) + n^2(a + 1)} $, which is greater than 0 if $\beta[l(v) + n^2(a + 1)]>n(\beta n - 1)\Leftrightarrow \beta l(v) + \beta n^2 a+n>0$. Right? $\endgroup$ – capadocia May 10 at 8:19
  • $\begingroup$ That's correct, but it appears as if the assumptions aren't . Notice (after removing only the FullSimplify@ part) that we're still seeing results that are not restricted by the specified assumptions. For example, we still get a $n < 0$ case in the results. I would also be curious to see what the proper way to impose the constraints in this situation is. As it is, it seems to be doing something like Simplify[Sign[\!\( \*SubscriptBox[\(\[PartialD]\), \(v\)]\(q[\[Beta], v]\)\)], a > 0 && \[Beta] > 0 && c > 0 && v > 0 && n > 0] $\endgroup$ – ConservedCharge May 10 at 18:55
  • 1
    $\begingroup$ Assumptions is not an option for Reduce and FullSimplify is a way to incorporate them. Omitting FullSimplify will cause the assumptions to be ignored (mathematica.stackexchange.com/questions/179820/…). It works, but in my case it didn't. I just figured out the reason. The maximum number of non-linear variables is set to 4 by default. Thus I had to increase it (mathematica.stackexchange.com/questions/245199/…) $\endgroup$ – capadocia May 10 at 20:29
  • $\begingroup$ Nice; perhaps you can answer your own question in that case. $\endgroup$ – ConservedCharge May 10 at 21:23
3
$\begingroup$

Not really a solution of my own but, for sake of completeness I'll reproduce here with due credit.

As explained here, the problem is caused by exceeding the number of non-linear variables. By expanding it, we'd get the expected result:

Clear["Global`*"]
SetSystemOptions["SimplificationOptions" -> {"AssumptionsMaxNonlinearVariables" ->  10}];
l[v_] := v;
q[\[Beta]_, v_] := (\[Beta] - n*c) /(1 + (l[v] + n^2)*c);
Assuming[a > 0 && \[Beta] > 0 && c > 0 && v > 0 && n > 0 && 
  c < (\[Beta]*n - 1)/(l[v] + n^2*(a + 1)), 
 FullSimplify@Reduce[D[q[\[Beta], v], v] > 0]]

It yields:

False
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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