Recognizing hyperelliptic graphs in polynomial time

arXiv:1706.05670v1 [cs.DS] 18 Jun 2017

Jelco M. Bodewes*
Gunther Cornelissen†

Hans L. Bodlaender*
Marieke van der Wegen†

Abstract
Recently, a new set of multigraph parameters was defined, called “gonalities”. Gonality
bears some similarity to treewidth, and is a relevant graph parameter for problems in number
theory and multigraph algorithms. Multigraphs of gonality 1 are trees. We consider so-called
“hyperelliptic graphs” (multigraphs of gonality 2) and provide a safe and complete sets of
reduction rules for such multigraphs, showing that for three of the flavors of gonality, we can
recognize hyperelliptic graphs in O(n log n + m) time, where n is the number of vertices and
m the number of edges of the multigraph.

1

Introduction

How complex is a graph G?1 If we start from the premise that the simplest connected graphs are
trees, we can assign a complexity to G by stating how much it ‘deviates’, in a quantitative sense,
from being a tree. Given that trees have, by definition, no cycles, one might use the first Betti
number b1 (G), the number of independent cycles in G, as such a measure. From the algorithmic
point of view, however, this is not such a good parameter, since many hard computational problems
do not occur in families of graphs in which b1 (G) is bounded. However, another measure of
“proximity to a tree”, namely, the treewidth tw(G) of G, is very good for this purpose, witness
for example Courcelle’s theorem [8] that in bounded treewith, simple graph properties definable
in the monadic second order logic admit linear time verification algorithms.
Recently, based on the analogy between graphs and algebraic curves, a new set of graph parameters were defined, all slightly different, but all called “gonality” ([2], [3], [7]). We will consider
four versions of gonality, and give them distinct names to avoid confusion. Whereas treewidth
is based on subtrees, geometric gonality gon(G) is based on quotient trees. More precisely, the
geometric gonality of a graph is the minimal degree of a harmonic morphism onto a tree (cf. infra).
Just like treewidth can be defined using a pursuit-evasion game on a graph, a notion of divisorial
gonality dgon(G) can be defined using chip firing (or “divisors”; cf. [4]). There also exist stable
versions sgon(G) and sdgon(G), given as the minimum gonality over all possible refinements of
the graph.
We indicate two reasons why studying gonalities is relevant. The first one lies in algorithmic
graph theory itself, where gonality is a new natural graph parameter, and it might play a role similar
* Department

Informatica, Universiteit Utrecht, Postbus 80.089, 3508 TB Utrecht, Nederland,
j.m.bodewes@uu.nl, h.l.bodlaender@uu.nl
†
Mathematisch Instituut, Universiteit Utrecht, Postbus 80.010, 3508 TA Utrecht, Nederland,
g.cornelissen@uu.nl, m.vanderwegen@uu.nl
1
To simplify terminology, we will use the word “graph” for a finite multigraph (i.e. allowing finitely many edges
between the same vertices), and use the terminology “simple graph” if there is at most one edge between any pair of
vertices.

1

sgon(G) = 2
dgon(G) = 3
sdgon(G) = 2
sgon(G) = 3
dgon(G) = 2
sdgon(G) = 2
Figure 1: The different notions of gonality are not the same.
to treewidth for (multi-)graph problems, such as WEIGHTED SPARSTEST EDGE CUT, which is NPhard in bounded treewidth [15]. Secondly, stable gonality is important in number theory. Whereas
in general, the existence of solutions to polynomial equations is algorithmically undecidable, if
the polynomial equations under consideration define a curve of gonality gon(X), then the union
of all solutions in all number fields of degree bounded above by 12 (gon(X) − 1) is finite (cf. [7,
§11]). The gonality of a curve is related to the stable gonality of a certain graph related to the
equation by reduction modulo prime numbers, and hence our results are relevant in the theory of
algorithms for diophantine equations [7]. For more details, see Section 2.
We list some known results. Gonality is different from treewidth; for example, treewidth
depends only on the underlying simple graph, whereas gonality does not. At the same time, the
Betti number, gonalities and treewidth are related by inequalities
 1
 2 (b1 (G) + 3) ≥ sgon(G);
gon(G) ≥ sgon(G) ≥ sdgon(G) ≥ tw(G);

dgon(G) ≥ sdgon(G)
(see [7], [11]). Stable gonality sgon(G) (a priori defined using universal quantifiers over three
infinite sets) is decidable [14], and computing divisorial gonality dgon(G) is NP-hard [13]. It
follows from [10, §5] that computing divisorial gonality is in XP. Treewidth and divisorial gonality
are not “tied” in the sense of Norin [18, §2 & 2.6]: there exist G with tw(G) = 2 but arbitrarily
high divisorial gonality [17]. Reduction rules are known for treewidth ≤ 3, and this class can be
recognized in linear time [1].
A graph G is a tree if and only if either of the gonalities is 1. The next case in terms of
this complexity measure is gonality 2, which, contrary to gonality 1, can be different in different
flavors (see Figure 1); based on the analogous terminology for algebraic curves, we call graphs
of divisorial, stable or stable divisorial gonality 2 respectively divisorial, stable, stable divisorial
hyperelliptic graphs (compare [3]).
In this paper, we give polynomial time algorithms that recognize dgon(G) ≤ 2, sgon(G) ≤ 2
or sdgon(G) ≤ 2 for a graph G. (We do not consider gonality, which is defined without finiteness
conditions.) To obtain our algorithms, we provide safe and complete sets of reduction rules.
Similar to recognition algorithms for graphs of treewidth 2 or 3 (see [1]), in our algorithms the
rules are applied to the graph until no further rule application is possible; we decide positively if
and only if this results in the empty graph. Some of the rules introduce constraints on pairs of
vertices, which we model by colored edges. To deal with the fact that some of the rules are not
local, we use a data structure that allows us to find an efficient way of applying these rules, leading
to a running time of O(n log n + m).

2

..

..
.

.

..
.

..
.

(b) Intersection dual graph with
finite harmonic morphism of degree p.

(a) X modulo p.

Figure 2: Picture illustrating Example 2.1
2 Number theoretical applications
In this section, we briefly elucidate the relevance of gonality for number theoretical problems,
mostly at an intuitive level.
There is an analogy between complexity issues in graph algorithms and the difficulty of solving diophantine equations (polynomial equations with integer coefficients). In graph theory, a
graph parameter can be very hard to compute, but certain hard problems become fixed parameter
tractable with such a fixed parameter. Similarly, the negative solution to Hilbert’s Tenth Problem
[9] implies that the existence of solutions to polynomial equations is algorithmically undecidable.
However, if certain geometric parameters related to the polynomial equations are fixed, there are
positive results about the solution sets of the equations.
Geometric concepts such as dimension, Betti numbers and gonality make sense in the theory of
diophantine equations. The solutions to a given set of polynomial equations describe a geometric
object X; if the set of solutions in the complex numbers C defines a real surface X(C), we
say the geometric object is an “algebraic curve” (two-dimensional of the real numbers, but onedimensional over the complex numbers). The first Betti number b1 (X) of X is the number of
independent loops on X(C); and the gonality gon(X) of X is the minimal degree of a nonconstant holomorphic map from X(C) to the Riemann sphere (the complex projective line seen
as a real surface). A curve of gonality two, i.e., with a degree two map to the Riemann sphere
is called a hyperelliptic curve; it can be given by a polynomial equation y 2 = f (x) for some
polynomial f , and the degree two map is (x, y) 7→ x. Equivalently, a curve has gonality two if
and only if it admits an effective divisor of degree two and rank one.
Typical positive results are as follows. A famous result of Faltings [12] in diophantine equations relates to the Betti number as parameter: if X is an algebraic curve with b1 (X) ≥ 2, then X
has only finitely many solutions in a given number field K; so the solution set of the corresponding
polynomial equations is finite. Another result uses gonality of the curve as parameter: so-called
“uniform boundedness” says that the union of all solutions to the equations defining a curve X of
gonality gon(X) in all number fields of degree bounded above by 12 (gon(X) − 1) is finite (cf. [7,
§11]).
There is a direct relation between curve gonality and graph gonality: the gonality of a curve
is bounded below by the stable gonality (defined in Section 3 below) of the dual graph of the
stable model of any reduction of the curve. Hence lower bounds and recognition of stable gonality
provide an algorithmic deduction of a uniform boundedness result for curves with such reductions
[7]. We give one example:
Example 2.1. For a prime number p, consider the algebraic curve
X : (xp − x)(y p − y) = p
3

in the (x, y)-plane. Reducing the curve modulo p, the equation becomes a union of lines
x(x − 1) . . . (x − (p − 1)) · y(y − 1) . . . (y − (p − 1)) = 0 mod p
(cf. Figure 2). The intersection dual graph is given by a vertex for each component of this reduction, where two vertices are connected by an edge if and only if the corresponding components
intersect; in the example, it is the complete bipartite graph Kp,p . The stable gonality of Kp,p is p
(since tw(Kp,p ) = p and there isS
an obvious map of degree p from Kp,p to a tree). From [7, 4.5 &
11.1] one concludes that the set X(K) is finite, where K runs over all the (infinitely many for
p ≥ 5) number fields of degree bounded above by (p − 1)/2.
3

Preliminaries

D EFINITIONS
Whenever we write “graph” we refer to a multigraph G = (V, E), where V is the set of vertices
and E is a multiset of edges. A loop vv will be counted twice in the degree of vertex v. By Gv (u)
we denote the induced subgraph of G on v and the component that contains u when we remove v.
First we define divisorial gonality, we can consider it intuitively as a chip firing game: we
have a graph and some initial configuration that assigns a non-negative number of “chips” to each
vertex. We then can fire a vertex by moving a chip from it along each incident edge. If the number
of chips on a vertex becomes negative, we consider it to be in debt. Divisorial gonality then asks:
what is the minimum number of chips needed for an initial configuration, such that, for any vertex
in the graph, there exists a sequence of firings that results in that vertex having at least one chip
and no other vertex being in debt?
We now give a formal definition for divisorial gonality, based on the concepts of [2] and
notation from [10]:
L
Definition 3.1. Let G be a graph. A divisor D is an element of
Z. We use D(v) to denote
V (G)

the integer assigned to vertex v. We call a divisor D effective if D(v) ≥ 0 for all v ∈ V (G).
We denote the set of divisors on G by Div(G) and the set of effective divisors by Div+ (G). The
degree deg(D) of a divisor is the sum over D(v) for all v ∈ V (G). By Divk (G) we denote all
divisors with degree k.

Definition 3.2. Let G be a graph with n vertices. The Laplacian matrix L is given by L = D − A,
where D is the diagonal matrix with Dv,v = deg(v) and A is the adjacency matrix of G.
We call a divisor P a principal divisor if there exists a divisor D such that P = LD and we
denote the set of principal divisors by Prin(G).
Definition 3.3. We call two divisors D and D ′ equivalent or, in notation D ∼ D ′ , if there exists
a principal divisor P such that D ′ = D − P . Given a divisor D, we have a class of equivalent
effective divisors |D| = {D ′ ∈ Div+ (G) | D ∼ D ′ }.
Definition 3.4. The rank of a divisor D is denoted by r(D) and defined as follows:

max{k | |D − E| =
6 ∅ for all E ∈ Divk+ (G)} if |D| =
6 ∅;
r(D) =
−1
if |D| = ∅.
Definition 3.5. The divisorial gonality, dgon, of a graph G is the lowest degree for which there
exists a divisor of rank greater or equal to one, i.e.,
dgon(G) = min{deg(D) | D ∈ Div+ (G), r(D) ≥ 1}.
4

Definition 3.6. The stable divisorial gonality of G is
sdgon(G) = min{dgon(G′ ) | G′ a refinement of G}.
Note that every tree has divisorial gonality 1 and each graph with divisorial gonality 1 is a tree.
Note also that for a disconnected graph, the divisorial gonality is equal to the sum of the divisorial
gonality of the connected components.
We define stable gonality as in [7, Definition 3.6].
Definition 3.7. Let G and H be graphs. A finite morphism is a map φ : G → H such that
(i) φ(V (G)) ⊆ V (H),
(ii) φ(uv) = φ(u)φ(v) for all uv ∈ E(G),
together with, for every e ∈ E(G), an “index” rφ (e) ∈ N.
Definition 3.8. We call a finite morphism φ : G → H harmonic if for every v ∈ V (G) it holds
that for all e, e′ ∈ Eφ(v) (H)
X

X

rφ (d) =

d∈Ev (G),φ(d)=e

rφ (d′ ).

d′ ∈Ev (G),φ(d′ )=e′

We write mφ (v) for this sum.
Definition 3.9. The degree of a finite harmonic morphism φ : G → H is
X
X
rφ (e) =
mφ (u),
d∈E(G),φ(d)=e

