|
[____]
Complexes of modules are a fundamental object in homological algebra.
Magma supports the type ModCpx representing a complex of modules.
Conceptually, a complex is an infinite sequence of modules,
indexed by integers, with maps between successive modules
such that the composition of any two maps is zero. Complexes are
often written ... mapright(fn + 1) Mn mapright(fn) Mn - 1
mapright(fn - 1) Mn - 2 mapright(fn - 2) ... where the map fn has domain Mn and codomain Mn - 1.
The indices on the modules and maps decrease to the right.
In practice, Magma requires all but a finite number of the modules
and maps to be zero.
The homomorphism from Mn to Mn - 1 in the complex is the
nth boundary map of the complex. The homology of the complex
in degree n is the quotient of the kernel of the nth
boundary map by the cokernel
of the boundary map of degree n - 1. Magma computes the homology
only if both boundary maps are defined.
A complex is said to be exact if the image of each map is
equal to the kernel of the next.
Currently, there are two types of modules over which complexes are supported:
- (a)
- Modules over a basic algebra A (see Chapter BASIC ALGEBRAS);
- (b)
- Modules over a multivariate polynomial ring over a field
(see Chapter MODULES OVER MULTIVARIATE RINGS and in particular the function
FreeResolution).
Most of the functions in this chapter work for either type of module
but exceptions are noted.
Given a list L of maps between successive A-modules create
the corresponding complex. The last term of the complex has
degree d. This function returns an error if the maps don't actually
form a complex.
Given a map f between A-modules M and N, form the complex
consisting of the two term complex whose only map is f. The term
N is in degree d.
Given a basic algebra A and integers m and n such that m > n,
create a complex of modules over the basic algebra A, starting with
a term of degree m and ending with a term of degree n, where
all the modules and maps are zero.
Dual(C, n) : ModCpx, RngIntElt -> ModCpx
The dual of the complex C over a basic algebra A as a complex over the
opposite algebra of A. If an integer n is supplied
then the last term of the dual complex is in degree n. Otherwise, the
last term of the dual complex is in degree 0.
Let C be a complex of A-modules, Mm, ..., Mn. A subcomplex
S of C is a complex whose terms are submodules of the terms of C
and whose maps are the restrictions of the maps of C to the terms
of S.
sub< C | L > : ModCpx, List -> ModCpx, MapChn
Given a complex C and a sequence Q
of submodules of the terms of C, returns
the smallest subcomplex whose terms contain the modules in Q. The
input can also be a list L of sequences of elements of the
successive terms of C. In this case the submodules generated by
the elements is computed. The function also returns the chain map
giving the inclusion of the subcomplex in C.
Given a chain complex C over a basic algebra in degrees a to
a - t + 1 and a sequence Q = [q1, ..., qt] of natural numbers, the
function creates the minimal chain complex whose term in degree a - i + 1
is a submodule generated by qi random elements of the term in degree
a - i + 1 of C. The function also returns the chain map that is the
inclusion of the subcomplex into C.
quo< C | S > : ModCpx, SeqEnum[ModAlg] -> ModCpx
quo< C | L > : ModCpx, List -> ModCpx
Given a complex C and a subcomplex D of C,
returns the quotient complex C/D together with the natural quotient
map. If given as a sequence S of submodules of the terms of C
or a list L of sequences of elements of the terms of C, then the
submodule generated by S or L is created and the quotient computed.
The function also returns the chain map of C on the quotient.
Returns the first and last degrees of the defined terms of the
complex C.
Given a complex C over a basic algebra A, this function
returns the algebra A.
Returns the boundary map of the complex C from the term of degree n
to the term of degree n - 1.
The list of boundary maps of the complex C.
Returns the list of the dimensions of the homology groups of the complex C.
Returns the dimension of the homology group of the complex C in degree n.
Returns the list of the dimensions of the terms of the complex C.
The module in the complex C in degree n.
The sequence of terms of the complex C.
Returns the direct sum of the complex C and the complex D.
HomologyOfChainComplex(C) : ModCpx -> SeqEnum
The sequence of homology groups of the complex C as a
sequence of modules.
Returns the homology group in degree n of the complex C,
as an A-module.
Returns the complex that consists of the terms of C with the right end
term (term of lowest degree) removed.
Returns the complex that consists of the terms of C with n terms removed
from the right end.
Returns the complex that consists of the terms of C with the left end
term (term of highest degree) removed.
Returns the complex that consists of the terms of C with n terms removed
from the left end.
Given the complex C in degrees r to s, returns the complex in shifted
degrees r + n to s + n. The integer n may be either positive or
negative. The maps in the complex are all multiplied by the scalar ( - 1)n.
Given the complex C, returns the shift of C so that the last term, the
term of lowest degree, is in degree 0.
Given two complexes C and D over the same basic algebra, such
that the end term of C coincides with the initial term of D,
form the complex that corresponds to the concatenation of C and
D (as sequences of maps) This function checks that the resulting
sequence of maps forms a complex. The degrees of complex D remain
unchanged while the degrees of the terms in complex C are changed
to fit.
The splice of the complex C with the complex D along the map f from the
last term of C to the first term of D. The degree of the last term of
the splice is the same as the degree of the last term of the complex D.
The following are elementary operations related to extending complexes
Given a complex C of modules over a basic algebra, returns the complex of
length one greater that is obtained by adjoining the inclusion map from the
kernel of the boundary map in highest degree to the term of highest degree
in C.
Given a complex C of modules over a basic algebra, returns the complex of
length one greater that is obtained by adjoining the quotient map to the
cokernel of the boundary map of lowest degree from the term of lowest
degree in C.
Returns the left and right exact extensions of the complex C.
LeftZeroExtension(C, n) : ModCpx, RngIntElt -> ModCpx
Given a complex C of modules over a basic algebra, returns the complex of
length one greater that is obtained by adjoining the zero map from the zero
module to the term of highest degree in the complex. If a natural number
n is included in the input then the operation is performed n times.
RightZeroExtension(C, n) : ModCpx, RngIntElt -> ModCpx
Given a complex C of modules over a basic algebra, returns the complex of
length one greater that is obtained by adjoining the zero map to the zero
module from the term of lowest degree in the complex. If a natural number
n is included in the input then the operation is performed n times.
Returns the left and right zero extensions of the complex C.
EqualizeDegrees(Q) : SeqEnum -> SeqEnum
Given complexes C and D over the same algebra, the function returns the
complexes obtained by taking zero extensions of C and D, if necessary, so
that both complexes have the same degrees. The input can also be given
as a sequence Q of complexes, in which case the function returns the
sequence of complexes obtained by taking zero extensions of the elements
of Q, if necessary, until all of the elements of the sequence have the
same degrees.
The two complexes, C and D, with zero extension sufficient that the first
and the shift by degree n of the second have the same degrees.
The following functions return a Boolean value.
Returns true if and only if the complex C is an exact sequence, i.e. the image
of each map in C is equal to the kernel of the succeeding map
(with the obvious exceptions of the first and last maps of
the complex).
If the complex has only two terms then this is true trivially.
Returns true if the complex C consists of a short exact sequence together with
other terms that are zero. The function returns also the degrees
of the complex of nonzero terms.
Returns true if and only if the complex C is an exact sequence in degree n, i.e.
the image of the map in C into the term of degree n is equal
to the kernel of the succeeding map.
Returns true if and only if the complex C is composed entirely of zero modules and maps.
Returns true if and only if the boundary map in degree n of the complex C
is the zero map.
Returns true if and only if the term in degree n
of the complex C is the zero object.
We construct the quiver algebra of a quiver with three nodes and three
arrows going from node 1 to node 2, from 2 to 1 and 2 to 3. The relation
is that (ab) 3a =0 where a is the first arrow and b is the second.
Then we construct projective and injective resolutions of the first
simple module.
> ff := GF(8);
> FA<e1,e2,e3,a,b,c> := FreeAlgebra(ff,6);
> rrr := [a*b*a*b*a*b*a];
> D := BasicAlgebra(FA,rrr,3,[<1,2>,<2,1>,<2,3>]);
> D;
Basic algebra of dimension 23 over GF(2^3)
Number of projective modules: 3
Number of generators: 6
> DimensionsOfProjectiveModules(D);
[ 10, 12, 1 ]
> DimensionsOfInjectiveModules(D);
[ 8, 7, 8 ]
Here is the opposite algebra:
> OD := OppositeAlgebra(D);
reverse trees
> OD;
Basic algebra of dimension 23 over GF(2^3)
Number of projective modules: 3
Number of generators: 6
> s1 := SimpleModule(D,1);
> P,mu := ProjectiveResolution(s1,7);
> P;
Basic algebra complex with terms of degree 7 down to 0
Dimensions of terms: 12 12 12 12 12 12 12 10
> Q,nu := InjectiveResolution(s1,7);
> Q;
Basic algebra complex with terms of degree 0 down to -7
Dimensions of terms: 8 7 0 0 0 0 0 0
Note that the projective and injective resolutions are complexes with
the appropriate augmentation and coaugmentation maps. First we form the
two term complex whose boundary map is the composition of the augmentation
and coaugmentation maps.
> theta := MapToMatrix(hom<Term(P,0)-> Term(Q,0)|mu*nu>);
> E := Complex(theta,0);
Then we splice all of this together.
> R := Splice(P,E);
> S := Splice(R,Q);
> S;
Basic algebra complex with terms of degree 8 down to -7
Dimensions of terms: 12 12 12 12 12 12 12 10 8 7 0 0 0 0 0 0
[Next][Prev] [Right] [____] [Up] [Index] [Root]
|