|  |  5.1.81 liftstd 
See
 division;
 ideal;
 lift;
 matrix;
 option;
 ring;
 std;
 syz.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)
 liftstd (ideal_expression,matrix_name,module_name,string_expression)
 liftstd (module_expression,matrix_name,module_name,string_expression)Type:ideal or module
Purpose:returns a standard basis of an ideal or module and the transformation
matrix from the given ideal, resp. module, to the standard basis.
That is, if
 mis the ideal or module,smthe standard
basis returned byliftstd, andTthe transformation matrix
thenmatrix(sm)=matrix(m)*Tandsm=ideal(matrix(m)*T),
resp.sm=module(matrix(m)*T).In an optional third argument the syzygy module will be returned.
if working in a quotient ring, then
 matrix(sm)=reduce(matrix(m)*T,0)andsm=reduce(ideal(matrix(m)*T),0).An optional 4th argument specifies the Groebner base algorithm to use.
Possible values are
 "std"and"slimgb".Example:|  |   ring R=0,(x,y,z),dp;
  poly f=x3+y7+z2+xyz;
  ideal i=jacob(f);
  matrix T;
  ideal sm=liftstd(i,T);
  sm;
==> sm[1]=xy+2z
==> sm[2]=3x2+yz
==> sm[3]=yz2+3048192z3
==> sm[4]=3024xz2-yz2
==> sm[5]=y2z-6xz
==> sm[6]=3097158156288z4+2016z3
==> sm[7]=7y6+xz
  print(T);
==> 0,1,T[1,3],   T[1,4],y,  T[1,6],0,
==> 0,0,-3x+3024z,3x,    0,  T[2,6],1,
==> 1,0,T[3,3],   T[3,4],-3x,T[3,6],0 
  matrix(sm)-matrix(i)*T;
==> _[1,1]=0
==> _[1,2]=0
==> _[1,3]=0
==> _[1,4]=0
==> _[1,5]=0
==> _[1,6]=0
==> _[1,7]=0
  module s;
  sm=liftstd(i,T,s);
  print(s);
==> -xy-2z,0,     s[1,3],s[1,4],s[1,5],s[1,6],
==> 0,     -xy-2z,s[2,3],s[2,4],s[2,5],s[2,6],
==> 3x2+yz,7y6+xz,s[3,3],s[3,4],s[3,5],s[3,6] 
 | 
 |