<!-- ------------------------------------------------------------------- -->
<!--                                                                     -->
<!--  gpd2obj.xml           XMod documentation            Chris Wensley  -->
<!--                                                                     -->
<!--  Copyright (C) 2001-2016, Murat Alp and Chris Wensley,              --> 
<!--  School of Computer Science, Bangor University, U.K.                --> 
<!--                                                                     -->
<!-- ------------------------------------------------------------------- -->

<?xml version="1.0" encoding="UTF-8"?>

<Chapter Label="chap-gpd2o">

<Heading>Crossed modules of groupoids</Heading>

<Index>crossed module of groupoids</Index>

<Section> 

<Heading>Constructions for crossed modules of groupoids</Heading>

<Index>crossed module over a groupoid</Index>
<Index>2d-domain with objects</Index>

A typical example of a crossed module <M>\mathcal{X}</M> 
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 <E>objects</E> 
of the crossed module. 
The source of <M>\mathcal{X}</M> is a totally disconnected groupoid, 
with the same objects. 
The boundary morphism is constant on objects. 
For details and other references see <Cite Key="AW2" />. 

<ManSection>
   <Oper Name="DiscreteNormalPreXModWithObjects" 
         Arg="gpd gp" /> 
   <Oper Name="PreXModWithObjectsObj" 
         Arg="obs bdy act" /> 
<Description> 
The next stage of development of this package will be to implement 
constuctions of crossed modules over groupoids. 
This will require further developments in the <Package>Gpd</Package> package. 
The following example is all that can be shown at the moment. 
More was achieved in an earlier version, 
but produces errors in &GAP; 4.7. 
</Description>
</ManSection>
<P/>
<Example>
<![CDATA[
gap> Ga4 := SinglePieceGroupoid( a4, [-9,-8,-7] );;
gap> Display( Ga4 );
single piece groupoid: 
  objects: [ -9, -8, -7 ]
    group: a4 = <[ (1,2,3), (2,3,4) ]>
gap> GeneratorsOfGroup( k4 );
[ (1,2)(3,4), (1,3)(2,4) ]
gap> PXO := DiscreteNormalPreXModWithObjects( Ga4, k4 );
homogeneous, discrete groupoid with:
  group: k4 = <[ (1,2)(3,4), (1,3)(2,4) ]> >
objects: [ -9, -8, -7 ]
#I  now need to be able to test:   ok := IsXMod( PM );
<semigroup>
gap> Source( PXO ); 
perm homogeneous, discrete groupoid: < k4, [ -9, -8, -7 ] >
]]>
</Example>


</Section>

</Chapter>
