|  |  7.3.11 lift (plural) 
See
 ideal (plural);
 liftstd (plural);
 module (plural).Syntax:lift (ideal_expression,subideal_expression)
 lift (module_expression,submodule_expression)Type:matrix
Purpose:computes the (left) transformation matrix which expresses the (left) generators of a
submodule in terms of the (left) generators of a module.  
Uses different algorithms for modules which are (resp. are not) represented by 
Groebner bases.
More precisely, if
 mis the module,smthe submodule, andTthe
transformation matrix returned by lift, thentranspose(matrix(sm)) = transpose(T)*transpose(matrix(m)).
If
 mandsmare ideals,ideal(sm) = ideal(transpose(T)*transpose(matrix(m))).Note:Gives a warning if smis not a submodule.Example:|  | ring r = (0,a),(e,f,h),(c,dp);
matrix D[3][3];
D[1,2]=-h;  D[1,3]=2*e;  D[2,3]=-2*f;
def R=nc_algebra(1,D); // this algebra is a parametric U(sl_2)
setring R;
ideal I = e,h-a; // consider this parametric ideal
I = std(I); // left Groebner basis
print(matrix(I)); // print a compact presentation of I
==> h+(-a),e
poly Z = 4*e*f+h^2-2*h; // a central element in R
Z = Z - NF(Z,I); // a central character
ideal j = std(Z);
j;
==> j[1]=4*ef+h2-2*h+(-a2-2a)
matrix T = lift(I,j);
print(T);
==> h+(a+2),
==> 4*f     
ideal tj = ideal(transpose(T)*transpose(matrix(I)));
size(ideal(matrix(j)-matrix(tj))); // test for 0
==> 0
 | 
 
 |