Exact-one semantics for clauses #
Clause.evalOne counts true literal occurrences, including repeated occurrences of the same
variable. CNF.evalOne requires exactly one true literal in every clause. This reuses the
existing signed CNF representation; positivity and clause-size restrictions are separate.
CNF.oneEncoding expresses these semantics with ordinary CNF clauses and no new variables.
Unlike CNF.exactlyOne, which constrains distinct variables, this encoding counts positions.
Main definitions #
Clause.evalOne,CNF.evalOne,CNF.OneSatisfiable: exact-one semantics.Clause.oneEncoding,CNF.oneEncoding: the ordinary CNF encoding.
Main results #
CNF.eval_oneEncoding: correctness of the encoding under the same assignment.CNF.mem_vars_oneEncoding: the encoding has exactly the source variables.
References #
- Hunt, Marathe, Radhakrishnan and Stearns, Definition 2.9.
Some assignment gives exactly one true literal occurrence in every clause.
Instances For
A singleton exact-one clause has the same semantics as its literal.
Exact-one satisfaction is the occurrence-count equation.
Clauses forbidding simultaneous truth of each pair of literal positions.
Instances For
Express exact-one clause semantics with ordinary clauses and no new variables.
Instances For
Express exact-one formula semantics with ordinary clauses and no new variables.
Instances For
The pair clauses constrain the true occurrence count to be at most one.
Exact-one clause encoding preserves evaluation under the same assignment.
Exact-one formula encoding preserves evaluation under the same assignment.
The ordinary encoding is satisfiable exactly when the exact-one source is.
The encoding has exactly the variables of the source, irrespective of repetitions.
The pair encoding commutes with renaming variables.
The clause encoding commutes with renaming variables.
The formula encoding commutes with renaming variables.