Edge differences and parity on actual face orbits #
Spins are functions on the original natural-number vertex names; edge differences retain listed edge positions. Face parity sums over darts, so an edge traversed twice cancels, while a singleton loop face counts its edge once. No bound on vertex names is used.
The permutation telescoping proof is an original reconstruction of the difference operation in [DK15], Section 3, printed pp. 439–440. The numerical genus predicate is distinct from geometric realization and from native compilation.
Main definitions #
Cslib.Complexity.Graph.edgeGradient: Boolean endpoint differences.Cslib.Complexity.Graph.RotationSystem.faceParity: parity with dart multiplicities.Cslib.Complexity.Graph.RotationSystem.FaceEven: zero parity on every actual face orbit.
Complementing all vertex spins leaves every edge difference unchanged.
Parity of the edge labels on all darts of one actual face. The two ends of an edge are separate summands, so repeated edge traversals have their proper multiplicity.
Instances For
Every actual face orbit has even Boolean edge parity, including singleton orbits.
Instances For
Reading face parity from a dart uses exactly its permutation orbit.
Canonical face IDs compute parity on the same actual orbit, with dart multiplicity.
Face parity is additive in edge labels.
Edge gradients telescope around any face, with no endpoint declaration or genus hypothesis.