I suspect Reduce
treats the second argument as a variable. For instance:
Reduce[2 Reals == 1, Reals]
(* Reals == 1/2 *)
So I'm not sure there's anything wrong with
Reduce[Abs[x-3] < 4, Reals]
(* Reduce[Abs[x-3] < 4, Reals] *)
However, from the docs ("Details"):
Reduce[expr,vars,dom]
restricts all variables and parameters to belong to the domain dom
.
...
Algebraic variables in expr
free of the Subscript[x, i]
and of each other are treated as independent parameters.
I think this means that in Reduce[Abs[x-3]<4, {}, Reals]
, the x
is not treated as a variable (to be solved for) but as a parameter, assumed to be real. Yet it still does not solve the inequality:
Reduce[Abs[x-3]<4, {}, Reals]
(* Abs[x-3]<4 *)
If you put the constraint in directly, you get the sought-after result:
Reduce[Abs[x - 3] < 4 && x \[Element] Reals, {}, Reals]
(* 1 < x < 7 *)
I would expect to get the same thing for Reduce[Abs[x-3]<4, {}, Reals]
, since x \[Element] Reals
is supposed to be assumed.
It may be a bug and should be reported to WRI. See if they have an explanation.
Reduce[RealAbs[x - 3] < 4]
. $\endgroup$