          ### 7.3.11 lift (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 `m` is the module, `sm` the submodule, and `T` the transformation matrix returned by lift, then `transpose(matrix(sm)) = transpose(T)*transpose(matrix(m))`.

If `m` and `sm` are ideals, `ideal(sm) = ideal(transpose(T)*transpose(matrix(m)))`.

`Note:`
Gives a warning if `sm` is not a submodule.
`Example:`
 ```ring r = (0,a),(e,f,h),(c,dp); matrix D; 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=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 ```
See ideal (plural); liftstd (plural); module (plural).          User manual for Singular version 4.3.2, 2023, generated by texi2html.