<Chapter Label="Homomorphisms"><Heading>Homomorphisms</Heading>
  <!--Let $E_a=(E_a^0,E_a^1,\ra_a,\so_a)$ and $E_b=(E_b^0,E_b^1,\ra_b,\so_b)$ be two
graphs, and let $\phi_0 : E_a^0 \to E_b^0$ and $\phi_1 : E_a^1 \to E_b^1$ be
functions. Then the pair $\phi = (\phi_0, \phi_1)$ is a \emph{graph homomorphism
from} $E_a$ \emph{to} $E_b$ if $\phi_0(\so_a(e)) = \so_b(\phi_1(e))$ and
$\phi_0(\ra_a(e)) = \ra_b(\phi_1(e))$ for every $e \in E_a^1$. If $\phi_0$ and
$\phi_1$ are in addition bijective, then $\phi$ is a \emph{graph isomorphism
from} $E_a$ \emph{to} $E_b$. In this case we say that $E_a$ and $E_b$ are
\emph{isomorphic} and write $E_a \cong E_b$.-->

  <Section><Heading>Acting on digraphs</Heading>
    <#Include Label="OnDigraphs">
    <#Include Label="OnMultiDigraphs">
    <#Include Label="OnTuplesDigraphs">
  </Section>

  <Section Label="Isomorphisms and canonical labellings">
    <Heading>Isomorphisms and canonical labellings</Heading>
    From version 0.11.0 of &Digraphs; it is possible to use either &bliss; or
    &nauty; (via &NautyTracesInterface;) to calculate canonical labellings and
    automorphism groups of digraphs; see <Cite Key="JK07"/> and <Cite
      Key="MP14"/> for more details about &bliss; and &nauty;,
    respectively. 

    <#Include Label="DigraphsUseNauty">
    <#Include Label="AutomorphismGroupDigraph">
    <#Include Label="BlissAutomorphismGroup">
    <#Include Label="NautyAutomorphismGroup">
    <#Include Label="AutomorphismGroupDigraphColours">
    <#Include Label="AutomorphismGroupDigraphEdgeColours">
    <#Include Label="BlissCanonicalLabelling">
    <#Include Label="BlissCanonicalLabellingColours">
    <#Include Label="BlissCanonicalDigraph">
    <#Include Label="DigraphGroup">
    <#Include Label="DigraphOrbits">
    <#Include Label="DigraphOrbitReps">
    <#Include Label="DigraphSchreierVector">
    <#Include Label="DigraphStabilizer">
    <#Include Label="IsIsomorphicDigraph">
    <#Include Label="IsIsomorphicDigraphColours">
    <#Include Label="IsomorphismDigraphs">
    <#Include Label="IsomorphismDigraphsColours">
    <#Include Label="RepresentativeOutNeighbours">
    <#Include Label="IsDigraphAutomorphism">
    <#Include Label="IsDigraphColouring">
    <#Include Label="MaximalCommonSubdigraph">
    <#Include Label="MinimalCommonSuperdigraph">
  </Section>

  <Section><Heading>Homomorphisms of digraphs</Heading>

    The following methods exist to find homomorphisms between digraphs.
    If an argument to one of these methods is a digraph with multiple edges,
    then the multiplicity of edges will be ignored in order to perform the
    calculation; the digraph will be treated as if it has no multiple edges.

    <#Include Label="HomomorphismDigraphsFinder">
    <#Include Label="DigraphHomomorphism">
    <#Include Label="HomomorphismsDigraphs">
    <#Include Label="DigraphMonomorphism">
    <#Include Label="MonomorphismsDigraphs">
    <#Include Label="DigraphEpimorphism">
    <#Include Label="EpimorphismsDigraphs">
    <#Include Label="DigraphEmbedding">
    <#Include Label="EmbeddingsDigraphs">
    <#Include Label="IsDigraphHomomorphism">
    <#Include Label="IsDigraphEmbedding">
    <#Include Label="DigraphsRespectsColouring">
    <#Include Label="GeneratorsOfEndomorphismMonoid">
    <#Include Label="DigraphColouring">
    <#Include Label="DigraphGreedyColouring">
    <#Include Label="DigraphWelshPowellOrder">
    <#Include Label="ChromaticNumber">
    <#Include Label="DigraphCore">
    <#Include Label="LatticeDigraphEmbedding">
    <#Include Label="IsLatticeHomomorphism">
  </Section>

</Chapter>
