I need to find the conditions for the real part of a complex number to be negative. I thought Reduce would be perfect for this, but it gives redundant output (even after simplification). For example:
In[543]: Reduce[{Re[-1 - Sqrt[a - b] ] < 0, a > 0, b > 0}, {a, b}, Complexes]
Out[543]: a > 0 && (0 < b < a || b >= a)
As a and b are assumed to be real because they appear in an inequality, there needs to be no further assumption about the relation between a and b, the result I expect is:
Out[543]: a > 0 && b > 0
is there a good reason why that is not obtained? The (in my eyes) redundant results accumulate for more complex expressions and I need to reduce quite a few of them. Is there a trick to get the expected result? I played around with choosing Reals as the domain and choosing no Domain at all, but nothing really gives me what I want. By the way I am analyzing the stability of fixed points by checking eigenvalues...a very common task.
I don't know why Mathematica won't return the result you are expecting in one step, but here's how to obtain it in two steps:
Generally, the two functions that can deal with inequalities in a general way are
Reduce
andLogicalExpand
. (But my knowledge is very limited in this area!) I believe(Full)Simplify
will only use the latter one.A comment on setting domains in
Reduce
:Note that the documentation says: "If dom is Reals, or a subset such as Integers or Rationals, then all constants and function values are also restricted to be real." Hence if you were to specify the domain as
Reals
as in @belisarius's answer,Reduce
would return0 < b <= a
which is necessary forSqrt[a-b]
to be real as well.