6 Actors of 2d-groups 6.1 Actor of a crossed module The actor of mathcalX is a crossed module (∆ : mathcalW(mathcalX) -> Aut(mathcalX)) which was shown by Lue and Norrie, in [Nor87] and [Nor90] to give the automorphism object of a crossed module mathcalX. 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(mathcalX) of mathcalX. 6.1-1 AutomorphismPermGroup AutomorphismPermGroup( xmod )  attribute GeneratingAutomorphisms( xmod )  attribute PermAutomorphismAsXModMorphism( xmod, perm )  attribute The automorphisms ( σ, ρ ) of mathcalX form a group Aut(mathcalX) of crossed module isomorphisms. The function AutomorphismPermGroup finds a set of GeneratingAutomorphisms for Aut(mathcalX), and then constructs a permutation representation of this group, which is used as the range of the actor crossed module of mathcalX. 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.  Example   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) ]   6.1-2 WhiteheadXMod WhiteheadXMod( xmod )  attribute LueXMod( xmod )  attribute NorrieXMod( xmod )  attribute ActorXMod( xmod )  attribute AutomorphismPermGroup( xmod )  attribute An automorphism ( σ, ρ ) of X acts on the Whitehead monoid by χ^(σ,ρ) = σ ∘ χ ∘ ρ^-1, and this determines the action for the actor. In fact the four groups R, S, W, A, the homomorphisms between them, and the various actions, give five crossed modules forming a crossed square:  mathcalX = (∂ : S -> R),~ the initial crossed module, on the left,  mathcalW(mathcalX) = (η : S -> W),~ the Whitehead crossed module of mathcalX, at the top,  mathcalN(X) = (α : R -> A),~ the Norrie crossed module of mathcalX, at the bottom,  Act(mathcalX) = ( ∆ : W -> A),~ the actor crossed module of mathcalX, on the right, and  mathcalL(mathcalX) = (∆∘η = α∘∂ : S -> A),~ the Lue crossed module of mathcalX, along the top-left to bottom-right diagonal.  Example   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.  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.   6.1-3 XModCentre 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 mathcalW(mathcalX) and mathcalN(mathcalX) form the inner morphism of mathcalX, mapping source elements to principal derivations and range elements to inner automorphisms. The image of mathcalX under this morphism is the inner actor of mathcalX, while the kernel is the centre of mathcalX. 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.  Example   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( () )]