Components of the occurrence-indexed polygon graph #
Replacing a positive constraint star by its indexed cyclic scope preserves connected components. All component statements use the existing graph reachability relation on declared vertices.
Main results #
Cslib.Complexity.CSP.sameComponent_polygon_iff: exact reachability correspondence.Cslib.Complexity.CSP.polygonComponentEquiv: bijection of actual graph components.
All endpoints in the flattened polygon list are declared dense vertices.
Consecutive scope positions are connected by their actual listed polygon edge, including when its endpoints coincide.
All arguments of one constraint lie in the same polygon component. This includes unary and repeated-variable scopes and does not identify different constraint positions.
Every incidence path between occurring variables becomes a polygon path.
The two variables of a polygon edge are connected through its original constraint star.
Every polygon path lifts to an incidence path, using the two original star edges for each listed polygon edge.
Every dense variable vertex has an actual occurrence, even with enormous sparse source names. No finite universe of source variables is required.
Exact component correspondence on all dense variable vertices.
The inclusion of dense variable vertices induces the actual map of graph components.
Instances For
Distinct polygon components remain distinct incidence components.
Positive scopes ensure that no incidence component consists of a deleted nullary constraint vertex. Thus every incidence component contains a polygon vertex.
Exact component bijection for positive scopes, including disconnected and empty bodies.