### 7.3.12 liftstd (plural)

`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 `)`
`Type:`
  ideal or module
`Purpose:`
  returns a left Groebner basis of an ideal or module and a left transformation matrix from the given ideal, resp. module, to the Groebner basis.
  That is, if `m` is the ideal or module, `sm` is the left Groebner basis of `m`, returned by `liftstd`, and `T` is a left transformation matrix, then `sm=module(transpose(transpose(T)*transpose(matrix(m))))`.
  If `m` is an ideal, `sm=ideal(transpose(T)*transpose(matrix(m)))`.
  In an optional third argument the left syzygy module will be returned.
`Example:`

      LIB "ncalg.lib";
      def A = makeUsl2();
      setring A;  // this algebra is U(sl_2)
      ideal i = e2,f;
      option(redSB);
      option(redTail);
      matrix T;
      ideal j = liftstd(i,T);
      // the Groebner basis in a compact form:
      print(matrix(j));
      ==> f,2h2+2h,2eh+2e,e2
      print(T);  // the transformation matrix
      ==> 0,f2,         -f,1,
      ==> 1,-e2f+4eh+8e,e2,0
      ideal tj = ideal(transpose(T)*transpose(matrix(i)));
      size(ideal(matrix(j)-matrix(tj))); // test for 0
      ==> 0
      module S; ideal k = liftstd(i,T,S); // the third argument
      S = std(S); print(S); // the syzygy module
      ==> -ef-2h+6,-f3,
      ==> e3,      e2f2-6efh-6ef+6h2+18h+12

See ideal (plural); ring (plural); std (plural).

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