1 | initial version |
First you're doing something mysterious, because the code you wrote doesn't work.
sage: F = FreeAlgebra(QQ,1,'x')
sage: x in F
True ???
The first line does not define x
as an element of F
, so the second line will return False
. Furthermore, if I do x = F.gen(0)
to define x
appropriately, then F.quotient(I)
raises an error, saying that "a twosided ideal is required". Maybe for this second issue you're using an old version of Sage and the behavior has changed since then.
Your actual question is sound, though, so let's address that. Here is what I would do:
sage: F.<x> = FreeAlgebra(QQ, implementation='letterplace')
sage: x in F
True
sage: I = F.ideal([x^2], side='twosided')
sage: A = F.quotient(I)
sage: a = A.gen()
sage: a^2
0
sage: a^2 == 0
True
The key is to use the "letterplace" implementation for free algebras (https://doc.sagemath.org/html/en/reference/algebras/sage/algebras/letterplace/free_algebra_letterplace.html). Those seem to work better when handling ideals and quotients, at least in my experience.