Documentation

LeanPool.BrillNoetherGraphs.Highlights

Highlights #

This is the repository's auditable, reader-facing statement layer. The definitions used in theorem statements are repeated here in full: they do not alias or invoke the implementation library. Proof bodies, below the statement vocabulary, explicitly cross from these local definitions to the repository's proved API.

The current installments record Brill--Noether existence through genus five, CDPR and its sharp mixed-chain extensions, the tricycle counterexample to invariance of divisorial gonality under regular subdivision, and the treewidth lower bound on divisorial gonality. Further headline theorems can be added one at a time in the same style.

Self-contained statement vocabulary #

structure Highlights.CFGraph :
Type (u + 1)

A finite, nonempty, loopless undirected multigraph. An undirected edge is stored by either ordering of its endpoints; numEdges below forgets that ordering.

  • V : Type u

    The finite nonempty vertex type of the loopless multigraph.

  • instDecidableEq : DecidableEq self.V
  • instFintype : Fintype self.V
  • instNonempty : Nonempty self.V
  • edges : Multiset (self.V × self.V)

    The multiset of edges, retaining parallel-edge multiplicities through ordered endpoint pairs.

  • loopless (v : self.V) : (v, v) ∉ self.edges
Instances For
    def Highlights.numEdges (G : CFGraph) (v w : G.V) :

    The number of edges between two vertices, counted with multiplicity.

    Equations
    Instances For

      A graph is connected when every nontrivial vertex cut has a crossing edge.

      Equations
      Instances For

        The genus (cyclomatic number) |E| - |V| + 1.

        Equations
        Instances For

          The degree (valence) of a vertex.

          Equations
          Instances For
            @[reducible, inline]
            abbrev Highlights.CFDiv (G : CFGraph) :
            Type u_1

            A divisor is an integer-valued function on the vertices.

            Equations
            Instances For
              def Highlights.firingVector (G : CFGraph) (v : G.V) :

              The principal divisor obtained by firing one vertex once.

              Equations
              Instances For

                The subgroup generated by all vertex firings.

                Equations
                Instances For

                  Two divisors are linearly equivalent when their difference is principal.

                  Equations
                  Instances For

                    A divisor is effective when it has no negative coefficient.

                    Equations
                    Instances For

                      The additive monoid of effective divisors.

                      Equations
                      Instances For

                        A divisor is winnable when it is linearly equivalent to an effective divisor.

                        Equations
                        Instances For

                          The degree of a divisor, i.e. its total number of chips.

                          Equations
                          Instances For

                            The effective divisors of a prescribed degree.

                            Equations
                            Instances For
                              def Highlights.rankGeq (G : CFGraph) (D : CFDiv G) (k : ℤ) :

                              rankGeq G D k means that removing any effective divisor of degree k from D leaves a winnable divisor.

                              Equations
                              Instances For
                                def Highlights.rankEq (G : CFGraph) (D : CFDiv G) (r : ℤ) :

                                rankEq G D r means that the Baker--Norine rank of D is exactly r.

                                Equations
                                Instances For

                                  gonalityLeq G k means that G has a degree-k divisor of rank at least one. This deliberately states the witness property directly, without introducing a minimum or an infimum.

                                  Equations
                                  Instances For

                                    gonalityEq G k means that degree k supports a rank-one divisor and no smaller degree does. This witness formulation avoids hiding the statement behind an infimum.

                                    Equations
                                    Instances For

                                      Brill--Noether generality and twice-marked graphs #

                                      def Highlights.oneChip {G : CFGraph} (v : G.V) :

                                      The divisor consisting of one chip at v.

                                      Equations
                                      Instances For

                                        The Brill--Noether number rho(g,r,d).

                                        Equations
                                        Instances For

                                          Existence of a degree-d divisor of rank at least r.

                                          Equations
                                          Instances For

                                            The nonexistence half of Brill--Noether generality: every divisor that exists lies in the range predicted by the Brill--Noether number.

                                            Equations
                                            Instances For

                                              A graph with an ordered left and right marked vertex. The graph is packaged existentially so twice-marked graphs with different vertex types can occur in one list.

                                              • graph : CFGraph

                                                The underlying finite loopless multigraph with two distinguished vertices.

                                              • u : self.graph.V

                                                The first distinguished vertex, used as the incoming mark when joining a chain.

                                              • v : self.graph.V

                                                The second distinguished vertex, used as the outgoing mark when joining a chain.

                                              Instances For

                                                A harmless one-vertex value, used for an empty chain and for malformed path-length data.

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

                                                  Join two twice-marked graphs by taking their disjoint union and adding one bridge from the right mark of the first to the left mark of the second. The new marks are the two outside marks.

                                                  This deliberately uses a bridge rather than identifying the two vertices; it is the most literal finite-graph presentation of a chain.

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

                                                    Glue a list from left to right. The empty list has the harmless one-vertex value above.

                                                    Equations
                                                    Instances For

                                                      The two complementary arc lengths of a twice-marked cycle.

                                                      Equations
                                                      Instances For
                                                        @[reducible, inline]

                                                        Vertices of the cycle: the two marked endpoints and the disjoint interior vertices of its top and bottom arcs.

                                                        Equations
                                                        Instances For
                                                          @[reducible, inline]

                                                          Unit steps along the two arcs.

                                                          Equations
                                                          Instances For

                                                            Left endpoint of a unit step along a cycle arc.

                                                            Equations
                                                            Instances For

                                                              Right endpoint of a unit step along a cycle arc.

                                                              Equations
                                                              Instances For

                                                                A cycle marked at the endpoints of two complementary arcs of lengths m and n. If either length is zero, the value is the documented junk graph trivialTwiceMarkedGraph.

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

                                                                  torsionGt M n says that no positive multiple k ≤ n of the two marked points is linearly equivalent. Equivalently, the order of [u-v] in the Jacobian is greater than n (including the infinite-order convention).

                                                                  Equations
                                                                  Instances For

                                                                    CDPR genericity for integer cycle lengths. There are at least two loops; all arc lengths are positive, ruling out the junk branch of twiceMarkedCycle; and no two arc lengths have a ratio of positive numerator-plus-denominator at most 2g-2, where g is the number of cycles.

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

                                                                      The bridge-chain built from a list of pairs of cycle arc lengths.

                                                                      Equations
                                                                      Instances For
                                                                        def Highlights.thetaLength (a b c : ℕ) :
                                                                        Fin 3 → ℕ

                                                                        The three strand lengths, in order.

                                                                        Equations
                                                                        Instances For
                                                                          @[reducible, inline]
                                                                          abbrev Highlights.ThetaVertex (a b c : ℕ) :

                                                                          Vertices of Theta a b c: the top and bottom vertices, together with three disjoint sets of a - 1, b - 1, and c - 1 interior vertices.

                                                                          Equations
                                                                          Instances For
                                                                            @[reducible, inline]
                                                                            abbrev Highlights.ThetaStep (a b c : ℕ) :

                                                                            Unit steps along the three strands of Theta a b c.

                                                                            Equations
                                                                            Instances For
                                                                              def Highlights.thetaStepLeft (a b c : ℕ) (step : ThetaStep a b c) :

                                                                              Left endpoint of one unit step along a theta strand.

                                                                              Equations
                                                                              Instances For
                                                                                def Highlights.thetaStepRight (a b c : ℕ) (step : ThetaStep a b c) :

                                                                                Right endpoint of one unit step along a theta strand.

                                                                                Equations
                                                                                Instances For

                                                                                  Theta a b c is the graph made from three internally disjoint paths of lengths a, b, and c joining a common top vertex to a common bottom vertex.

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

                                                                                    TMTheta a b c u v marks position u on the first (a-) strand and position v on the third (c-) strand. Invalid positions receive the same documented junk value used by twiceMarkedCycle; evenlyMarkedK below contains the guards used by every theorem.

                                                                                    Equations
                                                                                    • One or more equations did not get rendered due to their size.
                                                                                    Instances For
                                                                                      def Highlights.evenlyMarkedK (a b c u v k : ℕ) :

                                                                                      The numerical condition that TMTheta a b c u v is evenly marked and has torsion order exactly k. The equal-ratio condition u / a = v / c is written without division as u * c = v * a; exactness of the order is recorded on both marked strands.

                                                                                      Equations
                                                                                      Instances For

                                                                                        The two kinds of factor admitted in the mixed-chain highlight.

                                                                                        Instances For

                                                                                          The genus contribution of a factor: one for a cycle and two for a theta graph.

                                                                                          Equations
                                                                                          Instances For

                                                                                            The exact torsion period supplied by the numerical factor data.

                                                                                            Equations
                                                                                            Instances For

                                                                                              The total genus contributed by a list of cycle/theta factors.

                                                                                              Equations
                                                                                              Instances For

                                                                                                Corollary 6.16's sharp torsion budget for a mixed chain: the exact period of a factor exceeds the smaller of the genera accumulated on its two sides, counting the factor on both sides.

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

                                                                                                  The one-sided torsion budget for marked generality at the left endpoint of a mixed chain. At factor i, its period exceeds the total genus of the suffix beginning there.

                                                                                                  Equations
                                                                                                  Instances For

                                                                                                    The twice-marked bridge-chain represented by mixed readable factors.

                                                                                                    Equations
                                                                                                    Instances For

                                                                                                      A canonical, reader-facing regular subdivision #

                                                                                                      Every occurrence of an edge gets its own slot, so parallel edges remain distinct. In the nth regular subdivision that slot is replaced by a path of n unit edges. Its n - 1 new vertices remember the edge occurrence and their position along that path. The implementation below spells these counts as n * 1 only to make the later bridge to “scale a unit edge by n” exact; this reduces definitionally to n.

                                                                                                      A canonical enumeration of the occurrences in the edge multiset. The subtype G.edges distinguishes repeated copies of the same endpoint pair.

                                                                                                      Equations
                                                                                                      Instances For
                                                                                                        noncomputable def Highlights.subdivisionEdgeAt (G : CFGraph) (edge : Fin G.edges.card) :
                                                                                                        G.V × G.V

                                                                                                        The endpoint pair occupying a canonical edge-occurrence slot.

                                                                                                        Equations
                                                                                                        Instances For
                                                                                                          @[reducible, inline]

                                                                                                          Vertices in the nth regular subdivision: relabelled original vertices, together with an edge occurrence and an interior position 0, ..., n - 2. The harmless relabelling by Fin makes the construction canonical.

                                                                                                          Equations
                                                                                                          Instances For
                                                                                                            @[reducible, inline]

                                                                                                            Unit steps in the subdivided paths.

                                                                                                            Equations
                                                                                                            Instances For
                                                                                                              noncomputable def Highlights.subdivisionStepLeft (G : CFGraph) (n : ℕ) (edge : Fin G.edges.card) (offset : Fin (n * 1)) :

                                                                                                              The left endpoint of one unit step in a subdivided edge.

                                                                                                              Equations
                                                                                                              Instances For
                                                                                                                noncomputable def Highlights.subdivisionStepRight (G : CFGraph) (n : ℕ) (edge : Fin G.edges.card) (offset : Fin (n * 1)) :

                                                                                                                The right endpoint of one unit step in a subdivided edge.

                                                                                                                Equations
                                                                                                                Instances For
                                                                                                                  noncomputable def Highlights.regularSubdivision (G : CFGraph) (n : ℕ) (_hn : 0 < n) :

                                                                                                                  The nth regular subdivision of G: every edge occurrence is replaced by a path of exactly n edges.

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

                                                                                                                    The minimal tricycle #

                                                                                                                    Number the centre 0, the three minus vertices 1, 3, 5, and the three plus vertices 2, 4, 6. There are six centre spokes; two parallel edges join each minus/plus pair; and three transition edges join each plus vertex to the next minus vertex around the ring.

                                                                                                                    The minimal tricycle, displayed directly as its seven vertices and fifteen edges. The repeated pairs are the three doubled minus/plus edges.

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

                                                                                                                      Tree decompositions and treewidth #

                                                                                                                      The simple graph underlying a multigraph: two vertices are adjacent when at least one edge occurrence joins them. Parallel edges therefore do not affect treewidth.

                                                                                                                      Equations
                                                                                                                      Instances For
                                                                                                                        structure Highlights.TreeDecomposition {V : Type u} (H : SimpleGraph V) :
                                                                                                                        Type (max 1 u)

                                                                                                                        A tree decomposition of a simple graph consists of a finite tree and a bag of graph vertices at each tree node. Every vertex and edge is covered, and the bags containing any fixed vertex form a connected subtree.

                                                                                                                        • Node : Type

                                                                                                                          Nodes of the decomposition tree.

                                                                                                                        • nodeFintype : Fintype self.Node
                                                                                                                        • nodeDecidableEq : DecidableEq self.Node
                                                                                                                        • tree : SimpleGraph self.Node

                                                                                                                          The finite decomposition tree.

                                                                                                                        • isTree : self.tree.IsTree

                                                                                                                          The decomposition graph is connected and acyclic.

                                                                                                                        • bag : self.Node → Finset V

                                                                                                                          The bag at each tree node.

                                                                                                                        • cover_vertex (v : V) : ∃ (t : self.Node), v ∈ self.bag t

                                                                                                                          Every graph vertex occurs in a bag.

                                                                                                                        • cover_edge (v w : V) : H.Adj v w → ∃ (t : self.Node), v ∈ self.bag t ∧ w ∈ self.bag t

                                                                                                                          The endpoints of every graph edge occur together in a bag.

                                                                                                                        • coherent (v : V) : (SimpleGraph.induce {t : self.Node | v ∈ self.bag t} self.tree).Connected

                                                                                                                          The nodes whose bags contain a fixed vertex form a connected subtree.

                                                                                                                        Instances For

                                                                                                                          The width of a tree decomposition: one less than its largest bag size.

                                                                                                                          Equations
                                                                                                                          Instances For

                                                                                                                            Widths realized by tree decompositions of H.

                                                                                                                            Equations
                                                                                                                            Instances For
                                                                                                                              noncomputable def Highlights.treewidth {V : Type u} (H : SimpleGraph V) :

                                                                                                                              Treewidth is the least width of a tree decomposition.

                                                                                                                              Equations
                                                                                                                              Instances For

                                                                                                                                Proof bridges #

                                                                                                                                Everything above this point is statement vocabulary. The following public conversion is where the file deliberately crosses into the implementation library.

                                                                                                                                View a public graph in the chip-firing implementation model.

                                                                                                                                Equations
                                                                                                                                Instances For

                                                                                                                                  Cross a reader-facing twice-marked graph into the library's marked-graph bundle without changing any graph data.

                                                                                                                                  Equations
                                                                                                                                  Instances For

                                                                                                                                    Convert a library graph to the auditable statement vocabulary.

                                                                                                                                    Equations
                                                                                                                                    Instances For

                                                                                                                                      The copied local definition of Brill--Noether generality agrees with the library predicate after crossing the graph boundary.

                                                                                                                                      Explicit cycle factors versus the Bananas implementation #

                                                                                                                                      Explicit theta factors versus the Bananas implementation #

                                                                                                                                      The readable construction above agrees exactly with the occurrence-safe regular subdivision used by the library.

                                                                                                                                      The local witness-based gonality predicate is exactly the library's predicate after crossing the graph-structure boundary.

                                                                                                                                      Convert a local tree decomposition to the implementation structure.

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

                                                                                                                                        The local and implementation definitions realize exactly the same widths.

                                                                                                                                        Consequently the copied reader-facing definition of treewidth agrees with the load-bearing implementation definition.

                                                                                                                                        The locally defined underlying simple graph agrees with the library's.

                                                                                                                                        Brill--Noether existence through genus five #

                                                                                                                                        theorem Highlights.brill_noether_existence_through_five (G : CFGraph) (h_connected : graphConnected G) (g r d : ℤ) (h_genus : genus G = g) (h_genus_le_five : g ≤ 5) (h_brill_noether : (r + 1) * (g - d + r) ≤ g) :
                                                                                                                                        ∃ (D : CFDiv G), deg D = d ∧ rankGeq G D r

                                                                                                                                        Every connected finite graph of genus at most five satisfies Brill--Noether existence.

                                                                                                                                        Chains of loops: the CDPR theorem and its sharp extensions #

                                                                                                                                        theorem Highlights.cdpr_marked_no_high_multiplicity (lengths : List (ℕ × ℕ)) (h_general : cdprGeneral lengths) (D : CFDiv (chainOfCycles lengths).graph) (r d : ℤ) (h_rank_nonnegative : 0 ≤ r) (h_rank_below_genus : r < genus (chainOfCycles lengths).graph) (h_degree : deg D = d) (h_rank : rankGeq (chainOfCycles lengths).graph D r) (h_rho : 0 ≤ brillNoetherNumber (chainOfCycles lengths).graph r d) :

                                                                                                                                        Marked CDPR theorem. At the left endpoint of a generic chain of g loops, a degree-d, rank-at-least-r divisor cannot retain rank zero after removing r + rho + 1 chips.

                                                                                                                                        CDPR Theorem 1.1(1), discrete form. A generic chain of cycles is Brill--Noether general in the nonexistence sense.

                                                                                                                                        theorem Highlights.cycle_chain_brill_noether_general_of_torsion (lengths : List (ℕ × ℕ)) (h_positive : ∀ mn ∈ lengths, 0 < mn.1 ∧ 0 < mn.2) (h_torsion : ∀ (i : ℕ) (hi : i < lengths.length), torsionGt (twiceMarkedCycle (lengths.get ⟨i, hi⟩).1 (lengths.get ⟨i, hi⟩).2) (min (i + 1) (lengths.length - i))) :

                                                                                                                                        The sharp cycle-chain form behind CDPR. Numbering the g cycles from 1 to g, the torsion order of cycle i need only exceed min(i, g + 1 - i).

                                                                                                                                        theorem Highlights.cycle_theta_chain_marked_no_high_multiplicity (factors : List CycleThetaFactor) (h_cycles_positive : ∀ (m n : ℕ), CycleThetaFactor.cycle m n ∈ factors → 0 < m ∧ 0 < n) (h_thetas_evenly_marked : ∀ (a b c u v k : ℕ), CycleThetaFactor.theta a b c u v k ∈ factors → evenlyMarkedK a b c u v k) (h_torsion : mixedChainLeftTorsionBudget factors) (D : CFDiv (chainOfCyclesAndThetas factors).graph) (r d : ℤ) (h_rank_nonnegative : 0 ≤ r) (h_rank_below_genus : r < genus (chainOfCyclesAndThetas factors).graph) (h_degree : deg D = d) (h_rank : rankGeq (chainOfCyclesAndThetas factors).graph D r) (h_rho : 0 ≤ brillNoetherNumber (chainOfCyclesAndThetas factors).graph r d) :

                                                                                                                                        Marked mixed cycle/theta chain theorem. Under the sharp one-sided torsion budget, a degree-d, rank-at-least-r divisor cannot retain rank zero after removing r + rho + 1 chips at the left endpoint of the chain.

                                                                                                                                        theorem Highlights.cycle_theta_chain_brill_noether_general (factors : List CycleThetaFactor) (h_cycles_positive : ∀ (m n : ℕ), CycleThetaFactor.cycle m n ∈ factors → 0 < m ∧ 0 < n) (h_thetas_evenly_marked : ∀ (a b c u v k : ℕ), CycleThetaFactor.theta a b c u v k ∈ factors → evenlyMarkedK a b c u v k) (h_torsion : mixedChainTorsionBudget factors) :

                                                                                                                                        Mixed cycle/theta chain theorem. A chain whose factors are cycles or evenly marked theta graphs is Brill--Noether general whenever every cycle is nondegenerate and each factor satisfies the sharp minimum genus/torsion budget. This is the existential/unmarked conclusion of Corollary 6.16.

                                                                                                                                        Exact gonality of common-torsion chains #

                                                                                                                                        theorem Highlights.cycle_theta_chain_gonality_eq_common_torsion (factors : List CycleThetaFactor) (k : ℕ) (h_nonempty : factors ≠ []) (h_cycles_positive : ∀ (m n : ℕ), CycleThetaFactor.cycle m n ∈ factors → 0 < m ∧ 0 < n) (h_thetas_evenly_marked : ∀ (a b c u v period : ℕ), CycleThetaFactor.theta a b c u v period ∈ factors → evenlyMarkedK a b c u v period) (h_common_torsion : ∀ F ∈ factors, F.period = k) (h_small : k ≤ (CycleThetaFactor.totalGenus factors + 3) / 2) :

                                                                                                                                        Exact gonality of a common-torsion cycle/theta chain. If every factor has the same torsion order k, then the bridge-chain has gonality exactly k whenever k is at most the generic gonality floor((g+3)/2) of its total genus g.

                                                                                                                                        The theta factors are allowed because the proof uses the common k-general-transmission package, not a factorwise gonality assertion.

                                                                                                                                        theorem Highlights.exists_graph_of_genus_and_gonality (g k : ℕ) (hk : 2 ≤ k) (hkg : k ≤ (g + 3) / 2) :
                                                                                                                                        ∃ (G : CFGraph), graphConnected G ∧ genus G = ↑g ∧ gonalityEq G ↑k

                                                                                                                                        Every gonality between two and the generic gonality occurs. More precisely, for every genus g and 2 ≤ k ≤ floor((g+3)/2) = ceil(g/2)+1, there is a connected finite graph of genus g and divisorial gonality exactly k.

                                                                                                                                        Divisorial gonality can drop under regular subdivision #

                                                                                                                                        There is a connected graph with no degree-k, rank-one divisor, although one of its regular subdivisions does have such a divisor. The witness is the minimal tricycle, with k = 5 and subdivision factor n = 2.

                                                                                                                                        This is the direction that yields the divisorial/metric gonality gap: the minimal tricycle has divisorial gonality six, while its second regular subdivision has divisorial gonality five.

                                                                                                                                        Treewidth is at most divisorial gonality #

                                                                                                                                        theorem Highlights.treewidth_le_gonality (G : CFGraph) (h_connected : graphConnected G) (k : ℕ) (h_gonality : gonalityLeq G ↑k) :

                                                                                                                                        Treewidth is at most divisorial gonality (van Dobben de Bruyn--Gijswijt). In witness form: on a connected graph, any degree-k divisor of rank at least one bounds the treewidth by k.