Contracting unstable rational components of dual graphs #
A pointed nodal curve is made stable by repeatedly contracting rational components with at most two special points. There are three kinds of such components, and each contraction has a combinatorial shadow on the dual graph:
- an unmarked rational tail (a rational component meeting the rest of the curve in one point) is deleted;
- a rational tail carrying one marking is deleted, and the marking moves to the point where the tail met the rest of the curve, on the neighbouring component;
- an unmarked rational bridge (a smooth rational component meeting the rest of the curve in two points) is replaced by a node joining the two neighbouring branches.
This file constructs both graph operations, TauCeti.DualGraph.contractTail and
TauCeti.DualGraph.contractBridge, and computes how they change the numerical invariants. They
keep the markings and remove one vertex. They lower the arithmetic genus by the genus of the
contracted vertex, so they preserve it when that vertex is rational, as in a stabilization step.
Contracting a bridge changes no log-canonical degree. Contracting a tail changes only the
log-canonical degree of the neighbouring component, which drops by one when the tail is unmarked.
So a component of positive log-canonical degree can become unstable once its tails are removed,
and stabilization has to be iterated, recomputing degrees after each step.
TauCeti.DualGraph.StabilizationStep G H says that H arises from G by one such contraction.
In the stable range 2g - 2 + n > 0, a graph admits a stabilization step exactly when it is not
stable, and iterating steps from any graph reaches a stable graph of the same genus with the same
markings; the number of vertices decreases at every step.
TauCeti.DualGraph.LabelledStabilizationStep P is the variant for graphs whose vertices carry
labels: it contracts only vertices whose label satisfies P, and the remaining vertices keep their
labels. Labelling the components by the degree of a map and contracting only those of degree zero
gives map-aware stabilization, which never contracts a component on which the map is not
constant.
Main definitions #
TauCeti.DualGraph.attachment: the neighbour of a vertex of valence one.TauCeti.DualGraph.contractTail: the graph with a vertex of valence one deleted and its markings moved to its neighbour.TauCeti.DualGraph.contractBridge: the graph with an unmarked loopless vertex of valence two replaced by an edge joining its two neighbours.TauCeti.DualGraph.StabilizationStep: contraction of a rational tail with at most one marking or of an unmarked rational bridge.TauCeti.DualGraph.LabelledStabilizationStep: the same contractions on labelled graphs, restricted to vertices whose label satisfies a predicate.
Main results #
TauCeti.DualGraph.arithmeticGenus_contractTailandTauCeti.DualGraph.arithmeticGenus_contractBridge: the arithmetic genus drops by the genus of the contracted vertex.TauCeti.DualGraph.logCanonicalDegree_contractTailandTauCeti.DualGraph.logCanonicalDegree_contractBridge: the change of log-canonical degrees.TauCeti.DualGraph.IsSemistable.logCanonicalDegree_contractTail: in a semistable graph, contracting a rational tail with at most one marking leaves the other log-canonical degrees unchanged.TauCeti.DualGraph.isStable_iff_forall_not_stabilizationStep: in the stable range, a graph is stable exactly when it admits no stabilization step.TauCeti.DualGraph.exists_reflTransGen_stabilizationStep_isStable: in the stable range, iterated stabilization steps reach a stable graph.TauCeti.DualGraph.exists_reflTransGen_labelledStabilizationStep_forall_not: iterated labelled stabilization steps reach a labelled graph admitting no further step.
References #
- Stacks, Tag 0E7N, contracting rational tails and rational bridges.
- F. F. Knudsen, The projectivity of the moduli space of stable curves, II: The stacks
M_{g,n}, Math. Scand. 52 (1983), 161–199, §2, for stabilization of pointed curves.
Half-edges at a vertex #
A vertex of valence one is adjacent to its attachment.
Every half-edge at a vertex of valence two is one of the two enumerated half-edges.
The neighbours of a loopless vertex of valence two: the components carrying the other branches of its two nodes. For a rational bridge, these are the two components that it joins.
Instances For
The kth neighbour carries the other branch of the kth half-edge.
The unordered pair of neighbours of a vertex of valence two does not depend on the enumeration of its half-edges: it is formed by the other branches of any two distinct half-edges there.
If a vertex of valence one is attached to another vertex of valence one, the latter is attached to the former.
The node of a vertex u of valence one avoids every vertex other than u and its
attachment.
The kth half-edge at a vertex u of valence two avoids every vertex other than u and its
kth neighbour.
If the kth neighbour of a vertex u of valence two is a vertex v of valence two, then u
is a neighbour of v.
A vertex of valence one is at most one of the two neighbours of a loopless vertex of valence two.
Edges and half-edges away from a vertex #
Contracting a tail #
The contraction of a vertex v of valence one: v and its unique edge are deleted, and
the markings on v move to its attachment. When v is a rational tail, this is the dual graph of
the curve obtained by contracting the tail.
Instances For
A sum over the vertices of the contracted graph is the sum over the vertices other than v.
Contracting a tail does not change the ends of the remaining edges.
After contracting a tail v, a vertex of valence one whose node avoids v keeps its
attachment.
After contracting a tail v, a vertex of valence two whose neighbours differ from v keeps
its neighbours.
Contracting a tail does not change the valence of a vertex other than its attachment.
After contracting a tail, a loopless vertex is still loopless.
After contracting a tail, an unmarked vertex other than its attachment is still unmarked.
Contracting a tail moves its markings to its attachment.
Contracting a tail changes only the log-canonical degree of its attachment, which changes by the number of markings on the tail minus one.
In a semistable graph, contracting a rational tail carrying at most one marking does not change the log-canonical degrees of the other vertices: the tail carries exactly one marking, which moves to its attachment.
Contracting a bridge #
The contraction of an unmarked loopless vertex v of valence two: v and its two edges are
deleted, and a new edge, the edge none, joins the two neighbours of v. When v is a rational
bridge, this is the dual graph of the curve obtained by contracting the bridge.
Instances For
The new edge joins the two neighbours of the contracted vertex.
A sum over the vertices of the contracted graph is the sum over the vertices other than v.
Contracting a bridge lowers the arithmetic genus by the genus of the bridge.
Contracting a bridge does not change any valence: each neighbour trades a branch of an edge at the bridge for a branch of the new edge.
Contracting a bridge does not move any marking.
Contracting a bridge does not change any log-canonical degree.
After contracting a bridge, a loopless vertex which is not both neighbours of the bridge is still loopless.
After contracting a bridge, an unmarked vertex is still unmarked.
Contracting a bridge replaces it by a new edge joining its two neighbours.
Contracting a bridge does not change the ends of the old edges away from it.
After contracting a bridge v, a vertex of valence one whose node avoids v keeps its
attachment.
After contracting a bridge v, a vertex of valence two whose neighbours differ from v keeps
its neighbours.
After contracting a bridge v adjacent to a vertex u of valence two along a single node,
the neighbours of u are the other neighbours of v and of u.
Stabilization #
A stabilization step: H is obtained from G by contracting a rational tail carrying at
most one marking or an unmarked rational bridge. These are the contractions of a component of
nonpositive log-canonical degree that again give the dual graph of a pointed nodal curve.
- contractTail
{ι : Type v}
[Fintype ι]
(G : DualGraph ι)
{v : G.Vertex}
(hv : G.IsRationalTail v)
(hm : G.numMarkings v ≤ 1)
: G.StabilizationStep (G.contractTail ⋯)
Contract a rational tail carrying at most one marking.
- contractBridge
{ι : Type v}
[Fintype ι]
(G : DualGraph ι)
{v : G.Vertex}
(hv : G.IsRationalBridge v)
(hm : ∀ (i : ι), G.marking i ≠ v)
: G.StabilizationStep (G.contractBridge ⋯ ⋯ hm)
Contract an unmarked rational bridge.
Instances For
A stabilization step preserves the arithmetic genus.
A stabilization step removes a vertex.
A stabilization step contracts a vertex of nonpositive log-canonical degree.
Iterated stabilization steps preserve the arithmetic genus.
Labelled stabilization #
A labelled stabilization step. The vertices of the dual graphs carry labels in α; the
step contracts a rational tail carrying at most one marking or an unmarked rational bridge whose
label satisfies P, and the remaining vertices keep their labels. Thus only vertices whose label
satisfies P are ever contracted. With the degree of a map on each component as label and P
saying that the degree is zero, these are the steps of map-aware stabilization; with labels in
Unit and P always true, they are the stabilization steps
(TauCeti.DualGraph.StabilizationStep.labelledStabilizationStep).
- contractTail
{ι : Type v}
[Fintype ι]
{α : Type w}
{P : α → Prop}
{G : DualGraph ι}
(c : G.Vertex → α)
{v : G.Vertex}
(hv : G.IsRationalTail v)
(hm : G.numMarkings v ≤ 1)
(hc : P (c v))
: LabelledStabilizationStep P ⟨G, c⟩ ⟨G.contractTail ⋯, fun (w : (G.contractTail ⋯).Vertex) => c ↑w⟩
Contract a rational tail carrying at most one marking, whose label satisfies
P. - contractBridge
{ι : Type v}
[Fintype ι]
{α : Type w}
{P : α → Prop}
{G : DualGraph ι}
(c : G.Vertex → α)
{v : G.Vertex}
(hv : G.IsRationalBridge v)
(hm : ∀ (i : ι), G.marking i ≠ v)
(hc : P (c v))
: LabelledStabilizationStep P ⟨G, c⟩ ⟨G.contractBridge ⋯ ⋯ hm, fun (w : (G.contractBridge ⋯ ⋯ hm).Vertex) => c ↑w⟩
Contract an unmarked rational bridge whose label satisfies
P.
Instances For
A labelled stabilization step is a stabilization step of the underlying graphs.
A labelled stabilization step contracts a vertex whose label satisfies P and whose
log-canonical degree is nonpositive.
Since the contracted vertex has a label satisfying P and the other vertices keep their
labels, all labels satisfy P after a labelled stabilization step exactly when they did before.
The stable range condition 2g - 2 + n > 0, required only when all labels satisfy P,
persists along a labelled stabilization step.
A stabilization step is a labelled stabilization step for the constant labelling by Unit,
in which every vertex may be contracted.
Iterated stabilization steps are iterated labelled stabilization steps for the constant
labelling by Unit.
Labelled stabilization terminates. Iterating labelled stabilization steps from any labelled graph reaches one admitting no further step, since every step removes a vertex.
In the stable range 2g - 2 + n > 0, a graph that is not stable admits a stabilization
step. A vertex of nonpositive log-canonical degree is a rational tail with at most one marking, a
rational bridge without markings, or the only vertex; in the last case its log-canonical degree is
2g - 2 + n.
In the stable range 2g - 2 + n > 0, a graph is stable exactly when it admits no
stabilization step.
Stabilization terminates. In the stable range 2g - 2 + n > 0, iterating stabilization
steps from any graph reaches a stable graph, of the same arithmetic genus by
TauCeti.DualGraph.arithmeticGenus_eq_of_reflTransGen. Termination holds because every step
removes a vertex.