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

10 Affine actions
 10.1 Creating an affine action
 10.2 Operations for affine actions
 10.3 Operations on orbits of affine actions

10 Affine actions

Let G and H be groups, let H act on G (via automorphisms) by

\alpha \colon H \to \operatorname{Aut}(G) \colon h \mapsto \alpha_h

and let \delta \colon H \to G be a group derivation with respect to this action. Then we can construct a new action, called the affine action associated to \delta, by

G \times H \to G \colon g^h = \alpha_h(g) \delta(h).

If K is a subgroup of H, then the restriction of the affine action of H on G to K coincides with the affine action of K on G associated to the restriction of \delta to K.

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

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

10.1 Creating an affine action

10.1-1 AffineActionByGroupDerivation
‣ AffineActionByGroupDerivation( K, der )( function )

Returns: the affine action of K associated to the derivation der.

The group K must be a subgroup of Source(der).

gap> aff := AffineActionByGroupDerivation( H, der );
function( g, k ) ... end

10.2 Operations for affine actions

These functions are analogues of existing GAP functions for group actions.

10.2-1 OrbitAffineAction
‣ OrbitAffineAction( K, g, der )( function )

Returns: the orbit of g under the affine action of K associated to der.

The group K must be a subgroup of Source(der).

10.2-2 OrbitsAffineAction
‣ OrbitsAffineAction( K, der )( function )

Returns: a list containing the orbits under the affine action of K associated to der if there are finitely many, or fail if there are infinitely many.

The group K must be a subgroup of Source(der).

10.2-3 NrOrbitsAffineAction
‣ NrOrbitsAffineAction( K, der )( function )

Returns: the number of orbits under the affine action of K associated to der.

10.2-4 StabiliserAffineAction
‣ StabiliserAffineAction( K, g, der )( function )
‣ StabilizerAffineAction( K, g, der )( function )

Returns: the stabiliser of g under the affine action of K associated to der.

The group K must be a subgroup of Source(der).

10.2-5 RepresentativeAffineAction
‣ RepresentativeAffineAction( K, g1, g2, der )( function )

Returns: an element of K that maps g1 to g2 under the affine action of K associated to der, or fail if no such element exists.

The group K must be a subgroup of Source(der).

gap> g1 := G.1;;
gap> orb := OrbitAffineAction( H, g1, der );
f1^G
gap> NrOrbitsAffineAction( H, der );
10
gap> stab := StabiliserAffineAction( H, g1, der );;
gap> Set( stab );
[ <identity> of ..., f3, f3^2, f2^2*f5, f2*f4*f5,
  f2^2*f3*f5, f2*f3*f4*f5, f2^2*f3^2*f5, f2*f3^2*f4*f5 ]
gap> g2 := G.1*G.4*G.5;;
gap> h := RepresentativeAffineAction( H, g1, g2, der );;
gap> aff( g1, h ) = g2;
true

10.3 Operations on orbits of affine actions

10.3-1 Representative
‣ Representative( orb )( attribute )

Returns: the group element that was used to construct orb.

10.3-2 ActingDomain
‣ ActingDomain( orb )( attribute )

Returns: the group whose affine action orb is an orbit of.

10.3-3 FunctionAction
‣ FunctionAction( orb )( attribute )

Returns: the affine action that orb is an orbit of.

10.3-4 \in
‣ \in( elm, orb )( operation )

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

10.3-5 Size
‣ Size( orb )( attribute )

Returns: the number of elements in orb.

10.3-6 StabiliserOfExternalSet
‣ StabiliserOfExternalSet( orb )( attribute )

Returns: the stabiliser of Representative(orb) under the action FunctionAction(orb).

10.3-7 List
‣ List( orb )( function )

Returns: a list containing the elements of orb.

If orb is infinite, this will run forever. It is recommended to first test the finiteness of orb using Size (10.3-5).

10.3-8 Random
‣ Random( orb )( operation )

Returns: a random element in orb.

10.3-9 \=
‣ \=( orb1, orb2 )( operation )

Returns: true if orb1 is equal to orb2, otherwise false.

gap> g2 in orb;
true
gap> G.2 in orb;
false
gap> Size( orb );
8
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 
Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 Bib Ind

generated by GAPDoc2HTML