The *actor* of \(\calX\) is a crossed module \(\Act(\calX) = (\Delta : \calW(\calX) \to \Aut(\calX))\) which was shown by Lue and Norrie, in [Nor87] and [Nor90] to give the automorphism object of a crossed module \(\calX\). In this implementation, the source of the actor is a permutation representation \(W\) of the Whitehead group of regular derivations, and the range of the actor is a permutation representation \(A\) of the automorphism group \(\Aut(\calX)\) of \(\calX\).

`‣ AutomorphismPermGroup` ( xmod ) | ( attribute ) |

`‣ GeneratingAutomorphisms` ( xmod ) | ( attribute ) |

`‣ PermAutomorphismAsXModMorphism` ( xmod, perm ) | ( operation ) |

The automorphisms \(( \sigma, \rho )\) of \(\calX\) form a group \(\Aut(\calX)\) of crossed module isomorphisms. The function `AutomorphismPermGroup`

finds a set of `GeneratingAutomorphisms`

for \(\Aut(\calX)\), and then constructs a permutation representation of this group, which is used as the range of the actor crossed module of \(\calX\). The individual automorphisms can be constructed from the permutation group using the function `PermAutomorphismAsXModMorphism`

. The example below uses the crossed module `X3=[c3->s3]`

constructed in section 5.1.

gap> APX3 := AutomorphismPermGroup( X3 ); Group([ (5,7,6), (1,2)(3,4)(6,7) ]) gap> Size( APX3 ); 6 gap> genX3 := GeneratingAutomorphisms( X3 ); [ [[c3->s3] => [c3->s3]], [[c3->s3] => [c3->s3]] ] gap> e6 := Elements( APX3 )[6]; (1,2)(3,4)(5,7) gap> m6 := PermAutomorphismAsXModMorphism( X3, e6 );; gap> Display( m6 ); Morphism of crossed modules :- : Source = [c3->s3] with generating sets: [ (1,2,3)(4,6,5) ] [ (4,5,6), (2,3)(5,6) ] : Range = Source : Source Homomorphism maps source generators to: [ (1,3,2)(4,5,6) ] : Range Homomorphism maps range generators to: [ (4,6,5), (2,3)(4,5) ]

`‣ WhiteheadXMod` ( xmod ) | ( attribute ) |

`‣ LueXMod` ( xmod ) | ( attribute ) |

`‣ NorrieXMod` ( xmod ) | ( attribute ) |

`‣ ActorXMod` ( xmod ) | ( attribute ) |

An automorphism \(( \sigma, \rho )\) of `X`

acts on the Whitehead monoid by \(\chi^{(\sigma,\rho)} = \sigma \circ \chi \circ \rho^{-1}\), and this determines the action for the actor. In fact the four groups \(S, W, R, A\), the homomorphisms between them, and the various actions, give five crossed modules forming a *crossed square* (see `ActorCrossedSquare`

(8.2-5)).

\(\calW(\calX) = (\eta : S \to W),~\) the Whitehead crossed module of \(\calX\), at the top,

\(\calX = (\partial : S \to R),~\) the initial crossed module, on the left,

\(\Act(\calX) = ( \Delta : W \to A),~\) the actor crossed module of \(\calX\), on the right,

\(\calN(X) = (\alpha : R \to A),~\) the Norrie crossed module of \(\calX\), on the bottom, and

\(\calL(\calX) = (\Delta\circ\eta = \alpha\circ\partial : S \to A),~\) the Lue crossed module of \(\calX\), along the top-left to bottom-right diagonal.