u∈V (G),φ(u)=v

for e ∈ E(H), v ∈ V (H). This is independent of the choice of e or v ([2], Lemma 2.4).
Definition 3.10. A graph G′ is a refinement of G if G′ can be obtained by applying the following
operations finitely many times to G.
(i) Add a leaf, i.e. a vertex of degree 1;
(ii) subdivide an edge by adding a vertex.
We call a vertex of G′ \G from which there are two disjoint paths to vertices of G, internal added
vertices, we call the other vertices of G′ \G external added vertices.
Definition 3.11. The stable gonality of a graph G is
sgon(G) = min{deg(φ) | φ : G′ → T a finite harmonic morphism,
G′ a refinement of G, T a tree}.
For a tree G we can use the identity map to see that sgon(G) = 1. On the other hand, if G
is not a tree, then any refinement of G contains a cycle. Such a cycle will be mapped to a path in
a tree, and for every edge e in this path there will at least two edges that are mapped to e. Thus
sgon(G) > 1 if G is not a tree.
For a disconnected graph G its stable gonality is defined to be the sum of the stable gonality
of its components.

5

Definition 3.12. We call graphs of stable, divisorial or stable divisorial gonality 2 respectively
stable, divisorial, stable divisorial hyperelliptic graphs.
In [3], hyperelliptic graphs G are defined by dgon(G) = 2, and it is proven that, for twoconnected graphs G, this is equivalent to the existence of a (not necessarily finite, i.e., possibly
mapping edges to vertices) harmonic morphism of degree two from G to a tree.
It is known that dgon(G) ≥ tw(G) for all G [11]. Since treewidth is closed under taking
minors, we obtain sdgon(G) ≥ tw(G). As mentioned in A.6 of [7], it holds that sgon(G) ≥
sdgon(G) for all G. Thus we see that both divisorial gonality and stable gonality are larger than
or equal to treewidth.
Lemma 3.13. For any graph G, we have inequalities
dgon(G) ≥ tw(G) and sgon(G) ≥ sdgon(G) ≥ tw(G).
L EVEL

SET DECOMPOSITION

In this subsection we introduce a technique to be used in proofs on divisorial and stable divisorial
gonality. Using it we can reason about transformations between equivalent divisors. We use the
definition from [10].
We recall that two divisors D and D ′ are defined as equivalent if there exists a principal divisor
P such that D ′ = D − P . A principal divisor then is a divisor that can be expressed as an image
of the Laplacian matrix, in other words there is a divisor f , such that P = Lf . Intuitively this can
be understood as follows: P is a vector over all vertices that for each vertex describes the change
in number of chips, and f is the vector that for each vertex describes how often it should be fired
to produce the result P .
Therefore we have some divisor f that describes how often vertices should be fired to produce
D ′ from D, D ′ = D − Lf . We now consider the idea of splitting this divisor f into layers, where
each layer gives a subset of the graph that should be fired once. We shall see that with the right
definition these layers or level sets have certain helpful properties. The level sets are given by the
following definition:
Definition 3.14. Let D and D ′ be two equivalent divisors, then there must exist a divisor f such
that D ′ = D − Lf , where L is the Laplacian matrix. Let m = max{f (v) | v ∈ V (G)} and let
k = m − min{f (v) : v ∈ V (G)}. We then define the level sets as follows:
Ai = {v ∈ V (G) : f (v) ≥ m − i} for i ∈ {0, . . . , k}.
Note that while there are multiple such f , these can only differ by some multiple of the all
ones vector and therefore result in the same level set decomposition.
We can then also consider the sequence of divisors that is created by firing each level set in the
given order:
Definition 3.15. A level set decomposition A0 , . . . , Ak belonging to a transformation of D into
D ′ produces a sequence of divisors as follows:
D0 = D,
Di+1 = Di − LIAi

for i ∈ {0, . . . , k − 1}.

Here, IAi is the divisor with IAi (v) = 1 for v ∈ Ai and IAi (v) = 0 otherwise.
6

Note that for a level set decomposition A0 , . . . , Ak we have that A0 ⊆ A1 ⊆ · · · ⊆ Ak . Also
note that the fact that Dk = D ′ follows from the first two parts of the definition. We continue with
a useful property of level set decompositions, namely the fact that each divisor in the associated
sequence is lower bounded by the pointwise minimum of D and D ′ :
Theorem 3.16. Let D and D ′ be two equivalent divisors and A0 , . . . , Ak the level set decomposition of the transformation of D into D ′ . Let D0 , . . . , Dk be the associated sequence of divisors.
We then have that:
Di (v) ≥ min(D(v), D ′ (v)), ∀i ∈ {0, . . . , k}, ∀v ∈ V (G).
Proof. Choose an i ∈ {0, . . . , k} and a vertex v ∈ V (G). If Di (v) ≥ D(v) we are done, so
assume that Di (v) < D(v). Since Di (v) < D(v), v must have been fired at least once before Di
(the only way a vertex can loose chips is by firing), so there is an Aj with v ∈ Aj and j < i. But
since A0 ⊆ · · · ⊆ Ak , we then have that v ∈ Am for all m ≥ j and specifically for all m ≥ i.
So v is fired in every subset starting from Ai , but the number of chips on v cannot increase
if v is part of the fired subset, so we have that Di (v) ≥ Dm (v) for all m ≥ i and specifically,
Di (v) ≥ Dk (v) = D ′ (v).
Therefore either Di (v) ≥ D(v) or Di (v) ≥ D ′ (v) for all v ∈ V (G) and i ∈ {0, . . . , k}. We
conclude that Di (v) ≥ min(D(v), D ′ (v)) for all v ∈ V (G) and i ∈ {0, . . . , k}.
Theorem 3.16 gives a nice result for the transformation between two equivalent effective divisors:
Definition 3.17. Given a graph G and an effective divisor D, we call a non-empty firing set A
valid if D(a) ≥ outdegA (a) for all a ∈ A.
Corollary 3.18. Let D and D ′ be two equivalent effective divisors. Let A0 , . . . , Ak be the level
set decomposition of the transformation of D into D ′ and D0 , . . . , Dk the associated sequence of
divisors. Then all divisors Di are effective and all firing subsets Ai are valid with respect to Di .
Proof. This follows simply from Theorem 3.16: since Di (v) ≥ min(D(v), D ′ (v)), D(v) ≥ 0
and D ′ (v) ≥ 0, we conclude that Di (v) ≥ 0 and so Di is effective. To see that all firing sets are
valid, note that a non-valid firing set would result in a non-effective divisor.
R EDUCTION

RULES

We will be talking a lot about reduction rules in this text. By reduction rule we mean a rule that
can be applied to a graph to produce a different graph. The following notation shows when a graph
can be produced by the application of reduction rules starting from another graph:
Definition 3.19. Let G and H be graphs and S be some set of reduction rules. We use GSH to
denote that H can be produced by some application of a reduction rule from S. We use GS ∗ H to
denote that H can be produced from G by some finite sequence of applications of reduction rules
from S.
If R is a single rule, we write GRH as shorthand for the application of the singleton set
containing R.
During the reduction of the graph we will need to keep track of certain restrictions otherwise
lost by the removal of vertices and edges. We will maintain these restrictions in the form of a set
of pairs on the vertices of the graph:
7

Definition 3.20. Given a graph G = (V, E) a set of constraints C is a set of pairs (v, w), where
v, w ∈ V . This set can contain pairs of a vertex with itself, but can contain each pair only once.
Though the different forms of gonality use the same concept of a set of constraints, the restrictions given by a constraint differ between them. What a constraint means for each type of gonality
will be explained in their respective sections.
Our final goal with each set of reduction rules is to show that they can be used to characterize
the graphs in a certain class by reduction to the empty graph. For this we need to make sure that
membership of the class is invariant under our reduction rules.
Definition 3.21. Let R be a rule and S be a set of reduction rules. Let A be a class of graphs. We
call R safe for A if from GRH it follows that H ∈ A ⇐⇒ G ∈ A. We call S safe for A if every
rule in S is safe for A.
Note that if S is safe for a class A then GS ∗ H implies that H ∈ A ⇐⇒ G ∈ A.
Apart from our rule sets being safe, we also need to know that, if a graph is in our class, it is
always possible to reduce it to the empty graph.
Definition 3.22. Let S be a set of reduction rules, A a class of graphs. We call S complete for A
if for any graph G ∈ A it holds GS ∗ ∅.
For any rule set that is both complete and safe for A it then follows the rule set is suitable for
characterization of A. Additionally it is not possible to make a wrong choice early on that would
prevent the graph from being reduced to the empty set.
Lemma 3.23. Let S be a set of rules that is safe and complete for A, with ∅ ∈ A, then we have
the following for all graphs G, H:
(i) GS ∗ ∅ if and only if G ∈ A;
(ii) if G ∈ A and GS ∗ H, then HS ∗ ∅.
Proof. For property i: Let G be a graph, such that GS ∗ ∅. Note that by the safeness of S and the
fact that ∅ ∈ A it follows that G ∈ A. Assume on the other hand that G ∈ A, note that by the
completeness of S it follows that GS ∗ ∅.
For property ii: Let G be a graph in A and H a graph such that GS ∗ H. Note that by the
safeness of S we have that H ∈ A, then by completeness of S it follows that HS ∗ ∅.
4

Reduction rules for divisorial gonality

We will show that there exists a set of reduction rules that reduces a graph to the empty graph
exactly when this graph has divisorial gonality two or lower. Or in other words, exactly when
there exists a divisor on the graph with rank greater or equal to one and degree two. This set can
therefore be used to test whether the divisorial gonality of a graph is equal to two, since the case
of divisorial gonality equal to one can also be easily checked.
We will first define an extra layer of structure on top of our normal graph in the form of
constraints, after which we will list the required reduction rules. We will first prove that all our
reduction rules are safe in the sense that they never change whether a graph has gonality greater
than two. After this we proceed by showing that given a graph of divisorial gonality not greater
than two, the reduction rules will always result in the empty graph in a finite number of steps.
For this section we will assume that our graph is loopless and connected. Cases where this
is not the case can be easily handled separately. Loops can simply be removed from the graph
since they never impact the divisorial gonality. A disconnected graph has divisorial gonality two
or lower exactly when it consists of two trees.
8

C ONSTRAINTS
Checking whether a graph has gonality two or lower can be seen as checking whether there exists
a divisor with degree two and rank greater or equal to one on our graph. Constraints in this case
are used to restrict which divisors and transformations we consider after reduction. The pairs in
the constraints place the following restrictions on what divisors and firing sets are allowed:
Definition 4.1. Given a constraint r = (v, w) a divisor satisfies r if it is equivalent to an effective
divisor after removing one chip from v and one chip from w. In addition any firing set used in
transformations should either contain both v and w or neither.
Note that in the case that v = w the first part means a divisor should be equivalent to an
effective divisor after removing two chips from v and the second condition is fulfilled trivially. It
will also be useful to define when constraints are non-conflicting on a cycle. For this we introduce
the idea of compatibility on cycles:
Definition 4.2. Let C be a cycle. Let CC ⊆ R be the set of constraints that contain a vertex in C.
We call the constraints CC compatible if the following hold.
(i) If (v, w) ∈ CC then both v ∈ C and w ∈ C.
(ii) For each (v, w) ∈ CC and (v ′ , w′ ) ∈ CC , the divisor given by assigning a chip to v and
w must be equivalent to the one given by assigning a chip to v ′ and w′ on the subgraph
consisting of C.
Note that a divisor of degree 2 can only satisfy all constraints on a cycle if they are compatible.
Now we are interested in the existence of a divisor that has rank greater or equal to one, while
satisfying all constraints.
Definition 4.3. Given a graph G = (V, E) and its constraints C, we will call a divisor D suitable
if it has degree 2 and r(D) ≥ 1 while also satisfying all constraints in C.
Given a graph with constraints we will say that the graph has divisorial gonality 2 or lower
if there exists a suitable divisor. Note that for a graph with no constraints this formulation is
equivalent to the usual definition of divisorial gonality 2 or lower. We will denote the class of
graphs with constraints that has divisorial gonality two or lower as G2d .
T HE REDUCTION

RULES

We are given a graph G = (V, E) and a still empty set of constraints C. We note here that it is
assumed we start with a connected graph and all the reduction rules maintain connectivity. The
following rules are illustrated in Figure 3, where a constraint is represented by a red dashed edge.
We start by covering the two possible end states of our reduction:
Rule E1d . Given a graph consisting of exactly one vertex, remove that vertex.
Rule E2d . Given a graph consisting of exactly two vertices, u and v, connected to each other by a
single edge, and C = {(u, v)}, remove both vertices.
Next are the reduction rules to get rid of vertices with degree equal to one. These rules are
split by what constraint applies to the vertex:
Rule T1d . Let v be a leaf, such that v has no constraints in C. Remove v.
9

