|  |  5.1.80 lift 
See
 division;
 ideal;
 liftstd;
 module;
 std;
 syz.Syntax:lift (ideal_expression,subideal_expression)
 lift (module_expression,submodule_expression)
 lift (ideal_expression,subideal_expression,matrix_name)
 lift (module_expression,submodule_expression,matrix_name)
 lift (ideal_expression,subideal_expression,matrix_name,string_expression)
 lift (module_expression,submodule_expression,matrix_name,string_expression)Type:matrix
Purpose:computes the transformation matrix which expresses the generators of a
submodule in terms of the generators of a module. Depending on which algorithm is used,
modules are represented by a standard basis, or not.
More precisely, if
 mis the
module (or ideal),smthe submodule (or ideal),
andTthe transformation matrix returned by
lift, thenmatrix(sm)*U = matrix(m)*Tandmodule(sm*U) = module(matrix(m)*T)(resp.ideal(sm) = ideal(matrix(m)*T)),
whereUis a diagonal matrix of units.
 Uis always the identity if the basering is a polynomial ring
(not power series ring).Uis stored in the optional third argument.Note:Gives a warning if smis not a submodule.An optional 4th argument specifies the Groebner base algorithm to use.
Possible values are
 "std"and"slimgb".Example:|  |   ring r=32003,(x,y,z),(dp,C);
  ideal m=3x2+yz,7y6+2x2y+5xz;
  poly f=y7+x3+xyz+z2;
  ideal i=jacob(f);
  matrix T=lift(i,m);
  matrix(m)-matrix(i)*T;
==> _[1,1]=0
==> _[1,2]=0
 | 
 |