|  |  7.8.3 liftstd (letterplace) 
See
 ideal;
 lift (letterplace);
 syz (letterplace);
 twostd (letterplace).Syntax:liftstd (ideal_expression,matrix_name)
 liftstd (module_expression,matrix_name)
 liftstd (ideal_expression,matrix_name,module_name)
 liftstd (module_expression,matrix_name,module_name)Type:ideal or module
Purpose:returns a Groebner basis of a two-sided ideal or a bimodule and
the transformation matrix from the given ideal, resp. module, to the
Groebner basis from the output.
That is, if
 mis the
module (or ideal),smthe submodule (or ideal),
andTthe transformation matrix returned by
lift, then the substitution of eachncgen(i)inTby them[i]delivers a matrix, sayN.
Thei-th generator ofsmis equal to the sum of
elements in thei-th column ofN.In an optional third argument the syzygy bimodule will be returned.
Example:|  | LIB "freegb.lib";
ring r = 0,(x,y),(c,Dp);
ring R = freeAlgebra(r, 8, 2);
ideal I = x*y*x + 1;
matrix T; module S;
ideal SI = liftstd(I,T,S);
print(matrix(SI));
==> x*y-y*x,y*x*x+1
print(matrix(testLift(I,T))); // test for the result of lift
==> x*y-y*x,y*x*x+1
S; // the bisyzygy module of I
==> S[1]=[x*y*ncgen(1)*x*y+y*x*x*y*ncgen(1)-y*x*ncgen(1)*y*x-ncgen(1)*y*x*x*y\
   +y*ncgen(1)-ncgen(1)*y]
==> S[2]=[x*x*y*ncgen(1)*x-x*ncgen(1)*y*x*x-x*ncgen(1)+ncgen(1)*x]
==> S[3]=[x*y*ncgen(1)*x*x*y+y*x*x*x*y*ncgen(1)-y*x*x*ncgen(1)*y*x-ncgen(1)*y\
   *x*x*x*y+x*y*ncgen(1)+y*x*ncgen(1)-ncgen(1)*x*y-ncgen(1)*y*x]
==> S[4]=[x*y*x*y*ncgen(1)*x-ncgen(1)*y*x*y*x*x+y*ncgen(1)*x-ncgen(1)*y*x]
testSyz(I,S);
==> _[1]=0
==> _[2]=0
==> _[3]=0
==> _[4]=0
 | 
 
 |