|
D.4.11.3 cupproduct
Procedure from library homolog.lib (see homolog_lib).
- Usage:
- cupproduct(M,N,P,p,q[,any]); M,N,P modules, p,q integers
- Compute:
- cup-product Ext^p(M',N') x Ext^q(N',P') ---> Ext^(p+q)(M',P'),
where M':=R^m/M, if M in R^m, R basering (i.e. M':=coker(matrix(M)))
- Assume:
- all Ext's are of finite dimension
- Return:
- - if called with 5 arguments: matrix of the associated linear map
Ext^p (tensor) Ext^q --> Ext^(p+q), i.e. the columns of <matrix>
present the coordinates of the cup products (b_i & c_j) with respect
to a kbase of Ext^p+q (b_i resp. c_j are the chosen bases of Ext^p,
resp. Ext^q).
- if called with 6 arguments: list L,
| L[1] = matrix (see above)
L[2] = matrix of kbase of Ext^p(M',N')
L[3] = matrix of kbase of Ext^q(N',P')
L[4] = matrix of kbase of Ext^p+q(N',P')
|
- Note:
- printlevel >=1; shows what is going on.
printlevel >=2; shows the result in another representation.
For computing the cupproduct of M,N itself, apply proc to syz(M),
syz(N)!
Example:
| LIB "homolog.lib";
int p = printlevel;
ring rr = 32003,(x,y,z),(dp,C);
ideal I = x4+y3+z2;
qring o = std(I);
module M = [x,y,0,z],[y2,-x3,z,0],[z,0,-y,-x3],[0,z,x,-y2];
print(cupproduct(M,M,M,1,3));
==> 1,0, 0, 0,0,0,0,0,0,0, 0,0,0,0,0,0,
==> 0,-1,0, 0,1,0,0,0,0,0, 0,0,0,0,0,0,
==> 0,0, -1,0,0,0,0,0,1,0, 0,0,0,0,0,0,
==> 0,0, 0, 1,0,0,1,0,0,-1,0,0,1,0,0,0
printlevel = 3;
list l = (cupproduct(M,M,M,1,3,"any"));
==> // vdim Ext(M,N) = 4
==> // kbase of Ext^p(M,N)
==> // - the columns present the kbase elements in Hom(F(p),G(0))
==> // - F(*),G(*) are free resolutions of M and N
==> 0, 0, 1, 0,
==> 0, y, 0, 0,
==> 1, 0, 0, 0,
==> 0, 0, 0, y,
==> 0, -1,0, 0,
==> 0, 0, x2,0,
==> 0, 0, 0, -x2,
==> 1, 0, 0, 0,
==> 0, 0, 0, -1,
==> -1,0, 0, 0,
==> 0, 1, 0, 0,
==> 0, 0, 1, 0,
==> -1,0, 0, 0,
==> 0, 0, 0, x2y,
==> 0, 0, x2,0,
==> 0, -y,0, 0
==> // vdim Ext(N,P) = 4
==> // kbase of Ext(N,P):
==> 0, 0, 1, 0,
==> 0, 0, 0, y,
==> 1, 0, 0, 0,
==> 0, -y,0, 0,
==> 0, -1,0, 0,
==> 1, 0, 0, 0,
==> 0, 0, 0, -x2,
==> 0, 0, -x2,0,
==> 0, 0, 0, -1,
==> 0, 0, 1, 0,
==> 0, 1, 0, 0,
==> 1, 0, 0, 0,
==> -1,0, 0, 0,
==> 0, -y,0, 0,
==> 0, 0, x2, 0,
==> 0, 0, 0, -x2y
==> // kbase of Ext^q(N,P)
==> // - the columns present the kbase elements in Hom(G(q),H(0))
==> // - G(*),H(*) are free resolutions of N and P
==> 0, 0, 1, 0,
==> 0, 0, 0, y,
==> 1, 0, 0, 0,
==> 0, -y,0, 0,
==> 0, -1,0, 0,
==> 1, 0, 0, 0,
==> 0, 0, 0, -x2,
==> 0, 0, -x2,0,
==> 0, 0, 0, -1,
==> 0, 0, 1, 0,
==> 0, 1, 0, 0,
==> 1, 0, 0, 0,
==> -1,0, 0, 0,
==> 0, -y,0, 0,
==> 0, 0, x2, 0,
==> 0, 0, 0, -x2y
==> // vdim Ext(M,P) = 4
==> // kbase of Ext^p+q(M,P)
==> // - the columns present the kbase elements in Hom(F(p+q),H(0))
==> // - F(*),H(*) are free resolutions of M and P
==> 0, 0, 1, 0,
==> 0, 0, 0, y,
==> 1, 0, 0, 0,
==> 0, -y,0, 0,
==> 0, -1,0, 0,
==> 1, 0, 0, 0,
==> 0, 0, 0, -x2,
==> 0, 0, -x2,0,
==> 0, 0, 0, -1,
==> 0, 0, 1, 0,
==> 0, 1, 0, 0,
==> 1, 0, 0, 0,
==> -1,0, 0, 0,
==> 0, -y,0, 0,
==> 0, 0, x2, 0,
==> 0, 0, 0, -x2y
==> // lifting of kbase of Ext^p(M,N)
==> // - the columns present liftings of kbase elements in Hom(F(p+q),G(q))
==> 1,0, 0, 0,
==> 0,-y,0, 0,
==> 0,0, x2,0,
==> 0,0, 0, x2y,
==> 0,1, 0, 0,
==> 1,0, 0, 0,
==> 0,0, 0, -x2,
==> 0,0, x2,0,
==> 0,0, -1,0,
==> 0,0, 0, y,
==> 1,0, 0, 0,
==> 0,y, 0, 0,
==> 0,0, 0, -1,
==> 0,0, -1,0,
==> 0,-1,0, 0,
==> 1,0, 0, 0
==> // matrix of cup-products (in Ext^p+q)
==> 0, 0, -1, 0, 0, 0, 0, y, 1, 0, 0, 0, 0, y, 0, 0,
==> 0, 0, 0, y, 0, 0, y, 0, 0, -y, 0, 0, y, 0, 0, 0,
==> 1, 0, 0, 0, 0, y, 0, 0, 0, 0, x2, 0, 0, 0, 0, -x2y,
==> 0, y, 0, 0, -y,0, 0, 0, 0, 0, 0, x2y,0, 0, x2y,0,
==> 0, 1, 0, 0, -1,0, 0, 0, 0, 0, 0, x2, 0, 0, x2, 0,
==> 1, 0, 0, 0, 0, y, 0, 0, 0, 0, x2, 0, 0, 0, 0, -x2y,
==> 0, 0, 0, -x2, 0, 0, -x2, 0, 0, x2, 0, 0, -x2, 0, 0, 0,
==> 0, 0, x2, 0, 0, 0, 0, -x2y,-x2,0, 0, 0, 0, -x2y,0, 0,
==> 0, 0, 0, -1, 0, 0, -1, 0, 0, 1, 0, 0, -1, 0, 0, 0,
==> 0, 0, -1, 0, 0, 0, 0, y, 1, 0, 0, 0, 0, y, 0, 0,
==> 0, -1,0, 0, 1, 0, 0, 0, 0, 0, 0, -x2,0, 0, -x2,0,
==> 1, 0, 0, 0, 0, y, 0, 0, 0, 0, x2, 0, 0, 0, 0, -x2y,
==> -1,0, 0, 0, 0, -y,0, 0, 0, 0, -x2,0, 0, 0, 0, x2y,
==> 0, y, 0, 0, -y,0, 0, 0, 0, 0, 0, x2y,0, 0, x2y,0,
==> 0, 0, -x2,0, 0, 0, 0, x2y, x2, 0, 0, 0, 0, x2y, 0, 0,
==> 0, 0, 0, -x2y,0, 0, -x2y,0, 0, x2y,0, 0, -x2y,0, 0, 0
==> ////// end level 2 //////
==> // the associated matrices of the bilinear mapping 'cup'
==> // corresponding to the kbase elements of Ext^p+q(M,P) are shown,
==> // i.e. the rows of the final matrix are written as matrix of
==> // a bilinear form on Ext^p x Ext^q
==> //----component 1:
==> 1,0,0,0,
==> 0,0,0,0,
==> 0,0,0,0,
==> 0,0,0,0
==> //----component 2:
==> 0,-1,0,0,
==> 1,0, 0,0,
==> 0,0, 0,0,
==> 0,0, 0,0
==> //----component 3:
==> 0,0,-1,0,
==> 0,0,0, 0,
==> 1,0,0, 0,
==> 0,0,0, 0
==> //----component 4:
==> 0,0, 0,1,
==> 0,0, 1,0,
==> 0,-1,0,0,
==> 1,0, 0,0
==> ////// end level 3 //////
show(l[1]);show(l[2]);
==> // matrix, 4x16
==> 1,0, 0, 0,0,0,0,0,0,0, 0,0,0,0,0,0,
==> 0,-1,0, 0,1,0,0,0,0,0, 0,0,0,0,0,0,
==> 0,0, -1,0,0,0,0,0,1,0, 0,0,0,0,0,0,
==> 0,0, 0, 1,0,0,1,0,0,-1,0,0,1,0,0,0
==> // matrix, 16x4
==> 0, 0, 1, 0,
==> 0, y, 0, 0,
==> 1, 0, 0, 0,
==> 0, 0, 0, y,
==> 0, -1,0, 0,
==> 0, 0, x2,0,
==> 0, 0, 0, -x2,
==> 1, 0, 0, 0,
==> 0, 0, 0, -1,
==> -1,0, 0, 0,
==> 0, 1, 0, 0,
==> 0, 0, 1, 0,
==> -1,0, 0, 0,
==> 0, 0, 0, x2y,
==> 0, 0, x2,0,
==> 0, -y,0, 0
printlevel = p;
|
|