Decisions that depend on a bounded amount of data #
A constraint of a constraint graph looks at two symbols and a little local data,
and says yes or no. The rule may be described by something noncomputable — an
alphabet embedding chosen by Classical.choice, say — but it still runs in
polynomial time, because it is a table lookup on a bounded key.
The lookup lives in Complexitylib.Classes.P.FinsetDomain, which keeps the old
names keySet, mem_keySet and mem_FP_of_bounded_key, and
mem_P_of_bounded_key in Complexitylib.Classes.P.DecisionFn. This module
re-exports both and keeps the enumeration of bit vectors that the PCP-to-SAT
reduction reads.
Main definitions #
Complexity.allVecs— the bit vectors of a given length
Main results #
Complexity.mem_allVecs_iff—allVecs nis exactly the vectors of lengthn