|  |  5.1.81 liftstd 
See
 division;
 ideal;
 lift;
 matrix;
 modulo;
 option;
 ring;
 std;
 syz.Syntax:liftstd (ideal_expression,matrix_name[,module_name][,string_expression][,ideal_expression])
 liftstd (module_expression,matrix_name[,module_name][,string_expression][,module_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
(sm=liftstd(m,T))
thenmatrix(sm)=matrix(m)*Tandsm=ideal(matrix(m)*T),
resp.sm=module(matrix(m)*T).
If working in a quotient ring, thenmatrix(sm)=reduce(matrix(m)*T,0)andsm=reduce(ideal(matrix(m)*T),0).If a module name is given as a third argument, the syzygy module will be returned.
(
 sm=liftstd(m,T,s)then additionalmatrix(m)*matrix(s)=0).An optional string argument specifies the Groebner base algorithm to use.
Possible values are
 "std"and"slimgb".Given an optional last argument (say
 n), the algorithm computes a standard bases of(m+n), syzygies ofmmodulon, and the transformation matrix only form.
These are relative transformation matrix resp. the
syzygy module ofnmodulom.
(For syzygies, the same can be achieved using  modulo.)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],xyz+2z2,  -14y5z+x2z,
==> 0,     -xy-2z,s[2,3],s[2,4],-3x2y-6xz,-3x3+2z2,  
==> 3x2+yz,7y6+xz,7y6+xz,s[3,4],21xy6-yz2,21x2y5-xz2 
  matrix(i)*matrix(s);
==> _[1,1]=0
==> _[1,2]=0
==> _[1,3]=0
==> _[1,4]=0
==> _[1,5]=0
==> _[1,6]=0
 | 
 |