The *actor* of mathcalX is a crossed module Act(mathcalX) = (∆ : 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.

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

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

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

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.

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 ( σ, ρ ) 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.

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.

`‣ 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.

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( () )]

generated by GAPDoc2HTML