|
D.6.5.3 lift_kbase
Procedure from library deform.lib (see deform_lib).
- Usage:
- lift_kbase(N,M); N,M=poly/ideal/vector/module
- Return:
- matrix A, coefficient matrix expressing N as linear combination of
k-basis of M. Let the k-basis have k elements and size(N)=c columns.
Then A satisfies:
matrix(reduce(N,std(M)),k,c) = matrix(kbase(std(M)))*A
- Assume:
- dim(M)=0 and the monomial ordering is a well ordering or the last
block of the ordering is c or C
Example:
| LIB "deform.lib";
ring R=0,(x,y),ds;
module M=[x2,xy],[y2,xy],[0,xx],[0,yy];
module N=[x3+xy,x],[x,x+y2];
print(M);
==> x2,y2,0, 0,
==> xy,xy,x2,y2
module kb=kbase(std(M));
print(kb);
==> y2,xy,y,x,1,0,0,0,
==> 0, 0, 0,0,0,y,x,1
print(N);
==> xy+x3,x,
==> x, x+y2
matrix A=lift_kbase(N,M);
print(A);
==> 0,0,
==> 1,0,
==> 0,0,
==> 0,1,
==> 0,0,
==> 0,0,
==> 1,1,
==> 0,0
matrix(reduce(N,std(M)),nrows(kb),ncols(A)) - matrix(kbase(std(M)))*A;
==> _[1,1]=0
==> _[1,2]=0
==> _[2,1]=0
==> _[2,2]=0
|
|