|
D.4.3.3 Ext_R
Procedure from library homolog.lib (see homolog_lib).
- Usage:
- Ext_R(v,M[,p]); v int resp. intvec , M module, p int
- Compute:
| A presentation of Ext^k(M',R); for k=v[1],v[2],..., M'=coker(M).
Let ...--> F2 --> F1 --M-> F0-->M'-->0
be a free resolution of M'. If
0 <-- F0* <-A1-- F1* <-A2-- F2* <-A3--...
denotes the dual sequence, with Fi*=Hom(Fi,R),
then Ext^k = ker(Ak)/im(Ak+1) is presented as in the following
exact sequences:
Fk-1* <-Ak-- Fk* <-syz(Ak)-- R^p
Fk*/im(Ak+1) <-syz(Ak)-- R^p <-Ext^k-- R^q
Hence Ext^k=modulo(syz(Ak),Ak+1) presents Ext^k(M',R).
|
- Return:
| Ext^k, of type module, a presentation of Ext^k(M',R) if v is of type
int, resp. a list of Ext^k (k=v[1],v[2],...) if v is of type intvec.
In case of a third argument of type int return a list l:
l[1] = module Ext^k resp. list of Ext^k
l[2] = SB of Ext^k resp. list of SB of Ext^k
l[3] = matrix resp.list of matrices,
each representing kbase of Ext^k (if finite dimensional)
|
- Display:
- printlevel >=0: degree of Ext^k for each k (default)
printlevel >=1: Ak, Ak+1 and kbase of Ext^k in Fk*
- Note:
- In order to compute Ext^k(M,R) use the command Ext_R(k,syz(M));
or the 2 commands: list L=mres(M,2); Ext_R(k,L[2]);
Example:
| LIB "homolog.lib";
int p = printlevel;
printlevel = 1;
ring r = 0,(x,y,z),dp;
ideal i = x2y,y2z,z3x;
module E = Ext_R(1,i); //computes Ext^1(r/i,r)
==> // Computing Ext^1:
==> // Let 0<--coker(M)<--F0<--F1<--F2<--... be a resolution of M,
==> // then F1*-->F2* is given by:
==> x2, -yz,0,
==> 0, z3, -xy,
==> xz2,0, -y2
==> // and F0*-->F1* is given by:
==> y2z,
==> x2y,
==> xz3
==>
==> // degree of Ext^1:
==> // codimension = 4
==> // dimension = -1
==> // degree = 0
==>
is_zero(E);
==> 1
module m = [x],[0,y];
list L = Ext_R(2..3,m); //computes Ext^i(r^2/m,r), i=2,3
==> // Computing Ext^2:
==> // Let 0<--coker(M)<--F0<--F1<--F2<--... be a resolution of M,
==> // then F2*-->F3* is given by:
==> 1
==> // and F1*-->F2* is given by:
==> 0,0
==>
==> // degree of Ext^2:
==> // codimension = 4
==> // dimension = -1
==> // degree = 0
==>
==> // Computing Ext^3:
==> // Let 0<--coker(M)<--F0<--F1<--F2<--... be a resolution of M,
==> // then F3*-->F4* is given by:
==> 0
==> // and F2*-->F3* is given by:
==> 1
==>
==> // degree of Ext^3:
==> // codimension = 4
==> // dimension = -1
==> // degree = 0
==>
show(L);"";
==> // list, 2 element(s):
==> [1]:
==> // module, 1 generator(s)
==> [1]
==> [2]:
==> // module, 1 generator(s)
==> [1]
==>
qring R = std(x2+yz);
intvec v = 0,2,4;
printlevel = 2; //shows what is going on
ideal i = x,y,z; //computes Ext^i(r/(x,y,z),r/(x2+yz)), i=0,2,4
list L = Ext_R(v,i,1); //over the qring R=r/(x2+yz), std and kbase
==> // Computing Ext^0:
==> // Let 0<--coker(M)<--F0<--F1<--F2<--... be a resolution of M,
==> // then F0*-->F1* is given by:
==> z,
==> y,
==> x
==> // and F-1*-->F0* is given by:
==> 0
==>
==> // degree of Ext^0:
==> // codimension = 4
==> // dimension = -1
==> // degree = 0
==>
==> // columns of matrix are kbase of Ext^0 in F0*:
==> 0
==>
==> // Computing Ext^2:
==> // Let 0<--coker(M)<--F0<--F1<--F2<--... be a resolution of M,
==> // then F2*-->F3* is given by:
==> x,-y,z, 0,
==> z,x, 0, z,
==> 0,0, x, y,
==> 0,0, -z,x
==> // and F1*-->F2* is given by:
==> y,-z,0,
==> x,0, -z,
==> 0,x, -y,
==> 0,z, x
==>
==> // degree of Ext^2:
==> // codimension = 3
==> // dimension = 0
==> // degree = 1
==>
==> // columns of matrix are kbase of Ext^2 in F2*:
==> x,
==> -z,
==> 0,
==> 0
==>
==> // Computing Ext^4:
==> // Let 0<--coker(M)<--F0<--F1<--F2<--... be a resolution of M,
==> // then F4*-->F5* is given by:
==> x,-y,z, 0,
==> z,x, 0, z,
==> 0,0, x, y,
==> 0,0, -z,x
==> // and F3*-->F4* is given by:
==> x, y,-z,0,
==> -z,x,0, -z,
==> 0, 0,x, -y,
==> 0, 0,z, x
==>
==> // degree of Ext^4:
==> // codimension = 4
==> // dimension = -1
==> // degree = 0
==>
==> // columns of matrix are kbase of Ext^4 in F4*:
==> 0,
==> 0,
==> 0,
==> 0
==>
printlevel = p;
|
|