Documentation

LeanPool.BrillNoetherGraphs.TwiceMarkedBananas.CoreVocabulary

Standalone graph and banana vocabulary #

Basic graph, divisor, and banana path data used by the paper-facing statements. These declarations keep their independent TMB meanings and storage conventions.

Standalone mathematical vocabulary #

The declarations in this section deliberately use only Mathlib. They give the reader-facing meanings of the graph, divisor, banana, marking, and transmission notation appearing below; none aliases the implementation library. Everything lives in the namespace TMB, which no library declaration inhabits, so that a solution file importing the implementation library can repeat this block verbatim without any name collision.

The definitions are written to follow the implementation library's own definitions as closely as possible (so that a solution can bridge them by unfolding), but they are independent declarations. Small proof fields needed to construct structures (for example, the additivity fields of deg) are ordinary definitional well-formedness proofs written with deterministic tactics, not solutions to any of the paper's theorem statements.

Graphs and divisors #

structure TMB.CFGraph :
Type (u + 1)

A finite, nonempty, loopless undirected multigraph. Each edge occurrence is stored once, using either ordering of its endpoints.

  • 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 unoriented edge occurrences, each stored once as an ordered endpoint pair; repeated pairs represent parallel edges.

  • loopless (x : self.V) : (x, x) ∉ self.edges
