1-in-SAT: the problem, and its membership in NP #
EXACTLY-ONE SATISFIABILITY: is there a truth assignment giving every clause
exactly one true literal? Like NAE-SAT, it lives on the vocabulary
FirstOrder.Language.sat unchanged and only its notion of satisfaction differs
(DescriptiveComplexity.OneInProper), so this adds a problem rather than a language.
It is the second Schaefer-style variant of satisfiability
(Schaefer 1978) in the catalog.
Its value is as a reduction source, and specifically for Exact Cover: a
1-in-SAT instance becomes an exact cover with no counting and no gadget at
all, one set per literal (x, s) gathering x itself and the clauses where
(x, s) occurs. Covering the element x exactly once picks exactly one of
the two literals of x – an assignment – and covering a clause exactly once
is exactly-one satisfaction. That works at any clause width, which is why
the catalog wants unrestricted 1-in-SAT rather than a width-three restriction.
Membership reuses SAT's kernel (DescriptiveComplexity.realize_satKernel, “every clause
has a true literal”) and adds uniqueness, as three clauses – one per pattern
of signs, the mixed pattern being simply forbidden.
The problem #
An assignment is exactly-one proper when every clause has exactly one true literal occurrence.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
A Language.sat-structure is exactly-one satisfiable if some assignment
gives every clause exactly one true literal.
Equations
- DescriptiveComplexity.OneInSatisfiable A = ∃ (ν : A → Prop), DescriptiveComplexity.OneInProper ν
Instances For
Dependency graph
Isomorphisms preserve literal occurrences.
Dependency graph
Exactly-one satisfiability is isomorphism-invariant.
Dependency graph
1-in-SAT, as a problem on CNF instances: is there an assignment giving every clause exactly one true literal?
Equations
- DescriptiveComplexity.OneInSAT = { Holds := fun (A : Type) (inst : FirstOrder.Language.sat.Structure A) => DescriptiveComplexity.OneInSatisfiable A, iso_invariant := ⋯ }
Instances For
Dependency graph
Membership #
The first-order kernel of the Σ₁ definition of 1-in-SAT: SAT's kernel
together with the three uniqueness clauses.
Equations
Instances For
Dependency graph
1-in-SAT is Σ₁-definable: guess the assignment, then check
first-order that every clause has a true literal – SAT's kernel – and that it
has no second one.