### 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 a Groebner basis.
  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[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);
      print(matrix(i)); // print a compact presentation of i
      ==> h+(-a),e
      poly Z = 4*e*f+h^2-2*h; // a central element
      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

See ideal (plural); liftstd (plural); module (plural).

User manual for Singular version 4-0-3, 2016, generated by texi2html.