59.10 Further Information

Suppose, as usual, that the cohomology record chr was constructed with the call `CHR(G,p, [F],[mats])`. All of the functions make use of a strictly decreasing chain of subgroups of the permutation group G starting with G itself and ending with a Sylow p-subgroup P of G. In general, the programs run most efficiently if the indices between successive terms in this sequence are as small as possible. By default, GAP will attempt to find a suitable chain, when you call the first cohomology function on chr. However, you may be able to construct a better chain yourself. If so, then you can do this by assigning the record field chr`.chain` to the list L of subgroups that you wish to use. You should do that before calling any of the cohomology functions. Remeber that the first term in the list must be G itself, the sequence of subgroups must be strictly decreasing, and the last term must be equal to the Sylow subgroup stored as chr`.sylow`. (You can change chr`.sylow` to a different Sylow p-subgroup if you like.) Here is a slightly contrived example of this process.

```    gap> RequirePackage( "cohomolo" );
gap> G:=AlternatingGroup(16);;
gap> chr:=CHR(G,2);;
gap> InfoCohomology:=Print;;
gap> SchurMultiplier(chr);
#Indices in the subgroup chain are:  2027025 315
#WARNING: An index in the subgroup chain found is larger than 50000.
#This calculation may fail. See manual for possible remedies.
#I  Cohomology package: Calling external program.
#I  External program complete.
Error, 'Cohomology' failed for some reason.
in
Cohomology( chr, true, false, false, TmpName(  ) ) called from
SchurMultiplier( chr ) called from
main loop
brk> quit;```

The first index in the chain found by GAP was hopelessly large. Let's try and do better.

```    gap> P:=chr.sylow;;
gap> H1:=Subgroup(G, [(1,2)(9,10), (2,3,4,5,6,7,8),
>        (1,9)(2,10)(3,11)(4,12)(5,13)(6,14)(7,15)(8,16)]);;
gap> Index(G,H1);
6435
gap> H2:=Subgroup(H1, [(1,2)(5,6), (1,2)(9,10), (2,3,4),
>        (1,5)(2,6)(3,7)(4,8),
>        (1,9)(2,10)(3,11)(4,12)(5,13)(6,14)(7,15)(8,16)]);;
gap> Index(H1,H2);
1225
gap> IsSubgroup(H2,P);
true```

If that had been false, we could have replaced chr.sylow by a Sylow 2-subgroup of H2. As it is true, we just continue.

```    gap> Index(H2,P);
81
gap> chr.chain := [G,H1,H2,P];;
gap> SchurMultiplier(chr);
#I  Cohomology package: Calling external program.
#I  External program complete.
#I  Removing temporary files.
[ 2 ]```

GAP 3.4.4
April 1997