<!-- ------------------------------------------------------------------- -->
<!--                                                                     -->
<!--  gpd2obj.xml           XMod documentation            Chris Wensley  -->
<!--                                                                     -->
<!--  version 2.32, 13/02/2015                                           --> 
<!--                                                                     --> 
<!--  Copyright (C) 2001-2015, 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 over a groupoid has as range a 
connected groupoid which is a direct product of a group and a complete graph, 
and as source 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="PreXModWithObjectsObj" 
         Arg="obs bdy act" /> 
   <Oper Name="DiscreteNormalPreXModWithObjects" 
         Arg="gpd gp" /> 
<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 shows what has been achieved in an earlier version, 
but which fails in &GAP; 4.7. 
</Description>
</ManSection>

<Example>
<![CDATA[
gap> d8 := Group( (1,2,3,4), (1,3) );;
gap> SetName( d8, "d8" );
gap> Gd8 := SinglePieceGroupoid( d8, [-9,-8,-7] );; 
gap> Display( Gd8 ); 
single piece groupoid: 
  objects: [ -9, -8, -7 ]
    group: d8 = <[ (1,2,3,4), (1,3) ]>
gap> k4 := Subgroup( d8, [ (1,2)(3,4), (1,3)(2,4) ] );; 
gap> PX0 := DiscreteNormalPreXModWithObjects( Gd8, k4 ); 
homogeneous, discrete groupoid with:
  group: Group( [ (1,2)(3,4), (1,3)(2,4) ] ) >
objects: [ -9, -8, -7 ]
#I  now need to be able to test:   ok := IsXMod( PM );
<magma>
gap> Source(PX0);
perm homogeneous, discrete groupoid: < Group( [ (1,2)(3,4), (1,3)(2,4) ] ), 
[ -9, -8, -7 ] >
]]>
</Example>


</Section>

</Chapter>
