Documentation

LeanPool.BrillNoetherGraphs.Utilities.Subdivision.LeafExtension

Divisor rank under adjoining a leaf #

This module isolates the pendant-tree reduction needed before a finite stable core classification. The graph addLeaf H root adjoins one new vertex and a single edge from it to root. Divisors extend by zero to the new leaf, while divisors on the extension retract by moving the leaf coefficient to root. These operations preserve degree, linear equivalence, winnability, and rank.

The resulting rank-one interface shows that adjoining or pruning a leaf does not change divisorial gonality.

Lift both endpoints of an old edge into the graph with an added leaf.

Equations
Instances For
    @[reducible, inline]

    Adjoin a new leaf none to the old vertex some root.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      @[simp]

      Old-old edge multiplicities are unchanged.

      @[simp]

      The new leaf has one edge to root and none to another old vertex.

      @[simp]
      @[simp]

      Adjoining one vertex and one edge preserves genus.

      A connected graph remains connected after adjoining a leaf.

      Extend an old divisor by zero at the new leaf.

      Equations
      Instances For

        Extend a firing script constantly across the new leaf edge.

        Equations
        Instances For
          @[simp]
          @[simp]
          theorem Utilities.Certificate.LeafExtension.extendDiv_some (H : CFGraph) (root : H.V) (D : CFDiv H) (x : H.V) :
          extendDiv H root D (some x) = D x
          @[simp]
          theorem Utilities.Certificate.LeafExtension.extendScript_none (H : CFGraph) (root : H.V) (script : firingScript H) :
          extendScript H root script none = script root
          @[simp]
          theorem Utilities.Certificate.LeafExtension.extendScript_some (H : CFGraph) (root : H.V) (script : firingScript H) (x : H.V) :
          extendScript H root script (some x) = script x
          @[simp]
          theorem Utilities.Certificate.LeafExtension.extendDiv_add (H : CFGraph) (root : H.V) (D E : CFDiv H) :
          extendDiv H root (D + E) = extendDiv H root D + extendDiv H root E
          @[simp]
          theorem Utilities.Certificate.LeafExtension.extendDiv_sub (H : CFGraph) (root : H.V) (D E : CFDiv H) :
          extendDiv H root (D - E) = extendDiv H root D - extendDiv H root E

          Extending by zero preserves effectivity.

          @[simp]

          Extending by zero preserves divisor degree.

          theorem Utilities.Certificate.LeafExtension.extendDiv_prin (H : CFGraph) (root : H.V) (script : firingScript H) :
          extendDiv H root ((prin H) script) = (prin (addLeaf H root)) (extendScript H root script)

          Constant extension of a firing script has zero Laplacian at the leaf and the old Laplacian at every old vertex.

          theorem Utilities.Certificate.LeafExtension.linearEquiv_extendDiv (H : CFGraph) (root : H.V) {D E : CFDiv H} (hEquiv : linearEquiv H D E) :
          linearEquiv (addLeaf H root) (extendDiv H root D) (extendDiv H root E)

          Linear equivalence transports from the old graph to its leaf extension.

          theorem Utilities.Certificate.LeafExtension.winnable_extendDiv (H : CFGraph) (root : H.V) {D : CFDiv H} (hWin : winnable H D) :
          winnable (addLeaf H root) (extendDiv H root D)

          A winnable old divisor stays winnable after extension by zero.

          Script which moves one removed-chip test from root to the new leaf.

          Equations
          Instances For

            Removing a chip at the old root or at the new leaf gives linearly equivalent divisors on the leaf extension.

            theorem Utilities.Certificate.LeafExtension.rank_ge_one_addLeaf (H : CFGraph) (root : H.V) {D : CFDiv H} (hRank : rank H D ≥ 1) :
            rank (addLeaf H root) (extendDiv H root D) ≥ 1

            Rank-one lower bounds survive adjoining a leaf.

            A degree-d, rank-one divisor remains such after adjoining a leaf.

            Retracting the added leaf #

            Move the coefficient at the new leaf into its old neighbour.

            Equations
            Instances For
              @[simp]
              theorem Utilities.Certificate.LeafExtension.retractDiv_apply (H : CFGraph) (root : H.V) (E : CFDiv (addLeaf H root)) (x : H.V) :
              retractDiv H root E x = E (some x) + if x = root then E none else 0

              Restrict a firing script from a leaf extension to the old vertices.

              Equations
              Instances For
                @[simp]
                theorem Utilities.Certificate.LeafExtension.retractDiv_extendDiv (H : CFGraph) (root : H.V) (D : CFDiv H) :
                retractDiv H root (extendDiv H root D) = D
                @[simp]
                theorem Utilities.Certificate.LeafExtension.retractDiv_add (H : CFGraph) (root : H.V) (E F : CFDiv (addLeaf H root)) :
                retractDiv H root (E + F) = retractDiv H root E + retractDiv H root F
                @[simp]
                theorem Utilities.Certificate.LeafExtension.retractDiv_sub (H : CFGraph) (root : H.V) (E F : CFDiv (addLeaf H root)) :
                retractDiv H root (E - F) = retractDiv H root E - retractDiv H root F
                theorem Utilities.Certificate.LeafExtension.retractDiv_prin (H : CFGraph) (root : H.V) (script : firingScript (addLeaf H root)) :
                retractDiv H root ((prin (addLeaf H root)) script) = (prin H) (retractScript H root script)

                Retraction commutes with principal divisors. The leaf-edge contribution cancels between the root and the leaf.

                theorem Utilities.Certificate.LeafExtension.linearEquiv_retractDiv (H : CFGraph) (root : H.V) {E F : CFDiv (addLeaf H root)} (hEquiv : linearEquiv (addLeaf H root) E F) :
                linearEquiv H (retractDiv H root E) (retractDiv H root F)

                Linear equivalence on a leaf extension retracts to linear equivalence on the original graph.

                Retraction of an effective divisor across the leaf is effective.

                theorem Utilities.Certificate.LeafExtension.winnable_retractDiv (H : CFGraph) (root : H.V) {E : CFDiv (addLeaf H root)} (hWin : winnable (addLeaf H root) E) :
                winnable H (retractDiv H root E)

                Winnability on a leaf extension retracts to the original graph.

                @[simp]

                Moving all leaf chips to the root preserves divisor degree.

                The leaf transfer identifies every divisor with the zero extension of its retraction, up to linear equivalence.

                theorem Utilities.Certificate.LeafExtension.rank_geq_addLeaf (H : CFGraph) (root : H.V) {D : CFDiv H} {k : ℤ} (hRank : rankGeq H D k) :
                rankGeq (addLeaf H root) (extendDiv H root D) k

                Zero extension preserves every rank lower bound.

                theorem Utilities.Certificate.LeafExtension.rank_geq_of_addLeaf (H : CFGraph) (root : H.V) {D : CFDiv H} {k : ℤ} (hRank : rankGeq (addLeaf H root) (extendDiv H root D) k) :
                rankGeq H D k

                Every rank lower bound of a zero-extended divisor is already witnessed on the original graph.

                theorem Utilities.Certificate.LeafExtension.rank_geq_addLeaf_iff (H : CFGraph) (root : H.V) (D : CFDiv H) (k : ℤ) :
                rankGeq (addLeaf H root) (extendDiv H root D) k ↔ rankGeq H D k

                Zero extension preserves and reflects every rank lower bound.

                theorem Utilities.Certificate.LeafExtension.rank_addLeaf (H : CFGraph) (root : H.V) (D : CFDiv H) :
                rank (addLeaf H root) (extendDiv H root D) = rank H D

                Zero extension preserves divisor rank.

                theorem Utilities.Certificate.LeafExtension.rank_retractDiv (H : CFGraph) (root : H.V) (E : CFDiv (addLeaf H root)) :
                rank H (retractDiv H root E) = rank (addLeaf H root) E

                Retraction across the added leaf preserves divisor rank.

                Brill--Noether existence in every rank and degree is invariant under adjoining a leaf.

                The public collapse interface #

                Collapse the added leaf onto its root.

                Equations
                Instances For
                  theorem Utilities.Certificate.LeafExtension.rank_collapseDiv (H : CFGraph) (root : H.V) (D : CFDiv (addLeaf H root)) :
                  rank H (collapseDiv H root D) = rank (addLeaf H root) D

                  Collapsing the leaf preserves divisor rank exactly.

                  theorem Utilities.Certificate.LeafExtension.prin_collapse (H : CFGraph) (root : H.V) (script : firingScript (addLeaf H root)) :
                  collapseDiv H root ((prin (addLeaf H root)) script) = (prin H) fun (w : H.V) => script (some w)

                  Collapsing a principal divisor restricts its firing script to the old vertices.

                  Collapsing an effective divisor preserves effectivity.

                  theorem Utilities.Certificate.LeafExtension.rank_ge_one_collapseDiv (H : CFGraph) (root : H.V) {D : CFDiv (addLeaf H root)} (hRank : rank (addLeaf H root) D ≥ 1) :
                  rank H (collapseDiv H root D) ≥ 1

                  Rank one descends when the added leaf is collapsed.

                  Rank-one Brill--Noether existence descends when the added leaf is collapsed.

                  Adjoining one leaf does not change divisorial gonality.