Ask Your Question

Revision history [back]

Apparently the function solve does not take the assumptions into account.

One thing you can do is to include the assumptions yourself.

Either by hand:

sage: solve([(x^3 - 4*x) > 0, x > 0], x)
[[2 < x]]

Or more automatically.

sage: assume(x > 0)
sage: assumptions()
[x > 0]

sage: A = (x^3 - 4*x) > 0
sage: A
x^3 - 4*x > 0

sage: solve(assumptions() + [A], x)
[[2 < x]]

You could also add your inequality to the assumptions.

sage: assume(x > 0)
sage: assume(x^3 - 4*x > 0)
sage: assumptions()
[x > 0, x^3 - 4*x > 0]
sage: solve(assumptions(), x)
[[2 < x]]