|
7.8.3 liftstd (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 m is the
module (or ideal), sm the submodule (or ideal),
and T the transformation matrix returned by
lift, then the substitution of each ncgen(i) in
T by the m[i] delivers a matrix, say N .
The i -th generator of sm is equal to the sum of
elements in the i -th column of N .
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
|
See
ideal;
lift (letterplace);
syz (letterplace);
twostd (letterplace).
|