<!-- ------------------------------------------------------------------- -->
<!--                                                                     -->
<!--  intro.xml              Gpd documentation            Chris Wensley  -->
<!--                                                       & Emma Moore  -->
<!--                                                                     -->
<!--  $Id: intro.xml,v 1.05 2008/11/21 gap Exp $                         -->
<!--                                                                     -->
<!-- ------------------------------------------------------------------- -->

<?xml version="1.0" encoding="ISO-8859-1"?>
  <!-- $Id: intro.xml,v 1.05  Exp $ -->

<Chapter Label="intro">
<Heading>Introduction</Heading>

Groupoids are mathematical categories in which every arrow is invertible. 
The &gpd; package provides functions for the computation with
groupoids and their morphisms; 
for graphs of groups and graphs of groupoids. 
The package is far from complete, and development continues. 
<P/>
It was used by Emma Moore in her thesis <Cite Key="emma-thesis" /> 
to calculate normal forms for Free Products with Amalgamation, 
and for HNN-extensions, when the initial groups have rewrite systems.
<P/>
&gpd; is implemented using &GAP; 4.4. 
<P/>
The information parameter <C>InfoGpd</C> takes default value <C>1</C> 
which, for the benefit of new users, causes more messages 
to be printed out when operations fail.
When raised to a higher value, additional information is printed out. 
<P/>
Help is available in the usual way.
<P/>
<Example>
<![CDATA[
gap> LoadPackage( "gpd" );
-----------------------------------------------------------
loading Gpd 1.05 for GAP 4.4 - Emma Moore and Chris Wensley
-----------------------------------------------------------
true
]]>
</Example>

For version 1.05 the package has been completely restructured, 
starting with <E>magmas with objects</E> and their mappings, 
and building up to groupoids via semigroups with objects 
and monoids with objects. 
This development is ongoing, and this manual does not mention 
all the available functions. 
A new version will be released as soon as possible.  
<P/>
Once the package is loaded, it is possible to check the correct 
installation by running the test suite of the package with the 
following command. 
(The test file itself is <F>tst/gpd_manual.tst</F>.) 
<Example>
<![CDATA[
gap> ReadPackage( "gpd", "tst/testall.g" );
+ Testing examples in Chapter 2 of the Gpd manual
+ GAP4stones: 1250
+ Testing examples in Chapter 3 of the Gpd manual
+ GAP4stones: infinity
+ Testing examples in Chapter 4 of the Gpd manual
+ GAP4stones: 416
+ Testing examples in Chapter 5 of the Gpd manual
+ GAP4stones: 2500
+ Testing examples in Chapter 6 of the Gpd manual
+ GAP4stones: 28
]]>
</Example>

You may reference this package by mentioning <Cite Key="BrMoPoWe" />
and <Cite Key="emma-thesis" />.
</Chapter>
