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]]]

enter image description here


Why is $Assumptions generating a message that x^2 < 0 is a contradictory assumption?

  • $\begingroup$ A more minimal example is $Assumptions = x^2 < 0 $\endgroup$
    – Szabolcs
    Commented Nov 23, 2018 at 20:00
  • $\begingroup$ 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] $\endgroup$
    – Szabolcs
    Commented Nov 23, 2018 at 20:02

1 Answer 1


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.

  • 1
    $\begingroup$ 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). $\endgroup$
    – Michael E2
    Commented Nov 23, 2018 at 20:22
  • $\begingroup$ @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. $\endgroup$
    – Szabolcs
    Commented Nov 23, 2018 at 21:10
  • $\begingroup$ 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. $\endgroup$
    – Michael E2
    Commented Nov 23, 2018 at 21:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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