1 | initial version |

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)
```

2 | No.2 Revision |

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)
```

3 | No.3 Revision |

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`

.

Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.