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 #
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
The multiset of unoriented edge occurrences, each stored once as an ordered endpoint pair; repeated pairs represent parallel edges.
Instances For
Connectivity in cut form.
Equations
- TMB.graphConnected G = ∀ (S : Finset G.V), (∃ (x : G.V) (y : G.V), x ∈ S ∧ y ∉ S) → ∃ x ∈ S, ∃ y ∉ S, TMB.numEdges G x y > 0
Instances For
Edges leaving x towards the complement of S, with multiplicity.
Equations
- TMB.outdegreeSet G S x = ∑ y ∈ Finset.univ \ S, ↑(TMB.numEdges G x y)
Instances For
The principal divisor obtained by firing x once.
Equations
- TMB.firingVector G x y = if y = x then -TMB.vertexDegree G x else ↑(TMB.numEdges G x y)
Instances For
The subgroup generated by vertex firings.
Equations
Instances For
Linear equivalence of divisors.
Equations
- TMB.linearEquiv G D E = (E - D ∈ TMB.principalDivisors G)
Instances For
An effective divisor has nonnegative coefficients.
Equations
- TMB.effective D = ∀ (x : G.V), D x ≥ 0
Instances For
A divisor is winnable if its class has an effective representative.
Equations
- TMB.winnable G D = ∃ E ∈ TMB.Eff G, TMB.linearEquiv G D E
Instances For
Baker--Norine rank at least r, in subtraction-test form.
Equations
- TMB.rankGeq G D r = ∀ E ∈ TMB.effOfDegree G r, TMB.winnable G (D - E)
Instances For
Exact rank as adjacent lower-bound tests.
Equations
- TMB.rankEq G D r = (TMB.rankGeq G D r ∧ ¬TMB.rankGeq G D (r + 1))
Instances For
The unique exact rank when it exists, and -1 as a fallback.
Equations
- TMB.rank G D = if h : ∃ (r : ℤ), TMB.rankEq G D r then Classical.choose h else -1
Instances For
The canonical divisor K(x) = val(x) - 2.
Equations
- TMB.canonicalDivisor G x = TMB.vertexDegree G x - 2
Instances For
Firing S keeps every vertex of S out of debt.
Equations
- TMB.legalSet G D S = ∀ x ∈ S, TMB.outdegreeSet G S x ≤ D x
Instances For
A q-reduced divisor: effective away from q, and no nonempty set
avoiding q can be fired legally.
Equations
- TMB.qReduced G q D = (TMB.qEffective q D ∧ ∀ (S : Finset G.V), q ∉ S → S.Nonempty → ¬TMB.legalSet G D S)
Instances For
Brill--Noether parameters #
The Brill--Noether number.
Equations
- TMB.bnNumber G r d = TMB.genus G - (r + 1) * TMB.rectangleWidth G r d
Instances For
Graph isomorphisms and vertex gluing #
A graph isomorphism is a vertex equivalence preserving multiplicities.
The bijection of vertices whose edge-multiplicity preservation makes this a graph isomorphism.
Instances For
Push a divisor forward along a graph isomorphism.
Equations
- φ.mapDiv D y = D (φ.vertexEquiv.symm y)
Instances For
Add factor divisors on their vertex wedge.
Equations
Instances For
A graph with ordered outside marks.
- graph : CFGraph
The underlying graph on which the two ordered outside marks lie.
The left outside mark, retained as the left mark when another factor is glued on the right.
The right outside mark, identified with the next factor's left mark in a chain.
Instances For
Glue the right mark of M to the left mark of N.
Equations
Instances For
Left-associated iterated vertex gluing.
Instances For
Total multiplicity of the edges leaving S.
Equations
- TMB.cutMultiplicity G S = ∑ x ∈ S, TMB.outdegreeSet G S x
Instances For
Every nonempty proper cut has at least two crossing edges.
Equations
- TMB.TwoEdgeCutCondition G = ∀ (S : Finset G.V), S.Nonempty → S ≠ Finset.univ → 2 ≤ TMB.cutMultiplicity G S
Instances For
A pointed genus-one graph whose marked point is the unique vertex in its degree-zero linear-equivalence class.
- connected : graphConnected H
Instances For
Banana graphs #
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.
The chosen tail pole of each of the
g + 1banana strands.The chosen head pole of each banana strand, required to differ from its tail.
The number of edges in each subdivided banana strand, required to be positive.