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