  
  [1X6 [33X[0;0YAutomorphisms of Groupoids[133X[101X
  
  [33X[0;0YIn  this  chapter  we consider automorphisms of single piece groupoids; then
  homogeneous  discrete  groupoids; and finally homogeneous groupoids. We also
  consider matrix representations and groupooid actions.[133X
  
  
  [1X6.1 [33X[0;0YAutomorphisms of single piece groupoids[133X[101X
  
  [1X6.1-1 GroupoidAutomorphismByObjectPerm[101X
  
  [33X[1;0Y[29X[2XGroupoidAutomorphismByObjectPerm[102X( [3Xgpd[103X, [3Ximobs[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XGroupoidAutomorphismByGroupAuto[102X( [3Xgpd[103X, [3Xgpiso[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XGroupoidAutomorphismByNtuple[102X( [3Xgpd[103X, [3Ximrays[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XGroupoidAutomorphismByRayShifts[102X( [3Xgpd[103X, [3Ximrays[103X ) [32X operation[133X
  
  [33X[0;0YWe  first  describe  automorphisms  of  a  groupoid  [22XG[122X where [22XG[122X is the direct
  product  of  a  group  [22Xg[122X  and  a  complete  digraph  with  [22Xn[122X  objects..  The
  automorphism group is generated by three types of automorphism:[133X
  
  [30X    [33X[0;6Ygiven a permutation [22Xπ[122X of the [22Xn[122X objects, we define[133X
  
  
  [24X      [33X[0;6Y\alpha_{\pi}  : G \to G,~ (g : o_i \to o_j) \mapsto (g : o_{\pi i} \to
        o_{\pi j});[133X
  
  [124X
  
  [30X    [33X[0;6Ygiven an automorphism [22Xθ[122X of the root group [22Xg[122X, we define[133X
  
  
  [24X      [33X[0;6Y\alpha_{\theta}  : G \to G,~ (g : o_i \to o_j) \mapsto (\theta g : o_i
        \to o_j);[133X
  
  [124X
  
  [30X    [33X[0;6Ygiven [22XL = [g_1,g_2,g_3,...,g_n] ∈ g^n[122X we define[133X
  
  
  [24X      [33X[0;6Y\alpha_L : G \to G,~ (g : o_i \to o_j) \mapsto (g_i^{-1}gg_j : o_i \to
        o_j).[133X
  
  [124X
  
        [33X[0;6YIf  [22Xg_1  = 1_g[122X, then for all [22Xj[122X the rays [22X(r_j : o_1 -> o_j)[122X are shifted
        by  [22Xg_j[122X:  so  they  map  to  [22X(r_jg_j  :  o_1 -> o_j)[122X. So the operation
        [10XGroupoidAutomorphismByRayShifts[110X     is    the    special    case    of
        [10XGroupoidAutomorphismByNtuple[110X when [22Xg_1=1[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27Xperm1 := [-13,-12,-14];;[127X[104X
    [4X[25Xgap>[125X [27Xaut1 := GroupoidAutomorphismByObjectPerm( Ha4, perm1 );; [127X[104X
    [4X[25Xgap>[125X [27XDisplay( aut1 ); [127X[104X
    [4X[28Xhomomorphism to single piece groupoid: Ha4 -> Ha4[128X[104X
    [4X[28Xroot group homomorphism:[128X[104X
    [4X[28X(1,2,3) -> (1,2,3)[128X[104X
    [4X[28X(2,3,4) -> (2,3,4)[128X[104X
    [4X[28Xobject map: [ -14, -13, -12 ] -> [ -13, -12, -14 ][128X[104X
    [4X[28Xray images: [ (), (), () ][128X[104X
    [4X[25Xgap>[125X [27Xd := Arrow( Ha4, (1,3,4), -12, -13 ); [127X[104X
    [4X[28X[(1,3,4) : -12 -> -13][128X[104X
    [4X[25Xgap>[125X [27Xd1 := ImageElm( aut1, d ); [127X[104X
    [4X[28X[(1,3,4) : -14 -> -12][128X[104X
    [4X[25Xgap>[125X [27Xgensa4 := GeneratorsOfGroup( a4 );; [127X[104X
    [4X[25Xgap>[125X [27Xalpha2 := GroupHomomorphismByImages( a4, a4, gensa4, [(2,3,4), (1,3,4)] );; [127X[104X
    [4X[25Xgap>[125X [27Xaut2 := GroupoidAutomorphismByGroupAuto( Ha4, alpha2 );; [127X[104X
    [4X[25Xgap>[125X [27XDisplay( aut2 ); [127X[104X
    [4X[28Xhomomorphism to single piece groupoid: Ha4 -> Ha4[128X[104X
    [4X[28Xroot group homomorphism:[128X[104X
    [4X[28X(1,2,3) -> (2,3,4)[128X[104X
    [4X[28X(2,3,4) -> (1,3,4)[128X[104X
    [4X[28Xobject map: [ -14, -13, -12 ] -> [ -14, -13, -12 ][128X[104X
    [4X[28Xray images: [ (), (), () ][128X[104X
    [4X[25Xgap>[125X [27Xd2 := ImageElm( aut2, d1 );[127X[104X
    [4X[28X[(1,2,4) : -14 -> -12][128X[104X
    [4X[25Xgap>[125X [27XL3 := [(1,2)(3,4), (1,3)(2,4), (1,4)(2,3)];; [127X[104X
    [4X[25Xgap>[125X [27Xaut3 := GroupoidAutomorphismByNtuple( Ha4, L3 );; [127X[104X
    [4X[25Xgap>[125X [27XDisplay( aut3 ); [127X[104X
    [4X[28Xhomomorphism to single piece groupoid: Ha4 -> Ha4[128X[104X
    [4X[28Xroot group homomorphism:[128X[104X
    [4X[28X(1,2,3) -> (1,4,2)[128X[104X
    [4X[28X(2,3,4) -> (1,4,3)[128X[104X
    [4X[28Xobject map: [ -14, -13, -12 ] -> [ -14, -13, -12 ][128X[104X
    [4X[28Xray images: [ (), (1,4)(2,3), (1,3)(2,4) ][128X[104X
    [4X[25Xgap>[125X [27Xd3 := ImageElm( aut3, d2 );[127X[104X
    [4X[28X[(2,3,4) : -14 -> -12][128X[104X
    [4X[25Xgap>[125X [27XL4 := [(), (1,3,2), (2,4,3)];; [127X[104X
    [4X[25Xgap>[125X [27Xaut4 := GroupoidAutomorphismByRayShifts( Ha4, L4 );; [127X[104X
    [4X[25Xgap>[125X [27XDisplay( aut4 ); [127X[104X
    [4X[28Xhomomorphism to single piece groupoid: Ha4 -> Ha4[128X[104X
    [4X[28Xroot group homomorphism:[128X[104X
    [4X[28X(1,2,3) -> (1,2,3)[128X[104X
    [4X[28X(2,3,4) -> (2,3,4)[128X[104X
    [4X[28Xobject map: [ -14, -13, -12 ] -> [ -14, -13, -12 ][128X[104X
    [4X[28Xray images: [ (), (1,3,2), (2,4,3) ][128X[104X
    [4X[25Xgap>[125X [27Xd4 := ImageElm( aut4, d3 );[127X[104X
    [4X[28X[() : -14 -> -12][128X[104X
    [4X[25Xgap>[125X [27Xh4 := Arrow( Ha4, (2,3,4), -12, -13 );; [127X[104X
    [4X[25Xgap>[125X [27Xaut1234 := aut1*aut2*aut3*aut4;; [127X[104X
    [4X[25Xgap>[125X [27XDisplay( aut1234 ); [127X[104X
    [4X[28Xhomomorphism to single piece groupoid: Ha4 -> Ha4[128X[104X
    [4X[28Xroot group homomorphism:[128X[104X
    [4X[28X(1,2,3) -> (1,4,3)[128X[104X
    [4X[28X(2,3,4) -> (1,2,3)[128X[104X
    [4X[28Xobject map: [ -14, -13, -12 ] -> [ -13, -12, -14 ][128X[104X
    [4X[28Xray images: [ (), (2,3,4), (1,3,4) ][128X[104X
    [4X[25Xgap>[125X [27Xd4  = ImageElm( aut1234, d );[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27Xinv1234 := InverseGeneralMapping( aut1234 );; [127X[104X
    [4X[25Xgap>[125X [27XDisplay( inv1234 ); [127X[104X
    [4X[28Xhomomorphism to single piece groupoid: Ha4 -> Ha4[128X[104X
    [4X[28Xroot group homomorphism:[128X[104X
    [4X[28X(1,2,3) -> (1,4,3)[128X[104X
    [4X[28X(2,3,4) -> (2,4,3)[128X[104X
    [4X[28Xobject map: [ -14, -13, -12 ] -> [ -12, -14, -13 ][128X[104X
    [4X[28Xray images: [ (), (1,3,2), (1,3,4) ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [1X6.1-2 GroupoidInnerAutomorphism[101X
  
  [33X[1;0Y[29X[2XGroupoidInnerAutomorphism[102X( [3Xgpd[103X, [3Xarrow[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XGroupoidInnerAutomorphismNormalSubgroupoid[102X( [3Xgpd[103X, [3Xsubgpd[103X, [3Xarrow[103X ) [32X operation[133X
  
  [33X[0;0YGiven  an  arrow [22Xa = (c : p -> q) ∈ G[122X with [22Xp ≠ q[122X, the [13Xinner automorphism[113X [22Xα_a[122X
  of  [22XG[122X  by [22Xa[122X is the mapping [22Xg ↦ g^a[122X where conjugation of arrows is defined in
  section     [14X4.5[114X.     It    is    easily    checked    that    if    [22XL_a    =
  [1,...,1,c^-1,1,...,1,c,1,...,1][122X,  with [22Xc^-1[122X in position [22Xp[122X and [22Xc[122X in position
  [22Xq[122X, then[133X
  
  
  [24X[33X[0;6Y\alpha_a ~=~ \alpha_{(p,q)} * \alpha_{L_a}.[133X
  
  [124X
  
  [33X[0;0YSimilarly,  when  [22Xp=q[122X, then [22Xα_a = α_L_a[122X where now [22XL_a = [1,...,1,c,1,...,1][122X,
  with [22Xc[122X in position [22Xp[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27Xinn1 := GroupoidInnerAutomorphism( Ha4, h4 );;[127X[104X
    [4X[25Xgap>[125X [27XDisplay( inn1 );[127X[104X
    [4X[28Xhomomorphism to single piece groupoid: Ha4 -> Ha4[128X[104X
    [4X[28Xroot group homomorphism:[128X[104X
    [4X[28X(1,2,3) -> (1,2,3)[128X[104X
    [4X[28X(2,3,4) -> (2,3,4)[128X[104X
    [4X[28Xobject map: [ -14, -13, -12 ] -> [ -14, -12, -13 ][128X[104X
    [4X[28Xray images: [ (), (2,4,3), (2,3,4) ][128X[104X
    [4X[25Xgap>[125X [27Xd5 := ImageElm( inn1, d4 );[127X[104X
    [4X[28X[(2,3,4) : -14 -> -13][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [33X[0;0YConjugation  may  also  be  applied  to  certain  normal  subgroupoids of [22XG[122X.
  Firstly,  let [22XN[122X be the wide subgroupoid of [22XG[122X determined by a normal subgroup
  [22Xn[122X  of  the  root  group.  Then, provided the group element of [22Xa[122X is in [22Xn[122X, the
  inner automorphism by [22Xa[122X may be applied to [22XN[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XNk4 := SubgroupoidBySubgroup( Ha4, k4 );;[127X[104X
    [4X[25Xgap>[125X [27XSetName( Nk4, "Nk4" );[127X[104X
    [4X[25Xgap>[125X [27Xe4 := Arrow( Ha4, (1,2)(3,4), -14, -13 );;[127X[104X
    [4X[25Xgap>[125X [27Xinn2 := GroupoidInnerAutomorphismNormalSubgroupoid( Ha4, Nk4, e4 );;[127X[104X
    [4X[25Xgap>[125X [27XDisplay( inn2 );[127X[104X
    [4X[28Xhomomorphism to single piece groupoid: Nk4 -> Nk4[128X[104X
    [4X[28Xroot group homomorphism:[128X[104X
    [4X[28X(1,2)(3,4) -> (1,2)(3,4)[128X[104X
    [4X[28X(1,3)(2,4) -> (1,3)(2,4)[128X[104X
    [4X[28Xobject map: [ -14, -13, -12 ] -> [ -13, -14, -12 ][128X[104X
    [4X[28Xray images: [ (), (), (1,2)(3,4) ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [33X[0;0YSecondly,  if [22XH[122X is a homogeneous, discrete subgroupoid of [22XG[122X and if the group
  element of [22Xa[122X is in the common vertex groups, then the inner automorphism may
  be applied to [22XH[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XMa4 := MaximalDiscreteSubgroupoid( Ha4 );;[127X[104X
    [4X[25Xgap>[125X [27XSetName( Ma4, "Ma4" );[127X[104X
    [4X[25Xgap>[125X [27Xinn3 := GroupoidInnerAutomorphism( Ha4, Ma4, e4 );;[127X[104X
    [4X[25Xgap>[125X [27XDisplay( inn3 );[127X[104X
    [4X[28Xhomogeneous discrete groupoid mapping: [ Ma4 ] -> [ Ma4 ][128X[104X
    [4X[28Ximages of objects: [ -13, -14, -12 ][128X[104X
    [4X[28Xobject homomorphisms:[128X[104X
    [4X[28XGroupHomomorphismByImages( a4, a4, [ (1,2,3), (2,3,4) ], [ (1,4,2), (1,4,3)  ] )[128X[104X
    [4X[28XGroupHomomorphismByImages( a4, a4, [ (1,2,3), (2,3,4) ], [ (1,4,2), (1,4,3)  ] )[128X[104X
    [4X[28XGroupHomomorphismByImages( a4, a4, [ (1,2,3), (2,3,4) ], [ (1,2,3), (2,3,4)  ] )[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  
  [1X6.1-3 [33X[0;0YAutomorphisms of a groupoid with rays[133X[101X
  
  [33X[0;0YLet [22XS[122X be a wide subgroupoid with rays of a standard groupoid [22XG[122X.[133X
  
  [33X[0;0YAn  automorphism  [22Xα[122X  of  the root group [22XH[122X extends to the whole of [22XS[122X with the
  rays fixed by the automorphism: [22X(r^-1_ihr_j : o_i -> o_j) ↦ (r^-1_i (α h)r_j
  : o_i -> o_j)[122X.[133X
  
  [33X[0;0YAn  automorphism  of  [22XG[122X  obtained  by  permuting  the objects may map [22XS[122X to a
  different subgroupoid. So we construct an isomorphism [22Xι[122X from [22XS[122X to a standard
  groupoid [22XT[122X, construct [22Xα[122X permuting the objects of [22XT[122X, and return [22Xι*α*ι^-1[122X.[133X
  
  [33X[0;0YFor an automorphism by ray shifts we require that the shifts are elements of
  the root group of [22XS[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27X## (1) automorphism by group auto [127X[104X
    [4X[25Xgap>[125X [27Xa6 := GroupHomomorphismByImages( k4, k4,[127X[104X
    [4X[25X>[125X [27X             [ (1,2)(3,4), (1,3)(2,4) ], [ (1,3)(2,4), (1,4)(2,3) ] );;[127X[104X
    [4X[25Xgap>[125X [27Xaut6 := GroupoidAutomorphismByGroupAuto( Kk4, a6 );[127X[104X
    [4X[28Xgroupoid homomorphism : Kk4 -> Kk4[128X[104X
    [4X[28X[ [ [(1,2)(3,4) : -14 -> -14], [(1,3)(2,4) : -14 -> -14], [128X[104X
    [4X[28X      [(1,3,4) : -14 -> -13], [(1,4)(2,3) : -14 -> -12] ], [128X[104X
    [4X[28X  [ [(1,3)(2,4) : -14 -> -14], [(1,4)(2,3) : -14 -> -14], [128X[104X
    [4X[28X      [(1,3,4) : -14 -> -13], [(1,4)(2,3) : -14 -> -12] ] ][128X[104X
    [4X[25Xgap>[125X [27Xa := Arrow( Kk4, (1,3)(2,4), -12, -12 );;[127X[104X
    [4X[25Xgap>[125X [27XImageElm( aut6, a );[127X[104X
    [4X[28X[(1,4)(2,3) : -12 -> -12][128X[104X
    [4X[25Xgap>[125X [27Xb := Arrow( Kk4, (1,4,2), -12, -13 );;[127X[104X
    [4X[25Xgap>[125X [27XImageElm( aut6, b );[127X[104X
    [4X[28X[(1,2,3) : -12 -> -13][128X[104X
    [4X[25Xgap>[125X [27X## (2) automorphism by object perm [127X[104X
    [4X[25Xgap>[125X [27Xaut7 := GroupoidAutomorphismByObjectPerm( Kk4, [-13,-12,-14] );[127X[104X
    [4X[28Xgroupoid homomorphism : Kk4 -> Kk4[128X[104X
    [4X[28X[ [ [(1,2)(3,4) : -14 -> -14], [(1,3)(2,4) : -14 -> -14], [128X[104X
    [4X[28X      [(1,3,4) : -14 -> -13], [(1,4)(2,3) : -14 -> -12] ], [128X[104X
    [4X[28X  [ [(1,4)(2,3) : -13 -> -13], [(1,2)(3,4) : -13 -> -13], [128X[104X
    [4X[28X      [(2,3,4) : -13 -> -12], [(1,4,3) : -13 -> -14] ] ][128X[104X
    [4X[25Xgap>[125X [27XImageElm( aut7, a );                                           [127X[104X
    [4X[28X[(1,3)(2,4) : -14 -> -14][128X[104X
    [4X[25Xgap>[125X [27XImageElm( aut7, b );                                           [127X[104X
    [4X[28X[(1,3)(2,4) : -14 -> -12][128X[104X
    [4X[25Xgap>[125X [27X## (3) automorphism by ray shifts [127X[104X
    [4X[25Xgap>[125X [27Xaut8 := GroupoidAutomorphismByRayShifts( Kk4,[127X[104X
    [4X[25X>[125X [27X               [ (), (1,4)(2,3), (1,3)(2,4) ] );[127X[104X
    [4X[28Xgroupoid homomorphism : Kk4 -> Kk4[128X[104X
    [4X[28X[ [ [(1,2)(3,4) : -14 -> -14], [(1,3)(2,4) : -14 -> -14], [128X[104X
    [4X[28X      [(1,3,4) : -14 -> -13], [(1,4)(2,3) : -14 -> -12] ], [128X[104X
    [4X[28X  [ [(1,2)(3,4) : -14 -> -14], [(1,3)(2,4) : -14 -> -14], [128X[104X
    [4X[28X      [(1,2,3) : -14 -> -13], [(1,2)(3,4) : -14 -> -12] ] ][128X[104X
    [4X[25Xgap>[125X [27XImageElm( aut8, a );[127X[104X
    [4X[28X[(1,3)(2,4) : -12 -> -12][128X[104X
    [4X[25Xgap>[125X [27XImageElm( aut8, b );[127X[104X
    [4X[28X[(1,2,3) : -12 -> -13][128X[104X
    [4X[25Xgap>[125X [27X## (4) combine these three automorphisms [127X[104X
    [4X[25Xgap>[125X [27Xaut678 := aut6 * aut7 * aut8;[127X[104X
    [4X[28Xgroupoid homomorphism : Kk4 -> Kk4[128X[104X
    [4X[28X[ [ [(1,2)(3,4) : -14 -> -14], [(1,3)(2,4) : -14 -> -14], [128X[104X
    [4X[28X      [(1,3,4) : -14 -> -13], [(1,4)(2,3) : -14 -> -12] ], [128X[104X
    [4X[28X  [ [(1,2)(3,4) : -13 -> -13], [(1,3)(2,4) : -13 -> -13], [128X[104X
    [4X[28X      [(1,4,3) : -13 -> -12], [(1,3,2) : -13 -> -14] ] ][128X[104X
    [4X[25Xgap>[125X [27XImageElm( aut678, a ); [127X[104X
    [4X[28X[(1,4)(2,3) : -14 -> -14][128X[104X
    [4X[25Xgap>[125X [27XImageElm( aut678, b );[127X[104X
    [4X[28X[(1,4)(2,3) : -14 -> -12][128X[104X
    [4X[25Xgap>[125X [27X## (5) conjgation by an arrow[127X[104X
    [4X[25Xgap>[125X [27Xe8 := Arrow( Kk4, (1,3)(2,4), -14, -12 );;[127X[104X
    [4X[25Xgap>[125X [27Xaut9 := GroupoidInnerAutomorphism( Kk4, e8 );[127X[104X
    [4X[28Xgroupoid homomorphism : Kk4 -> Kk4[128X[104X
    [4X[28X[ [ [(1,2)(3,4) : -14 -> -14], [(1,3)(2,4) : -14 -> -14], [128X[104X
    [4X[28X      [(1,3,4) : -14 -> -13], [(1,4)(2,3) : -14 -> -12] ], [128X[104X
    [4X[28X  [ [(1,2)(3,4) : -12 -> -12], [(1,3)(2,4) : -12 -> -12], [128X[104X
    [4X[28X      [(1,4,2) : -12 -> -13], [(1,4)(2,3) : -12 -> -14] ] ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [1X6.1-4 AutomorphismGroupOfGroupoid[101X
  
  [33X[1;0Y[29X[2XAutomorphismGroupOfGroupoid[102X( [3Xgpd[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XNiceObjectAutoGroupGroupoid[102X( [3Xgpd[103X, [3Xaut[103X ) [32X operation[133X
  
  [33X[0;0YAs  above,  let  [22XG[122X be the direct product of a group [22Xg[122X and a complete digraph
  with  [22Xn[122X  objects.  The  [10XAutomorphismGroup[110X  [22XAut(G)[122X  of [22XG[122X is isomorphic to the
  quotient  of  [22XS_n  ×  A  × g^n[122X by a subgroup isomorphic to [22Xg[122X, where [22XA[122X is the
  automorphism  group  of  [22Xg[122X  and [22XS_n[122X is the symmetric group on the [22Xn[122X objects.
  This is one of the main topics in [AW10].[133X
  
  [33X[0;0YIf  [22XH[122X  is  the  union  of  [22Xk[122X  groupoids, all isomorphic to [22XG[122X, then [22XAut(H)[122X is
  isomorphic to [22XS_k ⋉ Aut(G)[122X.[133X
  
  [33X[0;0YThe  function [10XNiceObjectAutoGroupGroupoid[110X takes a groupoid and a subgroup of
  its automorphism group and retuns a [13Xnice monomorphism[113X from this automorphism
  group  to  a  pc-group,  if  one is available. The current implementation is
  experimental.  Note  that  [10XImageElm[110X  at  present  only  works  on generating
  elements.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XAHa4 := AutomorphismGroupOfGroupoid( Ha4 ); [127X[104X
    [4X[28XAut(Ha4)[128X[104X
    [4X[25Xgap>[125X [27XAgens := GeneratorsOfGroup( AHa4);; [127X[104X
    [4X[25Xgap>[125X [27XLength( Agens );[127X[104X
    [4X[28X8[128X[104X
    [4X[25Xgap>[125X [27XNHa4 := NiceObject( AHa4 );; [127X[104X
    [4X[25Xgap>[125X [27XMHa4 := NiceMonomorphism( AHa4 );; [127X[104X
    [4X[25Xgap>[125X [27XSize( AHa4 );    ## (3!)x24x(12^2)[127X[104X
    [4X[28X20736[128X[104X
    [4X[25Xgap>[125X [27XSetName( AHa4, "AHa4" ); [127X[104X
    [4X[25Xgap>[125X [27XSetName( NHa4, "NHa4" );[127X[104X
    [4X[25Xgap>[125X [27X## either of these names may be returned[127X[104X
    [4X[25Xgap>[125X [27Xnames := [ "(((A4 x A4 x A4) : C2) : C3) : C2",[127X[104X
    [4X[25X>[125X [27X   "(C2 x C2 x C2 x C2 x C2 x C2) : (((C3 x C3 x C3) : C3) : (C2 x C2))" ];;[127X[104X
    [4X[25Xgap>[125X [27XStructureDescription( NHa4 ) in names;[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27X##  cannot test images of Agens because of random variations [127X[104X
    [4X[25Xgap>[125X [27X##  Now do some tests![127X[104X
    [4X[25Xgap>[125X [27Xmgi := MappingGeneratorsImages( MHa4 );; [127X[104X
    [4X[25Xgap>[125X [27Xautgen := mgi[1];;[127X[104X
    [4X[25Xgap>[125X [27Xpcgen := mgi[2];;[127X[104X
    [4X[25Xgap>[125X [27Xngen := Length( autgen );; [127X[104X
    [4X[25Xgap>[125X [27XForAll( [1..ngen], i -> Order(autgen[i]) = Order(pcgen[i]) ); [127X[104X
    [4X[28Xtrue[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  
  [1X6.1-5 [33X[0;0YInner automorphisms[133X[101X
  
  [33X[0;0YThe  inner automorphism subgroup [22XmathrmInn(G)[122X of the automorphism group of [22XG[122X
  is  the  group of inner automorphisms [22X∧ a : b ↦ b^a[122X for [22Xa ∈ G[122X. It is [13Xnot[113X the
  case  that  the  map  [22XG  ->  mathrmInn(G), a ↦ ∧ a[122X preserves multiplication.
  Indeed, when [22Xa=(o,g,p), b=(p,h,r) ∈ G[122X with objects [22Xp,q,r[122X all distict, then[133X
  
  
  [24X[33X[0;6Y\wedge(ab)   ~=~  (\wedge  a)(\wedge  b)(\wedge  a)  ~=~  (\wedge  b)(\wedge
  a)(\wedge b).[133X
  
  [124X
  
  [33X[0;0Y(Compare   this   with  the  permutation  identity  [22X(pq)(qr)(pq)  =  (pr)  =
  (qr)(pq)(qr)[122X.)    So    the    map    [22XG   ->   mathrmInn(G)[122X   is   of   type
  [10XIsMappingWithObjectsByFunction[110X.[133X
  
  [33X[0;0YIn  the  example we convert the automorphism group [10XAGa4[110X into a single object
  groupoid, and then define the inner automorphism map.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XAHa40 := Groupoid( AHa4, [0] );[127X[104X
    [4X[28Xsingle piece groupoid: < Aut(Ha4), [ 0 ] >[128X[104X
    [4X[25Xgap>[125X [27Xconj := function(a) [127X[104X
    [4X[25X>[125X [27X       return ArrowNC( Ha4, true, GroupoidInnerAutomorphism(Ha4,a), 0, 0 ); [127X[104X
    [4X[25X>[125X [27X   end;; [127X[104X
    [4X[25Xgap>[125X [27Xinner := MappingWithObjectsByFunction( Ha4, AHa40, conj, [0,0,0] );;[127X[104X
    [4X[25Xgap>[125X [27Xa1 := Arrow( Ha4, (1,2,3), -14, -13 );;[127X[104X
    [4X[25Xgap>[125X [27Xinner1 := ImageElm( inner, a1 );;                        [127X[104X
    [4X[25Xgap>[125X [27Xa2 := Arrow( Ha4, (2,3,4), -13, -12 );;[127X[104X
    [4X[25Xgap>[125X [27Xinner2 := ImageElm( inner, a2 );;       [127X[104X
    [4X[25Xgap>[125X [27Xa3 := a1*a2;                      [127X[104X
    [4X[28X[(1,3)(2,4) : -14 -> -12][128X[104X
    [4X[25Xgap>[125X [27Xinner3 := ImageElm( inner, a3 );  [127X[104X
    [4X[28X[groupoid homomorphism : Ha4 -> Ha4[128X[104X
    [4X[28X[ [ [(1,2,3) : -14 -> -14], [(2,3,4) : -14 -> -14], [() : -14 -> -13], [128X[104X
    [4X[28X      [() : -14 -> -12] ], [128X[104X
    [4X[28X  [ [(1,3,4) : -12 -> -12], [(1,2,4) : -12 -> -12], [(1,3)(2,4) : -12 -> -13],[128X[104X
    [4X[28X      [() : -12 -> -14] ] ] : 0 -> 0][128X[104X
    [4X[25Xgap>[125X [27X(inner3 = inner1*inner2*inner1) and (inner3 = inner2*inner1*inner2);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[28Xtrue[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [1X6.1-6 GroupoidAutomorphismByGroupAutos[101X
  
  [33X[1;0Y[29X[2XGroupoidAutomorphismByGroupAutos[102X( [3Xgpd[103X, [3Xauts[103X ) [32X operation[133X
  
  [33X[0;0YHomogeneous,  discrete groupoids are the second type of groupoid for which a
  method is provided for [10XAutomorphismGroupOfGroupoid[110X. This is used in the [5XXMod[105X
  package  for  constructing  crossed  modules  of groupoids. The two types of
  generating automorphism are [10XGroupoidAutomorphismByGroupAutos[110X, which requires
  a   list   of   group   automorphisms,   one  for  each  object  group,  and
  [10XGroupoidAutomorphismByObjectPerm[110X,  which  permutes  the  objects. So, if the
  object  groups [22Xg[122X have automorphism group [22XAut(g)[122X and there are [22Xn[122X objects, the
  autmorphism group of the groupoid has size [22Xn!|Aut(g)|^n[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XDd8 := HomogeneousDiscreteGroupoid( d8, [ -13..-10] ); [127X[104X
    [4X[28Xhomogeneous, discrete groupoid: < d8, [ -13 .. -10 ] >[128X[104X
    [4X[25Xgap>[125X [27Xaut10 := GroupoidAutomorphismByObjectPerm( Dd8, [-12,-10,-11,-13] ); [127X[104X
    [4X[28Xgroupoid homomorphism : morphism from a homogeneous discrete groupoid:[128X[104X
    [4X[28X[ -13, -12, -11, -10 ] -> [ -12, -10, -11, -13 ][128X[104X
    [4X[28Xobject homomorphisms:[128X[104X
    [4X[28XIdentityMapping( d8 )[128X[104X
    [4X[28XIdentityMapping( d8 )[128X[104X
    [4X[28XIdentityMapping( d8 )[128X[104X
    [4X[28XIdentityMapping( d8 )[128X[104X
    [4X[25Xgap>[125X [27Xgend8 := GeneratorsOfGroup( d8 );; [127X[104X
    [4X[25Xgap>[125X [27Xg1 := gend8[1];; [127X[104X
    [4X[25Xgap>[125X [27Xg2 := gend8[2];;[127X[104X
    [4X[25Xgap>[125X [27Xb1 := IdentityMapping( d8 );;[127X[104X
    [4X[25Xgap>[125X [27Xb2 := GroupHomomorphismByImages( d8, d8, gend8, [g1, g2*g1 ] );; [127X[104X
    [4X[25Xgap>[125X [27Xb3 := GroupHomomorphismByImages( d8, d8, gend8, [g1^g2, g2 ] );; [127X[104X
    [4X[25Xgap>[125X [27Xb4 := GroupHomomorphismByImages( d8, d8, gend8, [g1^g2, g2^(g1*g2) ] );; [127X[104X
    [4X[25Xgap>[125X [27Xaut11 := GroupoidAutomorphismByGroupAutos( Dd8, [b1,b2,b3,b4] ); [127X[104X
    [4X[28Xgroupoid homomorphism : morphism from a homogeneous discrete groupoid:[128X[104X
    [4X[28X[ -13, -12, -11, -10 ] -> [ -13, -12, -11, -10 ][128X[104X
    [4X[28Xobject homomorphisms:[128X[104X
    [4X[28XIdentityMapping( d8 )[128X[104X
    [4X[28XGroupHomomorphismByImages( d8, d8, [ (5,6,7,8), (5,7) ], [128X[104X
    [4X[28X[ (5,6,7,8), (5,8)(6,7) ] )[128X[104X
    [4X[28XGroupHomomorphismByImages( d8, d8, [ (5,6,7,8), (5,7) ], [ (5,8,7,6), (5,7) ] )[128X[104X
    [4X[28XGroupHomomorphismByImages( d8, d8, [ (5,6,7,8), (5,7) ], [ (5,8,7,6), (6,8) ] )[128X[104X
    [4X[25Xgap>[125X [27XADd8 := AutomorphismGroupOfGroupoid( Dd8 ); [127X[104X
    [4X[28X<group with 4 generators>[128X[104X
    [4X[25Xgap>[125X [27XSize( ADd8 );    ## 4!*8^4[127X[104X
    [4X[28X98304[128X[104X
    [4X[25Xgap>[125X [27XgenADd8 := GeneratorsOfGroup( ADd8 );;[127X[104X
    [4X[25Xgap>[125X [27XLength( genADd8 ); [127X[104X
    [4X[28X4  [128X[104X
    [4X[25Xgap>[125X [27Xw := GroupoidAutomorphismByGroupAutos( Dd8, [b2,b1,b1,b1] );; [127X[104X
    [4X[25Xgap>[125X [27Xx := GroupoidAutomorphismByGroupAutos( Dd8, [b3,b1,b1,b1] );; [127X[104X
    [4X[25Xgap>[125X [27Xy := GroupoidAutomorphismByObjectPerm( Dd8, [ -12, -11, -10, -13 ] );; [127X[104X
    [4X[25Xgap>[125X [27Xz := GroupoidAutomorphismByObjectPerm( Dd8, [ -12, -13, -11, -10 ] );; [127X[104X
    [4X[25Xgap>[125X [27Xok := ForAll( genADd8, a -> a in[ w, x, y, z ] ); [127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XNADd8 := NiceObject( ADd8 );; [127X[104X
    [4X[25Xgap>[125X [27XMADd8 := NiceMonomorphism( ADd8 );;[127X[104X
    [4X[25Xgap>[125X [27Xw1 := ImageElm( MADd8, w );; [127X[104X
    [4X[25Xgap>[125X [27Xx1 := ImageElm( MADd8, x );; [127X[104X
    [4X[25Xgap>[125X [27Xy1 := ImageElm( MADd8, y );; [127X[104X
    [4X[25Xgap>[125X [27Xz1 := ImageElm( MADd8, z );; [127X[104X
    [4X[25Xgap>[125X [27Xu := z*w*y*x*z; [127X[104X
    [4X[28Xgroupoid homomorphism : morphism from a homogeneous discrete groupoid:[128X[104X
    [4X[28X[ -13, -12, -11, -10 ] -> [ -11, -13, -10, -12 ][128X[104X
    [4X[28Xobject homomorphisms:[128X[104X
    [4X[28XIdentityMapping( d8 )[128X[104X
    [4X[28XGroupHomomorphismByImages( d8, d8, [ (5,6,7,8), (5,7) ], [128X[104X
    [4X[28X[ (5,6,7,8), (5,8)(6,7) ] )[128X[104X
    [4X[28XIdentityMapping( d8 )[128X[104X
    [4X[28XGroupHomomorphismByImages( d8, d8, [ (5,6,7,8), (5,7) ], [ (5,8,7,6), (5,7) ] )[128X[104X
    [4X[25Xgap>[125X [27Xu1 := z1*w1*y1*x1*z1; [127X[104X
    [4X[28X(1,2,4,3)(5,17,23,11,6,18,24,16)(7,19,25,15,9,21,27,13)(8,20,26,14,10,22,28,12)[128X[104X
    [4X[25Xgap>[125X [27Ximu := ImageElm( MADd8, u );; [127X[104X
    [4X[25Xgap>[125X [27Xu1 = imu;[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [1X6.1-7 AutomorphismGroupoidOfGroupoid[101X
  
  [33X[1;0Y[29X[2XAutomorphismGroupoidOfGroupoid[102X( [3Xgpd[103X ) [32X attribute[133X
  
  [33X[0;0YIf  [22XG[122X is a single piece groupoid with automorphism group [22XAut(G)[122X, and if [22XH[122X is
  the union of [22Xk[122X pieces, all isomorphic to [22XG[122X, then the automorphism group of [22XH[122X
  is  the  wreath product [22XS_k ⋉ Aut(G)[122X. However, we find it more convenient to
  construct  the  [13Xautomorphism  groupoid[113X of [22XH[122X. This is a single piece groupoid
  [22XAUT(H)[122X with [22Xk[122X objects - the object lists of the pieces of [22XH[122X - and root group
  [22XAut(G)[122X.  Isomorphisms between the root groups of the [22Xk[122X pieces may be applied
  to  the  generators  of  [22XAut(G)[122X  to  construct  automorphism groups of these
  pieces,  and  then  isomorphisms  between these automorphism groups. We then
  construct [22XAUT(H)[122X using [10XGroupoidByIsomorphisms[110X.[133X
  
  [33X[0;0YIn  the  special case that [22XH[122X is homogeneous, there is no need to construct a
  collection  of  automorphism groups. Rather, the rays of [22XAUT(H)[122X are given by
  [10XIsomorphismNewObjects[110X. For the example we use [10XHGd8[110X constructed in subsection
  [2XHomogeneousGroupoid[102X ([14X4.1-5[114X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XHGd8 := HomogeneousGroupoid( Gd8, [127X[104X
    [4X[25X>[125X [27X               [ [-39,-38,-37], [-36,-35,-34], [-33,-32,-31] ] );;[127X[104X
    [4X[25Xgap>[125X [27XSetName( HGd8, "HGd8" );[127X[104X
    [4X[25Xgap>[125X [27XAHGd8 := AutomorphismGroupoidOfGroupoid( HGd8 ); [127X[104X
    [4X[28XAut(HGd8)[128X[104X
    [4X[25Xgap>[125X [27XObjectList( AHGd8 );[127X[104X
    [4X[28X[ [ -39, -38, -37 ], [ -36, -35, -34 ], [ -33, -32, -31 ] ][128X[104X
    [4X[25Xgap>[125X [27XRaysOfGroupoid( AHGd8 ){[2..3]};[127X[104X
    [4X[28X[ groupoid homomorphism : [128X[104X
    [4X[28X    [ [ [(5,6,7,8) : -39 -> -39], [(5,7) : -39 -> -39], [() : -39 -> -38], [128X[104X
    [4X[28X          [() : -39 -> -37] ], [128X[104X
    [4X[28X      [ [(5,6,7,8) : -36 -> -36], [(5,7) : -36 -> -36], [() : -36 -> -35], [128X[104X
    [4X[28X          [() : -36 -> -34] ] ], groupoid homomorphism : [128X[104X
    [4X[28X    [ [ [(5,6,7,8) : -39 -> -39], [(5,7) : -39 -> -39], [() : -39 -> -38], [128X[104X
    [4X[28X          [() : -39 -> -37] ], [128X[104X
    [4X[28X      [ [(5,6,7,8) : -33 -> -33], [(5,7) : -33 -> -33], [() : -33 -> -32], [128X[104X
    [4X[28X          [() : -33 -> -31] ] ] ][128X[104X
    [4X[25Xgap>[125X [27Xobgp := ObjectGroup( AHGd8, [ -36, -35, -34 ] );; [127X[104X
    [4X[25Xgap>[125X [27XSize( obgp );    ## 3!*8^3[127X[104X
    [4X[28X3072[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  
  [1X6.2 [33X[0;0YMatrix representations of groupoids[133X[101X
  
  [33X[0;0YSuppose  that [10Xgpd[110X is the direct product of a group [22XG[122X and a complete digraph,
  and  that  [22Xρ : G -> M[122X is an isomorphism to a matrix group [22XM[122X. Then, if [10Xrep[110X is
  the  isomorphic groupoid with the same objects and root group [22XM[122X, there is an
  isomorphism [22Xμ[122X from [10Xgpd[110X to [10Xrep[110X mapping [22X(g : i -> j)[122X to [22X(ρ g : i -> j)[122X.[133X
  
  [33X[0;0YWhen  [10Xgpd[110X  is  a  groupoid  with  rays,  a representation can be obtained by
  restricting a representation of its parent.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27Xreps := IrreducibleRepresentations( a4 );; [127X[104X
    [4X[25Xgap>[125X [27Xrep4 := reps[4]; [127X[104X
    [4X[28XPcgs([ (2,4,3), (1,3)(2,4), (1,2)(3,4) ]) -> [128X[104X
    [4X[28X[ [ [ 0, 0, 1 ], [ 1, 0, 0 ], [ 0, 1, 0 ] ], [128X[104X
    [4X[28X  [ [ -1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, -1 ] ], [128X[104X
    [4X[28X  [ [ 1, 0, 0 ], [ 0, -1, 0 ], [ 0, 0, -1 ] ] ][128X[104X
    [4X[25Xgap>[125X [27XRa4 := Groupoid( Image( rep4 ), Ga4!.objects );; [127X[104X
    [4X[25Xgap>[125X [27XObjectList( Ra4 ) = [ -15 .. -11 ];[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27Xgens := GeneratorsOfGroupoid( Ga4 );[127X[104X
    [4X[28X[ [(1,2,3) : -15 -> -15], [(2,3,4) : -15 -> -15], [() : -15 -> -14],[128X[104X
    [4X[28X  [() : -15 -> -13], [() : -15 -> -12], [() : -15 -> -11] ][128X[104X
    [4X[25Xgap>[125X [27Ximages := List( gens, [127X[104X
    [4X[25X>[125X [27X       g -> Arrow( Ra4, ImageElm(rep4,g![2]), g![3], g![4] ) ); [127X[104X
    [4X[28X[ [[ [ 0, 0, -1 ], [ 1, 0, 0 ], [ 0, -1, 0 ] ] : -15 -> -15], [128X[104X
    [4X[28X  [[ [ 0, 1, 0 ], [ 0, 0, 1 ], [ 1, 0, 0 ] ] : -15 -> -15], [128X[104X
    [4X[28X  [[ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] : -15 -> -14], [128X[104X
    [4X[28X  [[ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] : -15 -> -13], [128X[104X
    [4X[28X  [[ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] : -15 -> -12], [128X[104X
    [4X[28X  [[ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] : -15 -> -11] ][128X[104X
    [4X[25Xgap>[125X [27Xmor := GroupoidHomomorphismFromSinglePiece( Ga4, Ra4, gens, images );
[127X[104X
    [4X[28Xgroupoid homomorphism : [128X[104X
    [4X[28X[ [ [(1,2,3) : -15 -> -15], [(2,3,4) : -15 -> -15], [() : -15 -> -14], [128X[104X
    [4X[28X      [() : -15 -> -13], [() : -15 -> -12], [() : -15 -> -11] ], [128X[104X
    [4X[28X  [ [[ [ 0, 0, -1 ], [ 1, 0, 0 ], [ 0, -1, 0 ] ] : -15 -> -15], [128X[104X
    [4X[28X      [[ [ 0, 1, 0 ], [ 0, 0, 1 ], [ 1, 0, 0 ] ] : -15 -> -15], [128X[104X
    [4X[28X      [[ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] : -15 -> -14], [128X[104X
    [4X[28X      [[ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] : -15 -> -13], [128X[104X
    [4X[28X      [[ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] : -15 -> -12], [128X[104X
    [4X[28X      [[ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] : -15 -> -11] ] ][128X[104X
    [4X[25Xgap>[125X [27XIsMatrixGroupoid( Ra4 ); [127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27Xa := Arrow( Ha4, (1,4,2), -12, -13 );[127X[104X
    [4X[28X[(1,4,2) : -12 -> -13][128X[104X
    [4X[25Xgap>[125X [27XImageElm( mor, a );[127X[104X
    [4X[28X[[ [ 0, 0, 1 ], [ -1, 0, 0 ], [ 0, -1, 0 ] ] : -12 -> -13][128X[104X
    [4X[25Xgap>[125X [27Xrmor := RestrictedMappingGroupoids( mor, Ha4 );[127X[104X
    [4X[28Xgroupoid homomorphism : [128X[104X
    [4X[28X[ [ [(1,2,3) : -14 -> -14], [(2,3,4) : -14 -> -14], [() : -14 -> -13], [128X[104X
    [4X[28X      [() : -14 -> -12] ], [128X[104X
    [4X[28X  [ [[ [ 0, 0, -1 ], [ 1, 0, 0 ], [ 0, -1, 0 ] ] : -14 -> -14], [128X[104X
    [4X[28X      [[ [ 0, 1, 0 ], [ 0, 0, 1 ], [ 1, 0, 0 ] ] : -14 -> -14], [128X[104X
    [4X[28X      [[ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] : -14 -> -13], [128X[104X
    [4X[28X      [[ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] : -14 -> -12] ] ][128X[104X
    [4X[25Xgap>[125X [27XParentMappingGroupoids( rmor ) = mor;[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  
  [1X6.3 [33X[0;0YGroupoid actions[133X[101X
  
  [33X[0;0YRecall from sections [14X4.5[114X and [2XGroupoidInnerAutomorphism[102X ([14X6.1-2[114X) the notion of
  [13Xconjugation[113X in a groupoid, and the associated inner automorphisms.[133X
  
  [33X[0;0YIt  was  mentioned  there  that the map [22X∧ : G -> Aut(G),~ a -> ∧ a[122X, is [13Xnot[113X a
  groupoid  homomorphism. It is in fact a [13Xgroupoid action[113X which we now define.
  Let [22X{p,q,r,u,v}[122X be distinct objects in [22XG[122X and let:[133X
  
  [33X[0;0Y[22Xa_1  = (c_1 : p -> q),~~ a_2 = (c_2 : q -> r),~~ a_3 = (c_3 : q -> p),~~ a_4
  = (c_4 : u -> v)[122X,[133X
  
  [33X[0;0Y[22Xb_1  = (d_1 : p -> p),~~ b_2 = (d_2 : p -> p),~~ b_3 = (d_3 : q -> q),~~ b_4
  =  (c_3c_1  :  q  ->  q)[122X  be  arrows  in  [22XG[122X.  Then the following [13Xconjugation
  identities[113X must be satisfied:[133X
  
  [30X    [33X[0;6Y[22X∧(a_1a_2) ~=~ (∧ a_1)*(∧ a_2)*(∧ a_1) ~=~ (∧ a_2)*(∧ a_1)*(∧ a_2)[122X,[133X
  
  [30X    [33X[0;6Y[22X∧(b_1a_1) ~=~ (∧ b_1)*(∧ a_1)*(∧ b_1)^-1[122X,[133X
  
  [30X    [33X[0;6Y[22X∧(a_1b_3) ~=~ (∧ b_3)^-1*(∧ a_1)*(∧ b_3)[122X,[133X
  
  [30X    [33X[0;6Y[22X∧(b_1b_2) ~=~ (∧ b_1)*(∧ b_2)[122X,[133X
  
  [30X    [33X[0;6Y[22X∧(a_1a_3) ~=~ (∧ a_1)*(∧ a_3)*(∧ b_4)[122X,[133X
  
  [30X    [33X[0;6Y[22X(∧ a_1)*(∧ a_4) ~=~ (∧ a_4)*(∧ a_1)[122X.[133X
  
  [33X[0;0YIn  the  following  example  we  check  the first of these identities in one
  particular case.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27Xc1 := Arrow( Ha4, (1,2)(3,4), -14, -13);;[127X[104X
    [4X[25Xgap>[125X [27Xinnc1 := GroupoidInnerAutomorphism( Ha4, c1 );[127X[104X
    [4X[28Xgroupoid homomorphism : Ha4 -> Ha4[128X[104X
    [4X[28X[ [ [(1,2,3) : -14 -> -14], [(2,3,4) : -14 -> -14], [() : -14 -> -13], [128X[104X
    [4X[28X      [() : -14 -> -12] ], [128X[104X
    [4X[28X  [ [(1,4,2) : -13 -> -13], [(1,4,3) : -13 -> -13], [() : -13 -> -14], [128X[104X
    [4X[28X      [(1,2)(3,4) : -13 -> -12] ] ][128X[104X
    [4X[25Xgap>[125X [27Xc2 := Arrow( Ha4, (1,4,2), -13, -12);;[127X[104X
    [4X[25Xgap>[125X [27Xinnc2 := GroupoidInnerAutomorphism( Ha4, c2 );[127X[104X
    [4X[28Xgroupoid homomorphism : Ha4 -> Ha4[128X[104X
    [4X[28X[ [ [(1,2,3) : -14 -> -14], [(2,3,4) : -14 -> -14], [() : -14 -> -13], [128X[104X
    [4X[28X      [() : -14 -> -12] ], [128X[104X
    [4X[28X  [ [(1,2,3) : -14 -> -14], [(2,3,4) : -14 -> -14], [(1,4,2) : -14 -> -12], [128X[104X
    [4X[28X      [(1,2,4) : -14 -> -13] ] ][128X[104X
    [4X[25Xgap>[125X [27Xc12 := c1 * c2;[127X[104X
    [4X[28X[(2,4,3) : -14 -> -12][128X[104X
    [4X[25Xgap>[125X [27Xinnc12 := GroupoidInnerAutomorphism( Ha4, c12 );[127X[104X
    [4X[28Xgroupoid homomorphism : Ha4 -> Ha4[128X[104X
    [4X[28X[ [ [(1,2,3) : -14 -> -14], [(2,3,4) : -14 -> -14], [() : -14 -> -13], [128X[104X
    [4X[28X      [() : -14 -> -12] ], [128X[104X
    [4X[28X  [ [(1,4,2) : -12 -> -12], [(2,3,4) : -12 -> -12], [(2,3,4) : -12 -> -13], [128X[104X
    [4X[28X      [(2,4,3) : -12 -> -14] ] ][128X[104X
    [4X[25Xgap>[125X [27X[ innc1 * innc2 * innc1 = innc12, innc2 * innc1 * innc2 = innc12 ];[127X[104X
    [4X[28X[ true, true ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [1X6.3-1 GroupoidActionByConjugation[101X
  
  [33X[1;0Y[29X[2XGroupoidActionByConjugation[102X( [3Xgpd[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XIsGroupoidAction[102X( [3Xmap[103X ) [32X Category[133X
  [33X[1;0Y[29X[2XActionMap[102X( [3Xact[103X ) [32X attribute[133X
  
  [33X[0;0YThe  operation  [10XGroupoidInnerAutomorphism[110X,  which  produces  the conjugation
  action  of  [22XG[122X  on  itself,  does  satisfy  the conjugation identities and so
  provides a standard example of an action.[133X
  
  [33X[0;0YAn action is a record with fields [10XSource[110X, [10XRange[110X and [10XActionMap[110X.[133X
  
  [33X[0;0YThe  examples  repeat  those  in  section [2XGroupoidInnerAutomorphism[102X ([14X6.1-2[114X):
  firstly with a groupoid acting on itself.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27Xact1 := GroupoidActionByConjugation( Ha4 );[127X[104X
    [4X[28X<general mapping: Ha4 -> Aut(Ha4) >[128X[104X
    [4X[25Xgap>[125X [27XIsGroupoidAction( act1 );[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27Xamap1 := ActionMap( act1 );;[127X[104X
    [4X[25Xgap>[125X [27Xamap1( h4 ) = inn1;[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [33X[0;0YSecondly with an action on a single piece, normal subgroupoid.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27Xact2 := GroupoidActionByConjugation( Ha4, Nk4 );[127X[104X
    [4X[28X<general mapping: Ha4 -> Aut(Nk4) >[128X[104X
    [4X[25Xgap>[125X [27XIsGroupoidAction( act2 );[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27Xamap2 := ActionMap( act2 );;[127X[104X
    [4X[25Xgap>[125X [27Xamap2( e4 ) = inn2;[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [33X[0;0YThirly with an action on a homogeneous, discrete subgroupoid.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27Xact3 := GroupoidActionByConjugation( Ha4, Ma4 );[127X[104X
    [4X[28X<general mapping: Ha4 -> Aut(Ma4) >[128X[104X
    [4X[25Xgap>[125X [27XIsGroupoidAction( act3 );[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27Xamap3 := ActionMap( act3 );;[127X[104X
    [4X[25Xgap>[125X [27Xamap3( e4 ) = inn3;[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
