|
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.
|