One of the most interesting applications of pc groups is the possibility to compute with extensions of these groups by elementary abelian groups; that is, H is an extension of G by M, if there exists a normal subgroup N in H which is isomorphic to M such that H/N is isomorphic to G.
Pc groups are particularly suited for such applications, since the 2-cohomology can be computed efficiently for such groups and, moreover, extensions of pc groups by elementary abelian groups can be represented as pc groups again.
To define the elementary abelian group M together with an action of G on M we consider M as a meataxe module for G over a finite field. For further information on meataxe modules see Chapter The MeatAxe. Note that the matrices definining the module must correspond to the pcgs of the group G.
TwoCoboundaries( G, M ) O
returns the group of 2-coboundaries of G by the G-module M. This group is given as vector space over the field underlying M.
TwoCocycles( G, M ) O
returns the group of 2-cocycles of G by the G-module M. This group is given as vector space over the field underlying M.
TwoCohomology( G, M ) O
returns a record defining the second cohomology group as factor space of the space of cocycles by the space of coboundaries.
gap> G := SmallGroup( 4, 2 );
<pc group of size 4 with 2 generators>
gap> mats := List( Pcgs( G ), x -> IdentityMat( 1, GF(2) ) );
[ [ <a GF2 vector of length 1> ], [ <a GF2 vector of length 1> ] ]
gap> M := GModuleByMats( mats, GF(2) );
rec( field := GF(2), isMTXModule := true, dimension := 1,
generators := [ <an immutable 1x1 matrix over GF2>,
<an immutable 1x1 matrix over GF2> ] )
gap> TwoCoboundaries( G, M );
[ ]
gap> TwoCocycles( G, M );
[ [ Z(2)^0, 0*Z(2), 0*Z(2) ], [ 0*Z(2), Z(2)^0, 0*Z(2) ],
[ 0*Z(2), 0*Z(2), Z(2)^0 ] ]
gap> cc := TwoCohomology( G, M );;
gap> cc.cohom;
<linear mapping by matrix, VectorSpace( GF(2),
[ [ Z(2)^0, 0*Z(2), 0*Z(2) ], [ 0*Z(2), Z(2)^0, 0*Z(2) ],
[ 0*Z(2), 0*Z(2), Z(2)^0 ] ] ) -> ( GF(2)^3 )>
Extensions( G, M ) O
returns all extensions of G by the G-module M up to equivalence as pc groups.
Extension( G, M, c ) O
returns the extension of G by the G-module M via the cocycle c as pc groups.
SplitExtension( G, M )
returns the split extension of G by the G-module M.
gap> G := SmallGroup( 4, 2 );; gap> mats := List( Pcgs( G ), x -> IdentityMat( 1, GF(2) ) );; gap> M := GModuleByMats( mats, GF(2) );; gap> co := TwoCocycles( G, M );; gap> Extension( G, M, co[2] ); <pc group of size 8 with 3 generators> gap> SplitExtension( G, M ); <pc group of size 8 with 3 generators> gap> Extensions( G, M ); [ <pc group of size 8 with 3 generators>, <pc group of size 8 with 3 generators>, <pc group of size 8 with 3 generators>, <pc group of size 8 with 3 generators>, <pc group of size 8 with 3 generators>, <pc group of size 8 with 3 generators>, <pc group of size 8 with 3 generators>, <pc group of size 8 with 3 generators> ] gap> List(last, IdGroup); [ [ 8, 5 ], [ 8, 2 ], [ 8, 3 ], [ 8, 3 ], [ 8, 2 ], [ 8, 2 ], [ 8, 3 ], [ 8, 4 ] ]
Note that the extensions returned by Extensions are computed up to
equivalence, but not up to isomorphism.
There exists an action of the subgroup of compatible pairs in Aut(G) ×Aut(M) which acts on the second cohomology group. 2-cocycles which ly in the same orbit under this action define isomorphic extensions of G. However, there may be isomorphic extensions of G corresponding to cocycles in different orbits.
CompatiblePairs( G, M[, D] ) F
returns the group of compatible pairs of the group G with the G-module M as subgroup of the direct product of Aut(G) x Aut(M). Here Aut(M) is considered as subgroup of a general linear group. The optional argument D should be a subgroup of Aut(G) x Aut(M). If it is given, then only the compatible pairs in D are computed.
ExtensionRepresentatives( G, M, P ) O
returns all extensions of G by the G-module M up to equivalence under action of P where P has to be a subgroup of the group of compatible pairs of G with M.
gap> G := SmallGroup( 4, 2 );; gap> mats := List( Pcgs( G ), x -> IdentityMat( 1, GF(2) ) );; gap> M := GModuleByMats( mats, GF(2) );; gap> A := AutomorphismGroup( G );; gap> B := GL( 1, 2 );; gap> D := DirectProduct( A, B ); <group with 6 generators> gap> P := CompatiblePairs( G, M, D ); <group of size 6 with 2 generators> gap> ExtensionRepresentatives( G, M, P ); [ <pc group of size 8 with 3 generators>, <pc group of size 8 with 3 generators>, <pc group of size 8 with 3 generators>, <pc group of size 8 with 3 generators> ] gap> Extensions( G, M ); [ <pc group of size 8 with 3 generators>, <pc group of size 8 with 3 generators>, <pc group of size 8 with 3 generators>, <pc group of size 8 with 3 generators>, <pc group of size 8 with 3 generators>, <pc group of size 8 with 3 generators>, <pc group of size 8 with 3 generators>, <pc group of size 8 with 3 generators> ]
See also the forthcoming share package on Group Construction Methods.
Finally we note that for the computation of split extensions it is not necessary that M must correspond to an elementary abelian group. Here it is possible to construct split extensions of arbitrary pc groups.
SplitExtensions( G, aut, N )
returns the split extensions of the pc group G by the pc group N. aut should be a homomorphism from G into Aut(N).
In the following example we construct the holomorph of Q8 as split extension of Q8 by S4.
gap> N := SmallGroup( 8, 4 );
<pc group of size 8 with 3 generators>
gap> IsAbelian( N );
false
gap> A := AutomorphismGroup( N );
<group of size 24 with 4 generators>
gap> iso := IsomorphismPcGroup( A );
CompositionMapping( Pcgs([ (2,6,5,3), (1,3,5)(2,4,6), (2,5)(3,6), (1,4)(3,6)
]) -> [ f1, f2, f3, f4 ], <action homomorphism> )
gap> H := Image( iso );
<pc group of size 24 with 4 generators>
gap> G := Subgroup( H, Pcgs(H){[1,2]} );
Group([ f1, f2 ])
gap> inv := InverseGeneralMapping( iso );
InverseGeneralMapping( CompositionMapping( Pcgs(
[ (2,6,5,3), (1,3,5)(2,4,6), (2,5)(3,6), (1,4)(3,6) ]) -> [ f1, f2, f3, f4
], <action homomorphism> ) )
gap> K := SplitExtension( G, inv, N );
<pc group of size 192 with 7 generators>
[Top] [Previous] [Up] [Next] [Index]
GAP 4 manual