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.
‣ 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
These functions are analogues of existing GAP functions for group actions.
‣ 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).
‣ 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).
‣ NrOrbitsAffineAction( K, der ) | ( function ) |
Returns: the number of orbits under the affine action of K associated to der.
‣ 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).
‣ 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
‣ Representative( orb ) | ( attribute ) |
Returns: the group element that was used to construct orb.
‣ ActingDomain( orb ) | ( attribute ) |
Returns: the group whose affine action orb is an orbit of.
‣ FunctionAction( orb ) | ( attribute ) |
Returns: the affine action that orb is an orbit of.
‣ \in( elm, orb ) | ( operation ) |
Returns: true if elm is an element of orb, otherwise false.
‣ Size( orb ) | ( attribute ) |
Returns: the number of elements in orb.
‣ StabiliserOfExternalSet( orb ) | ( attribute ) |
Returns: the stabiliser of Representative(orb) under the action FunctionAction(orb).
‣ 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).
‣ Random( orb ) | ( operation ) |
Returns: a random element in orb.
‣ \=( 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
generated by GAPDoc2HTML