Skip to content

Extensions: problem with documentation or implementation #6471

Description

@ThomasBreuer

The following happens in GAP 4.16.0 and in the master branch.

gap> G:= SymmetricGroup( 3 );;
gap> mods:= IrreducibleModules( G, GF(2) );;
gap> Extensions( G, mods[2][2] );
Error, the rewriting system must be confluent
[...]

As far as I understand, this happens because it is not obvious to which generating set of G the generators component of the module corresponds.

The chosen Extensions method is the one for pc groups (based on ExtensionSQ).
The documentation of Extensions( G, M ) does not state how G and M must be related, but the documentation belongs to the chapter "Pc Groups", and in fact the matrices in M.generators must belong to Pcgs( G ). The error disappears when this condition holds.

gap> mods[1];
[ (1,2,3), (1,2) ]
gap> GeneratorsOfGroup( G );
[ (1,2,3), (1,2) ]
gap> Pcgs( G );
Pcgs([ (2,3), (1,2,3) ])
gap> G:= GroupWithGenerators( [ (2,3), (1,2,3) ] );;
gap> mods:= IrreducibleModules( G, GF(2) );;
gap> mods[1];  # the matrices correspond to Pcgs( G )
[ (2,3), (1,2,3) ]
gap> Extensions( G, mods[2][2] );
[ <pc group of size 24 with 4 generators> ]

The situation is even more complicated:
Currently Extensions is documented only for solvable groups (since the return value is a list of pc groups).
The GAP library installs another Extensions( G, M ) method also for nonsolvable groups G, and this method expects M.generators to correspond to GeneratorsOfGroup( G ).
(This is because the method calls TwoCohomologyGeneric, which works with GeneratorsOfGroup( G ).
I had thought that TwoCohomologyGeneric is not installed as a method for TwoCohomology because the documentation for the latter explicitly states that the generators of the module must correspond to the Pcgs value of the group.
Perhaps the more general method for Extensions should better be called ExtensionsGeneric, and should not be installed as a method for Extensions.)

What would be a safe way to use the functions above?
First we call IrreducibleModules. The first return value is the generating set corresponding to the generators component of each module.
Then we want to call Extensions. If the input group is solvable and if the generators of the input module must correspond to the Pcgs value for the input group, is there a safe way to make sure that IrreducibleModules returns the modules relative to this pcgs?

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind: bugIssues describing general bugs, and PRs fixing themkind: bug: unexpected errorIssues describing bugs in which computation unexpectedly encounters an error, and PRs fixing them

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions