Goto Chapter: Top 1 2 3 4 5 6 7 8 Bib Ind

5 Homomorphisms of Groupoids

A homomorphism $$m$$ from a groupoid $$G$$ to a groupoid $$H$$ consists of a map from the objects of $$G$$ to those of $$H$$ together with a map from the elements of $$G$$ to those of $$H$$ which is compatible with tail and head and which preserves multiplication:

$m(g1 : o1 \to o2)*m(g2 : o2 \to o3) ~=~ m(g1*g2 : o1 \to o3).$

Note that when a homomorphism is not injective on objects, the image of the source need not be a subgroupoid of the range. A simple example of this is given by a homomorphism from the two-object, four-element groupoid with trivial group to the free group $$\langle a \rangle$$ on one generator, when the image is $$[1,a^n,a^{-n}]$$ for some $$n>0$$.

A variety of homomorphism operations are available.

• The basic construction is a homomorphism $$\phi : G \to H$$ from a connected groupoid $$G$$ to a connected groupoid $$H$$, constructed using GroupoidHomomorphismFromSinglePiece, (see 5.1).

• Since more than one connected groupoid may be mapped to the same range, we then have the operation GroupoidHomomorphismToSinglePiece, (see 5.4).

• The third case arises when the range is a union of connected groupoids, in which case HomomorphismByUnion is called, (see 5.5).

• Fourthly, there are is an additional operation for the case where the source is homogeneous and discrete, GroupoidHomomorphismFromHomogeneousDiscrete, (see 5.4-2).

• Finally, there are special operations for inclusion mappings, restriced mappings, and groupoid automorphisms (see 5.6).

5.1 Homomorphisms from a connected groupoid

5.1-1 GroupoidHomomorphismFromSinglePiece
 ‣ GroupoidHomomorphismFromSinglePiece( src, rng, gens, images ) ( operation )
 ‣ GroupoidHomomorphism( args ) ( function )
 ‣ MappingToSinglePieceData( map ) ( operation )

The simplest groupoid homomorphism is a mapping $$\phi : G \to H$$ from a connected groupoid $$G$$ to a connected groupoid $$H$$. There are two equivalent sets of input data which may be used. Both require the Source $$G$$ and the Range $$H$$. The first then requires:

• the set of generating arrows GeneratorsOfGroupoid(G);

• a list of image arrows in $$H$$.

This data is stored in the attribute MappingGeneratorsImages.

The alternative input data consists of:

• a homomorphism rhom from the root group of $$G$$ to the group at the image object in $$H$$;

• a list imobs of the images of the objects of $$G$$;

• a list imrays of the elements in the images of the rays of $$G$$, so that the image $$\phi(r_i : o_1 \to o_i)$$ of the $$i$$-th ray is (imrays[i]:imobs[1]$$\to$$imobs[i]).

This data is stored in the attribute MappingToSinglePieceData.

So an alternative way to construct a homomorphism of groupoids is to make a call of the form GroupoidHomomorphism(src,rng,rhom,imobs,imrays).

In the following example the same homomorphism is constructed using both methods.


gap> gen1 := GeneratorsOfGroupoid( Gq8 );
[ [f1 : -28 -> -28], [f2 : -28 -> -28], [f3 : -28 -> -28],
[<identity> of ... : -28 -> -27] ]
gap> gen2 := GeneratorsOfGroupoid( Hd8b );
[ [(1,2,3,4) : -14 -> -14], [(1,3) : -14 -> -14], [(1,2,3) : -14 -> -13],
[(1,2,4) : -14 -> -12] ]
gap> images := [ gen2[1]^2, gen2[1]*gen2[2], IdentityArrow(Hd8b,-14), gen2[4] ];
[ [(1,3)(2,4) : -14 -> -14], [(1,2)(3,4) : -14 -> -14], [() : -14 -> -14],
[(1,2,4) : -14 -> -12] ]
gap> mor1 := GroupoidHomomorphism( Gq8, Hd8b, gen1, images );
groupoid homomorphism : Gq8 -> Hd8b
[ [ [f1 : -28 -> -28], [f2 : -28 -> -28], [f3 : -28 -> -28],
[<identity> of ... : -28 -> -27] ],
[ [(1,3)(2,4) : -14 -> -14], [(1,2)(3,4) : -14 -> -14], [() : -14 -> -14],
[(1,2,4) : -14 -> -12] ] ]
gap> genq8 := GeneratorsOfGroup( q8 );;
gap> imh := [ (1,3)(2,4), (1,2)(3,4), () ];;
gap> h := GroupHomomorphismByImages( q8, d8, genq8, imh );
[ f1, f2, f3 ] -> [ (1,3)(2,4), (1,2)(3,4), () ]
gap> mor2 := GroupoidHomomorphism( Gq8, Hd8b, h, [-14,-12], [(),(1,2,4)] );;
gap> mor1=mor2;
true
gap> e := Arrow( Gq8, Product(genq8), -27, -28 );
[f1*f2*f3 : -27 -> -28]
gap> ImageElm( mor2, e );
[(2,4,3) : -12 -> -14]



5.2 Properties and attributes of groupoid homomorphisms

5.2-1 Properties of a groupoid homomorphism

The properties listed in subsection 3.3 for homomorphisms of magmas with objects also apply to groupoid homomorphisms.


gap> IsInjectiveOnObjects( mor2 );
true
gap> IsSurjectiveOnObjects( mor2 );
false
gap> ad8 := GroupHomomorphismByImages( d8, d8,
>               [ (1,2,3,4), (1,3) ], [ (1,4,3,2), (2,4) ] );;
gap> md8 := GroupoidHomomorphism( Gd8, Gd8, ad8, [-7,-9,-8], [(),(1,3),(2,4)] );
groupoid homomorphism : Gd8 -> Gd8
[ [ [(1,2,3,4) : -9 -> -9], [(1,3) : -9 -> -9], [() : -9 -> -8],
[() : -9 -> -7] ],
[ [(1,4,3,2) : -7 -> -7], [(2,4) : -7 -> -7], [(1,3) : -7 -> -9],
[(2,4) : -7 -> -8] ] ]
gap> IsBijectiveOnObjects( md8 );
true
gap> IsEndomorphismWithObjects( md8 );
true
gap> IsAutomorphismWithObjects( md8 );
true



5.2-2 Attributes of a groupoid homomorphism

The attributes of a groupoid homomorphism mor from a single piece groupoid cover both forms of construction defined above.

• S = Source(mor) is the source groupoid of the homomorphism;

• R = Range(mor) is the range groupoid of the homomorphism;

• RootGroupHomomorphism(mor) is the group homomorphism from the root group of S to the group at the image object in R of the root object in S;

• ImagesOfObjects(mor) is the list of objects in R which are the images of the objects in S;

• ImageElementsOfRays(mor) is the list of group elements in those arrows in R which are the images of the rays in S;

• MappingGeneratorsImages(mor) is the two element list containing the list of generators in S and the list of their images in R;

• MappingToSinglePieceData(mor) is a list with three elements: the root group homomorphism; the images of the objects; and the images of the rays.

For other types of homomorphism the attributes are very similar.

The operation ObjectGroupHomomorphism, though an operation, is included in this section for convenience.

5.2-3 RootGroupHomomorphism
 ‣ RootGroupHomomorphism( hom ) ( attribute )

This is the group homomorphism from the root group of the source groupoid to the group at the image object in the range groupoid of the root object in the source.

5.2-4 ImagesOfObjects
 ‣ ImagesOfObjects( hom ) ( attribute )

This is the list of objects in the range groupoid which are the images of the objects in the source.

5.2-5 ImageElementsOfRays
 ‣ ImageElementsOfRays( hom ) ( attribute )

This is the list of group elements in those arrows in the range groupoid which are the images of the rays in the source.


gap> RootGroupHomomorphism( mor2 );
[ f1, f2, f3 ] -> [ (1,3)(2,4), (1,2)(3,4), () ]
gap> ImagesOfObjects( mor2 );
[ -14, -12 ]
gap> ImageElementsOfRays( mor2 );
[ (), (1,2,4) ]



5.2-6 ObjectGroupHomomorphism
 ‣ ObjectGroupHomomorphism( gpdhom, obj ) ( operation )

This operations gives the group homomorphism from an object group of the source to the object group at the image object in the range.


gap> ObjectGroupHomomorphism( mor1, -27 );
[ f1, f2, f3 ] -> [ (1,4)(2,3), (1,3)(2,4), () ]



5.3 Special types of groupoid homomorphism

In this section we mention inclusion mappings of subgroupoids; and mappings restricted to a source subgroupoid. We also discuss various types of isomorphism: to a different set of objects; to a permutation groupoid; to a pc-groupoid.

5.3-1 InclusionMappingGroupoids
 ‣ InclusionMappingGroupoids( gpd, sgpd ) ( operation )

The operation InclusionMappingGroupoids(gpd,sgpd) returns the inclusion homomorphism from the subgroupoid sgpd to gpd.


gap> inc := InclusionMappingGroupoids( Hs4, Hd8b );
groupoid homomorphism : Hd8b -> Hs4
[ [ [(1,2,3,4) : -14 -> -14], [(1,3) : -14 -> -14], [(1,2,3) : -14 -> -13],
[(1,2,4) : -14 -> -12] ],
[ [(1,2,3,4) : -14 -> -14], [(1,3) : -14 -> -14], [(1,2,3) : -14 -> -13],
[(1,2,4) : -14 -> -12] ] ]



5.3-2 RestrictedMappingGroupoids
 ‣ RestrictedMappingGroupoids( mor, sgpd ) ( operation )

The operation RestrictedMappingGroupoids(mor,sgpd) returns the restriction of the homomorphism mor to the subgroupoid sgpd of its source. The range is usually set to the ImagesSource of the restriction. For another example see section 5.7


gap> max := MaximalDiscreteSubgroupoid( Hd8b );;
gap> res := RestrictedMappingGroupoids( inc, max );
groupoid homomorphism from several pieces :
groupoid homomorphism :
[ [ [(1,2,3,4) : -14 -> -14], [(1,3) : -14 -> -14] ],
[ [(1,2,3,4) : -14 -> -14], [(1,3) : -14 -> -14] ] ]
groupoid homomorphism :
[ [ [(1,4,2,3) : -13 -> -13], [(1,2) : -13 -> -13] ],
[ [(1,4,2,3) : -13 -> -13], [(1,2) : -13 -> -13] ] ]
groupoid homomorphism :
[ [ [(1,2,4,3) : -12 -> -12], [(2,3) : -12 -> -12] ],
[ [(1,2,4,3) : -12 -> -12], [(2,3) : -12 -> -12] ] ]



5.3-3 IsomorphismNewObjects
 ‣ IsomorphismNewObjects( src, objlist ) ( operation )
 ‣ IsomorphismStandardGroupoid( gpd, obs ) ( operation )

The operation IsomorphismNewObjects(gpd,obs) returns the isomorphism from a groupoid gpd to a groupoid with the same object group and ray elements but with a different set obs of objects.

The operation IsomorphismStandardGroupoid(gpd,obs) returns the isomorphism from a groupoid with rays to the groupoid of type IsDirectProductWithCompleteDigraphDomain on the given set obs of objects.


gap> iso1 := IsomorphismNewObjects( Hs4, [-30,-20,-10] );
groupoid homomorphism :
[ [ [(1,2,3,4) : -14 -> -14], [(3,4) : -14 -> -14], [() : -14 -> -13],
[() : -14 -> -12] ],
[ [(1,2,3,4) : -30 -> -30], [(3,4) : -30 -> -30], [() : -30 -> -20],
[() : -30 -> -10] ] ]
gap> inc2 := mor2*inc*iso1;
groupoid homomorphism :
[ [ [f1 : -28 -> -28], [f2 : -28 -> -28], [f3 : -28 -> -28],
[<identity> of ... : -28 -> -27] ],
[ [(1,3)(2,4) : -30 -> -30], [(1,2)(3,4) : -30 -> -30], [() : -30 -> -30],
[(1,2,4) : -30 -> -10] ] ]
gap> iso2 := IsomorphismStandardGroupoid( Hd8b, [-23,-22,-21] );
groupoid homomorphism :
[ [ [(1,2,3,4) : -14 -> -14], [(1,3) : -14 -> -14], [(1,2,3) : -14 -> -13],
[(1,2,4) : -14 -> -12] ],
[ [(1,2,3,4) : -23 -> -23], [(1,3) : -23 -> -23], [() : -23 -> -22],
[() : -23 -> -21] ] ]
gap> inv2 := InverseGeneralMapping( iso2 );
groupoid homomorphism :
[ [ [(1,2,3,4) : -23 -> -23], [(1,3) : -23 -> -23], [() : -23 -> -22],
[() : -23 -> -21] ],
[ [(1,2,3,4) : -14 -> -14], [(1,3) : -14 -> -14], [(1,2,3) : -14 -> -13],
[(1,2,4) : -14 -> -12] ] ]



5.3-4 IsomorphismPermGroupoid
 ‣ IsomorphismPermGroupoid( gpd ) ( attribute )
 ‣ IsomorphismPcGroupoid( gpd ) ( operation )

The operation IsomorphismPermGroupoid(gpd) returns an isomorphism from a groupoid gpd to a groupoid with the same objects but with an isomorphic permutation group. Similarly, IsomorphismPcGroupoid(gpd) changes the group into a pc-group (if appropriate).


gap> N2 := NormalSubgroups( q8 )[2];;
gap> Hq8 := SubgroupoidWithRays( Gq8, N2, [ One(q8), q8.1 ] );
single piece groupoid with rays: < Group( [ f2, f3 ] ), [ -28, -27 ],
[ <identity> of ..., f1 ] >
gap> isoHq8 := IsomorphismPermGroupoid( Hq8 );
groupoid homomorphism :
[ [ [f2 : -28 -> -28], [f3 : -28 -> -28], [f1 : -28 -> -27] ],
[ [(1,3,4,7)(2,5,6,8) : -28 -> -28], [(1,4)(2,6)(3,7)(5,8) : -28 -> -28],
[(1,2,4,6)(3,8,7,5) : -28 -> -27] ] ]



5.4 Homomorphisms to a connected groupoid

5.4-1 HomomorphismToSinglePiece
 ‣ HomomorphismToSinglePiece( src, rng, piecehoms ) ( operation )

When $$G$$ is made up of two or more pieces, all of which get mapped to a connected groupoid, we have a homomorphism to a single piece. The third input parameter in this case is a list of the individual homomorphisms from the single pieces (in the correct order!). See section 3.1 for the corresponding operation on homomorphisms of magmas with objects.

In the following example the source V3 of homV3 has three pieces, and one of the component homomorphisms is an IdentityMapping .


