25.87 OneCocycles

OneCocycles( G, M )

Let M be a normal p-elementary abelian subgroup of G. Then OneCocycles computes the vector space {cal V} = beta( Z^1( <G>/<M>, <M> ) ), which is isomorphic to the group of one cocyles Z^1( G, M ) as described in One Cohomology Group. The function returns a record C with the following components.

oneCoboundaries:

contains the vector space isomorphic to B^1( G, M ).

oneCocycles:

contains the vector space {cal V}.

generators:

contains representatives (g_1, ..., g_l) for the canonical generating system of <G> / <M>

isSplitExtension:

If G splits over M, C.isSplitExtension is true, otherwise it is false. In case of a split extension three more components C.complement, C.cocycleToComplement and C.complementToCycles are returned.

complement:

contains a subgroup of G which is a complement of M.

cocycleToList:

contains a functions which takes an element v of {cal V} as argument and returns a list [ n_1, ..., n_l ], where n_i is an element of M, such that n_i = ( beta^{-1}( v ) )( g_i <M> ).

listToCocycles:

is the inverse of cocycleToList.

cocycleToComplement:

contains a function which takes an element of {cal V} as argument and returns a complement of M.

complementToCocycle:

is its inverse. This is possible, because in a split extension there is a one to one correspondence between the elements of {cal V} and the complements of M.

OneCocycles( G, alpha, M )

In that form OneCocycles computes the one cocycles in the semidirect product of G and M where G acts on M using alpha (see SemidirectProduct). In that case C only contains C.oneCoboundaries, C.oneCocycles, C.generators, C.cocycleToList and C.listToCocycle.

    gap> s4xc2 := DirectProduct( s4, CyclicGroup( AgWords, 2 ) );;
    gap> s4xc2.name := "s4xc2";;
    gap> m := CompositionSubgroup( s4xc2, 3 );
    Subgroup( s4xc2, [ a3, a4, b ] )
    gap> oc := OneCocycles( s4xc2, m );;
    gap> oc.oneCocycles;
    RowSpace( GF(2), [ [ 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(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) ],
      [ 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2) ] ] )
    gap> v := Base( oc.oneCocycles );
    [ [ 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(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) ],
      [ 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2) ] ]
    gap> oc.cocycleToList( v[1] );
    [ a4, a4 ]
    gap> oc.cocycleToList( v[2] );
    [ b, IdAgWord ]
    gap> oc.cocycleToList( v[2] );
    [ b, IdAgWord ]
    gap> oc.cocycleToList( v[3] );
    [ IdAgWord, a3 ]
    gap> Igs( oc.complement );
    [ a1, a2 ]
    gap> Igs( oc.cocycleToComplement( v[1]+v[2]+v[3] ) );
    [ a1*a4*b, a2*a3*a4 ]
    gap> z4 := CyclicGroup( AgWords, 4 );
    Group( c4_1, c4_2 )
    gap> m := CompositionSubgroup( z4, 2 );
    Subgroup( Group( c4_1, c4_2 ), [ c4_2 ] )
    gap> OneCocycles( z4, m );
    rec(
      oneCoboundaries := RowSpace( GF(2), [ [ 0*Z(2) ] ] ),
      oneCocycles := RowSpace( GF(2), [ [ Z(2)^0 ] ] ),
      generators := [ c4_1 ],
      isSplitExtension := false ) 

Previous Up Top Next
Index

GAP 3.4.4
April 1997