The indexed dual of a rotation system #
The dual retains every edge-list position. Its vertices are the least dart indices of all source face orbits, including singleton orbits. Its rotation is the source face successor. Declared isolated source vertices have no darts and hence contribute no dual vertex.
This is an original finite permutation construction. It does not assert geometric realization or give a native certificate compiler.
Main definitions #
Cslib.Complexity.Graph.RotationSystem.faceId: canonical least-index face name.Cslib.Complexity.Graph.RotationSystem.dualGraph: listed dual with the same edge positions.Cslib.Complexity.Graph.RotationSystem.dualRotation: the actual dual rotation.
Finite dart indices in an actual face orbit, including its least index.
Instances For
Every dart belongs to its own face orbit.
The least dart index in the actual face orbit, including a singleton orbit. It is computed over the finite dart universe, independently of the magnitudes of source vertex names.
Instances For
The canonical name is attained by a least-index dart in the same actual face orbit.
A dart is the canonical representative exactly when its index is its face's name.
The canonical face name is bounded by the number of darts, even for huge vertex labels.
Canonical dual vertex equality is exactly the existing executable face-table orbit test.
This links the abstract construction to faceTable (ofRotation r) without another face
enumeration or an existentially chosen relabeling.
The listed dual has one vertex per actual face and one edge per source edge occurrence.
The first/second ends of edge i are the faces of darts (i,false) and (i,true).
Instances For
Dualization preserves the number of listed edges, including loops and parallel edges.
Identification of source and dual darts preserves edge positions and endpoint bits.
Instances For
Dart reversal commutes with the source/dual identification.
The endpoint of a dual dart is exactly the canonical name of its source face.
Every dual dart endpoint is declared, with no assumption on source endpoint declarations.
Every endpoint in the dual's flattened incidence list is declared.
The dual rotation is the source face permutation, transported along the indexed dart identification. Its cycles are exactly the dual endpoint fibers.
Instances For
Exact dual vertex successor: sigma_D = phi.
Exact dual face successor: phi_D = alpha sigma alpha on identified darts.
Dual faces are precisely source vertex cycles, with reversal giving the orientation identification. This includes source degree-one vertices and singleton dual face orbits.
Nonempty source endpoint fibers; declared isolated vertices are deliberately absent.
Instances For
Complete dual-face/source-vertex correspondence. It applies to every nonempty endpoint fiber, including singleton rotations, with no connectedness or genus assumption.
Instances For
The complete dual face count is the number of nonempty source vertex fibers.
Distinct declared dual names count every source face once.