gap> gend12 := [ (15,16,17,18,19,20), (15,20)(16,19)(17,18) ];;
gap> d12 := Group( gend12 );;
gap> Gd12 := Groupoid( d12, [-37,-36,-35,-34] );;
gap> SetName( d12, "d12" );
gap> SetName( Gd12, "Gd12" );
gap> s3 := Subgroup( d12, [ (15,17,19)(16,18,20), (15,20)(16,19)(17,18) ] );;
gap> Gs3 := SubgroupoidByPieces( Gd12, [ [ s3, [-36,-35,-34] ] ] );;
gap> SetName( s3, "s3" );
gap> SetName( Gs3, "Gs3" );
gap> gend8 := GeneratorsOfGroup( d8 );;
gap> imhd8 := [ ( ), (15,20)(16,19)(17,18) ];;
gap> hd8 := GroupHomomorphismByImages( d8, s3, gend8, imhd8 );;
gap> homd8 := GroupoidHomomorphism( Gd8, Gs3, hd8 );
groupoid homomorphism : Gd8 -> Gs3
[ [ [(1,2,3,4) : -9 -> -9], [(1,3) : -9 -> -9], [() : -9 -> -8],
[() : -9 -> -7] ],
[ [() : -36 -> -36], [(15,20)(16,19)(17,18) : -36 -> -36],
[() : -36 -> -35], [() : -36 -> -34] ] ]
gap> hc6 := GroupHomomorphismByImages( c6, s3,
>            [(5,6,7)(8,9)], [(15,16)(17,20)(18,19)] );;
gap> Fs3 := FullSubgroupoid( Gs3, [ -35 ] );;
gap> SetName( Fs3, "Fs3" );
gap> homc6 := GroupoidHomomorphism( Gc6, Fs3, hc6 );;
gap> incFs3 := InclusionMappingGroupoids( Gs3, Fs3 );;
gap> ihomc6 := homc6 * incFs3;
groupoid homomorphism : Gc6 -> Gs3
[ [ [(5,6,7)(8,9) : -6 -> -6] ], [ [(15,16)(17,20)(18,19) : -35 -> -35] ] ]
gap> idGs3 := IdentityMapping( Gs3 );;
gap> V3 := ReplaceOnePieceInUnion( U3, 1, Gs3 );
groupoid with 3 pieces:
[ Gs3, Gd8, Gc6 ]
gap> homs3 := [ idGs3, homd8, ihomc6 ];;
gap> homV3 := HomomorphismToSinglePiece( V3, Gs3, homs3 );;
gap> Display( homV3 );
homomorphism to single piece groupoid with pieces:
(1) :  groupoid mapping: [ Gs3 ] -> [ Gs3 ]
root homomorphism: [ [ (15,17,19)(16,18,20), (15,20)(16,19)(17,18) ],
[ (15,17,19)(16,18,20), (15,20)(16,19)(17,18) ] ]
images of objects: [ -36, -35, -34 ]
images of rays: [ [() : -36 -> -36], [() : -36 -> -35], [() : -36 -> -34] ]
(2) :  groupoid mapping: [ Gd8 ] -> [ Gs3 ]
root homomorphism: [ [ (1,2,3,4), (1,3) ], [ (), (15,20)(16,19)(17,18) ] ]
images of objects: [ -36, -35, -34 ]
images of rays: [ [() : -36 -> -36], [() : -36 -> -35], [() : -36 -> -34] ]
(3) :  groupoid mapping: [ Gc6 ] -> [ Gs3 ]
root homomorphism: [ [ (5,6,7)(8,9) ], [ (15,16)(17,20)(18,19) ] ]
images of objects: [ -35 ]
images of rays: [ [() : -35 -> -35] ]



5.4-2 GroupoidHomomorphismFromHomogeneousDiscrete
 ‣ GroupoidHomomorphismFromHomogeneousDiscrete( src, rng, homs, oims ) ( operation )

This operation requires the source and range; a list of homomorphisms from object group to object group; and a list of the image objects.


gap> Dd8 := MaximalDiscreteSubgroupoid( Gd8 );
homogeneous, discrete groupoid: < d8, [ -9, -8, -7 ] >
gap> id8 := IdentityMapping( d8 );;
gap> GroupoidHomomorphismFromHomogeneousDiscrete( Dd8, Gd8, [id8,id8,id8],
>    [-8,-7,-9] );
groupoid homomorphism : morphism from a homogeneous discrete groupoid:
[ -9, -8, -7 ] -> [ -8, -7, -9 ]
object homomorphisms:
IdentityMapping( d8 )
IdentityMapping( d8 )
IdentityMapping( d8 )



5.5 Homomorphisms to more than one piece

5.5-1 HomomorphismByUnion
 ‣ HomomorphismByUnion( src, rng, homs ) ( operation )

As in section 3.3, when the range $$H$$ has more than one connected component, a homomorphism is a union of homomorphisms, one for each piece in the range.


