The occurrence-indexed polygon graph of an ordered CSP #
There is one edge per actual argument occurrence, from that variable to the next variable in the same cyclic scope. The edge list uses the existing incidence occurrence order. Unary scopes give loops; repeated names and duplicate constraints retain separate edge positions. No relation arity or bound on the variable universe is used. Nullary constraints contribute no edge.
This is an explicit finite-list construction of the primal face model of [DK15], printed p. 434. The exact occurrence maps and permutation formulas are original reconstruction. The graph alone does not establish geometric realizability or a native time bound.
Main definitions #
Cslib.Complexity.CSP.polygonGraph: explicit occurrence-ordered cyclic-scope edges.Cslib.Complexity.CSP.polygonEdgeEquiv: exact occurrence-to-edge-position map.Cslib.Complexity.CSP.polygonDart: the two indexed ends of each occurrence edge.
Main results #
Cslib.Complexity.CSP.vertex_polygonDart: exact dense endpoints.Cslib.Complexity.CSP.polygon_scope_word: original scope order after dense naming.Cslib.Complexity.CSP.length_vertices_polygonGraph_le: vertices bounded by occurrences.
Argument succession, with an explicit inverse at each constraint position.
Instances For
The next dense variable, computed from an occurrence record by bounded list lookups. Invalid records return the supplied variable's dense name; actual occurrences never use it.
Instances For
Actual ordered occurrences read the next scope variable, with cyclic wraparound.
Dense occurring variables and one listed cyclic-scope edge per occurrence.
Instances For
The polygon construction keeps exactly the incidence edge positions.
Every argument occurrence retains its own listed polygon edge.
Instances For
The listed edge at an occurrence has its two prescribed dense endpoints.
Both endpoint choices retain the cyclic scope order, even when the edge is a loop.
No two occurrence/end pairs are collapsed by equal endpoint labels.
Every polygon dart has an occurrence and an end; no additional darts are introduced.
Occurrence/end coordinates on the actual listed polygon graph. The inverse only recovers indices from the existing occurrence enumeration; it chooses no graph or rotation.
Instances For
The exact edge-position map: one edge for each actual argument occurrence.
Instances For
Edge count is exactly the number of ordered occurrences, rather than distinct pairs.
The forward polygon coordinate map is the explicit occurrence/end map.
The scope permutation has exactly one orbit per nonempty constraint position.
Both ends of every polygon edge are declared dense occurring variables.
Dense vertex count is bounded by actual scope occurrences, independent of label sizes.
The forward-dart word at a constraint is its exact original scope after dense naming.
With positive actual scopes, constraint positions are also bounded by occurrences.