Rule T2d . Let v be a leaf, such that its only constraint in C is (v, v). Let u be its neighbor. Remove
v and add the constraint (u, u) if it does not exist yet.
Rule T3d . Let v1 be a leaf, such that its only constraint in C is (v1 , v2 ), where v2 is another leaf,
whose only constraint is also (v1 , v2 ). Let u1 be the neighbor of v1 and u2 be the neighbor of v2
(these can be the same vertex). Then remove v1 and v2 and add the constraint (u1 , u2 ) if it does
not exist yet.
Finally we have a set of reduction rules that apply to cycles containing at most 2 vertices with
degree greater than two. The rules themselves are split by the number of vertices with degree
greater than two.
Rule C1d . Let C be a cycle of vertices with degree two. If the set of constraints CC on C is
compatible, then replace C by a new single vertex.
Rule C2d . Let C be a cycle with one vertex v with degree greater than two. If the set of constraints
CC on C plus the constraint (v, v) is compatible, then remove all vertices except v in C and add
the constraint (v, v) if it does not exist yet.
Rule C3d . Let C be a cycle with two vertices v and u of degree greater than two. If there exists a
path from v to u that does not share any edges with C and the set of constraints CC on C plus the
constraint (v, u) is compatible, then remove all vertices of C except v and u, remove all edges in
C and add the constraint (v, u) if it does not exist yet.
We shall use Rd for the set consisting of all the above reduction rules: E1d , E2d , T1d , T2d , T3d ,
C2d and C3d .
We will now state the main theorem stating that this set of reduction rules has the desired
properties. After this we will build up the proof.
C1d ,

Theorem 4.4. The set of rules Rd is safe and complete for G2d .
S AFENESS
In this section it is assumed there is a graph G and another graph H that follows from G by
applying a rule. Now we first make an observation on the connectivity of our graphs:
Lemma 4.5. Let G and H be graphs. If G is connected and GRd∗ H then H is connected.
Proof. We observe that the only rule that removes a path between two remaining vertices is C3d .
In the case of C3d however we demand that there is a path between v and w outside of C so this
path will still exist and it follows that H is still connected.
Since we assume our graph G is connected it follows that each produced graph H is also
connected. Now we will show for each of the rules in Rd that it is safe.
Lemma 4.6. Rules E1d and E2d are safe.
Proof. For both rules it should be clear that their starting states as well as the empty graph have
divisorial gonality two or lower. From this it follows they both are safe.
Lemma 4.7. Rules T1d and T2d are safe.

10

Rule E1d

Rule E2d

Rule T1d

Rule T2d

Rule T3d

Rule C1d

Rule C2d

C

C

Rule C3d

C

Figure 3: The reduction rules for divisorial gonality
Proof. Let v be our vertex with degree 1 and u its neighbor. We know that the only constraint on
v can be the constraint (v, v).
Note that if H ∈ G2d then there is a divisor on H that puts at least one chip on u. Moving this
divisor to G, note that we can move chips to v by firing G − {v}, it follows that this divisor is also
suitable for G.
Given that G ∈ G2d note that we can find a suitable divisor that has no chips on v by firing v
until it contains no chips. This divisor will also be suitable on H.
For T2d the proof is analogous, except with two chips on v.
Lemma 4.8. Rule T3d is safe.
Proof. Let v1 and v2 be the vertices with degree one, such that their only constraint is (v1 , v2 ) and
let u1 and u2 be their neighbors. We first assume that H ∈ G2d , then there is a suitable divisor on
H with one chip on u1 and another chip on u2 . Note that we can move this divisor to G. Then by
firing V (G) − {v1 , v2 } we can move a chip to v1 and v2 . Therefore this divisor is also suitable on
G.
Assume then that G ∈ G2d , then there is a suitable divisor on G with one chip on v1 and v2 . By
firing {v1 , v2 } we can create a divisor with a chip on u1 and u2 (or two on u1 if u1 = u2 ). Note
that this divisor is suitable on H.
Lemma 4.9. Rule C1d is safe.

11

Proof. We start by assuming that H ∈ G2d . Note that by Lemma 4.5 we have that H is connected.
Therefore it follows that H must consist of a single vertex, therefore G consists of a single cycle
and it follows that G ∈ G2d , since all constraints are compatible.
Assume then that G ∈ G2d instead. Since G is connected it must consist exactly of the cycle
C, thus H consists of a single point and H ∈ G2d .
Lemma 4.10. Rule C2d is safe.
Proof. Let C be our cycle with one vertex v with degree greater than 2. Assume that H ∈ G2d ;
then there is a suitable divisor on H with two chips on v. Move this divisor to G. Note that if we
fire V (G) − C + {v} then we move the two chips onto the two neighbors of v in C. Since all
constraints on C are compatible with the constraint (v, v) it follows that we can move the chips
along C while satisfying the constraints on C. From this it follows that our divisor is suitable on
G.
Assume now that G ∈ G2d . Since all constraints on C are compatible with (v, v), it follows
that we can find a suitable divisor with two chips on v. Moving this divisor to H gives a suitable
divisor there. Thus, H ∈ G2d .
Lemma 4.11. Rule C3d is safe.
Proof. Let C be our cycle and v, w the two vertices with degree greater than two in C. We first
assume that H ∈ G2d . From this it follows that there exists a suitable divisor on H with a chip on
v and a chip on w. Note that in G all constraints on C plus (v, w) are compatible. From this we
see that if we move the divisor from H to G it will be able to satisfy all constraints on C. It is also
clear that from v and w we can move chips along either of the arcs that form C together with v
and w. Therefore the divisor is also suitable on G and thus G ∈ G2d .
Let us then assume that instead G ∈ G2d . Clearly there exists a suitable divisor D on G that has
a chip on v. We will show that there is a suitable divisor that has a chip on both v and w: Assume
that D(w) = 0, then there should be a suitable divisor D ′ with D ′ (w) = 1 and D ∼ D ′ . This
implies there is a level set decomposition of the transformation from D to D ′ .
If none of the subsets contain v then it follows that D ′ (v) = 1 and we are done. Otherwise
let Ai be the first subset that contains v and Di the divisor before firing Ai . Note that we should
have Di (a) ≥ outdegAi (a) for all P
a ∈ Ai , since all firing sets should be valid by Corollary 3.18.
Since deg(Di ) = 2 it follows that a∈Ai outdegAi (a) ≤ 2. This is the same as the cut induced
by Ai having size two or lower. Note that the minimum cut between v and w is at least three, since
they are both part of C and there exists an additional path outside of C between them. Therefore
it follows that Ai can only induce a cut of size two or lower if w ∈ Ai . But this implies that
Di (w) ≥ 1, since a vertex can not receive a chip after entering the firing set. We conclude that
Di (v) = 1 and Di (w) = 1.
Also by the fact that the minimum cut between v and w is at least three it follows that a subset
firing can only be valid if the subset contains either both v and w or neither. Since, by Corollary
3.18, any transformation between effective divisors can be done by a series of valid subset firings
it follows that any transformation can be done while adhering to the constraint (v, w).
Therefore the divisor Di gives us a suitable divisor on H. We conclude that H ∈ G2d .
Since we have shown that each of the rules in Rd is safe, we conclude:
Theorem 4.12. The ruleset Rd is safe for G2d .

12

C OMPLETENESS
Theorem 4.12 implies that membership in G2d is invariant under the reduction rules in Rd . For the
reduction rules to be useful, we will also need to confirm that any graph can be reduced to the
empty graph by a finite sequence of rule applications.
Lemma 4.13. Let G be a graph and v ∈ V (G) a vertex. If there are two different constraints on
v, so (v, w), (v, w′ ) ∈ R(G), with w 6= w′ , then G ∈
/ G2d .
Proof. We first check the possibility where v = w′ . Then any suitable divisor must be equivalent
to the divisor D with D(v) = 2, but also equivalent to the divisor D ′ with D ′ (v) = 1 and
D ′ (w) = 1. But this means these divisors are equivalent to each other. Note however that since
we have the constraint (v, w) any firing set containing v must also contain w. Starting with divisor
D however, note that any valid firing set must contain v (it is the only vertex with chips), which
means it must also contain w. This implies no level set decomposition from D to D ′ can exist,
from which it follows that there is no transformation of D into D ′ , so G ∈
/ G2d .
The other possibility is that v 6= w and v 6= w′ . This means any suitable divisor should be
equivalent to the divisor D with D(v) = 1, D(w) = 1, and equivalent to the divisor D ′ with
D ′ (v) = 1, D ′ (w′ ) = 1. Note that any firing set that contains v also contains both w and w′
by our constraints. Moreover any firing set containing w contains w′ by our constraints. Since
starting in D any valid firing set must contain either v or w (they are the only vertices with chips),
it follows that any valid firing set must contain w′ . Again this implies no level set decomposition
from D to D ′ exists, so D and D ′ cannot be equivalent. We conclude no suitable divisor can exist
and therefore G ∈
/ G2d .
Lemma 4.14. Let G ∈ G2d be a graph where none of the rules E1d , E2d , T1d , T2d or T3d can be
applied. Then G contains no vertices of degree 1.
Proof. Assume on the contrary that G does contain a vertex v with degree 1. By Lemma 4.13 and
the fact that G ∈ G2d we have that at most one constraint contains v. If there is no constraint on
v, we could apply Rule T1d to it, therefore there is exactly one constraint on v. If this constraint
is (v, v) we would be able to apply Rule T2d to v. If the constraint is (v, w), where w is another
vertex of degree 1, Rule T3d could be applied to v. The only remaining possibility is that the
constraint on v is the constraint (v, w) where w is a vertex with degree greater than 1. We will use
D to denote the divisor with D(v) = D(w) = 1. Since we have the constraint (v, w) and G ∈ G2d ,
D is a suitable divisor.
We first consider the case where w is not a cut-vertex. Let u be the neighbor of v. Consider
the transformation from D to a divisor D ′ with D ′ (u) = 1. Let A0 be the first firing set in the
level decomposition of this transformation. Note that we have v, w ∈ A0 and u ∈
/ A0 . Since w
is not a cut-vertex, it follows for each neighbor wi of w that there is a path from wi to u that does
not contain w or wi = u. Note that if a neighbor wi 6= u is in A0 , then somewhere on its path to u
must be an edge that crosses between A0 and its complement Ac0 . But such a crossing edge would
imply that the firing set is not valid, since no vertex on this path contains a chip. Since w has
degree at least two, and none of its neighbors are in A0 , it follows that the firing set is not valid,
since w would lose at least two chips. Since no valid firing set exists to start the transformation,
it follows that no transformation from D to D ′ exists, but this implies that r(D) < 1. Since D
should be suitable by constraint (v, w), we have a contradiction.
We proceed with the case where w is a cut-vertex. Let Cx be a connected component not
containing v after removing w. Consider the subset Cx in G. Note that from D we can never
13

