User's input is in blue; computer's output is in black.
Simple session
The Gröbner basis computations for the ideal
xx-yy, xy in the commutative polynomial algebra K[x,y]:
1 lisp> (simple)
Now input in-variables and ideal generators in algebraic form, thus:
vars v1, ..., vn;
r1, ..., rm;
where v1, ..., vn are the variables,
and r1, ..., rm the generators.
algebraic form input> vars x,y; x^2-y^2,x*y;
% 2
x*y,
x^2-y^2,
% 3
y^3,
Done
Simple non-commutative
Input: variables x,y and ideal (xx-yy, xy) in K<x,y>
1 lisp> (noncommify)
nil
2 lisp> (simple)
Now input in-variables and ideal generators in
algebraic form, thus:
vars v1, ..., vn;
r1, ..., rm;
where v1, ..., vn are the variables,
and r1, ..., rm the generators.
algebraic form input> vars x,y; x^2-y^2, x*y;
% 2
x*y,
-y^2+x^2,
% 3
x^3,
y*x^2
Done
Homogenization and eliminating ordering
Suppose that we need to calculate minimal polynomials for the variables from the algebra A= <r,l,q| rr-qq+lr-r,
rq-qr+lq-q,
lr-rl,
lq+ql-2q,
rr-rl-2lr+2ll-r+l>
2 lisp> (noncommify)
nil
3 lisp> (elimorder)
nil
4 lisp> (simple)
Now input in-variables and ideal generators
in algebraic form, thus:
vars v1, ..., vn;
r1, ..., rm;
where v1, ..., vn are the variables,
and r1, ..., rm the generators.
algebraic form input> vars r,l,q,h;
algebraic form input> r*r-q*q+l*r-r*h,r*q-q*r+l*q-q*h,
algebraic form input> l*r-r*l,l*q+q*l-2*q*h,
algebraic form input> r*r-r*l-2*l*r+2*l*l-r*h+l*h,
algebraic form input> r*h-h*r,q*h-h*q,l*h-h*l;
% 2
-h*q+q*h,
-h*l+l*h,
q*l+l*q-2*q*h,
-h*r+r*h,
-q*r+r*q+l*q-q*h,
-4*r*l+2*l^2+l*h+q^2,
4*l*r-2*l^2-l*h-q^2,
4*r^2-4*r*h+2*l^2+l*h-3*q^2,
% 3
4*r*q*h-4*l^2*q+10*l*q*h-q^3-9*q*h^2,
4*r*q^2+12*l^3-10*l*q^2-3*l*h^2-3*q^2*h,
% 4
l*q^3-3*l*q*h^2-q^3*h+3*q*h^3,
-12*l^3*h-4*l^2*q^2+20*l*q^2*h+3*l*h^3-q^4-6*q^2*h^2,
-4*l^3*q+12*l^2*q*h-11*l*q*h^2+3*q*h^3,
12*l^4-8*l^2*q^2-3*l^2*h^2-2*l*q^2*h+q^4,
% 5
-48*l^2*q*h^2+96*l*q*h^3-q^5+10*q^3*h^2-57*q*h^4,
% 6
-48*l^2*q^2*h^2+96*l*q^2*h^3-q^6+10*q^4*h^2-57*q^2*h^4,
% 7
-q^7+13*q^5*h^2-39*q^3*h^4+27*q*h^6,
Done
The minimal polynomials for q: q7-13q5+39q3-27q=0.
It is possible to get other minimal polynomials changing the order of variables.
Hilbert series computation
2 lisp> (hilbert)
Input the maximal power series degree you want to calculate
2 lisp> 7
Now input in-variables and ideal generators in
algebraic form, thus:
vars v1, ..., vn;
r1, ..., rm;
where v1, ..., vn are the variables,
and r1, ..., rm the generators.
algebraic form input> vars x,y;
x^3, x*y^2-x^2*y;
% 3
-x^2*y+x*y^2,
x^3,
% 4
x*y^3,
Hilbert series numerator: +1*t^0+1*t^1+1*t^2-1*t^3-1*t^4
Hilbert series denominator: 1-t
Hilbert power series: 1+2t^1+3t^2+2t^3+t^4+t^5+t^6+t^7+...
Done
Computation of Gröbner basis using known Hilbert series
The following session shows how to calculate Gröbner basis faster using the known Hilbert series.
Prepare the file named "sixroots" containing:
(algforminput)
vars a,b,c,d,e,f,z;
a+b+c+d+e+f,
a*b+b*c+c*d+d*e+e*f+f*a,
a*b*c+b*c*d+c*d*e+d*e*f+e*f*a+f*a*b,
a*b*c*d+b*c*d*e+c*d*e*f+d*e*f*a+e*f*a*b+f*a*b*c,
a*b*c*d*e+b*c*d*e*f+c*d*e*f*a+d*e*f*a*b+e*f*a*b*c+f*a*b*c*d,
a*b*c*d*e*f-z^6;
Hilbert series of the corresponding factor-ring is known from the literature:
1 +6t+20t2+49t3+98t4+169t5+ 259t6+ 360t7+ 462t8+ 557t9+ 642t10+
+715t11+ 778t12+836t13+ 894t14+ 954t15+ 1014t16+
+1074t17+ 1134t18+ 1194t19+...
Now you call bergman and enter:
1 lisp> (setinterruptstrategy minhilblimits)
nil
2 lisp> (sethseriesminima 1 6 20 49 98 169 259 360 462 557 642
715 778 836 894 954 1014 1074 1134 1194)
t
3 lisp> (simple "sixroots" "sixroots.gb")
You get the result in the file "sixroots.gb".
Gröbner basis and Hilbert series for modules over non-commutative algebras
2 lisp> (modulehseries)
Input the Maximum Degree you want to calculate
3 lisp> 5
Input the quantity of the module generators
4 lisp> 2
Now input ALL ring and module variables but ONLY
the ring ideal generators in algebraic form, thus:
vars v1, ..., vn;
r1, ..., rm;
where v1, ..., vn are all the variables,
and r1, ..., rm the generators.
algebraic form input> vars y,x,b,a; x*x-y*y;
+t^2*(z^2)
% 2
x^2-y^2,
+t^3*(z^2+z^3)
% 3
x*y^2-y^2*x,
+t^4*(z^3+z^4)
+t^5*(z^4+z^5)
+15*z^2
+56*z^3
+209*z^4
+780*z^5
Now input ONLY the module relations: r1, ..., rm;
where r1, ..., rm are the module relations.
algebraic form input>a*x-b*y;
+t^2*(2*z^2)
% 2
a*x-b*y,
+t^3*(2*z^2+2*z^3)
% 3
a*y^2-b*y*x,
+t^4*(2*z^3+2*z^4)
Done
+t^5*(2*z^4+2*z^5)
+14*z^2
+48*z^3
+164*z^4
+560*z^5
Here is (1-H)^(-1) for Hilbert series H of the module
+1
+2*t^1
+7*t^2
+24*t^3
+82*t^4
+280*t^5
Here is the Hilbert series H of the module
+2*t^1
+3*t^2
+4*t^3
+5*t^4
+6*t^5
NIL
The Anick resolution and Betti numbers for a trivial module
1 lisp> (anick)
*** We turn on noncommutativity
Input the Maximum Degree you want to calculate
1 lisp> 4
Now input in-variables and ideal generators in
algebraic form, thus:
vars v1, ..., vn;
r1, ..., rm;
where v1, ..., vn are the variables,
and r1, ..., rm the generators.
algebraic form input>vars x,y; x*x+y*y+x*y+y*x;
The Anick resolution initialization...
B(1,1)=2
The Anick resolution initialization done.
+t^2*(z^2)
% 2
y^2+y*x+x*y+x^2,
Calculating the Anick resolution in degree 2...
B(1,1)=2
B(2,2)=1
0 1 2
+----------
0 | 1 2 1
1 | - -
end of Calculations.
+t^3*(z^3)
Calculating the Anick resolution in degree 3...
B(1,1)=2
B(2,2)=1
B(3,3)=1
0 1 2 3
+--------------
0 | 1 2 1 1
1 | - - -
2 | - -
end of Calculations.
Groebner basis is finite.
If you want to continue calculations until maximal degree
type (calculateanickresolutiontolimit (getmaxdeg))
nil
2 lisp>(calculateanickresolutiontolimit (getmaxdeg))
Calculating the Anick resolution in degree 4...
B(1,1)=2
B(2,2)=1
B(3,3)=1
B(4,4)=1
0 1 2 3 4
+------------------
0 | 1 2 1 1 1
1 | - - - -
2 | - - -
3 | - -
end of Calculations.
The Anick resolution and Betti numbers for a right module
1 lisp> (SETQ ANICKRESOLUTIONOUTPUTFILE "resolution.txt")
"resolution.txt"
2 lisp> (MODULEBETTINUMBERS)
*** We turn on the MODULE mode
*** We turn on noncommutativity
Input the Maximum Degree you want to calculate
2 lisp> 5
Input the number of the module variables
2 lisp> 1
Now input all ring and then all module variables.
Input the ring ideal and module relations in algebraic form thus:
vars v1, ..., vn;
r1, ..., rm;
where v1, ..., vn are all the variables, and r1, ..., rm the relations.
algebraic form input> vars x,a;x*x,a*x;
The Anick resolution initialization...
B(0,0)=1
The Anick resolution initialization done.
+t^2*(2*z^2)
% 2
x^2,
a*x,
Calculating the module Anick resolution in degree 2...
B(0,0)=1
B(1,1)=1
0 1 2
+----------
0 | 1 1
1 | -
end of Calculations.
+t^3*(2*z^3)
Calculating the module Anick resolution in degree 3...
B(0,0)=1
B(1,1)=1
B(2,2)=1
0 1 2 3
+--------------
0 | 1 1 1
1 | - -
2 | -
end of Calculations.
Groebner basis is finite.
If you want to continue calculations until the maximal degree
type (CALCULATEANICKRESOLUTIONTOLIMIT (GETMAXDEG))
nil
3 lisp> (CALCULATEANICKRESOLUTIONTOLIMIT (GETMAXDEG))
Calculating the module Anick resolution in degree 4...
B(0,0)=1
B(1,1)=1
B(2,2)=1
B(3,3)=1
0 1 2 3 4
+------------------
0 | 1 1 1 1
1 | - - -
2 | - -
3 | -
end of Calculations.
Calculating the module Anick resolution in degree 5...
B(0,0)=1
B(1,1)=1
B(2,2)=1
B(3,3)=1
B(4,4)=1
0 1 2 3 4 5
+----------------------
0 | 1 1 1 1 1
1 | - - - -
2 | - - -
3 | - -
4 | -
end of Calculations.
nil
4 lisp> (ANICKDISPLAY)
Printing the results ...
Printing is done.
The Anick resolution and Betti numbers for a factor-algebra
1 lisp>(factalgbettinumbers)
*** We turn on the MODULE mode
*** We turn on noncommutativity
Input the Maximum Degree you want to calculate
1 lisp> 5
Now input all ring variables, a dummy variable (D),
and copies of the ring variables (in this order),
in this manner:
vars x1, ..., xn, D, y1, ..., yn;
(where x1,..., xn are the ring variables,
and y1,...,yn their copies)
Then input the ring ideal relations
(in ordinary algebraic form);
but the factor algebra relations in the form
D*r1, ..., D*rm,
where r1, ..., rm are the relations.
algebraic form input> vars x,y, D, X,Y;
algebraic form input> x*x, x*y, y*x, y*y, D*x;
The Anick resolution initialization...
B(0,0)=1
The Anick resolution initialization done.
+t^2*(7*z^2)
% 2
x^2,
x*y,
y*x,
y^2,
D*x,
X*D,
Y*D-D*y,
Calculating the module Anick resolution in degree 2...
B(0,0)=1
B(1,1)=1
0 1 2
+----------
0 | 1 1
1 | -
end of Calculations.
+t^3*(12*z^3)
Calculating the module Anick resolution in degree 3...
B(0,0)=1
B(1,1)=1
B(2,2)=2
0 1 2 3
+--------------
0 | 1 1 2
1 | - -
2 | -
end of Calculations.
Groebner basis is finite.
If you want to continue calculations until the maximal degree
type (CALCULATEANICKRESOLUTIONTOLIMIT (GETMAXDEG))
NIL
2 lisp> (calculateanickresolutiontolimit (getmaxdeg))
Calculating the module Anick resolution in degree 4...
B(0,0)=1
B(1,1)=1
B(2,2)=2
B(3,3)=4
0 1 2 3 4
+------------------
0 | 1 1 2 4
1 | - - -
2 | - -
3 | -
end of Calculations.
Calculating the module Anick resolution in degree 5...
B(0,0)=1
B(1,1)=1
B(2,2)=2
B(3,3)=4
B(4,4)=8
0 1 2 3 4 5
+----------------------
0 | 1 1 2 4 8
1 | - - - -
2 | - - -
3 | - -
4 | -
end of Calculations.
The Anick resolution and Betti numbers for a left module
1 lisp> (leftmodulebettinumbers)
Input the Maximum Degree you want to calculate
1 lisp> 5
Input the number of the module variables
1 lisp> 1
Now input all ring and then all module variables.
Input the ring ideal and module relations in algebraic form thus:
vars v1, ..., vn;
r1, ..., rm;
where v1, ..., vn are all the variables, and r1, ..., rm the relations.
algebraic form input> vars x,a; x*x, x*a;
The Anick resolution initialization...
B(0,0)=1
The Anick resolution initialization done.
+t^2*(2*z^2)
% 2
x^2,
a*x,
Calculating the module Anick resolution in degree 2...
B(0,0)=1
B(1,1)=1
0 1 2
+----------
0 | 1 1
1 | -
end of Calculations.
+t^3*(2*z^3)
Calculating the module Anick resolution in degree 3...
B(0,0)=1
B(1,1)=1
B(2,2)=1
0 1 2 3
+--------------
0 | 1 1 1
1 | - -
2 | -
end of Calculations.
Groebner basis is finite.
If you want to continue calculations until the maximal degree
type (CALCULATEANICKRESOLUTIONTOLIMIT (GETMAXDEG))
nil
2 lisp> (CALCULATEANICKRESOLUTIONTOLIMIT (GETMAXDEG))
Calculating the module Anick resolution in degree 4...
B(0,0)=1
B(1,1)=1
B(2,2)=1
B(3,3)=1
0 1 2 3 4
+------------------
0 | 1 1 1 1
1 | - - -
2 | - -
3 | -
end of Calculations.
Calculating the module Anick resolution in degree 5...
B(0,0)=1
B(1,1)=1
B(2,2)=1
B(3,3)=1
B(4,4)=1
0 1 2 3 4 5
+----------------------
0 | 1 1 1 1 1
1 | - - - -
2 | - - -
3 | - -
4 | -
end of Calculations.
3 lisp>
Betti numbers for two modules
1 lisp> (twomodbettinumbers)
*** We turn on the TWOMODULES mode
Input the Maximum Degree you want to calculate
1 lisp> 6
Input the number of the right module variables
1 lisp> 1
Input the number of the left module variables
1 lisp> 1
Now input all ring and then all module variables.
Right module variables should be before the left ones.
Input the ring ideal and module relations
in algebraic form thus:
vars v1, ..., vn;
r1, ..., rm;
where v1, ..., vn are all the variables,
and r1, ..., rm the relations.
algebraic form input> vars x,y,r,l;
algebraic form input> r*x,y*l-x*l;
The Anick resolution initialization (for two modules)...
The Anick resolution initialization done.
+t^2*(2*z^2)
% 2
y*l-x*l,
r*x,
Calculating the module Anick resolution in degree 2...
B(0,0)=1
0 1 2
+----------
0 | 1
end of Calculations.
Groebner basis is finite.
If you want to continue calculations until the maximal degree
type (CALCULATEANICKRESOLUTIONTOLIMIT (GETMAXDEG))
2 lisp> (CALCULATEANICKRESOLUTIONTOLIMIT (GETMAXDEG))
Calculating the module Anick resolution in degree 3...
B(0,0)=1
0 1 2
+----------
0 | 1
end of Calculations.
Calculating the module Anick resolution in degree 4...
B(0,0)=1
B(0,2)=1
0 1 2 3 4
+------------------
0 | 1 - -
1 | - -
2 | 1
end of Calculations.
Calculating the module Anick resolution in degree 5...
B(0,0)=1
B(0,2)=1
B(0,3)=2
0 1 2 3 4 5
+----------------------
0 | 1 - - -
1 | - - -
2 | 1 -
3 | 2
end of Calculations.
Calculating the module Anick resolution in degree 6...
B(0,0)=1
B(0,2)=1
B(0,3)=2
B(0,4)=4
0 1 2 3 4 5
+----------------------
0 | 1 - - - -
1 | - - - -
2 | 1 - -
3 | 2 -
4 | 4
end of Calculations.
Hochschild homology
1 lisp> (hochschild)
*** We turn on the TWOMODULES mode
*** We turn on noncommutativity
Input the Maximum Degree you want to calculate
1 lisp> 5
Now input all ring variables, copies of the ring variables,
and two dummy variable (D1,D2) (in this order),
in this manner:
vars x1, ..., xn, y1, ..., yn, D1, D2;
(where x1,..., xn are the ring varables,
and y1,...,yn their copies)
Then input the ring ideal relations
(in ordinary algebraic form);
r1, ..., rm;
algebraic form input> vars x,y,X,Y,r,l;x*y;
*** Function `addadditionalrelations' has been redefined
The Anick resolution initialization (for two modules)...
The Anick resolution initialization done.
+t^2*(10*z^2)
% 2
x*y,
-X*x+x*X,
-X*y+y*X,
X*l-x*l,
-Y*x+x*Y,
-Y*y+y*Y,
Y*X,
Y*l-y*l,
r*X-r*x,
r*Y-r*y,
end of Calculations.
+t^3*(4*z^2+12*z^3)
% 3
r*x*X-r*x^2,
-r*y*x+r*x*Y,
r*y*X,
r*y*Y-r*y^2,
Calculating the module Anick resolution in degree 3...
B(0,0)=1
B(0,1)=2
B(1,1)=2
0 1 2 3
+--------------
0 | 1 2
1 | 2
end of Calculations.
+t^4*(4*z^2+11*z^3+6*z^4)
% 4
r*x^2*X-r*x^3,
-r*y^2*x+r*x*Y^2,
r*y^2*X,
r*y^2*Y-r*y^3,
Calculating the module Anick resolution in degree 4...
B(0,0)=1
B(0,1)=2
B(1,1)=2
B(0,2)=2
B(1,2)=2
0 1 2 3 4
+------------------
0 | 1 2 -
1 | 2 2
2 | 2
end of Calculations.
+t^5*(4*z^2+11*z^3+6*z^4+z^5)
% 5
r*x^3*X-r*x^4,
-r*y^3*x+r*x*Y^3,
r*y^3*X,
r*y^3*Y-r*y^4,
Calculating the module Anick resolution in degree 5...
B(0,0)=1
B(0,1)=2
B(1,1)=2
B(0,2)=2
B(1,2)=2
B(0,3)=2
B(1,3)=2
0 1 2 3 4 5
+----------------------
0 | 1 2 - -
1 | 2 2 -
2 | 2 2
3 | 2
end of Calculations.
Using "Jumping Rabbit" for non-homogeneuos relations
1 lisp> (rabbit 2 3 8)
algebraic form input> vars x,y,z;
algebraic form input> x*y-z,y*z-x,z*x-y;
SetupGlobals
... done
*** Garbage collection starting
*** GC 1 19-Aug-2006 16:21:25, 0 ms (0%), 61501 occupied, 1563493 free
Further messages from the garbage collector are deleted
RABBIT: Added step, Maxdegree=5
Jump number 1
RABBIT: Jump number 2
GB is completely calculated
Rabbit have finishied jumping GB is
x*y-z,
y^2-x^2,
y*z-x,
z*x-y,
-z^2+x^2,
x^3-z*y,
-x^2*z+y*x,
y*x^2-x*z,
y*x*z-x*z*y,
-z*y*x+x*z*y,
nil