Stack overflow in boolean test
Using SageMath 8.8, I encountered a strange error involving boolean tests. The following code reproduces the issue:
x, y = var('x, y')
assume(x>0)
assume(y>0)
bool(y*(x-y)==0)
RuntimeError: ECL says: C-STACK overflow at size 1048576. Stack can probably be resized.
Proceed with caution.
This code should obviously return False
. Changing y*(x-y)
to x*(y-x)
indeed returns False
, which means x
and y
cannot be exchanged. Without the assumptions, the code works as expected.
I initially thought it was due to my Sage installation, but running this code on https://sagecell.sagemath.org/ also produces asymmetric behavior, though no error comes out (just a blank answer).
Is this a known issue ? Can someone reproduce this ?
Gives me a "core dumped" with 8.9.rc0. This is a bug.
Confirmed with Sage 8.9.rc0, as well as with Sage 8.3. So the bug has been there for a while...
With 8.9.rc1+Trac#28534, I get a Sage crash ("Segmentation error").
Nice one...