|  |  7.3.12 liftstd (plural) 
See
 ideal (plural);
 ring (plural);
 std (plural).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 left Groebner basis of an ideal or module and a left transformation
matrix from the given ideal, resp. module, to the Groebner basis.
That is, if
 mis the ideal or module,smis the left Groebner
basis ofm, returned byliftstd, andTis a left transformation matrix,
thensm=module(transpose(transpose(T)*transpose(matrix(m)))).If
 mis an ideal,sm=ideal(transpose(T)*transpose(matrix(m))).In an optional third argument the left syzygy module will be returned.
Example:|  | LIB "ncalg.lib";
def A = makeUsl2();
setring A;  // this algebra is U(sl_2)
ideal i = e2,f;
option(redSB);
option(redTail);
matrix T;
ideal j = liftstd(i,T);
// the Groebner basis in a compact form:
print(matrix(j));
==> f,2h2+2h,2eh+2e,e2
print(T);  // the transformation matrix
==> 0,f2,         -f,1,
==> 1,-e2f+4eh+8e,e2,0 
ideal tj = ideal(transpose(T)*transpose(matrix(i)));
size(ideal(matrix(j)-matrix(tj))); // test for 0
==> 0
module S; ideal k = liftstd(i,T,S); // the third argument
S = std(S); print(S); // the syzygy module
==> -ef-2h+6,-f3,                    
==> e3,      e2f2-6efh-6ef+6h2+18h+12
 | 
 
 |