Documentation

TauCeti.AlgebraicGeometry.Curves.DualGraph.Cutting

Cutting nodes of dual graphs #

Cutting a set S of nodes replaces each node by its two labelled branches. The resulting partial normalization can be disconnected. Its connected pieces are indexed by the vertices of G.smoothing Sᶜ: two original vertices lie in the same piece exactly when they can be joined using uncut edges. This reuses the connectivity quotient of smoothing; no genus is transferred between vertices when cutting.

DualGraph.cutComponent retains the uncut edges, the original vertex genera and markings, and adds a marking for each branch of a cut edge on the piece. In particular, cutting a self-node adds two different labels even when they lie on the same vertex.

The total genus formula is ∑ x, (G.cutComponent S x).arithmeticGenus + #S + 1 = G.arithmeticGenus + #pieces. For a single node, a nonseparating cut lowers the genus by one, whereas a separating cut preserves the sum of the genera. Every vertex retains its log-canonical degree, so all the pieces are stable (respectively semistable) exactly when the original graph is. These are the numerical invariants of partial normalization used when decomposing a nodal curve into pointed pieces.

References #

def TauCeti.DualGraph.cutMarking {ι : Type v} (G : DualGraph ι) (S : Finset G.Edge) :
ι ⊕ ↥S × Fin 2 → G.Vertex

The vertex carrying an old marking or a labelled branch of a cut node. The two branches of each cut edge have distinct labels, including for a loop.

Instances For
    @[simp]
    theorem TauCeti.DualGraph.cutMarking_inl {ι : Type v} (G : DualGraph ι) (S : Finset G.Edge) (i : ι) :
    @[simp]
    theorem TauCeti.DualGraph.cutMarking_inr {ι : Type v} (G : DualGraph ι) (S : Finset G.Edge) (e : ↥S) (i : Fin 2) :
    G.cutMarking S (Sum.inr (e, i)) = G.endpoint (↑e) i
    @[reducible, inline]
    noncomputable abbrev TauCeti.DualGraph.cutComponent {ι : Type v} (G : DualGraph ι) (S : Finset G.Edge) (x : (G.smoothing Sᶜ).Vertex) :
    DualGraph { i : ι ⊕ ↥S × Fin 2 // G.smoothingVertex Sᶜ (G.cutMarking S i) = x }

    A connected component of the partial normalization at S. The index is a connectivity class for the uncut edges, and the markings include both labelled branches of every cut node on this component.

    Instances For
      @[simp]
      theorem TauCeti.DualGraph.endpoint_cutComponent {ι : Type v} (G : DualGraph ι) (S : Finset G.Edge) (x : (G.smoothing Sᶜ).Vertex) (e : (G.cutComponent S x).Edge) (i : Fin 2) :
      ↑((G.cutComponent S x).endpoint e i) = G.endpoint (↑e) i
      @[simp]
      theorem TauCeti.DualGraph.genus_cutComponent {ι : Type v} (G : DualGraph ι) (S : Finset G.Edge) (x : (G.smoothing Sᶜ).Vertex) (v : (G.cutComponent S x).Vertex) :
      (G.cutComponent S x).genus v = G.genus ↑v
      @[simp]
      theorem TauCeti.DualGraph.marking_cutComponent {ι : Type v} (G : DualGraph ι) (S : Finset G.Edge) (x : (G.smoothing Sᶜ).Vertex) (i : { i : ι ⊕ ↥S × Fin 2 // G.smoothingVertex Sᶜ (G.cutMarking S i) = x }) :
      ↑((G.cutComponent S x).marking i) = G.cutMarking S ↑i

      The vertices of the cut pieces, taken together, are the original vertices.

      Instances For
        def TauCeti.DualGraph.sigmaEdgeCutComponentEquiv {ι : Type v} (G : DualGraph ι) (S : Finset G.Edge) :
        (x : (G.smoothing Sᶜ).Vertex) × (G.cutComponent S x).Edge ≃ { e : G.Edge // e ∉ S }

        The edges of the cut pieces, taken together, are exactly the uncut edges.

        Instances For
          @[simp]
          @[simp]
          @[simp]

          Branch markings do not affect the arithmetic genus of a cut component.

          Genus of a partial normalization. The sum of the arithmetic genera of its connected pieces, plus the number of cut nodes plus one, equals the original genus plus the number of pieces. This includes separating, nonseparating and simultaneous cuts, without subtraction.

          Partial normalization cannot increase the sum of the arithmetic genera.

          Special flags and stability #

          theorem TauCeti.DualGraph.valence_cutComponent {ι : Type v} (G : DualGraph ι) (S : Finset G.Edge) (x : (G.smoothing Sᶜ).Vertex) (v : (G.cutComponent S x).Vertex) :
          (G.cutComponent S x).valence v = ∑ e ∈ Sᶜ, {i : Fin 2 | G.endpoint e i = ↑v}.card

          The valence at a vertex of a cut piece counts the branches of uncut nodes there.

          theorem TauCeti.DualGraph.numMarkings_cutComponent {ι : Type v} (G : DualGraph ι) (S : Finset G.Edge) [Fintype ι] (x : (G.smoothing Sᶜ).Vertex) (v : (G.cutComponent S x).Vertex) :
          (G.cutComponent S x).numMarkings v = G.numMarkings ↑v + ∑ e ∈ S, {i : Fin 2 | G.endpoint e i = ↑v}.card

          The markings at a vertex of a cut piece are its original markings and the branches of cut nodes there.

          At a vertex of a cut piece, the number of remaining node branches plus the number of markings equals the original number of special flags. A cut branch becomes a marking.

          @[simp]

          Partial normalization with its branch markings preserves each log-canonical degree.

          @[simp]

          All pieces of a partial normalization are stable exactly when the original graph is.

          @[simp]

          All pieces of a partial normalization are semistable exactly when the original graph is.