Second cohomology group for trivial group action of direct product of Z4 and Z4 on Z2

Description of the group
This group is the second cohomology group for trivial group action of the homocyclic group direct product of Z4 and Z4 on cyclic group:Z2. In other words, it is the group:

$$H^2(G,A)$$

where $$G \cong \mathbb{Z}_4 \times \mathbb{Z}_4$$ and $$A \cong \mathbb{Z}_2$$.

This group is isomorphic to elementary abelian group:E8.

Under the action of the automorphism group of the acting group
The automorphism group of the acting group permutes transitively all the elements of a given cohomology class type. In particular, the trivial cohomology class and the class giving SmallGroup(32,2) are fixed points, whereas the classes giving direct product of Z8 and Z4 form one orbit and the cohomology classes giving semidirect product of Z8 and Z4 of M-type give another orbit.

General background
We know from the general theory that there is a natural short exact sequence:

$$0 \to \operatorname{Ext}^1_{\mathbb{Z}}(G,A) \to H^2(G;A) \stackrel{\operatorname{Skew}}{\to} \operatorname{Hom}(\bigwedge^2G,A) \to 0$$

where the image of $$\operatorname{Ext}^1$$ is $$H^2_{sym}(G;A)$$, i.e., the group of cohomology classes represented by symmetric 2-cocycles (and corresponding to the abelian group extensions). We also know, again from the general theory, that the short exact sequence above splits, i.e., $$H^2_{sym}(G;A)$$ has a complement inside $$H^2$$. However, there need not in general be a natural or even an automorphism-invariant choice of splitting.

In this case
In terms of the general background, one way of putting this is that the skew map:

$$H^2(G;A) \stackrel{\operatorname{Skew}}{\to} \operatorname{Hom}(\bigwedge^2G,A)$$

has a section (i.e., a reverse map):

$$\operatorname{Hom}(\bigwedge^2G,A) \to H^2(G;A)$$

whose image is $$H^2_{CP}(G;A)$$ of cohomology classes represented by cyclicity-preserving 2-cocycles (see cyclicity-preserving subgroup of second cohomology group for trivial group action). Thus, the natural short exact sequence splits, and we get an internal direct sum decomposition:

$$H^2(G;A) = H^2_{sym}(G;A) + H^2_{CP}(G;A)$$

A pictorial description of this is as follows. Here, each column is a coset of $$H^2_{CP}(G,A)$$ and each row is a coset of $$H^2_{sym}(G,A)$$. The top left entry is the identity element, hence the top row corresponds to abelian group extensions and the left column corresponds to cyclicity-preserving 2-cocycles.

Generalized Baer Lie rings
The direct sum decomposition (discussed in the preceding section):

$$H^2(G;A) = H^2_{sym}(G;A) + H^2_{CP}(G;A)$$

gives rise to some examples of the cocycle halving generalization of Baer correspondence. For any group extension arising as an element of $$H^2(G;A)$$, the additive group of its Lie ring arises as the group extension corresponding to the projection onto $$H^2_{sym}(G;A)$$, and the Lie bracket coincides with the group commutator.

In the description below, the additive group of the Lie ring of a given group is the unique abelian group in the column corresponding to that group.

Thus, we have two correspondences emerging:

Construction of the cohomology group
The cohomology group can be constucted using the GAP functions DirectProduct, CyclicGroup, TwoCohomology, TrivialGModule, GF.

gap> G := DirectProduct(CyclicGroup(4),CyclicGroup(4));; gap> A := TrivialGModule(G,GF(2));; gap> T := TwoCohomology(G,A); rec( group := , module := rec( field := GF(2), isMTXModule := true, dimension := 1, generators := [ , , ,  ] ), collector := rec( relators := [ [ [ 2, 1 ] ], [ [ 2, 1 ], 0 ], [ [ 3, 1 ], [ 3, 1 ], [ 4, 1 ] ], [ [ 4, 1 ], [ 4, 1 ], [ 4, 1 ], 0 ] ], orders := [ 2, 2, 2, 2 ], wstack := [ [ 2, 1 ], [ 2, 1 ] ], estack := [ ], pstack := [ 3, 3 ], cstack := [ 1, 1 ], mstack := [ 0, 0 ], list := [ 1, 1, 0, 0 ], module := [ , , ,  ], mone := , mzero := , avoid := [ ], unavoidable := [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ] ), cohom :=  -> ( GF(2)^3 )>, presentation := rec( group := , relators := [ f1^2*f2^-1, f1^-1*f2*f1*f2^-1, f2^2, f1^-1*f3*f1*f3^-1, f2^-1*f3*f2*f3^-1, f3^2*f4^-1, f1^-1*f4*f1*f4^-1, f2^-1*f4*f2*f4^-1, f3^-1*f4*f3*f4^-1, f4^2 ] ) )

Construction of extensions
The extensions can be constructed using the additional command Extensions.

gap> G := DirectProduct(CyclicGroup(4),CyclicGroup(4));; gap> A := TrivialGModule(G,GF(2));; gap> L := Extensions(G,A);; gap> List(L,IdGroup); [ [ 32, 21 ], [ 32, 3 ], [ 32, 2 ], [ 32, 4 ], [ 32, 3 ], [ 32, 3 ], [ 32, 4 ], [ 32, 4 ] ]

Under the action of the various automorphism groups
This uses additionally the GAP functions AutomorphismGroup, DirectProduct, CompatiblePairs, and ExtensionRepresentatives.

gap> G := DirectProduct(CyclicGroup(4),CyclicGroup(4));; gap> A := TrivialGModule(G,GF(2));; gap> A1 := AutomorphismGroup(G);; gap> A2 := GL(1,2);; gap> D := DirectProduct(A1,A2);; gap> P := CompatiblePairs(G,A,D);; gap> M := ExtensionRepresentatives(G,A,P);; gap> List(M,IdGroup); [ [ 32, 21 ], [ 32, 3 ], [ 32, 2 ], [ 32, 4 ] ]