Singular Manual: lift

  | ### 5.1.80 lift `Syntax:` `lift (` ideal_expression`,` subideal_expression `)` `lift (` module_expression`,` submodule_expression `)` `lift (` ideal_expression`,` subideal_expression`,` matrix_name `)` `lift (` module_expression`,` submodule_expression`,` matrix_name `)` `lift (` ideal_expression`,` subideal_expression`,` matrix_name`,` string_expression `)` `lift (` module_expression`,` submodule_expression`,` matrix_name`,` string_expression `)` `Type:` matrix `Purpose:` computes the transformation matrix which expresses the generators of a submodule in terms of the generators of a module. Depending on which algorithm is used, modules are represented by a standard basis, or not. More precisely, if `m` is the module (or ideal), `sm` the submodule (or ideal), and `T` the transformation matrix returned by lift, then `matrix(sm)*U = matrix(m)*T` and `module(sm*U) = module(matrix(m)*T)` (resp. `ideal(sm) = ideal(matrix(m)*T)`), where `U` is a diagonal matrix of units. `U` is always the identity if the basering is a polynomial ring (not power series ring). `U` is stored in the optional third argument. `Note:` Gives a warning if `sm` is not a submodule. An optional 4th argument specifies the Groebner base algorithm to use. Possible values are `"std"` and `"slimgb"`. `Example:`
        ring r=32003,(x,y,z),(dp,C);
        ideal m=3x2+yz,7y6+2x2y+5xz;
        poly f=y7+x3+xyz+z2;
        ideal i=jacob(f);
        matrix T=lift(i,m);
        matrix(m)-matrix(i)*T;
      ==> _[1,1]=0
      ==> _[1,2]=0
See division; ideal; liftstd; module; std; syz.

User manual for Singular version 4.4.1, 2025, generated by texi2html.