Instances For
    def TMB.numEdges (G : CFGraph) (x y : G.V) :

    Number of edge occurrences joining two vertices.

    Equations
    Instances For

      Connectivity in cut form.

      Equations
      Instances For
        def TMB.genus (G : CFGraph) :

        Cyclomatic genus |E| - |V| + 1.

        Equations
        Instances For
          def TMB.vertexDegree (G : CFGraph) (x : G.V) :

          Valence of a vertex.

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

            An integral divisor on a graph.

            Equations
            Instances For
              def TMB.oneChip {G : CFGraph} (x : G.V) :

              One chip at x.

              Equations
              Instances For
                def TMB.outdegreeSet (G : CFGraph) (S : Finset G.V) (x : G.V) :

                Edges leaving x towards the complement of S, with multiplicity.

                Equations
                Instances For
                  def TMB.firingVector (G : CFGraph) (x : G.V) :

                  The principal divisor obtained by firing x once.

                  Equations
                  Instances For

                    The subgroup generated by vertex firings.

                    Equations
                    Instances For
                      def TMB.linearEquiv (G : CFGraph) (D E : CFDiv G) :

                      Linear equivalence of divisors.

                      Equations
                      Instances For
                        def TMB.effective {G : CFGraph} (D : CFDiv G) :

                        An effective divisor has nonnegative coefficients.

                        Equations
                        Instances For

                          Effective divisors as an additive submonoid.

                          Equations
                          Instances For
                            def TMB.winnable (G : CFGraph) (D : CFDiv G) :

                            A divisor is winnable if its class has an effective representative.

                            Equations
                            Instances For

                              Divisor degree. The short proofs certify that summation is additive.

                              Equations
                              Instances For
                                def TMB.effOfDegree (G : CFGraph) (d : ℤ) :

                                Effective divisors of a prescribed degree.

                                Equations
                                Instances For
                                  def TMB.rankGeq (G : CFGraph) (D : CFDiv G) (r : ℤ) :

                                  Baker--Norine rank at least r, in subtraction-test form.

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

                                    Exact rank as adjacent lower-bound tests.

                                    Equations
                                    Instances For
                                      noncomputable def TMB.rank (G : CFGraph) (D : CFDiv G) :

                                      The unique exact rank when it exists, and -1 as a fallback.

                                      Equations
                                      Instances For

                                        The canonical divisor K(x) = val(x) - 2.

                                        Equations
                                        Instances For
                                          def TMB.qEffective {G : CFGraph} (q : G.V) (D : CFDiv G) :

                                          Effective away from q.

                                          Equations
                                          Instances For
                                            def TMB.legalSet (G : CFGraph) (D : CFDiv G) (S : Finset G.V) :

                                            Firing S keeps every vertex of S out of debt.

                                            Equations
                                            Instances For
                                              def TMB.qReduced (G : CFGraph) (q : G.V) (D : CFDiv G) :

                                              A q-reduced divisor: effective away from q, and no nonempty set avoiding q can be fired legally.

                                              Equations
                                              Instances For

                                                Brill--Noether parameters #

                                                def TMB.rectangleWidth (G : CFGraph) (r d : ℤ) :

                                                The width g - d + r of the Brill--Noether rectangle.

                                                Equations
                                                Instances For
                                                  def TMB.bnNumber (G : CFGraph) (r d : ℤ) :

                                                  The Brill--Noether number.

                                                  Equations
                                                  Instances For
                                                    def TMB.BNExists (G : CFGraph) (r d : ℤ) :

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

                                                    Equations
                                                    Instances For

                                                      Graph isomorphisms and vertex gluing #

                                                      structure TMB.CFGraphIso (G : CFGraph) (H : CFGraph) :
                                                      Type (max u v)

                                                      A graph isomorphism is a vertex equivalence preserving multiplicities.

                                                      Instances For
                                                        def TMB.CFGraphIso.mapDiv {G : CFGraph} {H : CFGraph} (φ : CFGraphIso G H) (D : CFDiv G) :

                                                        Push a divisor forward along a graph isomorphism.

                                                        Equations
                                                        Instances For
                                                          def TMB.wedgeRightVertex (G : CFGraph) (H : CFGraph) (x : G.V) (y a✝ : H.V) :
                                                          G.V ⊕ { b : H.V // b ≠ y }

                                                          Embed a right-factor vertex into a vertex wedge.

                                                          Equations
                                                          Instances For
                                                            def TMB.vertexWedge (G : CFGraph) (H : CFGraph) (x : G.V) (y : H.V) :

                                                            Identify x and y in the disjoint union of two graphs.

                                                            Equations
                                                            • One or more equations did not get rendered due to their size.
                                                            Instances For
                                                              def TMB.wedgeAddDivisor (G : CFGraph) (H : CFGraph) (x : G.V) (y : H.V) (D : CFDiv G) (E : CFDiv H) :
                                                              CFDiv (vertexWedge G H x y)

                                                              Add factor divisors on their vertex wedge.

                                                              Equations
                                                              Instances For
                                                                structure TMB.MarkedGraph :

                                                                A graph with ordered outside marks.

                                                                • graph : CFGraph

                                                                  The underlying graph on which the two ordered outside marks lie.

                                                                • left : self.graph.V

                                                                  The left outside mark, retained as the left mark when another factor is glued on the right.

                                                                • right : self.graph.V

                                                                  The right outside mark, identified with the next factor's left mark in a chain.

                                                                Instances For
                                                                  @[reducible, inline]

                                                                  Glue the right mark of M to the left mark of N.

                                                                  Equations
                                                                  Instances For

                                                                    Left-associated iterated vertex gluing.

                                                                    Equations
                                                                    Instances For

                                                                      Total multiplicity of the edges leaving S.

                                                                      Equations
                                                                      Instances For

                                                                        Every nonempty proper cut has at least two crossing edges.

                                                                        Equations
                                                                        Instances For
                                                                          structure TMB.PointedGenusOneRigid (H : CFGraph) (y : H.V) :

                                                                          A pointed genus-one graph whose marked point is the unique vertex in its degree-zero linear-equivalence class.

                                                                          Instances For

                                                                            Banana graphs #

                                                                            structure TMB.Banana (g : ℕ) :

                                                                            A positive integral banana graph with g + 1 labelled strands between two multivalent vertices 0 and 1. Each strand records which multivalent vertex is its tail and which is its head (a storage orientation only; the graph below is undirected), together with its positive length.

                                                                            • tail : Fin (g + 1) → Fin 2

                                                                              The chosen tail pole of each of the g + 1 banana strands.

                                                                            • head : Fin (g + 1) → Fin 2

                                                                              The chosen head pole of each banana strand, required to differ from its tail.

                                                                            • length : Fin (g + 1) → ℕ

                                                                              The number of edges in each subdivided banana strand, required to be positive.

                                                                            • core_loopless (α : Fin (g + 1)) : self.tail α ≠ self.head α
                                                                            • length_pos (α : Fin (g + 1)) : 0 < self.length α
                                                                            Instances For
                                                                              @[reducible, inline]
                                                                              abbrev TMB.Banana.Interior {g : ℕ} (B : Banana g) :

                                                                              Interior vertices remember their strand and offset; offset j denotes path position j + 1 from the tail.

                                                                              Equations
                                                                              Instances For
                                                                                @[reducible, inline]
                                                                                abbrev TMB.Banana.Vertex {g : ℕ} (B : Banana g) :

                                                                                Vertices are the two multivalent vertices and all strand interiors.

                                                                                Equations
                                                                                Instances For
                                                                                  @[reducible, inline]
                                                                                  abbrev TMB.Banana.Step {g : ℕ} (B : Banana g) :

                                                                                  Unit steps along all strands.

                                                                                  Equations
                                                                                  Instances For
                                                                                    @[reducible, inline]
                                                                                    abbrev TMB.Banana.PathPosition {g : ℕ} (B : Banana g) (α : Fin (g + 1)) :

                                                                                    Positions 0, ..., length along a strand, measured from its tail.

                                                                                    Equations
                                                                                    Instances For
                                                                                      def TMB.Banana.coreVertex {g : ℕ} (B : Banana g) (i : Fin 2) :

                                                                                      A multivalent vertex.

                                                                                      Equations
                                                                                      Instances For
                                                                                        def TMB.Banana.interiorVertex {g : ℕ} (B : Banana g) (α : Fin (g + 1)) (offset : Fin (B.length α - 1)) :

                                                                                        An interior vertex.

                                                                                        Equations
                                                                                        Instances For
                                                                                          def TMB.Banana.stepLeft {g : ℕ} (B : Banana g) (α : Fin (g + 1)) (offset : Fin (B.length α)) :

                                                                                          The left endpoint of a unit step.

                                                                                          Equations
                                                                                          Instances For
                                                                                            def TMB.Banana.stepRight {g : ℕ} (B : Banana g) (α : Fin (g + 1)) (offset : Fin (B.length α)) :

                                                                                            The right endpoint of a unit step.

                                                                                            Equations
                                                                                            Instances For
                                                                                              def TMB.Banana.unitEdge {g : ℕ} (B : Banana g) (step : B.Step) :

                                                                                              The ordered pair emitted by one unit step.

                                                                                              Equations
                                                                                              Instances For
                                                                                                theorem TMB.Banana.stepLeft_ne_stepRight {g : ℕ} (B : Banana g) (α : Fin (g + 1)) (offset : Fin (B.length α)) :
                                                                                                B.stepLeft α offset ≠ B.stepRight α offset