Rotation and constraint programs for preprocessing #
The edge-list construction and random-walk algorithms use the same numbered half-edges. These programs expose the complete rotation, including the return label, without rebuilding the preprocessed edge list for each call. Cloud search, numerical family rotation, constraint lookup and every copied runtime graph are charged by the joint certificates.
Main definitions #
Cslib.PCP.Encoded.Graph.preprocessRotation: rotate on a numbered half-edge.Cslib.PCP.Encoded.Graph.preprocessRelation: evaluate the constraint on a dart.
Main results #
Cslib.PCP.Encoded.Graph.preprocessRotation_eq: exact mathematical rotation and return label.Cslib.PCP.Encoded.Graph.preprocessRelation_eq_true: exact mathematical constraint.Cslib.PCP.Encoded.Graph.isPolyTime_preprocessRotation: uniform joint rotation certificate.Cslib.PCP.Encoded.Graph.isPolyTime_preprocessRelation: uniform evaluation certificate.
References #
Original-edge, cloud, global-family and self-loop labels.
Instances For
Numbering retains both the edge identity and its endpoint.
Dividing by two and reading the low bit are polynomial-time in the unary vertex name.
Original edges retain their orientation, cloud edges check equality, and new edges accept.
Instances For
Exact agreement on the existing half-edges needs no claim about malformed vertex names.
The executable constraint is the existing mathematical preprocessing constraint.
Computed graph and dart arguments determine their encodings before composition.
Computed constraints and labels use the same evaluator under any fixed label encoding.