Documentation

LeanPool.BrillNoetherGraphs.Bananas.Basics.BananaBasics

Elementary geometry of normalized banana coordinates #

The reusable subdivision representation stores each parallel core edge with an arbitrary orientation. These lemmas certify that strandVertex repairs that choice and agrees with the paper's common two-endpoint coordinates.

theorem Bananas.head_eq_other_of_tail {g : ℕ} (B : Banana g) (α : Fin (g + 1)) (hTail : B.core.tail α = 0) :
B.core.head α = 1

A loopless slot in a two-vertex core has the other vertex as its head.

theorem Bananas.tail_eq_other_of_head {g : ℕ} (B : Banana g) (α : Fin (g + 1)) (hHead : B.core.head α = 0) :
B.core.tail α = 1

A loopless slot in a two-vertex core has the other vertex as its tail.

theorem Bananas.strandVertex_zero {g : ℕ} (B : Banana g) (α : Fin (g + 1)) :

Coordinate zero on every strand is the common left endpoint.

theorem Bananas.strandVertex_length {g : ℕ} (B : Banana g) (α : Fin (g + 1)) :

Coordinate length α on every strand is the common right endpoint.

The stored path position corresponding to a normalized strand position. SubdivisionGraph.Spec allows a slot to be stored in either orientation; this picks out whichever raw path position strandVertex actually reads from.

Equations
Instances For

    strandVertex is pathVertex at the corresponding stored position.

    Interior normalized positions remain interior after changing storage orientation.

    theorem Bananas.strandVertex_injective {g : ℕ} (B : Banana g) (α : Fin (g + 1)) :

    On a fixed strand, normalized positions name distinct vertices.

    A strictly positive normalized position is not the left endpoint.

    A position strictly before the end is not the right endpoint.

    The two multivalent vertices of a banana are distinct. (coreVertex is Sum.inl on the nose, so this is (0 : Fin 2) ≠ 1.)

    On every strand, the sum of the two endpoints is linearly equivalent to the sum of a normalized position and its reflected position.

    Every physical vertex of a banana graph lies at some normalized position on some strand: strandVertex is (jointly, over all strands) surjective.