Singular Manual: liftstd (plural)

  | ### 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-1-3p2, 2020, generated by texi2html.