obtain an equivalent divisor with two chips on Cx . Since the chip from v would have to move
through w to get to Cx , this would require D to be equivalent to a divisor with two chips on w,
which is impossible by Lemma 4.13 if G ∈ G2d . Since D has rank greater than zero it then follows
that Cx must be a tree. This means Cx must contain a vertex x of degree one, we know however
that since we cannot apply rules T1d , T2d or T3d to G, x must have a constraint (x, y) where y is a
vertex with degree greater than one. We now consider the possible locations of y.
If y ∈ Cx , then D must be equivalent to a divisor with a chip on x and a chip on y. As
mentioned before, D cannot be equivalent to a divisor with two chips on Cx , so it follows that
y∈
/ Cx .
Since y ∈
/ Cx , D has to be equivalent to the divisor D ′′ with D ′′ (x) = D ′′ (y) = 1. Let Cy
be the component containing y. Let A0 be the first subset of the level set decomposition of the
transformation of D into D ′′ . Note that v, w ∈ A0 and x, y ∈
/ A0 . But this implies that w has at
least one neighbor w1 in Cy , with w1 ∈
/ A0 , namely the first vertex on the path from w to y. But
w also has at least one neighbor w2 in Cx , with w2 ∈
/ Cx , namely the first vertex on the path from
w to x. This means w has two neighbors that it will send a chip to, but w only has one chip. By
/ Cy , giving a contradiction.
Corollary 3.18, no transformation from D to D ′′ can exist and thus y ∈
We conclude there can be no such constraint (x, y) and from this we conclude that no vertices
with degree 1 can exist in G.
Lemma 4.15. Let G be a graph with a set of constraints C and let C be a cycle in G with CC the
set of constraints that contain a vertex in C. If G ∈ G2d then the constraints CC are compatible.
Proof. We start by showing that the first property of a compatible constraint set holds. Let (v, w) ∈
CC be a constraint and let v ∈ C without loss of generality. We show that w ∈ C. Assume on
the contrary that w ∈
/ C, then let D be the suitable divisor with D(v) = D(w) = 1. Let x be a
vertex in C with x 6= v. Let D ′ be any divisor with D ′ (x) ≥ 1. Let A0 be the first firing set of
the level set decomposition of the transformation of D into D ′ . Note that v, w ∈ A0 and x ∈
/ A0 .
Note there are two disjoint paths from v to x, since they are on the same cycle. This implies a chip
will be sent along both these paths by A0 , but since w ∈
/ C, both these chips must come from v.
However, v only has one chip, so we conclude that no transformation can exist and thus D is not
suitable, a contradiction.
For the second property, let (v, w), (v ′ , w′ ) ∈ CC be two constraints on C. By our first property
we have that v, w, v ′ , w′ ∈ C. Let D be the divisor with D(v) = D(w) = 1 and D ′ the divisor
with D ′ (v ′ ) = D ′ (w′ ) = 1. Let A0 be the first firing set of the level set decomposition of the
transformation of D into D ′ . Note that v, w ∈ A0 and v ′ , w′ ∈
/ A0 . We observe that v and w split
C into two arcs. Note that both v ′ and w′ must be on the same arc: if they are not on the same arc,
there exists disjoint paths from v to v ′ and to w′ that do not contain w. This implies that A0 sends
two chips along these paths, but v has only one chip.
Now note that C is biconnected, which implies that for a firing set A with w ∈ A and w′ ∈
/A
to be valid there must be at least two chips on vertices in C. This follows since there are at
least two edges crossing between A and its complement Ac in C. We know D and D ′ must be
equivalent, since G ∈ G2d and both correspond to constraints on G. Let A0 , . . . , Ak be the level
set decomposition of the transformation of D into D ′ . Since each of these firing sets is valid by
Lemma 3.18, it follows this transformation leaves two chips on C at each intermediate divisor. It
follows that if we restrain these firing sets to C, we have a sequence of firing sets that transforms D
into D ′ on C. Therefore D and D ′ are equivalent on C, so our second property is also fulfilled.
Lemma 4.16. Let G be a simple graph of treewidth 2 or lower and containing at least 4 vertices,
then G has at least two vertices with degree 2 or lower.
14

Proof. Let T be a tree decomposition of G, such that we can remove no vertex of T while still
keeping a valid tree decomposition. Note that T must contain at least two leaves t1 and t2 , and
hence t1 must contain at least one vertex v from G that is sent to no vertex of T , since otherwise
we would be able to remove t1 . All neighbors of v must be sent to t1 , but t1 contains at most three
elements of G, so v has at most two neighbors. Applying the same argument to t2 we find another
vertex with at most two neighbors.
Lemma 4.17. Given a non-empty graph G ∈ G2d there is a rule in Rd that can be applied to G.
Proof. Let G ∈ G2d be such a graph and assume that no rule in Rd can be applied to G. By Lemma
4.14 we have that such a graph can contain no vertices of degree one. Therefore, our graph consists
of vertices of degree 2 and of a set T of vertices of degree 3 or greater. Consider the minor H
of G created by contracting each path of degree 2 vertices to an edge. Note that any edge in H
therefore represents a path consisting of a single edge or a path with any number of vertices with
degree 2 in G.
Now assume we have a loop in H. Note that this loop corresponds to a path of degree 2
vertices in G going from a degree 3 or greater vertex to itself, so this path plus the vertex forms
a cycle with one vertex of degree 3 or greater. By Lemma 4.15 the constraints on this cycle are
compatible, so we are able to apply Rule C2d to it. Since we assumed no rules can be applied, it
follows H contains no loops.
Now we attempt to find a subgraph H ′ of H with no multiple edges. If H contains no multiple
edges, simply let H ′ = H. Otherwise let v and w be vertices such that there are at least two
edges between v and w. If v and w are still connected to each other after removing two edges
e1 , e2 between them, note that these edges correspond to two disjoint paths of degree 2 vertices
in G. Thus v, w plus the paths corresponding to e1 and e2 form a cycle C in G with exactly two
vertices of degree 3 or greater, where v and w have a path that does not share any edges with C.
Again by Lemma 4.15 we have that the constraints on this cycle are compatible and so we are able
to apply Rule C2d to C. From this it follows that v and w must be disconnected after removing
e1 and e2 . So any multiple edge in H is a double edge, whose removal splits the graph in two
connected components. Let H ′ be the connected component of minimal size over all removals
of a double edge in H. Note that H ′ cannot contain any double edge, since this would imply a
smaller connected component.
We now have a minor H ′ of G, where each vertex has degree at least 3 with at most one
exception, which has no loops or multiple edges and therefore is a simple graph. Since H ′ only
has at most one vertex with degree lower than three, by Lemma 4.16 it follows that tw(H ′ ) ≥ 3
and since treewidth is closed under taking minors we get tw(G) ≥ 3. But then by Lemma 3.13 it
follows that dgon(G) ≥ 3, creating a contradiction, since G ∈ G2d . We conclude our assumption
must be wrong and there is a rule in Rd that can be applied to G.
Now we have everything required to prove our main theorem:
Proof of Theorem 4.4. By Theorem 4.12 we have that Rd is safe. It remains to prove that Rd is
also complete.
Assume that G ∈ G2d . By Lemma 4.17 and Theorem 4.12 we have that we can keep applying
rules from Rd to G as long as G has not been turned into the empty graph yet. Now observe that
each rule removes at least one vertex or in the case of C3d at least two edges, while never adding
more vertices or edges. Since G starts with a finite number of vertices and edges it follows that
rules from Rd can be only applied a finite number of times to the graph. When no more rules

15

can be applied to the graph, it follows the graph has been reduced to the empty graph. Therefore
GRd∗ ∅ and it follows that Rd is complete.
Now by Lemma 3.23 it follows Rd has the properties we want it to have so that we are able to
use it for characterization of the graphs with divisorial gonality two or lower.
5 Reduction rules for stable gonality
In this section, we give a complete set of safe reduction rules to recognize stable hyperelliptic
graphs, i.e. graphs with stable gonality 2. We will first introduce some extra notation and then we
will state all rules. Next we will show that all rules are safe for graphs with stable gonality at most
2 and that those graphs can be reduced to the empty graph. It is not hard to see that the set of rules
implies a polynomial time algorithm to test if a graph has stable gonality at most 2; in Section 7,
we discuss how we can obtain an algorithm with a running time of O(m + n log n).
N OTATION
For a given graph G, we want to know whether there exists a finite harmonic morphism of degree
2 from a refinement of G to a tree. We will do this by reducing G to the empty graph. During
this process we sometimes add constraints to our graph. The set of constraints gives restrictions to
which morphisms we allow.
Definition 5.1. Let G be a graph, G′ a refinement of G, T a tree. Let φ : G′ → T be a map.
We call φ a suitable morphism if it is a finite harmonic morphism of degree 2 and it satisfies the
following conditions.
(i) For all pairs (v, v) ∈ C it holds that mφ (v) = 2.
(ii) For all pairs (u, v) ∈ C with u 6= v it holds that φ(u) = φ(v) and mφ (u) = mφ (v) = 1.
We say that a graph with constraints has stable gonality at most 2 if there exists a suitable
morphism from a refinement of G to a tree. Let G2s be the class of graphs with constraints that
have stable gonality at most 2. We define the empty graph to have stable gonality 0 and thus
∅ ∈ G2s .
We will denote the set of constraints that contain a vertex v by Cv . Sometimes it is convenient
to think of constraints as an extra set of edges.
Now we can prove some lemmas about constraints.
Lemma 5.2. Let G be a graph with constraints. If there is a vertex v with |Cv | > 1, then
sgon(G) ≥ 3.
Proof. Let G be a graph with sgon(G) = 2. Suppose that |Cv | > 1. Let {u, v} and {v, w} be two
constraints that contain v. We know that u 6= w. Suppose that φ is a suitable morphism of degree
2. We distinguish two cases.
Suppose that u = v. Then we know that mφ (v) = 2. On the other hand we have that
mφ (v) = mφ (w) = 1. This yields a contradiction.
Now suppose that u 6= v and w 6= v. Notice that φ(u) = φ(v) = φ(w), thus there are at least
three vertices mapped to φ(v). We conclude that deg(φ) ≥ 3. This yields a contradiction.
We conclude that |Cv | ≤ 1.
Lemma 5.3. Let G be a graph, and φ : G → T a finite harmonic morphism of degree 2. If
φ(u) = φ(v), then deg(u) = deg(v).
16

Proof. Notice that mφ (u) = mφ (v) = 1. Let e be an edge incident to φ(u). We see that there
is exactly one edge e′ such that e′ is incident to u and φ(e′ ) = e. On the other hand every
edge that is incident to u is mapped to an edge that is incident to φ(u). So we conclude that
degG (u) = degT (φ(u)). Analogously we find that degG (v) = degT (φ(v)). Since φ(u) = φ(v),
it follows that deg(u) = deg(v).
Lemma 5.4. Let G be a graph where every leaf is incident to a constraint, so if deg(u) = 1 then
Cu 6= ∅ for all u. Suppose that (u, v) ∈ C. If deg(u) 6= deg(v), then sgon(G) ≥ 3.
Proof. Suppose that deg(u) 6= deg(v). Assume without loss of generality that deg(u) > deg(v).
Suppose that sgon(G) = 2. Let G′ be a refinement of G with a minimal number of vertices such
that there exists a suitable morphism of degree 2. Let φ : G′ → T be such a morphism.
We know that φ(u) = φ(v), thus degG′ (u) = degG′ (v). So there is a neighbor x of v
which is an external added vertex. Now we look at φ(x). Notice that there is a neighbor y of
u such that φ(x) = φ(y). It is clear that y 6= x, since x is an external added vertex. Thus
mφ (x) = mφ (y) = 1.
Let x′ be a neighbor of x, not equal to v. Suppose that mφ (x′ ) = 2. We know that the edge
e = {x, x′ } has index 1, so there there exists another neighbor of x′ that is mapped to φ(x).
We know that y is the unique vertex other than x that is mapped to φ(x), it follows that y is a
neighbor of x′ . This yields a contradiction, since x′ is an external added vertex. We conclude that
mφ (x′ ) = 1. Inductively we find that mφ (x′′ ) = 1 for all vertices in x′′ ∈ Gv (x).
Let x′ 6= v be a leaf in Gv (x); then mφ (x′ ) = 1. Let y ′ be the vertex such that φ(x′ ) = φ(y ′ ).
Now it follows that deg(x′ ) = deg(y ′ ), thus y ′ is a leaf. Since x′ is an added vertex, it also follows
that Cy = 0. Since every leaf G was incident to a constraint, we conclude that y ′ is added to G. It
follows that G′ \{y ′ , x′ } is a refinement of G and that φ′ : G′ \{y ′ , x′ } → T \{φ(y ′ )} is a suitable
morphism of degree 2. This yields a contradiction with the minimality of G′ .
We conclude that sgon(G) ≥ 3.
R EDUCTION

RULES

We will now state all rules. Figure 4 shows all rules in pictures, constraints are showed as green
dashed edges. From now on we will refer to the constraints as green edges. We apply those rules
to a given graph G with an empty set of constraints. When a rule adds a constraint uv, and there
already exists such a constraint, then the set of constraints does not change.
Rule T1s . Let v be a leaf with Cv = ∅. Let u be the neighbor of v. Contract the edge uv.
Rule T2s . Let v be a leaf with Cv = {(v, v)}. Let u be the neighbor of v. Contract the edge uv.
Rule S1s . Let v be a vertex of degree 2 with Cv = ∅. Let u1 , u2 be the neighbors of v (possibly
u1 = u2 ). Contract the edge u1 v.
Rule T3s . Let G be a graph where every leaf and every degree 2 vertex is incident to a green edge.
Let v1 and v2 be two leaves that are connected by a green edge. Let u1 and u2 be their neighbors
(possibly u1 = u2 ). Contract the edges u1 v1 and u2 v2 .
Rule S2s . Let G be a graph where every leaf and every degree 2 vertex is incident to a green
edge. Let v be a vertex of degree 2 with a green loop, such that there exists a path from v to v
in G (possibly containing green edges). Let u1 and u2 be the neighbors of v (possibly u1 = u2 ).
Remove v and connect u1 and u2 with a green edge.
17

Rule T1s

Rule T2s

Rule S1s

Rule T3s

Rule S2s

Rule Ls

Rule P1s

