Gianluca,
I think it's that y
is implicitly real, but x
is probably treated as complex. Specifying the domain Reals
adds one further constraint beyond the variables belonging to the domain: namely, that the function values in the problem and solution must also belong to the domain. I'm not sure what that means practically in the OP's problem, but possibly a different algorithm is used that works better on inequalities. I strongly suspect that the algorithms over the Reals
are distinct from the default ones, even if they overlap to a great extent. What exactly the methods are and how they're related seems to change over time, which is to be expected as it has been an area of active research for some decades now.
Concerning the additional constraint: In the casus irreducibilis, some real roots of a polynomial solvable can be expressed in terms of n-th roots that have complex values and cannot be expressed with roots that have only real values. So for instance, in the following which has three real solutions, we get the result in terms of complex-valued cube and square roots:
Reduce[0 == 2 x^3 - 9 x^2 - 6 x + 3, x, Cubics -> True]
But if I specify the domain Reals
, the option Cubics -> True
is ignored and we get real-valued Root[]
objects:
Reduce[0 == 2 x^3 - 9 x^2 - 6 x + 3, x, Reals, Cubics -> True]
When Mathematica does not have an "out" like Root[]
that is real-valued in the problem, Reduce
fails:
Reduce[2 + Pi == ArcCos[x] + ArcCos[-x] + x, x, Reals] (* --> False *)
Reduce[2 + Pi == ArcCos[x] + ArcCos[-x] + x, x] (* --> x == 2 *)