Native ordered CSP incidence multigraphs #
Variables receive dense names in first-occurrence order; constraint-position vertices follow.
There is one listed edge per ordered argument occurrence, including repeated variables and
identical constraints. The existing positive-CNF adapter has exactly these scopes, so both the
construction and its native polynomial-time certificate reuse SAT.incidenceGraph.
The incidence model is the bipartite multigraph of Fulla–Živný, On Planar Valued CSPs, arXiv:1602.06323v3, Section 2.1, p. 4 (the paragraph preceding Definition 1). Constraint positions replace their indexed valued constraints; ordered scopes give their argument incidences. This module treats arbitrary-domain decision CSPs, retaining nullary constraints and using only occurring variables. It supplies neither a drawing nor the order-preserving plane representation of Definition 1. That extra structure is needed for a planar-CSP claim.
The finite-list naming and encoding proofs are original. Binary source labels are never expanded into a range up to their maximum; generated vertex names are bounded by the input's list sizes.
Main results #
Cslib.Complexity.CSP.incidenceGraph_edges: exact ordered edge list.Cslib.Complexity.CSP.incidenceEdgeIndex: identifies each occurrence's distinct edge record.Cslib.Complexity.CSP.computableInPolyTime_incidenceGraph: native binary graph construction.
The existing listed multigraph, with dense variable and constraint-position vertices.
Instances For
The graph declares precisely the variable interval followed by the constraint interval.
Each occurrence contributes one edge in constraint-then-scope order. Parallel edges remain separate list entries; the original scope position is recoverable from the occurrence table.
Vertex count includes every constraint position, even identical and nullary constraints.
Edge count includes each argument occurrence, even repeated variables.
Every listed edge joins the variable part to the constraint-position part.
Both endpoints of every listed edge are declared vertices.
Every entry of the flattened incidence-endpoint list is a declared graph vertex.
The two vertex intervals are disjoint, so incidence edges are never loops.
Edge-list position of an argument occurrence, retaining parallel edge identity.
Instances For
Every argument occurrence indexes a declared edge record.
Different scope or constraint positions give different edge-list positions.
Every edge-list position comes from an argument occurrence.
The occurrence's listed edge connects its dense variable name to its constraint position.
Reuse the general graph endpoint reader: false is the variable, true the constraint.
Construct the native graph under framed CSP encoding and binary graph labels. Source variables are compared as encoded strings; there is no iteration to their largest name.