Adding an edge to a chip-firing graph #
This file develops the graph-theoretic infrastructure for genus induction by adding a single edge. The construction keeps the vertex type definitionally unchanged, so divisors and firing scripts on the old and new graphs are the same functions.
Add one edge between two distinct existing vertices.
Equations
- Utilities.addEdge H x y hxy = { V := H.V, instDecidableEq := H.instDecidableEq, instFintype := H.instFintype, instNonempty := ⋯, edges := (x, y) ::ₘ H.edges, loopless := ⋯ }
Instances For
The degree-zero divisor supported with opposite signs at the new edge's endpoints.
Equations
- Utilities.seamDivisor x y = oneChip x - oneChip y
Instances For
Adding an edge changes the principal divisor by a rank-one term.
The sign reflects the convention in ChipFiringWithLean: prin is the
negative of the usual graph Laplacian applied to the firing script.
Linear equivalence on the old graph transfers to linear equivalence on the new graph after translating by an integral multiple of the seam divisor.
Conversely, every integral seam phase is represented on the enlarged
graph by a divisor linearly equivalent to D on the old graph.
Exact orbit description: the classes on the enlarged graph represented
by the old linear class of D are precisely the integral seam phases of
D.
Adding the edge increases the canonical divisor by one chip at each endpoint. The pointwise RHS makes the definitional identification of vertex types explicit.