The material documented in this chapter is experimental, and is likely to be changed in due course.

A typical example of a crossed module \(\calX\) over a groupoid has for its range a connected groupoid. This is a direct product of a group with a complete graph, and we call the vertices of the graph the *objects* of the crossed module. The source of \(\calX\) is a groupoid, with the same objects, which is either discrete or connected. The boundary morphism is constant on objects. For details and other references see [AW10].

`‣ SinglePiecePreXModWithObjects` ( pxmod, obs, isdisc ) | ( operation ) |

At present the experimental operation `SinglePiecePreXModWithObjects`

accepts a precrossed module `pxmod`

, a set of objects `obs`

, and a boolean `isdisc`

which is `true`

when the source groupoid is homogeneous and discrete and `false`

when the source groupoid is connected. Other operations will be added as time permits.

In the example the crossed module `DX4`

has discrete source, while the crossed module `CX4`

has connected source. These are groupoid equivalents of `XModByNormalSubgroup`

(2.1-2).

gap> s4 := Group( (1,2,3,4), (3,4) );; gap> SetName( s4, "s4" ); gap> a4 := Subgroup( s4, [ (1,2,3), (2,3,4) ] );; gap> SetName( a4, "a4" ); gap> X4 := XModByNormalSubgroup( s4, a4 );; gap> DX4 := SinglePiecePreXModWithObjects( X4, [-9,-8,-7], true ); single piece crossed module with objects source groupoid: homogeneous, discrete groupoid: < a4, [ -9, -8, -7 ] > and range groupoid: single piece groupoid: < s4, [ -9, -8, -7 ] > gap> Da4 := Source( DX4 );; gap> Ds4 := Range( DX4 );; gap> CX4 := SinglePiecePreXModWithObjects( X4, [-9,-8,-7], false ); single piece crossed module with objects source groupoid: single piece groupoid: < a4, [ -9, -8, -7 ] > and range groupoid: single piece groupoid: < s4, [ -9, -8, -7 ] > gap> Ca4 := Source( CX4 );; gap> Cs4 := Range( CX4 );;

`‣ IsXModWithObjects` ( pxmod ) | ( property ) |

`‣ IsPreXModWithObjects` ( pxmod ) | ( property ) |

`‣ IsDirectProductWithCompleteDigraphDomain` ( pxmod ) | ( property ) |

The precrossed module `DX4`

belongs to the category `Is2DimensionalGroupWithObjects`

and is, of course, a crossed module.

gap> Set( KnownPropertiesOfObject( DX4 ) ); [ "CanEasilyCompareElements", "CanEasilySortElements", "IsAssociative", "IsDirectProductWithCompleteDigraphDomain", "IsDuplicateFree", "IsGeneratorsOfSemigroup", "IsPreXModWithObjects", "IsSinglePieceDomain",

`‣ IsPermPreXModWithObjects` ( pxmod ) | ( property ) |

`‣ IsPcPreXModWithObjects` ( pxmod ) | ( property ) |

`‣ IsFpPreXModWithObjects` ( pxmod ) | ( property ) |

To test these properties we test the precrossed modules from which they were constructed.

gap> IsPermPreXModWithObjects( CX4 ); true gap> IsPcPreXModWithObjects( CX4 ); false gap> IsFpPreXModWithObjects( CX4 ); false

`‣ Root2dGroup` ( pxmod ) | ( attribute ) |

`‣ XModAction` ( pxmod ) | ( attribute ) |

The attributes of a precrossed module with objects include the standard `Source`

; `Range`

; `Boundary`

(2.1-9); and `XModAction`

(2.1-9) as with precrossed modules of groups. There is also `ObjectList`

, as in the **groupoids** package. Additionally there is `Root2dGroup`

which is the underlying precrossed module used in the construction.

Note that `XModAction`

is now a groupoid homomorphism from the source groupoid to a one-object groupoid (with object `0`

) where the group is the automorphism group of the range groupoid.

gap> Set( KnownAttributesOfObject( CX4 ) ); [ "Boundary", "ObjectList", "Range", "Root2dGroup", "Source", "XModAction" ] gap> Root2dGroup( CX4 ); [a4->s4] gap> act := XModAction( CX4 );; gap> Size( Range( act ) ); 20736 gap> r := Arrow( Cs4, (1,2,3,4), -4, -5 );; gap> ImageElm( act, r ); [groupoid homomorphism : [ [ [(1,2,3) : -6 -> -6], [(2,3,4) : -6 -> -6], [() : -6 -> -5], [() : -6 -> -4] ], [ [(2,3,4) : -6 -> -6], [(1,3,4) : -6 -> -6], [() : -6 -> -4], [() : -6 -> -5] ] ] : 0 -> 0] gap> s := Arrow( Ca4, (1,2,4), -5, -5 );; gap> ## calculate s^r gap> ims := ImageElmXModAction( CX4, s, r ); [(1,2,3) : -4 -> -4]

There is much more to be done with these constructions.

generated by GAPDoc2HTML