This code is in active development. Currently 2-sided Groebner bases (up to some degree) are implemented, and most features of NCAlgebra (missing documentation)
are available. The package NCAlgebra uses curly braces to define non-commutative rings whereas this package uses angle bar lists.
This package implements natively (i.e., in the Macaulay2 engine) non-commutative rings (associative algebras), their (2-sided) Groebner bases, bases, and a number of other features.
i1 : R = ZZ/32003<|a,b,c|>
o1 = R
o1 : FreeAlgebra
|
i2 : I = ideal(2*a*b + 3*b*a + 5*c^2,
2*b*c + 3*c*b + 5*a^2,
2*c*a + 3*a*c + 5*b^2)
2 2 2
o2 = ideal (2a*b + 3b*a + 5c , 5a + 2b*c + 3c*b, 3a*c + 5b + 2c*a)
o2 : Ideal of R
|
i3 : gbI = NCGB(I, 6);
1 13
o3 : Matrix R <-- R
|
i4 : netList (ideal gbI)_*
+------------------------------------------------------------------------------------------------------------------------------------+
| 2 |
o4 = |a*b - 16000b*a - 15999c |
+------------------------------------------------------------------------------------------------------------------------------------+
| 2 |
|a + 6401b*c - 6400c*b |
+------------------------------------------------------------------------------------------------------------------------------------+
| 2 |
|a*c - 10666b - 10667c*a |
+------------------------------------------------------------------------------------------------------------------------------------+
| 2 2 2 |
|b c + 13552b*c*b + 10667c*b + 12138c a |
+------------------------------------------------------------------------------------------------------------------------------------+
| 2 2 2 |
|b a - 8487b*c - 8961c*b*c + 5658c b |
+------------------------------------------------------------------------------------------------------------------------------------+
| 4 3 2 2 3 |
|b + 13781b*c*b*a - 7709b*c - 11562c*b*c + 2217c b*c - 12677c b |
+------------------------------------------------------------------------------------------------------------------------------------+
| 2 2 3 2 4 |
|b*c*b - 14216b*c a - 7130c*b + 14570c*b*c*a - 938c b*a + 2648c |
+------------------------------------------------------------------------------------------------------------------------------------+
| 2 4 3 2 2 3 4 |
|b*c*b*c*a - 10377b*c b*a - 12227b*c + 7414c*b*c*b*a + 13359c*b*c + 1731c b*c + 11348c b*c - 431c b |
+------------------------------------------------------------------------------------------------------------------------------------+
| 2 2 3 2 3 2 3 5 |
|b*c*b*c*b + 12415b*c b - 12892b*c a + 3317c b - 6253c b*c*a - 449c b*a - 4931c |
+------------------------------------------------------------------------------------------------------------------------------------+
| 2 2 3 2 2 3 2 4 |
|b*c*b*c - 10224b*c b*c + 437b*c b + 24c*b*c*b*c + 35c*b*c b + 2451c b*c*b - 413c b + 10924c a |
+------------------------------------------------------------------------------------------------------------------------------------+
| 2 2 3 4 2 3 2 2 2 3 4 2 5 |
|b*c b*c - 1629b*c b*c + 7434b*c b + 12905c*b*c b*c + 7093c*b*c b + 12717c b*c*b*c - 9457c b*c b + 2889c b*c*b + 3746c b - 12788c a|
+------------------------------------------------------------------------------------------------------------------------------------+
| 2 3 3 5 2 4 2 2 3 3 2 4 5 |
|b*c b - 3116b*c b*a - 869b*c - 12458c*b*c b*a - 15666c*b*c - 6767c b*c*b*a - 9927c b*c + 3248c b*c - 5349c b*c + 11498c b |
+------------------------------------------------------------------------------------------------------------------------------------+
| 2 3 5 2 4 2 2 3 3 2 4 5 |
|b*c b*c*a + 13268b*c b*a + 3067b*c + 7496c*b*c b*a + 8969c*b*c - 4451c b*c*b*a + 14180c b*c + 13165c b*c - 8289c b*c - 3102c b |
+------------------------------------------------------------------------------------------------------------------------------------+
|
i5 : A = R/I -- only uses the Groebner basis already constructed, so only valid in degrees <= 6
o5 = A
o5 : FreeAlgebraQuotient
|
i6 : ncBasis(3, A)
o6 = | b3 bca bcb bc2 cba cb2 cbc c2a c2b c3 |
1 10
o6 : Matrix A <-- A
|