Ask Your Question

Revision history [back]

Note that this is not the problem with assume but with symbolic expression involving more than one comparison operator:

sage: 0 <= x <= 1/2
0 <= x

sage: e = 0 <= x <= 1/2
sage: e.operator()
<built-in function le>
sage: e.operands()
[0, x]

Note the following weird behaviour:

sage: assume(0 <= x)
sage: 0 <= x <= 1/2
x <= (1/2)

This is clearly a bug, thanks for reporting ! See trac ticket 24726

Note that this is actually not the problem with assume but with symbolic expression involving more than one comparison operator:

sage: 0 <= x <= 1/2
0 <= x

sage: e = 0 <= x <= 1/2
sage: e.operator()
<built-in function le>
sage: e.operands()
[0, x]

Note the following weird behaviour:

sage: assume(0 <= x)
sage: 0 <= x <= 1/2
x <= (1/2)

This is clearly a bug, thanks for reporting ! See trac ticket 24726

Note that this is actually not the problem with assume but with symbolic expression involving more than one comparison operator:

sage: 0 <= x <= 1/2
0 <= x

sage: e = 0 <= x <= 1/2
sage: e.operator()
<built-in function le>
sage: e.operands()
[0, x]

Note the following weird behaviour:

sage: assume(0 <= x)
sage: 0 <= x <= 1/2
x <= (1/2)

This is because now 0 <= x is evaluated to True, and True and something returns something.