|
7.7.18.0. allDoubleExt
Procedure from library purityfiltration.lib (see purityfiltration_lib).
- Usage:
- allDoubleExt(R), R matrix representing the left Module M=D^p/D^q(R^t) over a ring D
- Return:
- list T, double indexed, which include all double-ext modules
- Purpose:
- computes all double ext-modules
T[i][j] gives a representation matrix of ext^(j-1)(ext(i-1)(M,D))
Example:
| LIB "purityfiltration.lib";
ring D = 0,(x1,x2,x3,d1,d2,d3),dp;
def S=Weyl();
setring S;
matrix R[6][4]=
0,-2*d1,d3-2*d2-d1,-1,
0,d3-2*d1,2*d2-3*d1,1,
d3,-6*d1,-2*d2-5*d1,-1,
0,d2-d1,d2-d1,0,
d2,-d1,-d2-d1,0,
d1,-d1,-2*d1,0;
list T=allDoubleExt(transpose(R));
// left projective dimension of M=coker(R) is 3
// ext^i(ext^0(M,D)), i=0,1,2,3
print(T[1][1]);
==> 0,
==> d1,
==> d3,
==> -d2
print(T[1][2]);
==> d3,d3,d2,d1
print(T[1][3]);
==> 1
print(T[1][4]);
==> 1
// ext^i(ext^1(M,D)), i=0,1,2,3
print(T[2][1]);
==> 1
print(T[2][2]);
==> 1,0,0,
==> 0,1,0,
==> 0,0,1
print(T[2][3]);
==> 0,0,0,4*d2-d3,4*d1-d3,
==> 1,0,0,0, 0,
==> 0,1,0,0, 0,
==> 0,0,1,0, 0
print(T[2][4]);
==> d3,d2,d1
// ext^i(ext^2(M,D)), i=0,1,2,3 (all zero)
print(T[3][1]);
==> 1
print(T[3][2]);
==> 1
print(T[3][3]);
==> 1
print(T[3][4]);
==> 1
// ext^i(ext^3(M,D)), i=0,1,2,3 (all zero)
print(T[4][1]);
==> 1
print(T[4][2]);
==> 1
print(T[4][3]);
==> 1
print(T[4][4]);
==> 1
|
|