|
D.4.3.6 homology
Procedure from library homolog.lib (see homolog_lib).
- Usage:
- homology(A,B,M,N);
- Compute:
- Let M and N be submodules of R^m and R^n presenting M'=R^m/M, N'=R^n/N
(R=basering) and let A,B matrices inducing maps R^k--A-->R^m--B-->R^n.
Compute a presentation R^q --H-> R^m of the module
ker(B)/im(A) := ker(M'/im(A) --B--> N'/im(BM)+im(BA)).
If B induces a map M'--B-->N' (i.e BM=0) and if R^k--A-->M'--B-->N' is
a complex (i.e. BA=0) then ker(B)/im(A) is the homology of the complex
- Return:
- module H, a presentation of ker(B)/im(A)
- Note:
- homology returns a free module of rank m if ker(B)=im(A)
Example:
| LIB "homolog.lib";
ring r;
ideal id=maxideal(4);
qring qr=std(id);
module N=maxideal(3)*freemodule(2);
module M=maxideal(2)*freemodule(2);
module B=[2x,0],[x,y],[z2,y];
module A=M;
degree(std(homology(A,B,M,N)));"";
==> // codimension = 3
==> // dimension = 0
==> // degree = 19
==>
ring s=0,x,ds;
qring qs=std(x4);
module A=[x];module B=A;
module M=[x3];module N=M;
homology(A,B,M,N);
==> _[1]=gen(1)
|
|