|
D.4.7.6 Ext
Procedure from library homolog.lib (see homolog_lib).
- Usage:
- Ext(v,M,N[,any]); v int resp. intvec, M,N modules
- Compute:
- A presentation of Ext^k(M',N'); for k=v[1],v[2],... where
M'=coker(M) and N'=coker(N). Let
| 0 <-- M' <-- F0 <-M-- F1 <-- F2 <--... ,
0 <-- N' <-- G0 <--N- G1
| be a free resolution of M', resp. a presentation of N'. Consider
the commutative diagram
| 0 0 0
|^ |^ |^
--> Hom(Fk-1,N') -Ak-> Hom(Fk,N') -Ak+1-> Hom(Fk+1,N')
|^ |^ |^
--> Hom(Fk-1,G0) -Ak-> Hom(Fk,G0) -Ak+1-> Hom(Fk+1,G0)
|^ |^
|C |B
Hom(Fk,G1) ------> Hom(Fk+1,G1)
(Ak,Ak+1 induced by M and B,C induced by N).
| Let K=modulo(Ak+1,B), J=module(Ak)+module(C) and Ext=modulo(K,J),
then we have exact sequences
| R^p --K-> Hom(Fk,G0) --Ak+1-> Hom(Fk+1,G0)/im(B),
R^q -Ext-> R^p --K-> Hom(Fk,G0)/(im(Ak)+im(C)).
| Hence, Ext presents Ext^k(M',N').
- Return:
- - module Ext, a presentation of Ext^k(M',N') if v is of type int
- a list of Ext^k (k=v[1],v[2],...) if v is of type intvec.
- In case of a third argument of any type return a list l:
| l[1] = module Ext/list of Ext^k
l[2] = SB of Ext/list of SB of Ext^k
l[3] = matrix/list of matrices, each representing a kbase of Ext^k
(if finite dimensional)
|
- Display:
- printlevel >=0: dimension, vdim of Ext^k for each k (default).
printlevel >=1: matrices Ak, Ak+1 and kbase of Ext^k in Hom(Fk,G0)
(if finite dimensional)
- Note:
- In order to compute Ext^k(M,N) use the command Ext(k,syz(M),syz(N));
or: list P=mres(M,2); list Q=mres(N,2); Ext(k,P[2],Q[2]);
Example:
|