In order to compute the cohomology of a group with respect to a G-module M, it is first necessary to construct a data structure known as a cohomology module.
Given a group G and a G-module M with acting group G this function returns a cohomology module for the action of G. The group G may be a finite permutation group, a finite matrix group, a PC-group, or any finitely presented group. For the PC-group case, however, the PC-presentation of G must be conditioned. This can be achieved by first executing the statement G := ConditionedGroup(G);
Let G be a group which acts on a finitely-generated abelian group with invariants given by the sequence Q, and action described by T. The action T is given in the form of a sequence of d x d matrices over the integers, where d is the length of T, and T[i] defines the action of the i-th generator of G on the abelian group. The function returns a cohomology module for the action of G. The group G may be a finite permutation group, a finite matrix group, a PC-group or any finitely presented group. For the PC-group case, however, the PC-presentation of G must be conditioned. This can be achieved by first executing the statement G := ConditionedGroup(G);
> G := PSL(3, 2);
> Irrs := AbsolutelyIrreducibleModules(G, GF(2));
> Irrs;
[
GModule of dimension 1 over GF(2),
GModule of dimension 3 over GF(2),
GModule of dimension 3 over GF(2),
GModule of dimension 8 over GF(2)
]
> M := Irrs[2];
> CM := CohomologyModule(G, M);
> CM;
Cohomology Module
We construct a cohomology module for a group G acting on an elementary abelian subgroup N of G.
> G := ASL(3,5);
> ChiefFactors(G);
G
| A(2, 5) = L(3, 5)
*
| Cyclic(5) (3 copies)
1
> N := pCore(G,5);
> M := GModule(G,N);
> CM := CohomologyModule(G,M);
Now we construct a cohomology module for a cyclic group of order 4 acting on an abelian group with invariants [2, 4].
> G:=CyclicGroup(4); > mats := [ Matrix(Integers(),2,2,[1,2,1,3]) ]; > invar := [2,4]; > CM := CohomologyModule(G,invar,mats); > CM; Cohomology Module
Now we construct a cohomology module for an infinite FP-group.
> G := Group<x,y | x^2,y^3,(x*y)^7 >;
> L := LowIndexSubgroups(G, <7,7>);
> L := LowIndexSubgroups(G, <7,7>);
> Index(G,L[1]);
7
> Q := CosetImage(G,L[1]);
> PM := PermutationModule(Q, Integers());
> cons := Constituents(PM);
> cons;
[
GModule of dimension 1 over Integer Ring,
GModule of dimension 6 over Integer Ring
]
> mats := ActionGenerators(cons[2]);
> M := GModule(G,mats);
> CM := CohomologyModule(G,M);
For a permutation group G acting on some abelian group A through M, compute the cohomology module. M has to be either a map from G into the endomorphisms of A, or a sequence of endomorphisms of A, one for each of the generators of G.