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