Fixed-language cyclic-difference tables #
Tables enumerate the accepted tuples at the declared arity and take ordered neighboring
exclusive ors, including last-to-first. This is the dR operation of [DK15],
Section 3, printed p. 439, and [KKR18], Definition 14 (v6, printed p. 0:6).
Empty and nullary relations retain their exact meaning. Enumeration costs may be exponential
in the arity; native compilation uses this only as a fixed finite language lookup. No uniform
language-preprocessing claim is made.
The fixed rejection instance has two singleton unary tables on one variable. Each relation is a nonempty even delta-matroid, although their conjunction is unsatisfiable.
Main definitions #
Cslib.Logic.PL.CSP.Table.differenceTable: explicit ordered difference table.Cslib.Logic.PL.CSP.Table.rejectEdge: fixed unsatisfiable edge instance.
Explicit accepted cyclic differences in the original scope order. Enumeration is static for each symbol of a fixed finite language, independently of raw instance scope lengths.
Instances For
The actual guarded table denotes precisely the existing ordered difference relation.
Self-complementary recovery through the actual explicit table, at any matching arity.
Static language evenness transfers to the actual explicit table. Empty relations are excluded by this hypothesis, rather than silently treated as nonempty delta-matroids.
Unary singleton table, allowing either common parity.
Instances For
Singleton unary relations are even delta-matroids, including the odd pin.
Fixed unsatisfiable edge instance with two nonempty singleton unary relations.
Instances For
Rejection remains an edge instance: one variable in two distinct unary constraints.
Both rejecting tables have the exact declared width.
Rejection is semantic, not a malformed or empty-relation shortcut.
Every rejecting constraint uses a nonempty even delta-matroid.