Timestamped incidence DAGs for edge CSPs #
This is Definition 32 of [KKR18], arXiv:1602.03124v6, printed pp. 15–16. Constraint nodes are original positions paired with timestamps; relation symbols never identify nodes. Arcs retain actual ordered occurrences. Separate finite node supports retain isolated variables, including forest roots.
DAG.IsFDAG contains all six conditions of the definition. Actual incidence is built into
DAG.Arc; supported checks its endpoints. unique prohibits reuse of an original incidence
at any orientation or time. indegree bounds variable indegree. ordered requires distinct
constraint timestamps and a compatible finite topological numbering. Numberings may tie at
unrelated nodes: on the finite support these ties can be broken to obtain the source's total
order. Conversely a finite total order can be numbered. orderRelation explicitly adds the
timestamp comparisons, and ordered_iff_acyclic relates the numbering to the existing acyclic
relation API. Local feasibility and the full same-original-constraint no-shortcut condition
are feasible and noShortcut.
Condition 5 flips two singleton coordinates successively. Equal ports therefore cancel, as in the paper; they do not become a one-coordinate set flip. Since the base labeling is valid and both ports belong to the same constraint, global validity of this move is equivalent to feasibility of that constraint's tuple.
Main results #
DAG.IsFDAG.subgraph: Observation 33, including isolated nodes.DAG.IsFDAG.acyclic: the directed incidence graph is acyclic.DAG.Ordered.exists_injective_numbering: a checked finite tie-breaking justification of the source's total-order formulation, including isolated nodes.
No construction of Algorithm 1's forest, improving comparison labeling, or solver is assumed.
An indexed incidence, its timestamp, and its orientation (true means variable to copy).
- occurrence : F.Occurrence
Original constraint and ordered argument position of this incidence.
- time : ℕ
Timestamp identifying the copied constraint endpoint.
- incoming : Bool
trueorients the incidence from its variable toward its constraint copy.
Instances For
Two individual flips, with cancellation when the occurrences are equal.
Instances For
For distinct occurrences the cancelling pair operation is the usual set flip.
A finite directed incidence graph with explicit support for isolated nodes.
- vars : Finset V
Supported actual variables, retaining isolated roots.
Supported positional constraint copies, retaining isolated copies.
Used original incidences with their timestamps and orientations.
Instances For
All six invariant conditions in KKR Definition 32, with base validity explicit.
- valid : ValidLabeling sem f
The reference labeling satisfies every original positional constraint.
- supported : T.Supported
Condition 1: every indexed arc has both endpoints in the support.
- unique (a : Arc F) : a ∈ T.arcs → ∀ b ∈ T.arcs, a.occurrence = b.occurrence → a = b
Condition 2: an original incidence is used at most once, in one orientation and copy.
- indegree (a : Arc F) : a ∈ T.arcs → ∀ b ∈ T.arcs, a.incoming = false → b.incoming = false → a.occurrence.var = b.occurrence.var → a = b
Condition 3: a variable has at most one incoming arc.
- ordered : T.Ordered
Condition 4: timestamps are globally distinct and extend to a topological order.
- feasible (a : Arc F) : a ∈ T.arcs → ∀ b ∈ T.arcs, a.incoming = true → a.copy = b.copy → ValidLabeling sem (pairFlip f a.occurrence b.occurrence)
Condition 5: an incoming port exchanges feasibly with any port at its copy.
- noShortcut (a : Arc F) : a ∈ T.arcs → ∀ b ∈ T.arcs, a.incoming = true → a.occurrence.fst = b.occurrence.fst → a.time < b.time → ¬ValidLabeling sem (pairFlip f a.occurrence b.occurrence)
Condition 6: an old incoming port cannot exchange with a later-used port of the same original constraint.
Instances For
Observation 33: every supported subgraph inherits all six conditions.
Observation 33 specialized to an executable induced restriction.
The empty graph (with no nodes) is an f-DAG for every valid labeling.
The rank formulation is equivalent to acyclicity after adding the timestamp order. This uses the existing finite topological-numbering theorem rather than a separate DAG API.
Break rank ties on the finite support without changing any required strict comparison. The resulting injective natural numbering induces the source's strict total order on supported nodes. This also accounts for isolated nodes, whose original ranks may all have been equal.