https://sagecell.sagemath.org/
https://www.singular.uni-kl.de/
https://magma.maths.usyd.edu.au/calc/
GAP
a) Code for the Chinese monoid:
LoadPackage("gbnp");
F:=Rationals;;
A:=FreeAssociativeAlgebraWithOne(F,"a","b","c","d","e");;
KSgp:=[c*b*a-c*a*b,c*a*b-b*c*a,d*b*a-d*a*b,d*a*b-b*d*a,e*b*a-e*a*b,e*a*b-b*e*a,d*c*a-d*a*c,d*a*c-c*d*a,e*c*a-e*a*c,e*a*c-c*e*a,e*d*a-e*a*d,e*a*d-d*e*a,d*c*b-d*b*c,d*b*c-c*d*b,
e*c*b-e*b*c,e*b*c-c*e*b,e*d*b-e*b*d,e*b*d-d*e*b,e*d*c-e*c*d,e*c*d-d*e*c,b*b*a-b*a*b,b*a*a-a*b*a,c*c*a-c*a*c,c*a*a-a*c*a,d*d*a-d*a*d,d*a*a-a*d*a,e*e*a-e*a*e,e*a*a-a*e*a,c*c*b-c*b*c,
c*b*b-b*c*b,d*d*b-d*b*d,d*b*b-b*d*b,e*e*b-e*b*e,e*b*b-b*e*b,d*d*c-d*c*d,d*c*c-c*d*c,e*e*c-e*c*e,e*c*c-c*e*c,e*e*d-e*d*e,e*d*d-d*e*d];;
KS:=GP2NPList(KSgp);;
H:=SGrobner(KS);;
PrintNPList(H);
ba^2 - aba
b^2a - bab
ca^2 - aca
cab - bca
cba - bca
cb^2 - bcb
c^2a - cac
c^2b - cbc
da^2 - ada
dab - bda
dac - cda
dba - bda
db^2 - bdb
dbc - cdb
dca - cda
dcb - cdb
dc^2 - cdc
d^2a - dad
d^2b - dbd
d^2c - dcd
ea^2 - aea
eab - bea
eac - cea
ead - dea
eba - bea
eb^2 - beb
ebc - ceb
ebd - deb
eca - cea
ecb - ceb
ec^2 - cec
ecd - dec
eda - dea
edb - deb
edc - dec
ed^2 - ded
e^2a - eae
e^2b - ebe
e^2c - ece
e^2d - ede
cbca - cacb
dbda - dadb
dcda - dadc
dcdb - dbdc
ebea - eaeb
ecea - eaec
eceb - ebec
edea - eaed
edeb - ebed
edec - eced
b) braid semigroup B_3^+:
LoadPackage("gbnp");
F:=Rationals;;
A:=FreeAssociativeAlgebraWithOne(F,"a","b");;
a:=A.a;; b:=A.b;;
KSgp:=[b*a*b-a*b*a];;
KS:=GP2NPList(KSgp);;
-
LoadPackage("gbnp");
SetInfoLevel(InfoGBNP,2);
SetInfoLevel(InfoGBNPTime,1);
F:=Rationals;;
A:=FreeAssociativeAlgebraWithOne(F,"a","b");;
a:=A.a;; b:=A.b;;
KSgp:=[b*a*b-a*b*a];;
KS:=GP2NPList(KSgp);;
R:=SGrobner(KS,100);;
#I length of todo is 1
#I length of G =51
#I length of todo is 1
#I length of G =52
...
PrintNP(StrongNormalFormNP(GP2NP(b^7*a*b^7),R.G));
aba^7b^6
Singular
https://www.singular.uni-kl.de/
a) Example in deg-lex order
LIB "freegb.lib";
ring r = 0,(f,e,d,c,b,a),Dp;
ring R = freeAlgebra(r,100);
ideal I = c*a-a*c,d*a-a*d,b*a-b*b*c,b*e-b,b*f-b,e*f-b, b*c*d;
option(redSB);
option(redTail);
ideal J = twostd(I);
J;
b) Example in weighted deg-lex order
LIB "freegb.lib";
ring r = 0,(f,e,d,c,b,a),Wp(1,1,1,1,1,3);
ring R = freeAlgebra(r,100);
ideal I = c*a-a*c,d*a-a*d,b*a-b*b*c,b*e-b,b*f-b,e*f-b,
b*c*d;
option(redSB);
option(redTail);
ideal J = twostd(I);
J;
reduce(c*a*c*a,J);
lead(b*e*f-c*a*d*c);
c) LIB "freegb.lib";
ring r = 0,(y,x,b,a),Dp;
ring R = freeAlgebra(r,50);
ideal I =a*x-1, x*a-1, b*y-1,y*b-1, a^2*b*x^2*y-1, a*b^2*x*y^2-1;
option(redSB);
option(redTail);
ideal J = twostd(I);
J;
reduce(a^7*b*a*b^7*x^7*y*x*y^7,J);
Sage
Plactic monoid:
F.<x,y,z> = FreeAlgebra(QQ, implementation='letterplace')
I = F*[y*z*x-y*x*z, z*x*y-x*z*y, y*x*x-x*y*x, y*y*x-y*x*y,z*y*y-y*z*y, z*z*y-z*y*z, z*x*x-x*z*x, z*z*x-z*x*z]*F
I.groebner_basis(10)
I.groebner_basis(Infinity)
((x*y)^10).reduce(I.groebner_basis(infinity))
F.<x,y,z> = FreeAlgebra(QQ, implementation='letterplace', degrees=[1,2,3])
Magma
https://magma.maths.usyd.edu.au/calc/
a) Universal enveloping of the Jordan algebra of symmetric matrices of order 2:
K := RationalField();
F<c,b,a> := FreeAlgebra(K, 3);
B:=[a*a-a, b*b-a-c, c*c-c, a*b+b*a-b, c*b+b*c-b, a*c+c*a];
I := ideal<F|B>;
GroebnerBasis(I);
time Groebner(I);
J:=quo<F | B>;
Dimension(J);
b) Universal enveloping of the Jordan algebra of all matrices of order 2:
K := RationalField();
F<d,c,b,a> := FreeAlgebra(K, 4);
B:=[a*a-a, a*b+b*a-b, a*c+c*a-c, a*d+d*a, b*b, b*c+c*b-a-d,
b*d+d*b-b, c*c, c*d+d*c-c, d*d-d];
I := ideal<F|B>;
GroebnerBasis(I);
J:=quo<F | B>;
Dimension(J);