Rule P2s

Rule E1s

Rule E2s

Rule E3s

Figure 4: The reduction rules for recognizing stable hyperelliptic graphs.
Rule Ls . Let v be a vertex with a loop. Remove all loops from v and add a green loop to v.
Rule P1s . Let uv be an edge such that there also exists a green edge uv. Remove the black edge
uv.
Rule P2s . Let u, v be vertices, such that |E(u, v)| > 1. Let e and f be two of those edges. If there
exists another path, possibly containing green edges, from u to v, then remove e and f and add a
green edge from u to v.
Rule E1s . Let G be the graph consisting of a single vertex v with Cv = ∅. Remove v.
Rule E2s . Let G be the graph consisting of a single vertex v with a green loop. Remove v.
Rule E3s . Let G be the graph consisting of a two vertices u and v that are connected by a green
edge. Remove u and v.
We will write Rs for this set of reduction rules. We can now state the main theorem; in the
next sections we will prove this theorem.
18

v

v1

v2

u

x1

x

w

y

Figure 5: Proof of Lemma 5.7.
Theorem 5.5. The set of rules Rs is safe and complete for G2s .
S AFENESS
Now we will prove that the rules Rs are safe for G2s , i.e., if G a is graph, and H is obtained from
G by applying one of the rules, then sgon(G) ≤ 2 if and only if sgon(H) ≤ 2. In all proofs we
assume that the original graph is called G and the graph obtained by applying a rule is called H.
Lemma 5.6. Rule T1s is safe.
Proof. Let v be the leaf in G to which the rule is applied.
Suppose that sgon(G) ≤ 2. Since G is a refinement of H, it is clear that sgon(H) ≤ 2.
Suppose that sgon(H) ≤ 2. Then there exists a refinement H ′ of H and a suitable morphism
φ : H ′ → T . Write u for the neighbor of v in G. We distinguish two cases.
Suppose that mφ (u) = 2. Then add a leaf v to u in H ′ to obtain G′ . Now we see that G′
is a refinement of G. Give the edge uv index rφ′ (uv) = 2, and give all other edges e index
rφ′ (e) = rφ (e). Add a leaf v ′ to φ(u) in T to obtain T ′ . Then we can extend φ to φ′ : G′ → T ′ ,
(
φ(x) if x ∈ H ′
′
φ (x) =
v′
if x = v.
It is clear that φ′ is a suitable morphism, so we conclude that sgon(G) ≤ 2.
Suppose that mφ (u) = 1. Let w be the other vertex such that φ(w) = φ(u). Then add leaves
v1 and v2 to u and w in H ′ to obtain G′ . We see that G′ is a refinement of G. Give the edges uv1
and wv2 indices rφ′ (uv1 ) = rφ′ (wv2 ) = 1, and give all other edges e index rφ′ (e) = rφ (e). Add
a leaf v ′ to φ(u) in T to obtain T ′ . Then we can extend φ to φ′ : G′ → T ′ ,
(
φ(x) if x ∈ H ′
′
φ (x) =
v′
if x = v1 , v2 .
It is clear that φ′ is a suitable morphism, so we conclude that sgon(G) ≤ 2.
Lemma 5.7. Rule T2s is safe.
Proof. Let v be the vertex in G to which the rule is applied.
Suppose that sgon(G) ≤ 2. Then there exists a refinement G′ of G and a suitable morphism
φ : G′ → T . Let u be the neighbor of v in G. We distinguish two cases:
Suppose that mφ (u) = 2. Define H ′ as the graph G′ with a green loop at vertex u and without
the green loop at v, then H ′ is a refinement of H. Now we see that φ : H ′ → T is a suitable
morphism, so sgon(H) ≤ 2.
Suppose that mφ (u) = 1. Let v0 = v, v1 , . . . , vk = u be the vertices that are added to the
edge uv of G. Let i be the largest integer such that mφ (vi ) = 2. Notice that i < k. Then there
19

exists another vertex x1 in G′ such that φ(vi+1 ) = φ(x1 ). If vi+1 6= u, it follows that there is an
edge x1 x2 that is mapped to φ(vi+1 vi+2 ). And since mφ (vi+2 ) = 1, we see that x2 6= vi+2 . It
follows that there exists x1 6= vi+1 , . . ., xk−i 6= vk such that φ(vi+j ) = φ(xj ). Write x = xk−i ,
then φ(x) = φ(u) and mφ (u) = mφ (x) = 1. See Figure 5 for an illustration of this.
Notice that x is an external added vertex. Let w be a neighbor of u not equal to vk−1 . Then
we see that there exists an vertex y such that φ(uw) = φ(xy). Since x is an external added vertex,
we see that w 6= y. We conclude that mφ (w) = 1. Inductively we see that for every vertex w′
in Gvi (vi+1 )\{vi } it holds that mφ (w′ ) = 1. Define H ′ as Gvi (vi+1 )\{vi }, with a green loop at
vertex u. Notice that H ′ is a refinement of H. Now we can restrict φ to H ′ and give every edge
index rφ′ (e) = 2 to obtain a suitable morphism: φ′ : H ′ → T ′ , where T ′ = φ(Gvi (vi+1 )\{vi }).
We conclude that sgon(H) ≤ 2.
Suppose that sgon(H) ≤ 2. Then there exists a refinement H ′ of H and a suitable morphism
φ : H ′ → T . Write u for the neighbor of v in G. We know that mφ (u) = 2. Then add a leaf with
a green loop to u in H ′ to obtain G′ . Now we see that G′ is a refinement of G. Give the edge uv
index rφ′ (uv) = 2, and give all other edges e index rφ′ (e) = rφ (e). Add a leaf v ′ to φ(u) in T to
obtain T ′ . Then we can extend φ to φ′ : G′ → T ′ ,
(
φ(x) if x ∈ H ′
φ′ (x) =
v′
if x = v.
It is clear that φ′ is a suitable morphism, so we conclude that sgon(G) ≤ 2.
Lemma 5.8. Rule S1s is safe.
Proof. Let v be the vertex in G to which the rule is applied.
Suppose that sgon(G) ≤ 2. Let G′ be a refinement of G such that there exists a suitable
morphism φ : G′ → T . Since G′ is a refinement of H too, it is clear that sgon(H) ≤ 2.
Now suppose that sgon(H) ≤ 2. Let H ′ be a refinement of H such that there exists a suitable
morphism φ : H ′ → T . Write u1 and u2 for the neighbors of v in G. We distinguish two cases.
Suppose that u1 = u2 . It follows that the edge u1 u2 is subdivided in H ′ , thus H ′ is a refinement of G′ too. We conclude that sgon(G) ≤ 2.
Suppose that u1 6= u2 . If the edge u1 u2 is subdivided, we see again that H ′ is a refinement of
G, and sgon(G) ≤ 2. So suppose that u1 and u2 are neighbors in H ′ . If r(u1 u2 ) = 2, then add
a vertex v on the edge u1 u2 to obtain a graph G′ . Notice that G′ is a refinement of G. Give the
edges u1 v and vu2 index 2, and give all other edges e index rφ′ (e) = rφ (e). And add a vertex v ′
on the edge φ(u1 )φ(u2 ) in T to obtain T ′ . Now we see that φ′ : G′ → T ′ given by
(
φ(x) if x ∈ H ′ ,
′
φ (x) =
v′
if x = v,
is a suitable morphism. We conclude that sgon(G) ≤ 2.
If r(u1 u2 ) = 1, then there exists another edge w1 w2 such that φ(u1 u2 ) = φ(w1 w2 ). Now add
a vertex v1 on the edge u1 u2 and a vertex v2 on the edge w1 w2 to obtain a graph G′ . Notice that
G′ is a refinement of G. Give the edges u1 v1 , v1 u2 , w1 v2 and v2 w2 index 1, and give all other
edges e index rφ′ (e) = rφ (e). Add a vertex v ′ on the edge φ(u1 )φ(u2 ) in T to obtain T ′ . Now we
see that φ′ : G′ → T ′ given by
(
φ(x) if x ∈ H ′ ,
φ′ (x) =
v′
if x = v1 , v2 ,
20

a1

v1

a2

u1

v1

a1

a2

u1
x

v2

b1

b2

u2

b3

v2

b1

b2

c

u2

b3
w

(a) Case 1.

(b) Case 2.

Figure 6: Proof of Lemma 5.9.
is a suitable morphism. We conclude that sgon(G) ≤ 2.
Lemma 5.9. Rule T3s is safe.
Proof. Let v1 and v2 be the vertices in G to which the rule is applied.
“=⇒”: Suppose that sgon(G) ≤ 2. Let G′ be a minimum refinement of G such that there
exists a suitable morphism φ : G′ → T , i.e. for every refinement G′′ with less vertices than G′
there is no suitable morphism φ′ : G′′ → T ′ for any tree T ′ . Let u1 and u2 be the neighbors of v1
and v2 in G. We distinguish three cases.
Case 1: Suppose that u1 6= u2 , and that there does not exist a path from v1 to v2 , except
the green edge v1 v2 . Let a0 = v1 , a1 , . . . , ak = u1 be the subdivision of the edge u1 v1 and
b0 = v2 , b1 , . . . , bl = u2 the subdivision of the edge u2 v2 . We know that there exists an edge v2 c
such that φ(a0 a1 ) = φ(v2 c). It is clear that c 6= a1 , thus mφ (a1 ) = 1. (See Figure 6a.) Inductively
we find that for every vertex a′ in G′a0 (a1 ) it holds that mφ (a′ ) = 1. We conclude that G′a0 (a1 ) is
a tree. Analogously we find that G′b0 (b1 ) is a tree. Thus Gv1 (u1 ) and Gv2 (u2 ) are trees. Thus H
consists of two black trees connected by a green edge.
Now we can construct a refinement H ′ of H, a tree T ′ and a suitable morphism φ′ : H ′ → T ′ .
Copy every branch of u1 and add them to u2 and copy every branch of u2 and add them to u1 .
Write H ′ for this graph. Now we see that the two trees of H ′ are the same, say T ′ . Now we can
define φ′ : H ′ → T ′ as the identity map on each of the components, where φ′ (u1 ) = φ′ (u2 ). Thus
φ′ is a suitable morphism. We conclude that sgon(H) ≤ 2.
Case 2: Suppose that u1 6= u2 and that there exists a path (possibly containing green edges)
from v1 to v2 . Assume that φ(u1 ) 6= φ(u2 ). Let a0 = v1 , a1 , . . . , vk = u1 be the added vertices
on the edge v1 u1 and let b0 = v2 , b1 , . . . , bl = u2 be the added vertices on the edge v2 u2 . Assume
without loss of generality that k ≤ l. It is clear that all vertices a0 , . . . , ak , b0 , . . . , bl lie on the
path from v1 to v2 . If φ(a1 ) 6= φ(b1 ), then there is a vertex x in the path from a1 to b1 that is
mapped to φ(v1 ). This yields a contradiction. Thus φ(a1 ) = φ(b1 ). Inductively we find that
φ(ai ) = φ(bi ) for all i ≤ k. We conclude that φ(bk ) = φ(u1 ). It follows that deg(bk ) = deg(u1 ).
We again distinguish two cases.
Suppose that deg(u1 ) > 2. Then bk has an external added neighbor w. We see that u1 has
a neighbor x such that φ(bk w) = φ(u1 x). Since w is an external added vertex, it follows that
w 6= x. Thus mφ (w) = 1. (See Figure 6b.) Iteratively we see that for every vertex w′ in G′bk (w),
it holds that mφ (w′ ) = 1. Notice that G′bk (w) is a tree, since w is an external added vertex. Now
let y be a leaf in G′bk (w), and let y ′ be such that φ(y) = φ(y ′ ). Then y ′ is a leaf. It is clear that
y ′ has no green edge incident to it, thus y ′ is an added vertex. We conclude that we can remove
y and y ′ from G′ and φ(y) from T and still have a suitable morphism. This yield a contradiction
with the minimality of G′ .
Suppose that deg(u1 ) = 2 in G′ . Then the degree of u1 in G is also 2. It follows that Cu1 6= ∅.
Let u1 c be a green edge. If c = u1 , so if u1 has a green loop, then mφ (u1 ) = 2. This yields a
21

contradiction. It is clear that c 6= bl , since bl is an added vertex. It follows that there are 3 distinct
vertices that are mapped to φ(u1 ). This yields a contradiction.
Altogether we conclude that φ(u1 ) = φ(u2 ). Define H ′ as G′ with a green edge u1 u2 . Now
′
H is a refinement of H, and φ : H ′ → T is a suitable morphism. We conclude that sgon(H) ≤ 2.
Case 3: Suppose that u1 = u2 . Analogous to the second case, we prove that mφ (u1 ) = 2.
Define H ′ as G′ with a green loop at vertex u1 . Now H ′ is a refinement of H, and φ : H ′ → T is
a suitable morphism. We conclude that sgon H ≤ 2.
“⇐=”: Suppose that sgon(H) ≤ 2. Then there exists a refinement H ′ of H and a suitable
morphism φ : H ′ → T . Write u1 and u2 for the neighbors of v1 and v2 in G. We know that
φ(u1 ) = φ(u2 ). Then add a leaves v1 and v2 to u1 and u2 and a green edge v1 v2 in H ′ to obtain
G′ . Now we see that G′ is a refinement of G. Give the edges u1 v1 and u2 v2 index rφ′ (u1 v1 ) =
rφ′ (u2 v2 ) = 1, and give all other edges e index rφ′ (e) = rφ (e). Add a leaf v ′ to φ(u1 ) in T to
obtain T ′ . Then we can extend φ to φ′ : G′ → T ′ ,
(
φ(x) if x ∈ H ′
′
φ (x) =
v′
if x = v1 , v2 .
It is clear that φ′ is a suitable morphism, so we conclude that sgon(G) ≤ 2.
Lemma 5.10. Rule S2s is safe.
Proof. This proof is analogous to the proof of the second and third case in the proof of Lemma
5.9, so we omit it.
Lemma 5.11. Rule Ls is safe.
Proof. Let v be the vertex in G to which the rule is applied.
Suppose that sgon(G) ≤ 2. Then there exists a refinement G′ of G and a suitable morphism
φ : G′ → T . Let u be a vertex that is added to the loop vv. We distinguish two cases.
Suppose that mφ (v) = 2. Define H ′ as the graph G′ \G′v (u) with a green loop at vertex v, then
′
H is a refinement of H. Let T ′ = T \φ(G′v (u)) we see that the restricted morphism φ : H ′ → T ′
is a suitable morphism, so sgon(H) ≤ 2.
Suppose that mφ (u) = 1. Let v0 = v, v1 , . . . , vk = v be the vertices that are added to the loop
vv of G. Let i be the integer such that φ(vi ) = φ(v). Let w be a neighbor of v not equal to v1 or
vk−1 . Then there is a neighbor x of vi , not equal to vi−1 and vi+1 , such that φ(w) = φ(x). Notice
that x is an external added vertex, thus mφ (w) = mφ (x) = 1. Inductively we see that for every
vertex w′ in G′v (w) it holds that mφ (w′ ) = 1. We conclude that G′v (w) is a tree.
Define H ′ as G′v (w), with a green loop at vertex v. Notice that H ′ is a refinement of H.
Now we can restrict φ to H ′ and give every edge index rφ′ (e) = 2 to obtain a suitable morphism:
φ′ : H ′ → T ′ , where T ′ = φ(G′v (w)). We conclude that sgon(H) ≤ 2.
Suppose that sgon(H) ≤ 2. Then there exists a refinement H ′ of H and a suitable morphism
φ : H ′ → T . We know that mφ (v) = 2. Then add a vertex u to H ′ with two black edges to v to
obtain G′ . Now we see that G′ is a refinement of G. Give both edges uv index rφ′ (uv) = 1, and
give all other edges e index rφ′ (e) = rφ (e). Add a leaf v ′ to φ(u) in T to obtain T ′ . Then we can
extend φ to φ′ : G′ → T ′ ,
(
φ(x) if x ∈ H ′
φ′ (x) =
v′
if x = u.
It is clear that φ′ is a suitable morphism, so we conclude that sgon(G) ≤ 2.
22

Lemma 5.12. Rule P1s is safe.
Proof. Let uv be the edge in G to which the rule is applied.
Suppose that sgon(G) ≤ 2. Let G′ be a refinement of G and φ : G′ → T a suitable morphism.
Let Guv be all internal and external added vertices to the edge uv. Now define H ′ = G′ \Guv and
T ′ = T \(φ(Guv )). Write φ′ for the restriction of φ to H ′ . Notice that φ′ is a suitable morphism
and that H ′ is a refinement of H. Thus sgon(H) ≤ 2.
Suppose that sgon(H) ≤ 2. Let H ′ be a refinement of H and φ : H ′ → T a suitable
morphism. Add an edge uv and a vertex w on this edge to H ′ , to obtain a refinement G′ of G.
Add a vertex w′ to T with an edge to φ(u), to obtain tree T ′ . Give the edges uw and vw index
rφ′ (uw) = rφ′ (vw) = 1, and give all other edges e index rφ′ (e) = rφ (e). Look at φ′ : G′ → T ′ ,
defined as
(
φ(x) if x ∈ H ′
′
φ (x) =
w′
if x = w.
Notice that φ(uw) = φ(vw), since we there is a green edge uv. We conclude that φ′ is a suitable
morphism, thus sgon(G) ≤ 2.
Lemma 5.13. Rule P2s is safe.
Proof. Let u and v be the vertices in G to which the rule is applied.
Suppose that sgon(G) ≤ 2. Let G′ be a refinement of G and φ : G′ → T a suitable morphism.
If φ(u) 6= φ(v), then there are at least three paths that are mapped to the path from φ(u) to φ(v) in
T . This yields a contradiction. Thus φ(u) = φ(v). Now we see, analogous to the proof of Lemma
5.12, that sgon(H) ≤ 2.
Suppose that sgon(H) ≤ 2. Then we find analogous to the proof of Lemma 5.12, that
sgon(G) ≤ 2.
Lemma 5.14. Rules E1s , E2s and E3s are safe.
Proof. All these graphs have stable gonality at most 2, so the statement holds true.
Now we have proven that all rules are safe, thus we have the following lemma:
Lemma 5.15. The set of rules Rs is safe for G2s .
C OMPLETENESS
Now we will prove that the set of rules is complete.
Let G be a connected graph and apply our algorithm to G, let H be the final graph to which
we cannot apply any rule. Notice that H is connected in the sense of black and green edges.
We define the graphs H1 , H2 and H3 as a single vertex, a vertex with a green loop and two
vertices connected by a green edge respectively. These are exactly the graph that can be reduced
to the empty graph by Rules E1s , E2s and E3s .
Lemma 5.16. The set of rules Rs is complete for G2s .
Proof. Let G be a graph with sgon(G) ≤ 2. Let H be the final graph after reducing G, so we
cannot apply a rule to H anymore. By Lemma 5.15 it follows that sgon(H) ≤ 2.
Suppose that H 6= ∅. We first say something about the structure of H. If there is a double
edge between two vertices u and v, then removing these two edges yields a disconnected graph,
23

otherwise we could apply Rule P2s. Let u1 v1 , . . . , uk vk be all double edges in H. Let Hi,1 , Hi,2
be connected components after removing the edges ui vi . If there is a degree 2 vertex with a
green loop, then removing this vertex yields a disconnected graph, otherwise we could apply rule
′ , H ′ be the connected
S2s . Let v1 , . . . , vl be all degree two vertices with a green loop. Let Hi,1
i,2
components after removing vi . Let H ′ be the element of
′
{Hi,j | 1 ≤ i ≤ k, j ∈ {1, 2}} ∪ {Hi,j
| 1 ≤ i ≤ l, j ∈ {1, 2}}

with the minimum number of vertices. Notice that there is at most one vertex v in H ′ with
degH ′ (v) 6= degH (v). Now we can say the following about H ′ .
• If H ′ contains only one vertex, then we could have applied Rule T1s , T2s , S1s , S2s , E1s or
E2s . Thus H ′ contains at least 2 vertices.
• If there is a vertex that is incident to more than one green edge, then sgon(H) ≥ 3 by
Lemma 5.2. So we can assume that no vertex is incident to more than one green edge.
• If H ′ contains a vertex u 6= v of degree 0, then degH (u) = degH ′ (u) = 0. We see that
Cu = {(u, w)} with u 6= w, because H ′ is connected and contains at least two vertices. By
Lemma 5.4 it follows that degH (u) = degH (w) = 0. Since H is connected it follows that
H = H3 , so we can apply Rule E3s . This yields a contradiction. So we can assume that H
does not contain vertices with degree 0.
• If H contains a leaf u 6= v, then degH ′ (u) = degH (u) = 1. We see that u is incident to
a green edge uw, with degH (w) 6= 1, otherwise we could apply Rule T1s , T2s or T3s . By
Lemma 5.4, it follows that sgon(H) ≥ 3. So we can assume that H does not contain leaves.
• If H contains a vertex u 6= v of degree 2, then we see that Cu = {u, w} with u 6= w, by
Rules S1s and S2s and by the choice of H ′ .
• We see that H ′ does not contain black loops because of Rule Ls .
• By Rules P1s and P2s and by the choice of H ′ it follows that H ′ has no multiple edges.
Write H ′′ for the graph obtained from H ′ by removing all green loops and coloring all green
edges of H ′ black. Altogether we see that H ′′ is a simple graph with at least two vertices and
every vertex, except at most one, has degree at least 3. It follows that H ′′ has treewidth at least 3.
If we change the color of all green edges to black, we see that all rules are deletions of vertices
or edges, contractions of edges and/or additions of loops. Since the set of graphs with treewidth
at most k is closed under these operations, we see that tw(G) ≥ tw(H ′′ ) ≥ 3. But then it follows
that sgon(G) ≥ tw(G) ≥ 3. This yields a contradiction.
We conclude that sgon(G) ≤ 2, then GRs∗ ∅.
Lemma 5.15 says that Rs is safe for G2s and from 5.16 it follows that Rs is complete for G2s .
So together this proves Theorem 5.5. We conclude that we can use this set of rules to recognize
graphs with stable gonality at most 2.
6

Reduction rules for stable divisorial gonality

In this section we show a set of reduction rules to decide whether stable divisorial gonality is at
most two. This set is similar to the set of rules for stable gonality, and it uses the concept of
constraints of divisorial gonality.
24

sd
Rule S1a

Rule Lsd

Figure 7: The reduction rules for stable divisorial gonality that are different from the rules for
sgon
N OTATION
We use the notion of constraints as in the section about divisorial gonality. We will refer to them
as red edges. We call an effective divisor of degree 2 that satisfies all conditions given by the
constraints a suitable divisor. Again, let G2sd be the set of all graphs with constraints with stable
divisorial gonality at most 2.
Lemma 6.1. Let G be a graph. If there is a vertex v with |Cv | > 1, then sdgon(G) ≥ 3.
Proof. See the proof of Lemma 4.13.
Lemma 6.2. Let G be a graph where every leaf is incident to a red edge, so if deg(u) = 1
then |Cu | > 0 for all u. Suppose that u is a leaf and (u, v) is a red edge. If deg(v) 6= 1, then
sdgon(G) ≥ 3.
Proof. Analogous to the proof of Lemma 4.14.
R EDUCTION

RULES

We will now state all rules. When a rule adds a red edge uv, and there already exists such a
red edge, then the set of constraints does not change. The reduction rules for stable divisorial
hyperelliptic graphs are almost the same as the rules for stable hyperelliptic graphs. Instead of
sd , S sd and Lsd ,
green edges we use red edges, and we replace Rule S1s and Ls by new Rules S1a
1b
see Figure 7 for the new rules.
Rule T1sd (=T1s ). Let v be a leaf with Cv = ∅. Let u be the neighbor of v. Contract the edge uv.
Rule T2sd (=T2s ). Let v be a leaf with Cv = {(v, v)}. Let u be the neighbor of v. Contract the
edge uv.
sd . Let v be a vertex of degree 2 with C = ∅. Let u be the only one neighbor of v.
Rule S1a
v
Remove v and add a red loop to u.
sd . Let v be a vertex of degree 2 with C = ∅. Let u and u be the two neighbors of v,
Rule S1b
v
1
2
with u1 6= u2 . Contract the edge u1 v.

Rule T3sd (=T3s ). Let G be a graph where every leaf and every degree 2 vertex is incident to a
red edge. Let v1 and v2 be two leaves that are connected by a red edge. Let u1 and u2 be their
neighbors. Contract the edges u1 v1 and u2 v2 .
Rule S2sd (=S2s ). Let G be a graph where every leaf and every degree 2 vertex is incident to a red
edge. Let v be a vertex of degree 2 with a red loop, such that there exists a path from v to v in the
black and red graph G. Let u1 and u2 be the neighbors of v. Remove v and connect u1 and u2
with a red edge.
25

Rule Lsd . Let v be a vertex with a loop. Remove all loops from v.
Rule P1sd (=P1s ). Let uv be an edge. Suppose that there also exists a red edge from u to v.
Remove the black edge uv.
Rule P2sd (=P2s ). Let u, v be vertices, such that |E(u, v)| > 1. Let e and f be two of those edges.
If there exists another path, possibly containing red edges, from u to v, then remove e and f and
add a red edge from u to v.
Rule E1sd (=E1s ). Let G be the graph consisting of a single vertex v with Cv = ∅. Remove v.
Rule E2sd (=E2s ). Let G be the graph consisting of a single vertex v with a green loop. Remove
v.
Rule E3sd (=E3s ). Let G be the graph consisting of a two vertices u and v that are connected by a
green edge. Remove u and v.
We will write Rsd for the set of these reduction rules. We can now state our main theorem.
Theorem 6.3. The set of rules Rsd is safe and complete for G2sd .
S AFENESS
We will show the set Rsd is safe for G2sd .
Lemma 6.4. Rule T1sd is safe.
Proof. Let v be the vertex in G to which the rule is applied.
Suppose that sdgon(G) ≤ 2. Since every refinement of G is a refinement of H, it is clear that
sdgon(H) ≤ 2.
Suppose that sdgon(H) ≤ 2. Then there exists a refinement H ′ of H and a suitable divisor
D. Write u for the neighbor of v in G. There exists a divisor D ′ ∼ D such that D ′ (u) ≥ 1. Now
define G′ as H ′ with a leaf v added to u. Look at the divisor D ′ on G′ . For every vertex w ∈ H ′
we can reach a divisor with one chip on w. By adding v to every firing set that contains u, we see
that we can still reach every vertex of H ′ in G′ . And we can reach a divisor with a chip on v by
firing H ′ in G′ . Thus D ′ is a suitable divisor on G′ . We conclude that sdgon(G) ≤ 2.
Lemma 6.5. Rule T2sd is safe.
Proof. This proof is analogous to the proof of Lemma 6.4.
sd is safe.
Lemma 6.6. S1a

Proof. Let v be the vertex in G to which the rule is applied.
Let u be the neighbor of v. Suppose that sdgon(G) ≤ 2. Let G′ be a refinement of G such that
there exists a suitable divisor D. Let C be the cycle through v and u. Notice that D is equivalent
to a divisor D ′ with two chips on C. If G\{C} ∪ {u} is a tree, then we are done. Otherwise we
see that D ′ is equivalent with D ′′ , where D ′′ (u) = 2. Let H ′ be G′ \C ∪ {u} with a red loop at u.
We see that H ′ is a refinement of H and D ′′ is a suitable divisor for H ′ , thus sdgon(H) ≤ 2.
Suppose that sdgon(H) ≤ 2. Then there exists a refinement H ′ of H such that D, with
D(u) = 2, is a suitable divisor. Let G′ be H ′ without the red loop on u and with a vertex v with
two edges to u. Then G′ is a refinement of G. It is clear that D is a suitable divisor for G′ too. We
conclude that sdgon(G) ≤ 2.
26

sd is safe.
Lemma 6.7. S1b

Proof. Let v be the vertex in G to which the rule is applied.
Let u1 , u2 be the neighbors of v. We know that u1 6= u2 . Suppose that sdgon(G) ≤ 2. Then
there is a refinement G′ of G such that there exists a suitable divisor on G′ . Notice that G′ is a
refinement of H too, so sdgon(H) ≤ 2.
Now suppose that sdgon(H) ≤ 2. Let H ′ be a refinement of H and D a suitable divisor on H ′ .
If the edge u1 u2 is subdivided in H ′ , then H ′ is a refinement of G too, and we are done. Assume
that the edge u1 u2 is not subdivided in H ′ . Let D ′ be the divisor with D ′ (u1 ) = D ′ (u2 ) = 1. If
D ∼ D ′ , then we can subdivide u1 u2 to obtain a refinement G′ of G. By starting with the divisor
D ′ , we can reach all vertices of H ′ as before and we can reach v by firing all vertices of H ′ .
Suppose that D ≁ D ′ . Then there exist divisors Du1 and Du2 such that Du1 ∼ D ∼ Du2
and Du1 (u1 ) = 1 and Du2 (u2 ) = 1. It follows that Du1 (u2 ) = 0 and Du2 (u1 ) = 0. Let
A0 , . . . Ak be the level set decomposition of the transformation from Du1 to Du2 and D1 , . . . Dk
the corresponding divisors. Let Di be the first divisor such that Di (u2 ) > 0, then it is clear that
u2 ∈
/ Aj for j < i. Since Di ≁ D ′ we see that Di (u1 ) = 0. It follows that u1 ∈ Ai . We conclude
that there is a chip fired along the edge u1 u2 . For every vertex w in H ′ we can find a divisor Dw
with at least one chip on w, let Bw,1 , . . . Bw,lw be all sets that occur in the level set decomposition
of the transformation from Du1 to Dw . For all w, i, let Ew,i be the set of all edges along which a
chip is fired by the set Bw,i . Subdivide all edges that occur in some Ew,i to obtain a refinement G′
of G. Let Vw,i be set of vertices that are added on the edges in Ew,i . Define Bw,i as Bw,i together
with all added vertices that are on an edge with both endpoints in Bw,i . We can replace every set
Bw,i by two sets Bw,i , Bw,i ∪ Vw,i in the level set decomposition Bw,1 , . . . Bw,lw to see that for
every vertex w we can still reach a divisor with at least one chip on w. And for every vertex in
Vw,i we will encounter a divisor with a chip on that vertex when we transform Du1 in Dw . We
conclude that sdgon(G) ≤ 2.
Lemma 6.8. T3sd is safe.
Proof. Let v1 and v2 be the vertices in G to which the rule is applied.
Suppose that sdgon(G) ≤ 2. Let G′ be a minimum refinement of G and D a suitable divisor
on G′ . Let u1 and u2 be the neighbors of v1 and v2 in G. We distinguish three cases.
Case 1: Suppose that u1 6= u2 , and that there does not exist a path from v1 to v2 , except the red
edge v1 v2 . Then we can reach all vertices in Gv1 (u1 ) with only one chip, thus Gv1 (u1 ) is a black
tree. Thus Gv1 (u1 ) contains a leaf that is not incident to a red edge. This yields a contradiction
with the minimality of G′ .
Case 2: Suppose that u1 6= u2 and that there exists a path P , possibly containing red edges,
from v1 to v2 . Assume that D ≁ D ′ where D ′ is the divisor such that D ′ (u1 ) = D ′ (u2 ) = 1. Let
a0 = v1 , a1 , . . . , ak = u1 be the added vertices on the edge v1 u1 and let b0 = v2 , b1 , . . . , bl =
u2 be the added vertices on the edge v2 u2 . Assume that k < l. It is clear that all vertices
a0 , . . . , ak , b0 , . . . , bl lie on P . Notice that firing the sets {ai , bi | i ≤ j} for all j ≤ k results in
the divisor Dk with Dk (ak ) = Dk (bk ) = 1. Thus Dk (u1 ) = 1. Since bk is an internal added
vertex and G′ is a minimum refinement, we see that deg(bk ) = 2.
Suppose that u1 is incident to a red edge u1 x. We know that x 6= bk , since bk is an added
vertex. Let D ′′ be the divisor with D ′′ (u1 ) = D ′′ (x) = 1. Let A1 , . . . , As be the level set
decomposition of the transformation from Dk to D ′′ . We see that u1 cannot lose its chip. Thus
bk fires its chip to one of its neighbors when we fire A1 . But then we see that the cut of A1 is at
least two, and we can only fire one chip. This yields a contradiction. We conclude that u1 is not
incident to a red edge.
27

By the conditions of the rule it follows that deg(u1 ) ≥ 3. Let w ∈
/ P be a neighbor of u1 . Now
′
′
we see that Gu1 (w) is a black tree. It follows that Gu1 (w) contains a leaf that is not incident to a
red edge. Since G′ is a minimum refinement, this yields a contradiction. Altogether we conclude
that k = l.
Let P1 , P2 be the two arcs of P between u1 and u2 . Notice that, if there are two chips on P ,
then they are either on u1 and u2 or on the same arc Pi . Suppose that there are divisors E, E ′ such
that E ∼ E ′ and that there is a set A in the level set decomposition of E ′ − E such that u1 ∈ A
and u2 ∈
/ A. It follows that there is a chip fired along each of the arcs P1 and P2 . This yields a
contradiction. We conclude that for every firing set it holds that either u1 and u2 are both fired or
they are both not fired.
Now let H ′ be G′ without the red edge v1 v2 and with a red edge u1 u2 . We see that D is a
suitable divisor for H ′ as well. Thus sdgon(H) ≤ 2.
Case 3: Suppose that u1 = u2 . This case is analogous to case 2.
Suppose that sdgon(H) ≤ 2. Then it is clear that sdgon(G) ≤ 2.
Lemma 6.9. Rule S2sd is safe.
Proof. This proof is analogous to the proof of cases two and three in the proof of Lemma 6.8, so
we omit it.
Lemma 6.10. Rule Lsd is safe.
Proof. There will never be a chip fired over a loop, so loops do nothing for the stable divisorial
gonality. Thus sdgon(G) ≤ 2 if and only if sdgon(H) ≤ 2.
Lemma 6.11. Rule P1sd is safe.
Proof. Let uv be the edge in G to which the rule is applied.
Suppose that sdgon(G) ≤ 2. Let G′ be a refinement of G and D a suitable divisor with
D(u) = D(v) = 1. Let Guv be all internal and external added vertices to the edge uv. Now
define H ′ = G′ \Guv . Look at the divisor D on H ′ and notice that D is a suitable divisor. Observe
that H ′ is a refinement of H. Thus sdgon(H) ≤ 2.
Suppose that sdgon(H) ≤ 2. Let H ′ be a refinement of H and D a suitable divisor. Add an
edge uv to H ′ , to obtain a refinement G′ of G. We see that D ′ is a suitable divisor for G′ , thus
sdgon(G) ≤ 2.
Lemma 6.12. Rule P2sd is safe.
Proof. This proof is analogous to the proof of Lemma 4.11.
Lemma 6.13. Rules E1sd , E2sd and E3sd are safe.
Proof. All those graphs have stable gonality at most 2, so the statement holds true.
Now we have proven that all rules are safe, so we can conclude the following.
Lemma 6.14. The set of rules Rsd is safe for G2sd .

28

C OMPLETENESS
∗

Now we will prove that Rsd is complete for G2sd , i.e. if G ∈ G2sd , then GRsd ∅.
We define the graphs H1 , H2 and H3 as a single vertex, a vertex with a red loop and two
vertices connected by a red edge respectively, these are the graphs that can be reduced to the
empty graph by rules E1sd , E2sd and E3sd .
Let G be a connected graph and apply our algorithm to G, let H be the final graph to which
no rule can be applied. Notice that H is connected as well (in black and red edges).
Lemma 6.15. The set of rules Rsd is complete for G2sd .
Proof. Let G be a graph with sdgon(G) ≤ 2, and let H the final graphs after reducing G to which
no rule can be applied. By 6.14 it follows that sdgon(H) ≤ 2.
Suppose that H 6= ∅. As in the proof of Theorem 5.16, if there are two edges between the
vertices u and v, then removing these edges lead to H being disconnected. And if there is a degree
2 vertex v with a red loop, then removing v yields a disconnected graph. Let H ′ be the smallest
connected component that can be created by removing two parallel edges or a degree 2 vertex, as
in the proof of Theorem 5.16.
Now we color all red edges black and remove all loops to obtain H ′′ , as in the proof of Theorem
5.16. Then we see that H ′′ is a simple graph that contains at least two vertices and all vertices,
except at most one, have degree at least three. Thus H ′′ has treewidth at least three. It follows that
sdgon(G) ≥ tw(G) ≥ tw(H ′′ ) ≥ 3.
∗
We conclude that if sdgon(G) ≤ 2, then GRsd ∅.
Lemma 6.14 shows that the set of reduction rules Rsd is safe and Lemma 6.15 shows that this
set is complete. So together this proves Theorem 6.3. Thus we can use the set Rsd to recognize
graphs of stable divisorial gonality at most 2.
7

Algorithms

In this section, we discuss how the reduction rules of Sections 5, 4 and 6 lead to efficient algorithms
that recognize graphs with stable gonality, divisorial gonality, or stable divisorial gonality 2 or
lower.
Theorem 7.1. There are algorithms that, given a graph G with n vertices and m edges, decide
whether dgon(G) ≤ 2, sgon(G) ≤ 2 or sdgon(G) ≤ 2 in O(n log n + m) time.
Each of these algorithms is of the following form: first, with an additional rule, we can ensure
that on each pair of vertices, there are at most two parallel edges and at most one red or green
edge; then, we verify that the treewidth of G is at most 2; if not, we can directly decide negatively.
After that, we repeatedly apply a rule, until none is possible. By Theorems 5.5, 4.4, and 6.3, the
final graph after all rule applications is empty, if and only if sgon(G) ≤ 2, dgon(G) ≤ 2 or
sdgon(G) ≤ 2, respectively. It is not hard to see that for each rule, deciding whether the rule
can be applied, and if so, applying it, can be done in polynomial time; the fact that we work with
graphs of treewidth 2 yields an implementation with O(n log n) steps, after the O(m) work to
remove the extra parallel edges.
Proof of Theorem 7.1. We now present the details of the algorithm, in various steps.
S TEP 1. First we introduce a new rule for each of the gonalities, cf. Figure 8. For divisorial
gonality we introduce the following rule:
29

Rule M d

Rule M s

Figure 8: An extra reduction rule for divisorial and stable gonality
Rule M d . Let u, v be vertices, such that |E(u, v)| ≥ 3. Let k = ⌊(|E(u, v)| − 1)/2⌋, then
remove 2k edges between u and v and add a constraint (u, v).
Note that this rule merely shortcuts repeated applications of Rule C3d . Now we introduce a
new rule for stable gonality.
Rule M s . Let u, v be vertices, such that |E(u, v)| ≥ 3. Remove all edges in E(u, v) and add a
green edge from u to v.
It is clear that this rule is the same as first applying Rule P2s and then applying Rule P1s to all
remaining edges (u, v). For stable divisorial gonality we introduce a similar rule.
Rule M sd . Let u, v be vertices, such that |E(u, v)| ≥ 3. Remove all edges in E(u, v) and add a
red edge from u to v.
This is again the same as first applying Rule P2sd and then applying Rule P1sd to all remaining
edges (u, v).
All applications of these rules can be done in O(m) at the start of the algorithm, after which
we know that no pair of vertices can have more than two edges between them. For stable and
stable divisorial gonality, by application of Rule Ls and Lsd we can also ensure in O(m) time
that no loops exist (in the case of divisorial gonality loops can be safely ignored).
S TEP 2. Recall that by Lemma 3.13 treewidth is a lower bound on divisorial gonality, stable gonality and stable divisorial gonality. Therefore it follows that if tw(G) > 2, the algorithm can
terminate. Checking whether treewidth is at most 2 can be done in linear time. Hereafter, we
assume our graph has treewidth at most 2.
S TEP 3. Recall that graphs of treewidth k and n vertices have at most kn edges. It follows that
the underlying simple graph has at most 2n edges. By our previous steps there are at most 2 edges
between a pair of vertices and no loops, so there are at most 4n edges left.
Lemma 7.2. Let G be a graph of treewidth at most 2, with at most 2 parallel edges between each
pair of vertices. For each of the three collections of rules, the number of successive applications
of rules in bounded by O(n).
Proof. For the reduction rules for divisorial gonality from Section 4 note that all rules except Rule
C3d always remove at least one vertex. It follows they can be applied at most n times. For Rule
C3d note that the only case where it removes no vertex is when the cycle C consists of a double
edge between two vertices. Since in this case we remove 2 edges and there are at most 4n edges
left, it follows this rule can also be applied at most 2n times. Therefore at most 3n rules can be
applied before we reach the empty graph.

30

For the rules in Section 5, consider the following potential function f : let f (G) = n + 2m + g
for a graph G with n vertices, m remaining (black) edges, and g green edges. One easily observes
that f (G) = O(n), and each rule decreases f (G) by at least one.
The same argument holds for the collection of reduction rules of stable divisorial gonality from
Section 6.
Thus, for dgon and sgon, the given sets of rules already lead to polynomial time algorithms:
for each of the rules, one can test in polynomial time for a given graph (with green edges or constraints) if the rule can be applied to the graph, and if so, apply the rule in polynomial time.
S TEP 4. In the remainder of the proof, we will argue that there is an implementation that leads to
recognition algorithms running in O(n log n + m) time.
For the case of divisorial gonality, by Lemma 4.13, each vertex can only have one constraint
that applies to it. Therefore, checking for compatible constraints can be done in time linear in the
number of vertices that will be removed by the rule. To maintain this property it is necessary to
check for conflicts whenever a rule adds a new constraint, but this can be done in constant time
per rule application.
By keeping track of the degree of each vertex as we apply rules, vertices with degree one or
zero can be found in constant time. It is also easy to directly detect when the graph is one induced
cycle; e.g., by keeping track of the number of vertices of degree unequal two or with an incident
selfloop or colored edge; this takes care of Rule C1d . The remaining problem then is efficiently
finding applications of the following rules:
(∗) C2d , C3d , S2s , P2s , S2sd and P2sd .
To do this in O(n log n) time in total, we use a technique, also employed by Bodlaender et
al. [5, Section 6]. (See also [16] for more results on dynamic algorithms on graphs of bounded
treewidth.) Due to the highly technical aspects, the discussion here is not self-contained, and
assumes a knowledge of techniques for monadic second order logic formulas on graphs of bounded
treewidth.
We build a data structure that allows the following operations: deletions of vertices, deletions
of edges, contractions of edges, adding a (possible colored) self-loop to a vertex changing the
color of an edge (e.g., turning an edge into a green edge), and deciding whether the rules (∗) can
be applied, and if so, yielding the pair of vertices to which the rule can be applied.
First, by Lemma 2.2 from [6], we can build in O(n) time a tree decomposition of G of width
8, such that the tree T in the tree decomposition is binary and has O(log n) depth. We augment
G with a number of labels for edges and vertices. Vertices are labelled with a value that can be
‘selfloop’, ‘deleted’, or ‘usual’ (no selfloop, not deleted). Edges are labelled with a value that
can be one of the following: ‘usual’ (black edge, without parallel edge); ‘parallel’; ‘red’; ‘green’;
‘deleted’; ‘contracted’. When we perform an operation that changes the multiplicity of an edge,
deletes it, or changes its color, we do not change the tree decomposition, but instead only change
the label of the edge.
For each of the rules in (∗), there is a sentence φ in Monadic Second Order Logic (MSOL)
with two free vertices variables, such that φ(v, w) holds if and only if the corresponding rule in
(∗) is applicable to vertices v and w.
We can modify these sentences φ to sentences φ′ that apply to graphs where edges can be
labelled with labels ‘deleted’ or ‘contracted’, i.e., if G′ is the graph obtained from G by deleting
edges with the label ‘deleted’, then φ(v, w) holds for G′ if and only if φ′ (v, w) holds for G.
31

First, when we perform a quantification over edges, we add a condition that the edge is not a
deleted edge. A quantification ∀F ⊆ E : ψ(F ) becomes
∀F ⊆ E : (∀e ∈ F : ¬deleted(e)) ⇒ ψ(F );
a quantification ∃F ⊆ E : ψ(F ) becomes
∃F ⊆ E : (∀e ∈ F : ¬deleted(e)) ∧ ψ(F ).
Secondly, we modify the sentence to deal with contracted edges, by making the following three
changes. For any quantification over sets of edges, we ensure that there are no edges with the label
contracted. For any quantification over sets of vertices, we add the condition that for any edge
with the label ‘contracted’, either both endpoints are in the set or both endpoints of the contracted
edge are not in the set. Finally, elementary predicates like “v = w" or v is incident to e, become
a phrase in MSOL: “v = w" is translated to an MSOL sentence that expresses that there is a path
from v to w (possibly empty) with all edges on the path labeled as ‘contracted’, and “v incident
to e" is translated to a property that expresses that there is a path with contracted edges from v to
an endpoint of e. In the same way, we can further modify the sentences to also deal with vertices
with the label ‘deleted’.
A consequence of Courcelle’s theorem [8] is that for a sentence φ(v, w) with two free vertex
variables, we have an algorithm that, given a tree decomposition of a graph G of bounded width,
determines if there are vertices v and w for which φ(v, w) holds, and if so, outputs the vertices
v and w, and that uses linear time. Using the techniques from [5], we can modify this algorithm
such that we can update the graph by changing labels of vertices and edges, and do these queries,
such that each update and query costs time that is linear in the depth of the tree of the tree decomposition, i.e., O(log n). (For the details, we refer to [5, Section 6].)
We are now ready to wrap up. Each of the rules can be executed by doing O(1) deletions of
vertices, edges, contractions of edges, adding or deleting a selfloop, or changing color or multiplicity of an edge. As discussed above, each of such operation costs O(log n) time to the data
structure, and finding (if it exists) a pair of vertices to which we can apply a rule from (∗) also
costs O(log n) time. It follows that the total time is O(log n) times the number of times we
apply a rule; as argued earlier in this section, we have O(n) rule applications, giving a total of
O(n log n) time, excluding the O(m) time to remove edges with multiplicity larger than 2. This
gives Theorem 7.1.
Remark 7.3. The constant factors produced by the heavy machinery of Courcelle’s theorem and
tree decompositions of width 8 are very large; a simpler algorithm with a larger asymptotic (but
still polynomial) algorithm will be faster in practice.
8 Conclusion
We have provided an explicit set of safe and complete reduction rules for (multi-)graphs of divisorial, stable, and stable divisorial gonality ≤ 2, and we have shown that stable, divisorial, and stable
divisorial hyperelliptic graphs can be recognized in polynomial time (actually, O(n log n + m)).
Some problems left unanswered by our work are: (a) Can hyperelliptic graphs be recognized in
linear time? (b) What is the complexity of computing stable gonality? (c) Which problems become
fixed parameter tractable with gonality as parameter? (d) Is there an analogue of Courcelle’s
theorem for bounded gonality (in any of the meanings)?
32

References
[1] Stefan Arnborg and Andrzej Proskurowski. Characterization and recognition of partial 3-trees. SIAM
J. Algebraic Discrete Methods, 7(2):305–314, 1986.
[2] Matthew Baker and Serguei Norine. Riemann-Roch and Abel-Jacobi theory on a finite graph. Adv.
Math., 215(2):766–788, 2007.
[3] Matthew Baker and Serguei Norine. Harmonic morphisms and hyperelliptic graphs. Int. Math. Res.
Not. IMRN, 15:2914–2955, 2009.
[4] Matthew Baker and Farbod Shokrieh. Chip-firing games, potential theory on graphs, and spanning
trees. J. Comb. Theory, Ser. A, 120(1):164–182, 2013.
[5] Hans L. Bodlaender, Pål Grønås Drange, Markus S. Dregi, Fedor V. Fomin, Daniel Lokshtanov, and
Michal Pilipczuk. A ck n 5-approximation algorithm for treewidth. SIAM J. Comput., 45(2):317–378,
2016.
[6] Hans L. Bodlaender and Torben Hagerup. Parallel algorithms with optimal speedup for bounded
treewidth. SIAM J. Comput., 27(6):1725–1746, 1998.
[7] Gunther Cornelissen, Fumiharu Kato, and Janne Kool. A combinatorial Li-Yau inequality and rational
points on curves. Math. Ann., 361(1-2):211–258, 2015.
[8] Bruno Courcelle. The monadic second-order logic of graphs. I: Recognizable sets of finite graphs.
Inf. Comput., 85(1):12–75, 1990.
[9] Martin Davis, Yuri Matijasevič, and Julia Robinson. Hilbert’s tenth problem: Diophantine equations:
positive aspects of a negative solution. Proc. Sympos. Pure Math., XXVIII:323–378., 1976.
[10] Josse van Dobben de Bruyn. Reduced divisors and gonality in finite graphs. Bachelor thesis, Leiden
University, 2012. URL: https://www.math.leidenuniv.nl/nl/theses/316/.
[11] Josse van Dobben de Bruyn and Dion Gijswijt. Treewidth is a lower bound on graph gonality. arxiv:
1407.7055, 2014.
[12] Gerd Faltings. Endlichkeitssätze für abelsche Varietäten über Zahlkörpern. Invent. Math., 73(3):349–
366, 1983.
[13] Dion Gijswijt. Computing divisorial gonality is hard. preprint, arxiv:1504.06713, 2015.
[14] Ragnar Groot Koerkamp. The stable gonality of finite graphs. Bachelor thesis, Utrecht University,
2016. URL: https://dspace.library.uu.nl/handle/1874/335139.
[15] Anupam Gupta, Kunal Talwar, and David Witmer. Sparsest cut on bounded treewidth graphs: algorithms and hardness results. In STOC ’13, pages 281–290. ACM, 2013.
[16] Torben Hagerup. Dynamic algorithms for graphs of bounded treewidth. Algorithmica, 27(3):292–315,
2000.
[17] Kevin Hendrey. Sparse graphs of high gonality. arxiv:1606.06412, 2016.
[18] Sergey Norin. New tools and results in graph minor structure theory. In Surveys in combinatorics
2015, volume 424 of London Math. Soc. Lecture Note Ser., pages 221–260. Cambridge Univ. Press,
2015.

33

