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