Enumerating half-edges and vertex clouds #
Degree reduction replaces a vertex by its incident half-edges. The executable enumeration uses
edge indices and Boolean endpoint tags, including both ends of a loop and every parallel edge.
cloudEquiv proves that this enumeration is exactly the cloud in the existing mathematical
degree-reduction construction. Its inverse is list search, not a choice of a finite enumeration.
Main definitions #
Cslib.PCP.Encoded.Graph.halfEdges: the ordered half-edges of an edge list.Cslib.PCP.Encoded.Graph.endpoint: read the endpoint of a numbered half-edge.Cslib.PCP.Encoded.Graph.cloud: enumerate the half-edges incident to a vertex.Cslib.PCP.Encoded.Graph.cloudEquiv: identify this enumeration with the mathematical cloud.
Main results #
Cslib.PCP.Encoded.Graph.mem_cloud_iff: the enumeration includes exactly incident half-edges.Cslib.PCP.Encoded.Graph.nodup_cloud: each half-edge occurs once.Cslib.PCP.Encoded.Graph.isPolyTime_cloud: enumeration, scanning and endpoint lookup are uniformly polynomial-time in the encoded graph and vertex.
References #
Enumerating both ends of every edge is polynomial-time.
Endpoint lookup is uniform in the graph and the half-edge.
Cloud enumeration charges each endpoint lookup and the entire filtered output.
The computed cloud list is precisely the mathematical cloud, with an explicit inverse which searches the ordered half-edge list.
Instances For
The forward cloud identification reads the selected list entry.
The inverse cloud identification is the ordinary index-of operation.