Unique satisfiability #
A formula in conjunctive normal form is uniquely satisfiable when it has exactly one
satisfying assignment of its variables. Formulas here have variables numbered by ℕ, and an
assignment ℕ → Bool also gives values to the infinitely many variables that do not occur; so
USAT asks for a satisfying assignment with which every satisfying assignment agrees on the
variables of the formula (Cslib.Logic.PL.CNF.vars).
Valiant and Vazirani consider the promise problem PromiseUSAT whose yes-instances are the
uniquely satisfiable formulas and whose no-instances are the unsatisfiable ones
Valiant and Vazirani, Arora and Barak, Section 17.4.
Formulas with two or more satisfying assignments are outside the promise, so a function solves
PromiseUSAT when the set it accepts lies between USAT and SAT (solvedBy_PromiseUSAT_iff);
deciding either USAT or SAT does (solvedBy_USAT, solvedBy_SAT). PromiseUSAT lies in
PromiseNP, separated by SAT (PromiseUSAT_mem_PromiseNP).
Main definitions #
Cslib.Complexity.USAT: the uniquely satisfiable formulas.Cslib.Complexity.PromiseUSAT: unique satisfiability as a promise problem.
Main results #
Cslib.Complexity.USAT_subset_SAT: a uniquely satisfiable formula is satisfiable.Cslib.Complexity.solvedBy_PromiseUSAT_iff: the solutions ofPromiseUSAT.Cslib.Complexity.solvedBy_USAT,Cslib.Complexity.solvedBy_SAT: decidingUSAT, orSAT, solvesPromiseUSAT.Cslib.Complexity.PromiseUSAT_mem_PromiseNP:PromiseUSATlies inPromiseNP.
References #
The uniquely satisfiable formulas: some assignment satisfies the formula, and every satisfying assignment agrees with it on every variable of the formula Blass and Gurevich.
Instances For
A uniquely satisfiable formula is satisfiable.
No uniquely satisfiable formula is unsatisfiable.
Unique satisfiability as a promise problem: the yes-instances are the uniquely satisfiable formulas, the no-instances the unsatisfiable ones, and formulas with at least two satisfying assignments are outside the promise.
Instances For
A function solves PromiseUSAT exactly when the set it accepts lies between USAT and
SAT.
Deciding USAT solves PromiseUSAT.
Deciding SAT also solves PromiseUSAT: its answers on formulas outside the promise are
irrelevant.
PromiseUSAT lies in PromiseNP, separated by SAT ∈ NP.