Polynomial-time exact-one encoding #
The ordinary CNF encoding of exact-one semantics enumerates pairs of literal positions. Its construction is polynomial-time under the existing list and literal encodings. This is a semantic bridge, separate from the positive exact-three reduction.
Main results #
Clause.computableInPolyTime_oneEncoding: encode one exact-one clause.CNF.computableInPolyTime_oneEncoding: encode an exact-one formula.
References #
These are original computational certificates for the existing positional encoding.
Enumerate each later literal position after its first position.
The positional pair clauses can be emitted in polynomial time.
Exact-one clause encoding is polynomial-time for any fixed variable encoding.
Exact-one formula encoding is polynomial-time for any fixed variable encoding.
One ordinary-clause replacement is native polynomial-time.
The ordinary clause replacements are polynomial-time under the original label encoding.
Eliminating all negative occurrences is native polynomial-time.
Composing the two local replacements is native polynomial-time.
Compact output labels are computed as bounded unary ranks, then encoded in binary.