This code is in active development. Currently 2-sided Groebner bases (up to some degree) are implemented, and most features of NCAlgebra 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 |
Not yet fully functional. This package is a current work in progress. The interface will change (even basic things like Groebner bases and the basis command still need to be hooked into the Macaulay2 groebnerBasis, basis commands), and more functionality is expected to be added.
This documentation describes version 0.8 of AssociativeAlgebras.
The source code from which this documentation is derived is in the file AssociativeAlgebras.m2. The auxiliary files accompanying it are in the directory AssociativeAlgebras/.
The object AssociativeAlgebras is a package.