|
3.9 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 )
Type:
- matrix
Purpose:
- computes the left transformation matrix which expresses the generators of a
submodule in terms of the generators of a module. Uses different
algorithms for modules which are, resp. are not, represented by a
standard basis.
More precisely, if m is the
module (or ideal), sm the submodule (or ideal),
and T the transformation matrix returned by
lift, then transpose(matrix(sm)) = transpose(T)*transpose(m)
and module(transpose(sm)) = module(transpose(T)*transpose(m))
(resp. ideal(sm) = ideal(transpose(T)*transpose(m)) ).
U is always the unity matrix 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.
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;
ncalgebra(1,@D); // parametric U(sl_2)
ideal i = e,h-a;
i = std(i);
i;
==> i[1]=h+(-a)
==> i[2]=e
poly Z = 4*e*f+h^2-2*h; // central element
Z = Z - NF(Z,i); //cen. character
ideal j = std(Z);
matrix T = lift(i,j);
print(T);
==> h+(a+2),
==> 4*f
ideal tj = ideal(transpose(T)*transpose(matrix(i)));
std(ideal(j-tj)); // test
==> _[1]=0
|
See
ideal;
liftstd;
module.
|