<Chapter><Heading> Coxeter diagrams and graphs of groups</Heading>

<Table Align="|l|" >

<Row>
<Item>
<Index> CoxeterDiagramComponents</Index>
<C>
CoxeterDiagramComponents(D)
</C>
<P/>
Inputs a Coxeter diagram <M>D</M> and returns a list <M>[D_1, ..., D_d]</M> of the maximal connected subgraphs <M>D_i</M>.
</Item>
</Row>

<Row>
<Item>
<Index> CoxeterDiagramDegree</Index>
<C> 
CoxeterDiagramDegree(D,v)
</C>
<P/>
Inputs a Coxeter diagram <M>D</M> and vertex <M>v</M>. 
It returns the degree of <M>v</M> (i.e. the number of edges 
incident with <M>v</M>).
</Item>
</Row>

<Row>
<Item>
<Index> CoxeterDiagramDisplay</Index>
<C>
CoxeterDiagramDisplay(D)
</C>
<Br/>
<C>
CoxeterDiagramDisplay(D,"web browser")
</C>
<P/>

Inputs a Coxeter diagram <M>D</M> 
and displays it as a .gif file.  It uses the Mozilla web 
browser as a default to view the diagram.  
An alternative browser can be set using a second argument.
<P/>
This function requires Graphviz software.
</Item>
</Row>

<Row>
<Item>
<Index> CoxeterDiagramFpArtinGroup</Index>
<C>
CoxeterDiagramFpArtinGroup(D)
</C>
<P/>

Inputs a Coxeter diagram <M>D</M> 
and returns the corresponding finitely presented Artin group.
</Item>
</Row>

<Row>
<Item>
<Index> CoxeterDiagramFpCoxeterGroup</Index>
<C>
CoxeterDiagramFpCoxeterGroup(D)
</C>
<P/>

Inputs a Coxeter diagram <M>D</M>
and returns the corresponding finitely presented Coxeter group.
</Item>
</Row>

<Row>
<Item>
<Index> CoxeterDiagramIsSpherical</Index>
<C>
CoxeterDiagramIsSpherical(D)
</C>
<P/>

Inputs a Coxeter diagram <M>D</M> and returns "true" if 
the associated Coxeter groups is finite, and 
returns "false" otherwise.
</Item>
</Row>

<Row>
<Item>
<Index> CoxeterDiagramMatrix</Index>
<C>
CoxeterDiagramMatrix(D)
</C>
<P/>

Inputs a Coxeter diagram <M>D</M> and returns a matrix 
representation of it. The matrix is given as a function 
<M>DiagramMatrix(D)(i,j)</M> where <M>i,j</M>
can range over the vertices.
</Item>
</Row>

<Row>
<Item>
<Index> CoxeterSubDiagram</Index>
<C>
CoxeterSubDiagram(D,V)
</C>
<P/>

Inputs a Coxeter diagram <M>D</M> and a subset <M>V</M> 
of its vertices. It returns the full sub-diagram of <M>D</M>
with vertex set <M>V</M>.
</Item>
</Row>

<Row>
<Item>
<Index> CoxeterDiagramVertices</Index>
<C>
CoxeterDiagramVertices(D)
</C>
<P/>

Inputs a Coxeter diagram <M>D</M> and returns its set of vertices.
</Item>
</Row>

<Row>
<Item>
<Index> EvenSubgroup</Index>
<C>
EvenSubgroup(G)
</C>
<P/>

Inputs a group <M>G</M> and returns a subgroup <M>G^+</M>. 
The subgroup is that generated by all products <M>xy</M> where 
<M>x</M> and <M>y</M> range over the generating set for <M>G</M> 
stored by GAP. The subgroup is probably only meaningful when <M>G</M>
is an Artin or Coxeter group.
</Item>
</Row>
<Row>
<Item>
<Index> GraphOfGroupsDisplay</Index>
<C>
GraphOfGroupsDisplay(D)
</C>
<Br/>
<C>
GraphOfGroupsDisplay(D,"web browser")
</C>
<P/>

Inputs a graph of groups <M>D</M> and displays it as a .gif file.  
It uses the Mozilla web browser as a default to view the diagram.  
An alternative browser can be set using a second argument.
<P/>
This function requires Graphviz software.
</Item>
</Row>


<Row>
<Item>
<Index> GraphOfGroupsTest</Index>
<C>
GraphOfGroupsTest(D)
</C>
<P/>

Inputs an object <M>D</M> and itries to test 
whether it is a Graph of Groups. 
However, it DOES NOT test the injectivity of any homomorphisms. 
It returns true if <M>D</M> passes the test, and false otherwise.
<P/>
Note that there is no function <M>IsHapGraphOfGroups()</M> because no special data type has been created for these graphs.
</Item>
</Row>
</Table>
</Chapter>