gap> isoq8 := IsomorphismNewObjects( Gq8, [-38,-37] );
groupoid homomorphism :
[ [ [f1 : -28 -> -28], [f2 : -28 -> -28], [f3 : -28 -> -28],
[<identity> of ... : -28 -> -27] ],
[ [f1 : -38 -> -38], [f2 : -38 -> -38], [f3 : -38 -> -38],
[<identity> of ... : -38 -> -37] ] ]
gap> Gq8b := Range( isoq8 );;
gap> SetName( Gq8b, "Gq8b" );
gap> V4 := UnionOfPieces( [ V3, Gq8 ] );
groupoid with 4 pieces:
[ Gs3, Gq8, Gd8, Gc6 ]
gap> SetName( V4, "V4" );
gap> Vs3q8b := UnionOfPieces( [ Gs3, Gq8b ] );;
gap> SetName( Vs3q8b, "Vs3q8b" );
gap> hom4 := HomomorphismByUnion( V4, Vs3q8b, [ homV3, isoq8 ] );;
gap> Display( hom4 );
magma homomorphism: V4 -> Vs3q8b with pieces :
[ Pcgs([ f1, f2, f3 ]) -> [ f1, f2, f3 ], [ -38, -37 ],
[ <identity> of ..., <identity> of ... ] ]
(1) :  groupoid mapping: [ Gs3 ] -> [ Gs3 ]
root homomorphism: [ [ (15,17,19)(16,18,20), (15,20)(16,19)(17,18) ],
[ (15,17,19)(16,18,20), (15,20)(16,19)(17,18) ] ]
images of objects: [ -36, -35, -34 ]
images of rays: [ [() : -36 -> -36], [() : -36 -> -35], [() : -36 -> -34] ]
(2) :  groupoid mapping: [ Gd8 ] -> [ Gs3 ]
root homomorphism: [ [ (1,2,3,4), (1,3) ], [ (), (15,20)(16,19)(17,18) ] ]
images of objects: [ -36, -35, -34 ]
images of rays: [ [() : -36 -> -36], [() : -36 -> -35], [() : -36 -> -34] ]
(3) :  groupoid mapping: [ Gc6 ] -> [ Gs3 ]
root homomorphism: [ [ (5,6,7)(8,9) ], [ (15,16)(17,20)(18,19) ] ]
images of objects: [ -35 ]
images of rays: [ [() : -35 -> -35] ]



5.6 Automorphisms of groupoids

5.6-1 GroupoidAutomorphismByObjectPerm
 ‣ GroupoidAutomorphismByObjectPerm( gpd, imobs ) ( operation )
 ‣ GroupoidAutomorphismByGroupAuto( gpd, gpiso ) ( operation )
 ‣ GroupoidAutomorphismByRayShifts( gpd, imrays ) ( operation )
 ‣ GroupoidInnerAutomorphism( gpd, arrow ) ( operation )

We first describe automorphisms of a groupoid $$G$$ where $$G$$ is the direct product of a group $$g$$ and a complete digraph. The automorphism group is generated by three types of automorphism:

• given a permutation $$\pi$$ of the $$n$$ objects, we define $$\pi : G \to G,~ (o_i,g,o_j) \mapsto (o_{\pi i},g,o_{\pi j})$$;

• given an automorphism $$\alpha$$ of the root group $$g$$, we define $$\alpha : G \to G,~ (o_i,g,o_j) \mapsto (o_i,\alpha g,o_j)$$;

• given $$L = [1,g_2,g_3,\ldots,g_n] \in g^n$$ we define $$\theta_L : G \to G,~ (o_i,g,o_j) \mapsto (o_i,g_i^{-1}gg_j,o_j)$$ so that, in particular, for all $$j$$ the rays $$(r_j : o_1 \to o_j)$$ are shifted by $$g_j\;$$: they map to $$(r_jg_j : o_1 \to o_j)$$;

• given $$g \in G$$, the inner automorphism of $$G$$ by $$g$$ is the mapping $$h \mapsto h^g$$ as defined in section 4.5.


