You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
R.<x,y,z> = FreeAlgebra(QQ, 3)
P=R.g_algebra(relations={},order='lex')
P.inject_variables() #makes variables x,y,z available to this method
P.is_commutative()
print([x*y-y*x,x*z-z*x,y*z-z*y])
Here is the version. I'm running it on cocalc.
'SageMath version 10.3, Release Date: 2024-03-19'
Expected Behavior
Well, This is suppose to be a noncommutative ring, yet the commutators of the free variables are zero.
Actual Behavior
It's commutative.
Additional Information
It could be that relations={} is imposed incorrectly.
I would be happy to work within just FreeAlgebra to implement the Groebner basis algorithm, but there isn't support for monomials in the FreeAlgebra rings it seems. Maybe I am wrong but without passing to the g_algebra it seems you can't pick two monomials and see if one divides another. Note that if m and n are monomials in a noncommutative ring we have m divides n if and only if there exists monomials p and q such that n = pmq.
Environment
-**OS**:Cocalc, May 21, 2024
-**Sage Version**:'SageMath version 10.3, Release Date: 2024-03-19'
Checklist
I have searched the existing issues for a bug report that matches the one I want to file, without success.
I have read the documentation and troubleshoot guide
The text was updated successfully, but these errors were encountered:
I suppose they are related to (equal to?) Birkoff-Witt rings where the relations are quadratic. Also see Green. I'm not sure why Sage has both of these.
I think there are essentially two issues:
I am complaining about the monomial functionality in FreeAlgebra. This doesn't exist and it prevents anyone from implementing any of the Groebner basis algorithms. (I could also be making a stupid mistake here and not know what to call for this. If that is the case, it isn't documented well.)
The function "is_commutative" in this g_algebra thing is still broken even if I don't know what a g_algebra is.
Yes, there is no way for a $g$-algebra to have two generators be free. It is part of the definition as they are a generalization of the PBW basis of a Lie algebra's universal enveloping algebra.
That being said, yes, the is_commutative() check should be refined. Generically it is true, but this is a special case that is not typically performed. +1 to adding a check that there are no "relations."
fixing sagemath#38047
### 📝 Checklist
- [x] The title is concise and informative.
- [ ] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [x] I have created tests covering the changes.
- [ ] I have updated the documentation and checked the documentation
preview.
URL: sagemath#38382
Reported by: Frédéric Chapoton
Reviewer(s): Travis Scrimshaw
Steps To Reproduce
Here is the version. I'm running it on cocalc.
'SageMath version 10.3, Release Date: 2024-03-19'
Expected Behavior
Well, This is suppose to be a noncommutative ring, yet the commutators of the free variables are zero.
Actual Behavior
It's commutative.
Additional Information
It could be that relations={} is imposed incorrectly.
Here is the documentation I was using:
https://doc.sagemath.org/pdf/en/reference/noncommutative_polynomial_rings/noncommutative_polynomial_rings.pdf#page83
The g_algebra function isn't well documented so I can't tell. As far as I can tell it has something to do with this package: https://galgebra.readthedocs.io/en/latest/tutorials/algebra.html
It seems poorly named to me.
I didn't open up the source.
This seems to be related to some other issues related to the incompleteness of the FreeAlgebras.
#26173
#26911
#31446
I want to implement this:
Green-NoncommutativeGroebnerBasesAndProjectiveResolutions.pdf
I would be happy to work within just FreeAlgebra to implement the Groebner basis algorithm, but there isn't support for monomials in the FreeAlgebra rings it seems. Maybe I am wrong but without passing to the g_algebra it seems you can't pick two monomials and see if one divides another. Note that if m and n are monomials in a noncommutative ring we have m divides n if and only if there exists monomials p and q such that n = pmq.
Environment
Checklist
The text was updated successfully, but these errors were encountered: