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.
Coordinate zero on every strand is the common left 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.
Bundled form of normalizedPathPosition: a normalized strand position
always has a raw path-position witness that agrees with strandVertex and
transports interiority.
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.