// Benchmark examples naive Gröbner basis (with Singular)

LIB "freegb.lib";

option(prot);

// ufn1h-7
ring r = 0,(h,a,b,c,d),Dp;
ring R = freeAlgebra(r,7);
ideal ufn1h = a*a-a*h, b*b-b*h, c*c-c*h, d*d-d*h, a*b*a-a*b*h,b*a*b-a*b*h,a*c*a-a*c*h, c*a*c-a*c*h, a*d*a-a*d*h, d*a*d-a*d*h,b*c*b-b*c*h, c*b*c-b*c*h, b*d*b-b*d*h, d*b*d-b*d*h, c*d*c-c*d*h, d*c*d-c*d*h;
ideal comm = h*a-a*h, h*b-b*h, h*c-c*h, h*d-d*h;
ideal I = ufn1h + comm; 
ideal G = twostd(I);

// ufn1h-8
ring r = 0,(h,a,b,c,d),Dp;
ring R = freeAlgebra(r,8);
ideal ufn1h = a*a-a*h, b*b-b*h, c*c-c*h, d*d-d*h, a*b*a-a*b*h,b*a*b-a*b*h,a*c*a-a*c*h, c*a*c-a*c*h, a*d*a-a*d*h, d*a*d-a*d*h,b*c*b-b*c*h, c*b*c-b*c*h, b*d*b-b*d*h, d*b*d-b*d*h, c*d*c-c*d*h, d*c*d-c*d*h;
ideal comm = h*a-a*h, h*b-b*h, h*c-c*h, h*d-d*h;
ideal I = ufn1h + comm; 
ideal G = twostd(I);

//#################################################

// ih-7
ring r = 0,(h,p,q,x,y,z),Dp;
ring R = freeAlgebra(r,7);
ideal ih = p*q-h*h, q*p-h*h, x*x+(h-q)*x-h*q, y*y+(h-q)*y-h*q, z*z+(h-q)*z-h*q, z*x - x*z, y*x*y-x*y*x, z*y*z-y*z*y;
ideal comm = -p*z + z*p,-q*x + x*q,-q*z + z*q,-h*x + x*h,-p*y + y*p,-h*q + q*h,-h*y + y*h,-h*z + z*h,-h*p + p*h,-q*y + y*q,-p*x + x*p;
ideal I = ih + comm; 
ideal G = twostd(I);

// ih-8
ring r = 0,(h,p,q,x,y,z),Dp;
ring R = freeAlgebra(r,8);
ideal ih = p*q-h*h, q*p-h*h, x*x+(h-q)*x-h*q, y*y+(h-q)*y-h*q, z*z+(h-q)*z-h*q, z*x - x*z, y*x*y-x*y*x, z*y*z-y*z*y;
ideal comm = -p*z + z*p,-q*x + x*q,-q*z + z*q,-h*x + x*h,-p*y + y*p,-h*q + q*h,-h*y + y*h,-h*z + z*h,-h*p + p*h,-q*y + y*q,-p*x + x*p;
ideal I = ih + comm; 
ideal G = twostd(I);

//#################################################

// heis-8
ring r = 0,(h,c,z,a,b,x,y),Dp;
ring R = freeAlgebra(r,8);
ideal heis = h**3*z - x*y*a*b,z*c-h*h,x*a-h*h,a*x-h*h,y*b-h*h,b*y-h*h;
ideal comm = -b*z + z*b,-b*c + c*b,-x*z + z*x,-a*z + z*a,-y*z + z*y,-h*z + z*h,-c*x + x*c,-c*y + y*c,-h*c + c*h,-h*b + b*h,-h*x + x*h,-h*y + y*h,-h*a + a*h,-a*c + c*a;
ideal I = heis + comm; 
ideal G = twostd(I);

// heis-9
ring r = 0,(h,c,z,a,b,x,y),Dp;
ring R = freeAlgebra(r,9);
ideal heis = h**3*z - x*y*a*b,z*c-h*h,x*a-h*h,a*x-h*h,y*b-h*h,b*y-h*h;
ideal comm = -b*z + z*b,-b*c + c*b,-x*z + z*x,-a*z + z*a,-y*z + z*y,-h*z + z*h,-c*x + x*c,-c*y + y*c,-h*c + c*h,-h*b + b*h,-h*x + x*h,-h*y + y*h,-h*a + a*h,-a*c + c*a;
ideal I = heis + comm; 
ideal G = twostd(I);




