Introduction

The following collection of cohomology functions is designed to provide a flexible set of tools for computing with first and second cohomology groups of any type of finite group acting on any reasonable module, including a module defined by an action on an arbitrary finitely generated abelian group. First (but not second) cohomology groups can also be calculated for infinite groups defined by a finite presentation.

Zero-cocycles, one-cocycles and two-cocycles may be computed and identified. Extensions of modules by groups can be constructed as finitely presented groups, or as PC-groups when the acting group is a PC-group. It is also possible to compute a representative set of extensions of the module by the group each of which is distinct up to a group isomorphism fixing the module. These functions complement, but do not completely supplant, an older collection of functions pertaining to cohomology groups, Schur multiplicators and covering groups which apply to permutation groups (see Chapter PERMUTATION GROUPS on Permutation Groups).

The first cohomology group H1(G, M) is calculated as the nullspace of a certain matrix. The details can be found in Section 5 of [CCH01]. This immediately allows manipulation and identification of one-cocycles. The second cohomology group H2(G, M) is more difficult to compute. While it can also be found as the nullspace of a suitable matrix, this matrix can be uncomfortably large in big examples. For soluble groups defined by a PC-presentation, the matrix corresponds to solving the consistency equations for a PC-presentation of a general extension of the module by the group, which depends on the number of group generators rather than its order, and is manageable for quite large groups. For permutation and matrix groups G, the size of the matrix for which the nullspace is required is much larger, but can often be reduced to a reasonable size by using a base and strong generating set for G. In the case where only the dimension of H2(G, M) is required, and M is a module over a finite field of prime order p, then the calculation of this dimension can be reduced to the determination of H2(Q, M) for a suitable collection of p-subgroups Q of G. The latter calculation can be carried out efficiently using the PC-presentation approach (see [Hol85b] for details).

To use the new functions, the user must initially invoke the function CohomologyModule, which creates a special object for the group action corresponding to the module, and all subsequent (new) cohomology functions take this object as their first argument.

In the case of a finite permutation or matrix group G acting on a module M over a prime field, the dimension of H2(G, M) may be found much more quickly by executing CohomologicalDimension(CM, 2), where (CM) is the cohomology module for the action of G on M, rather than by invoking Dimension(CohomologyGroup(CM, 2)). However, the former call does not allow the possibility of subsequent calculations with two-cocycles or extensions.

The equivalent older function, CohomologicalDimension(G, M, 2); (for a permutation group G) is often faster still for small examples, but the new function will succeed on much larger examples than the old. For the convenience of the reader, some of these older functions are described in this section of the Handbook. For complete details about the older functions, see the section on cohomology in the chapter on Permutation Groups.

V2.28, 13 July 2023