gap> WGX3 := WhiteheadPermGroup( X3 ); Group([ (1,2,3)(4,5,6), (1,4)(2,6)(3,5) ]) gap> WX3 := WhiteheadXMod( X3 );; gap> Display( WX3 ); Crossed module Whitehead[c3->s3] :- : Source group has generators: [ (1,2,3)(4,6,5) ] : Range group has generators: [ (1,2,3)(4,5,6), (1,4)(2,6)(3,5) ] : Boundary homomorphism maps source generators to: [ (1,2,3)(4,5,6) ] : Action homomorphism maps range generators to automorphisms: (1,2,3)(4,5,6) --> { source gens --> [ (1,2,3)(4,6,5) ] } (1,4)(2,6)(3,5) --> { source gens --> [ (1,3,2)(4,5,6) ] } These 2 automorphisms generate the group of automorphisms. gap> LX3 := LueXMod( X3 );; gap> Display( LX3 ); Crossed module Lue[c3->s3] :- : Source group has generators: [ (1,2,3)(4,6,5) ] : Range group has generators: [ (5,7,6), (1,2)(3,4)(6,7) ] : Boundary homomorphism maps source generators to: [ (5,7,6) ] : Action homomorphism maps range generators to automorphisms: (5,7,6) --> { source gens --> [ (1,2,3)(4,6,5) ] } (1,2)(3,4)(6,7) --> { source gens --> [ (1,3,2)(4,5,6) ] } These 2 automorphisms generate the group of automorphisms. gap> NX3 := NorrieXMod( X3 );; gap> Display( NX3 ); Crossed module Norrie[c3->s3] :- : Source group has generators: [ (4,5,6), (2,3)(5,6) ] : Range group has generators: [ (5,7,6), (1,2)(3,4)(6,7) ] : Boundary homomorphism maps source generators to: [ (5,6,7), (1,2)(3,4)(6,7) ] : Action homomorphism maps range generators to automorphisms: (5,7,6) --> { source gens --> [ (4,5,6), (2,3)(4,5) ] } (1,2)(3,4)(6,7) --> { source gens --> [ (4,6,5), (2,3)(5,6) ] } These 2 automorphisms generate the group of automorphisms. gap> AX3 := ActorXMod( X3 );; gap> Display( AX3); Crossed module Actor[c3->s3] :- : Source group has generators: [ (1,2,3)(4,5,6), (1,4)(2,6)(3,5) ] : Range group has generators: [ (5,7,6), (1,2)(3,4)(6,7) ] : Boundary homomorphism maps source generators to: [ (5,7,6), (1,2)(3,4)(6,7) ] : Action homomorphism maps range generators to automorphisms: (5,7,6) --> { source gens --> [ (1,2,3)(4,5,6), (1,6)(2,5)(3,4) ] } (1,2)(3,4)(6,7) --> { source gens --> [ (1,3,2)(4,6,5), (1,4)(2,6)(3,5) ] } These 2 automorphisms generate the group of automorphisms.

The main methods for these operations are written for permutation crossed modules. For other crossed modules an isomorphism to a permutation crodssed module is found first, and then the main method is applied to the image. In the example the crossed module `XAq8`

is the automorphism crossed module of the quaternion group.

gap> StructureDescription( WhiteheadXMod( XAq8 ) ); [ "Q8", "C2 x C2 x C2" ] gap> StructureDescription( LueXMod( XAq8 ) ); [ "Q8", "S4" ] gap> StructureDescription( NorrieXMod( XAq8 ) ); [ "S4", "S4" ] gap> StructureDescription( ActorXMod( XAq8 ) ); [ "C2 x C2 x C2", "S4" ]

`‣ XModCentre` ( xmod ) | ( attribute ) |

`‣ InnerActorXMod` ( xmod ) | ( attribute ) |

`‣ InnerMorphism` ( xmod ) | ( attribute ) |

Pairs of boundaries or identity mappings provide six morphisms of crossed modules. In particular, the boundaries of \(\calW(\calX)\) and \(\calN(\calX)\) form the *inner morphism* of \(\calX\), mapping source elements to principal derivations and range elements to inner automorphisms. The image of \(\calX\) under this morphism is the *inner actor* of \(\calX\), while the kernel is the *centre* of \(\calX\). In the example which follows, the inner morphism of `X3=(c3->s3)`

, from Chapter 5, is an inclusion of crossed modules.

Note that we appear to have defined *two* sorts of *centre* for a crossed module: `XModCentre`

here, and `CentreXMod`

(4.1-7) in the chapter on isoclinism. We suspect that these two definitions give the same answer, but this remains to be resolved.

gap> IMX3 := InnerMorphism( X3 );; gap> Display( IMX3 ); Morphism of crossed modules :- : Source = [c3->s3] with generating sets: [ (1,2,3)(4,6,5) ] [ (4,5,6), (2,3)(5,6) ] : Range = Actor[c3->s3] with generating sets: [ (1,2,3)(4,5,6), (1,4)(2,6)(3,5) ] [ (5,7,6), (1,2)(3,4)(6,7) ] : Source Homomorphism maps source generators to: [ (1,2,3)(4,5,6) ] : Range Homomorphism maps range generators to: [ (5,6,7), (1,2)(3,4)(6,7) ] gap> IsInjective( IMX3 ); true gap> ZX3 := XModCentre( X3 ); [Group( () )->Group( () )] gap> IAX3 := InnerActorXMod( X3 );; gap> Display( IAX3 ); Crossed module InnerActor[c3->s3] :- : Source group has generators: [ (1,2,3)(4,5,6) ] : Range group has generators: [ (5,6,7), (1,2)(3,4)(6,7) ] : Boundary homomorphism maps source generators to: [ (5,7,6) ] : Action homomorphism maps range generators to automorphisms: (5,6,7) --> { source gens --> [ (1,2,3)(4,5,6) ] } (1,2)(3,4)(6,7) --> { source gens --> [ (1,3,2)(4,6,5) ] } These 2 automorphisms generate the group of automorphisms.

generated by GAPDoc2HTML