gap> a4 := Subgroup( s4, [(1,2,3),(2,3,4)] );;
gap> SetName( a4, "a4" );
gap> gensa4 := GeneratorsOfGroup( a4 );;
gap> Ga4 := SubgroupoidByPieces( Gs4, [ [a4, [-15,-13,-11]] ] );
single piece groupoid: < a4, [ -15, -13, -11 ] >
gap> SetName( Ga4, "Ga4" );
gap> d := Arrow( Ga4, (1,3,4), -11, -13 );
[(1,3,4) : -11 -> -13]
gap> aut1 := GroupoidAutomorphismByObjectPerm( Ga4, [-13,-11,-15] );;
gap> Display( aut1 );
groupoid mapping: [ Ga4 ] -> [ Ga4 ]
root homomorphism: [ [ (1,2,3), (2,3,4) ], [ (1,2,3), (2,3,4) ] ]
images of objects: [ -13, -11, -15 ]
images of rays: [ [() : -13 -> -13], [() : -13 -> -11], [() : -13 -> -15] ]
gap> d1 := ImageElm( aut1, d );
[(1,3,4) : -15 -> -11]
gap> h2 := GroupHomomorphismByImages( a4, a4, gensa4, [(2,3,4), (1,3,4)] );;
gap> aut2 := GroupoidAutomorphismByGroupAuto( Ga4, h2 );;
gap> Display( aut2 );
groupoid mapping: [ Ga4 ] -> [ Ga4 ]
root homomorphism: [ [ (1,2,3), (2,3,4) ], [ (2,3,4), (1,3,4) ] ]
images of objects: [ -15, -13, -11 ]
images of rays: [ [() : -15 -> -15], [() : -15 -> -13], [() : -15 -> -11] ]
gap> d2 := ImageElm( aut2, d1 );
[(1,2,4) : -15 -> -11]
gap> im3 := [(), (1,3,2), (2,4,3)];;
gap> aut3 := GroupoidAutomorphismByRayShifts( Ga4, im3 );;
gap> Display( aut3 );
groupoid mapping: [ Ga4 ] -> [ Ga4 ]
root homomorphism: [ [ (1,2,3), (2,3,4) ], [ (1,2,3), (2,3,4) ] ]
images of objects: [ -15, -13, -11 ]
images of rays: [ [() : -15 -> -15], [(1,3,2) : -15 -> -13],
[(2,4,3) : -15 -> -11] ]
gap> d3 := ImageElm( aut3, d2 );
[(1,4)(2,3) : -15 -> -11]
gap> d0 := Arrow( Ga4, (2,3,4), -11, -13 );;
gap> aut4 := GroupoidInnerAutomorphism( Ga4, d0 );;
gap> Display( aut4 );
groupoid mapping: [ Ga4 ] -> [ Ga4 ]
root homomorphism: [ [ (1,2,3), (2,3,4) ], [ (1,2,3), (2,3,4) ] ]
images of objects: [ -15, -11, -13 ]
images of rays: [ [() : -15 -> -15], [(2,4,3) : -15 -> -11],
[(2,3,4) : -15 -> -13] ]
gap> d4 := ImageElm( aut4, d3 );
[(1,2,4) : -15 -> -13]



5.6-2 Automorphisms of a groupoid with rays

If $$S$$ is a wide subgroupoid with rays of a standard groupoid $$G$$ then an automorphism $$\alpha$$ of $$G$$ may map $$S$$ to a different subgroupoid. When $$\alpha$$ is a GroupoidAutomorphismByObjectPerm, then it restricts to an automorphism of $$S$$ provided the objects in each orbit have the same ray elements.

This subsection needs to be expanded and examples added.

5.6-3 AutomorphismGroupOfGroupoid
 ‣ AutomorphismGroupOfGroupoid( gpd ) ( operation )
 ‣ NiceObjectAutoGroupGroupoid( gpd, aut ) ( operation )

The AutomorphismGroup of $$G$$ is isomorphic to the quotient of $$S_n \times A \times g^n$$ by a subgroup isomorphic to $$g$$, where $$A$$ is the automorphism group of $$g$$ and $$S_n$$ is the symmetric group on the $$n$$ objects. This is one of the main topics in [AW10].

The function NiceObjectAutoGroupGroupoid takes a groupoid and a subgroup of its automorphism group and retuns a nice monomorphism from this automorphism group to a pc-group, if one is available. The current implementation is experimental. Note that ImageElm at present only works on generating elements.


gap> AGa4 := AutomorphismGroupOfGroupoid( Ga4 );
<group with 8 generators>
gap> AGgens := GeneratorsOfGroup( AGa4);;
gap> NGa4 := NiceObject( AGa4 );;
gap> MGa4 := NiceMonomorphism( AGa4 );;
gap> Size( AGa4 );
20736
gap> SetName( AGa4, "AGa4" );
gap> SetName( NGa4, "NGa4" );
gap> ##  cannot test images of AGgens because of random variations
gap> ##  Now do some tests!
gap> mgi := MappingGeneratorsImages( MGa4 );;
gap> autgen := mgi[1];;
gap> pcgen := mgi[2];;
gap> ngen := Length( autgen );;
gap> ForAll( [1..ngen], i -> Order(autgen[i]) = Order(pcgen[i]) );
true



5.6-4 Inner automorphisms

The inner automorphism subgroup $$\mathrm{Inn}(G)$$ of the automorphism group of $$G$$ is the group of inner automorphisms $$\wedge a : b \mapsto b^a$$ for $$a \in G$$. It is not the case that the map $$G \to \mathrm{Inn}(G), a \mapsto \wedge a$$ preserves multiplication. Indeed, when $$a=(o,g,p), b=(p,h,r) \in G$$ with objects $$p,q,r$$ all distict, then

$\wedge(ab) ~=~ (\wedge a)(\wedge b)(\wedge a) ~=~ (\wedge b)(\wedge a)(\wedge b).$

(Compare this with the permutation identity $$(pq)(qr)(pq) = (pr) = (qr)(pq)(qr)$$.) So the map $$G \to \mathrm{Inn}(G)$$ is of type IsMappingWithObjectsByFunction.

