Goto Chapter: Top 1 2 3 4 5 6 7 8 9 Bib Ind
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 

9 Group derivations
 9.1 Creating group derivations
 9.2 Operations for group derivations
 9.3 Images of group derivations

9 Group derivations

Let \(G\) and \(H\) be groups and let \(H\) act on \(G\) via automorphisms, i.e. there is a group homomorphism

\[\alpha \colon H \to \operatorname{Aut}(G)\]

such that \(g^h = \alpha(h)(g)\) for all \(g \in G\) and \(h \in H\). A group derivation \(\delta \colon H \to G\) is a map such that

\[\delta(h_1h_2) = \delta(h_1)^{h_2}\delta(h_2).\]

Note that we do not require \(G\) to be abelian.

Algorithms designed for computing with twisted conjugacy classes can be leveraged to do computations involving group derivations, see [Ter25, Sec. 10] for a description on this.

Please note that the functions in this section require \(G\) and \(H\) to either both be finite, or both be PcpGroups.

9.1 Creating group derivations

The functions below only work for derivations between finite groups or between PcpGroups.

9.1-1 GroupDerivationByImages
‣ GroupDerivationByImages( H, G[[, gens], imgs], act )( function )
‣ GroupDerivationByImagesNC( H, G[[, gens], imgs], act )( function )

Returns: the specified group derivation, or fail if the given arguments do not define a derivation.

This works in the same vein as GroupHomomorphismByImages (Ref 40.1-1). The group H acts on the group G via act, which must be a homomorphism from H into a group of automorphisms of G. This command then returns the group derivation defined by mapping the list gens of generators of H to the list imgs of images in G.

If omitted, the arguments gens and imgs default to the GeneratorsOfGroup value of H and G respectively.

This function checks whether gens generate H and whether the mapping of the generators extends to a group derivation. This test can be expensive, so if one is certain that the given arguments produce a group derivation, these checks can be avoided by using the NC version.

9.1-2 GroupDerivationByFunction
‣ GroupDerivationByFunction( H, G, fun, act )( function )

Returns: the specified group derivation.

GroupDerivationByFunction works in the same vein as GroupHomomorphismByFunction (Ref 40.1-4). The group H acts on the group G via act, which must be a homomorphism from H into a group of automorphisms of G. This command then returns the group derivation defined by mapping the element h of H to the element fun( h ) of G, where fun is a GAP function.

No tests are performed to check whether the arguments really produce a group derivation.

gap> H := PcGroupCode( 149167619499417164, 72 );;
gap> G := PcGroupCode( 5551210572, 72 );;
gap> inn := InnerAutomorphism( G, G.2 );;
gap> hom := GroupHomomorphismByImages(
>      G, G,
>      [ G.1*G.2, G.5 ], [ G.1*G.2^2*G.3^2*G.4, G.5 ]
>    );;
gap> act := GroupHomomorphismByImages(
>      H, AutomorphismGroup( G ),
>      [ H.2, H.1*H.4 ], [ inn, hom ]
>    );;
gap> gens := [ H.2, H.1*H.4 ];;
gap> imgs := [ G.5, G.2 ];;
gap> der := GroupDerivationByImages( H, G, gens, imgs, act );
Group derivation [ f2, f1*f4 ] -> [ f5, f2 ]

9.2 Operations for group derivations

Many of the functions, operations, attributes... available to group homomorphisms are available for group derivations as well. We list some of the more useful ones.

9.2-1 IsInjective
‣ IsInjective( der )( property )

Returns: true if the group derivation der is injective, otherwise false.

9.2-2 IsSurjective
‣ IsSurjective( der )( property )

Returns: true if the group derivation der is surjective, otherwise false.

9.2-3 IsBijective
‣ IsBijective( der )( property )

Returns: true if the group derivation der is bijjective, otherwise false.

9.2-4 Kernel
‣ Kernel( der )( operation )

Returns: the set of elements that are mapped to the identity by der.

This will always be a subgroup of Source(der).

9.2-5 Image
‣ Image( der )( function )
‣ Image( der, elm )( function )
‣ Image( der, coll )( function )

Returns: the image of the group derivation der.

One can optionally give an element elm or a subgroup sub as a second argument, in which case Image will calculate the image of this argument under der.

9.2-6 PreImagesRepresentative
‣ PreImagesRepresentative( der, elm )( operation )

Returns: a preimage of the element elm under the group derivation der, or fail if no preimage exists.

9.2-7 PreImagges
‣ PreImages( der, elm )( function )

Returns: the set of all preimages of the element elm under the group derivation der.

This will always be a (right) coset of Kernel( der ), or the empty list.

gap> IsInjective( der ) or IsSurjective( der );
false
gap> K := Kernel( der );;
gap> Size( K );
9
gap> ImH := Image( der );
Group derivation image in Group( [ f1, f2, f3, f4, f5 ] )
gap> h1 := H.1*H.3;;
gap> g := Image( der, h1 );
f2*f4
gap> ImK := Image( der, K );
Group derivation image in Group( [ f1, f2, f3, f4, f5 ] )
gap> h2 := PreImagesRepresentative( der, g );;
gap> Image( der, h2 ) = g;
true
gap> PreIm := PreImages( der, g );
RightCoset(<group of size 9 with 2 generators>,<object>)
gap> PreIm = RightCoset( K, h2 );
true

9.3 Images of group derivations

In general, the image of a group derivation is not a subgroup. However, it is still possible to do a membership test, to calculate the number of elements, and to enumerate the elements if there are only finitely many.

9.3-1 \in
‣ \in( elm, img )( operation )

Returns: true if elm is an element of img, otherwise false.

9.3-2 Size
‣ Size( img )( attribute )

Returns: the number of elements in img.

9.3-3 List
‣ List( img )( function )

Returns: a list containing the elements of img.

gap> Size( ImH );
8
gap> Size( ImK );
1
gap> g in ImH;
true
gap> g in ImK;
false
gap> List( ImK );
[ <identity> of ... ]
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 
Goto Chapter: Top 1 2 3 4 5 6 7 8 9 Bib Ind

generated by GAPDoc2HTML