# Hidden limitation of Assumptions (Is $x^2 < 0$ contradictory)?

Is there a limitation of Assuming that I am not aware of? I would like to assume that the square of a number is negative:

Assuming[x^2 < 0, Simplify[Sqrt[x^2]]]


x

Why is $Assumptions generating a message that x^2 < 0 is a contradictory assumption? • A more minimal example is $Assumptions = x^2 < 0 Commented Nov 23, 2018 at 20:00
• Compare with Reduce[x^2 < 0, x] --> False and the statement in the documentation that "Reduce assumes by default that quantities appearing algebraically in inequalities are real, while all other quantities are complex." The assumption can be overridden. Reduce[x^2 < 0, x, Complexes] Commented Nov 23, 2018 at 20:02

The Assumptions documentation states that

Quantities that appear algebraically in inequalities are always assumed to be real.

Thus in x^2 < 0 the variable x is assumed to be real. That is why the assumption is contradictory.

A shorter example is

$Assumptions = x^2 < 0 During evaluation of$Assumptions::cas: Warning: contradictory assumption(s) x^2<0 encountered.

(* x^2 < 0 *)


Other functions, such as Reduce, also make similar automatic assumptions. This is also documented for Reduce.

Reduce[x^2 < 0, x]
(* False *)


However, with Reduce, it is possible to override this automatic assumption.

Reduce[x^2 < 0, x, Complexes]
(* Re[x] == 0 && (Im[x] < 0 || Im[x] > 0) *)


I do not know if this is possible with Assumptions.

• Couldn't you use the output of your last Reduce for $Assumptions? Or one could use x^2 \[Element] Reals && Re[x^2] < 0 (the Re seems to keep $Assumptions from complaining). Commented Nov 23, 2018 at 20:22
• @MichaelE2 It sounds like a good idea. It's just that Sqrt[x^2] can't be simplified to x correctly with these assumptions, e.g. (-I)^2 == I^2 == -1. Commented Nov 23, 2018 at 21:10
• If you add the assumption Im[x] > 0 (resp. Im[x] < 0), then Simplify will return x (resp. -x). It's not clear to me that getting x is the desired outcome, though. Commented Nov 23, 2018 at 21:31