In the example we convert the automorphism group AGa4 into a single object groupoid, and then define the inner automorphism map.


gap> AGa40 := Groupoid( AGa4, [0] );
single piece groupoid: < AGa4, [ 0 ] >
gap> conj := function(a)
>            return ArrowNC( true, GroupoidInnerAutomorphism(Ga4,a), 0, 0 );
>            end;;
gap> inner := MappingWithObjectsByFunction( Ga4, AGa40, conj, [0,0,0] );;
gap> a1 := Arrow( Ga4, (1,2,3), -15, -13 );;
gap> inn1 := ImageElm( inner, a1 );;
gap> a2 := Arrow( Ga4, (2,3,4), -13, -11 );;
gap> inn2 := ImageElm( inner, a2 );;
gap> a3 := a1*a2;
[(1,3)(2,4) : -15 -> -11]
gap> inn3 := ImageElm( inner, a3 );
[groupoid homomorphism : Ga4 -> Ga4
[ [ [(1,2,3) : -15 -> -15], [(2,3,4) : -15 -> -15], [() : -15 -> -13],
[() : -15 -> -11] ],
[ [(1,3,4) : -11 -> -11], [(1,2,4) : -11 -> -11], [(1,3)(2,4) : -11 -> -13],
[() : -11 -> -15] ] ] : 0 -> 0]
gap> (inn3 = inn1*inn2*inn1) and (inn3 = inn2*inn1*inn2);
true



5.6-5 GroupoidAutomorphismByGroupAutos
 ‣ GroupoidAutomorphismByGroupAutos( gpd, auts ) ( operation )

Homogeneous, discrete groupoids are the second type of groupoid for which a method is provided for AutomorphismGroupOfGroupoid. This is used in the XMod package for constructing crossed modules of groupoids. The two types of generating automorphism are GroupoidAutomorphismByGroupAutos, which requires a list of group automorphisms, one for each object group, and GroupoidAutomorphismByObjectPerm, which permutes the objects.


gap> Hs3 := HomogeneousDiscreteGroupoid( s3, [ -13..-10] );
homogeneous, discrete groupoid: < s3, [ -13 .. -10 ] >
gap> aut4 := GroupoidAutomorphismByObjectPerm( Hs3, [-12,-10,-11,-13] );
groupoid homomorphism : morphism from a homogeneous discrete groupoid:
[ -13, -12, -11, -10 ] -> [ -12, -10, -11, -13 ]
object homomorphisms:
IdentityMapping( s3 )
IdentityMapping( s3 )
IdentityMapping( s3 )
IdentityMapping( s3 )
gap> gens3 := GeneratorsOfGroup( s3 );;
gap> g1 := gens3[1];;
gap> g2 := gens3[2];;
gap> b1 := GroupHomomorphismByImages( s3, s3, gens3, [g1, g2^g1 ] );;
gap> b2 := GroupHomomorphismByImages( s3, s3, gens3, [g1^g2, g2 ] );;
gap> b3 := GroupHomomorphismByImages( s3, s3, gens3, [g1^g2, g2^(g1*g2) ] );;
gap> b4 := GroupHomomorphismByImages( s3, s3, gens3, [g1^(g2*g1), g2^g1 ] );;
gap> aut5 := GroupoidAutomorphismByGroupAutos( Hs3, [b1,b2,b3,b4] );
groupoid homomorphism : morphism from a homogeneous discrete groupoid:
[ -13, -12, -11, -10 ] -> [ -13, -12, -11, -10 ]
object homomorphisms:
GroupHomomorphismByImages( s3, s3,
[ (15,17,19)(16,18,20), (15,20)(16,19)(17,18) ],
[ (15,17,19)(16,18,20), (15,18)(16,17)(19,20) ] )
GroupHomomorphismByImages( s3, s3,
[ (15,17,19)(16,18,20), (15,20)(16,19)(17,18) ],
[ (15,19,17)(16,20,18), (15,20)(16,19)(17,18) ] )
GroupHomomorphismByImages( s3, s3,
[ (15,17,19)(16,18,20), (15,20)(16,19)(17,18) ],
[ (15,19,17)(16,20,18), (15,16)(17,20)(18,19) ] )
GroupHomomorphismByImages( s3, s3,
[ (15,17,19)(16,18,20), (15,20)(16,19)(17,18) ],
[ (15,19,17)(16,20,18), (15,18)(16,17)(19,20) ] )
gap> AHs3 := AutomorphismGroupOfGroupoid( Hs3 );
<group with 4 generators>
gap> Size( AHs3 );
31104
gap> genAHs3 := GeneratorsOfGroup( AHs3 );;
gap> Length( genAHs3 );
4
gap> nobAHs3 := NiceObject( AHs3 );;
gap> nmonAHs3 := NiceMonomorphism( AHs3 );;
gap> w := genAHs3[1];;
gap> w1 := ImageElm( nmonAHs3, w );;
gap> x := genAHs3[2];;
gap> x1 := ImageElm( nmonAHs3, x );;
gap> y := genAHs3[3];;
gap> y1 := ImageElm( nmonAHs3, y );;
gap> z := genAHs3[4];;
gap> z1 := ImageElm( nmonAHs3, z );;
gap> u := z*w*y*x*z;
groupoid homomorphism : morphism from a homogeneous discrete groupoid:
[ -13, -12, -11, -10 ] -> [ -11, -13, -10, -12 ]
object homomorphisms:
IdentityMapping( s3 )
ConjugatorAutomorphism( s3, (15,19,17)(16,20,18) )
IdentityMapping( s3 )
ConjugatorAutomorphism( s3, (15,20)(16,19)(17,18) )
gap> u1 := z1*w1*y1*x1*z1;
(1,2,4,3)(5,17,23,16,8,20,26,13)(6,18,24,15,7,19,25,14)(9,21,27,12,10,22,28,
11)
gap> imu := ImageElm( nmonAHs3, u );;
gap> u1 = imu;
true



