Documentation

DescriptiveComplexity.Problems.OneInSat.Defs

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
    Instances For
      Dependency graph

      Isomorphisms preserve literal occurrences.

      Dependency graph
      Dependency graph

      1-in-SAT, as a problem on CNF instances: is there an assignment giving every clause exactly one true literal?

      Equations
      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.

          Dependency graph