[Next][Prev] [Right] [Left] [Up] [Index] [Root]

Calculating Cohomology

CohomologyGroup(CM, n) : ModCoho, RngIntElt -> ModTupRng
Given a cohomology module CM for the group G acting on the module M and a non-negative integer n taking one of the values 0, 1 or 2, this function returns the cohomology group Hn(G, M). For modules defined over the ring of integers only, n may also be equal to 3. (In this case, H3(G, M) is computed as the second cohomology group of M regarded as a module over Q/Z.) If the group used to define CM was a finitely presented group, then n may only be equal to 0 or 1. Note that CM must be a module returned by invoking CohomologyModule.
CohomologicalDimension(CM, n) : ModCoho, RngIntElt -> RngIntElt
Given a cohomology module CM for the group G acting on the module M defined over a finite field K and a non-negative integer n taking one of the values 0, 1 or 2, this function returns the dimension of Hn(G, M) over K. Note that this function may only be applied to the module returned by a call to CohomologyModule(G, M), where M is a module over a finite field K. When n = 2, this function is faster and may be applied to much larger examples than CohomologyGroup(CM, n) but, unlike that function, it does not enable the user to compute with explicit extensions and two-cocycles.

Note that there are some alternative functions for performing these calculations described in other manual chapters.

CohomologicalDimension(M, n) : ModGrp, n -> RngIntElt
For K[G]-module M (with K a finite field and G a finite group), compute and return the K-dimension of the cohomology group Hn(G, M) for n ≥0. For n=0 and 1, this is carried out by using the function CohomologicalDimension(CM,n) just described. For n ≥2, it is done recursively using projective covers and dimension shifting to reduce to the case n=1.
CohomologicalDimensions(M, n) : ModGrp, n -> RngIntElt
For K[G]-module M (with K a finite field and G a finite group), compute and return the sequence of K-dimensions of the cohomology groups Hk(G, M) for 1 ≤k ≤n. On account of the recursive method used, this is quicker than computing them all individually.
CohomologicalDimension(G, M, n) : GrpPerm, ModRng, RngIntElt -> RngIntElt
Given the permutation group G, the K[G]-module M and an integer n (equal to 1 or 2), return the dimension of the n-th cohomology group of G acting on M. Note that K must be a finite field of prime order. This function invokes Derek Holt's original C cohomology code (see [Hol85b]). In some cases it will be faster than the function that uses the cohomology module data structure.

Example GrpCoh_coho-example (H68E2)

We examine the first and second cohomology groups of the group A8.

> G := Alt(8);
> M := PermutationModule(G, GF(3));

We first calculate the dimensions of H1(G, M) and H2(G, M) using the old functions.

> time CohomologicalDimension(G, M, 1);
0
Time: 0.020
> time CohomologicalDimension(G, M, 2);
1
Time: 0.020

We now recalculate the dimensions of H1(G, M) and H2(G, M) using the new functions.

> X := CohomologyModule(G, M);
> time CohomologicalDimension(X, 1);
0
Time: 0.020
> time CohomologicalDimension(X, 2);
1
Time: 0.920
> X := CohomologyModule(G, M);
> time C:=CohomologyGroup(X, 2);
Time: 4.070
> C;
Full Vector space of degree 1 over GF(3)

Example GrpCoh_more-difficult (H68E3)

In the case of Ω^ - (8, 3) acting on its natural module, the new function succeeds, but the old function does not.

> G := OmegaMinus(8, 3);
> M := GModule(G);
> X := CohomologyModule(G, M);
> time CohomologicalDimension(X, 2);
2
Time: 290.280
> phi, P := PermutationRepresentation(G);
> MM := GModule(P, [ActionGenerator(M, i): i in [1..Ngens(G)]] );

> time CohomologicalDimension(P, MM, 2); Out of space. >> time CohomologicalDimension(P, MM, 2); ^ Runtime error in 'CohomologicalDimension': Cohomology failed

 [Next][Prev] [Right] [Left] [Up] [Index] [Root]

Version: V2.19 of Mon Dec 17 14:40:36 EST 2012