5.7 Matrix representations of groupoids

Suppose that gpd is the direct product of a group $$G$$ and a complete digraph, and that $$\rho : G \to M$$ is an isomorphism to a matrix group $$M$$. Then if rep is the isomorphic groupoid with the same objects and root group $$M$$ there is an isomorphism $$\mu$$ from gpd to rep mapping $$(g : i \to j)$$ to $$(\rho g : i \to j)$$.

When gpd is a groupoid with rays, a representation can be obtained by restricting a representation of its parent.


gap> reps := IrreducibleRepresentations( s4 );;
gap> rep4 := reps[4];;
gap> Rs4 := Groupoid( Image( rep4 ), ObjectList( Gs4 ) );
single piece groupoid: < Group([ [ [ 0, 1, 0 ], [ 1, 0, 0 ], [ 0, 0, 1 ] ],
[ [ 0, 0, 1 ], [ 1, 0, 0 ], [ 0, 1, 0 ] ],
[ [ -1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, -1 ] ],
[ [ 1, 0, 0 ], [ 0, -1, 0 ], [ 0, 0, -1 ] ] ]), [ -15, -14, -13, -12, -11
] >
gap> IsMatrixGroupoid( Rs4 );
true
gap> gens := GeneratorsOfGroupoid( Gs4 );
[ [(1,2,3,4) : -15 -> -15], [(3,4) : -15 -> -15], [() : -15 -> -14],
[() : -15 -> -13], [() : -15 -> -12], [() : -15 -> -11] ]
gap> images := List( gens,
>        g -> Arrow( Rs4, ImageElm(rep4,g![1]), g![2], g![3] ) );
[ [[ [ -1, 0, 0 ], [ 0, 0, 1 ], [ 0, -1, 0 ] ] : -15 -> -15],
[[ [ 0, 1, 0 ], [ 1, 0, 0 ], [ 0, 0, 1 ] ] : -15 -> -15],
[[ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] : -15 -> -14],
[[ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] : -15 -> -13],
[[ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] : -15 -> -12],
[[ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] : -15 -> -11] ]
gap> mor := GroupoidHomomorphismFromSinglePiece( Gs4, Rs4, gens, images );

groupoid homomorphism :
[ [ [(1,2,3,4) : -15 -> -15], [(3,4) : -15 -> -15], [() : -15 -> -14],
[() : -15 -> -13], [() : -15 -> -12], [() : -15 -> -11] ],
[ [[ [ -1, 0, 0 ], [ 0, 0, 1 ], [ 0, -1, 0 ] ] : -15 -> -15],
[[ [ 0, 1, 0 ], [ 1, 0, 0 ], [ 0, 0, 1 ] ] : -15 -> -15],
[[ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] : -15 -> -14],
[[ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] : -15 -> -13],
[[ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] : -15 -> -12],
[[ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] : -15 -> -11] ] ]
gap> a := Arrow( Hs4, (1,4,2), -12, -13 );
[(1,4,2) : -12 -> -13]
gap> ImageElm( mor, a );
[[ [ 0, 0, -1 ], [ -1, 0, 0 ], [ 0, 1, 0 ] ] : -12 -> -13]
gap> rmor := RestrictedMappingGroupoids( mor, Hd8b );
groupoid homomorphism :
[ [ [(1,2,3,4) : -14 -> -14], [(1,3) : -14 -> -14], [(1,2,3) : -14 -> -13],
[(1,2,4) : -14 -> -12] ],
[ [[ [ -1, 0, 0 ], [ 0, 0, 1 ], [ 0, -1, 0 ] ] : -14 -> -14],
[[ [ 1, 0, 0 ], [ 0, 0, -1 ], [ 0, -1, 0 ] ] : -14 -> -14],
[[ [ 0, 0, 1 ], [ -1, 0, 0 ], [ 0, -1, 0 ] ] : -14 -> -13],
[[ [ 0, -1, 0 ], [ 0, 0, 1 ], [ -1, 0, 0 ] ] : -14 -> -12] ] ]


Goto Chapter: Top 1 2 3 4 5 6 7 8 Bib Ind

generated by GAPDoc2HTML