Documentation

DescriptiveComplexity.Problems.ExactCover

Exact Cover is NP-complete #

EXACT COVER (Karp 1972): is there a subfamily covering every ground element exactly once? The problem lives on FirstOrder.Language.setSystem unchanged (DescriptiveComplexity.ExactCover, DescriptiveComplexity.Problems.SetFamily.Defs) – exactness is a property of the subfamily, not a new vocabulary, and it replaces the threshold, so the marked set plays no role at all.

Hardness comes from exactly-one satisfiability (DescriptiveComplexity.Problems.OneInSat) by a reduction with no gadget and no counting, order-free and of dimension 1:

Covering the element x exactly once picks exactly one of the two literals of x – that is a truth assignment – and covering a clause exactly once is exactly what exactly-one satisfaction asks. Nothing here depends on the width of the clauses, which is why the source is unrestricted 1-in-SAT rather than its width-three restriction.

Tags of the reduction: the ground element of a variable, the ground element of a clause, and the set of a literal.

  • velt : ECTag

    The ground element of a variable.

  • celt : ECTag

    The ground element of a clause.

  • lset (s : Bool) : ECTag

    The set of the literal (x, s).

Instances For
    Dependency graph
    Dependency graph
    Dependency graph
    @[instance_reducible]
    Equations
    • One or more equations did not get rendered due to their size.
    Dependency graph
    Dependency graph

    The interpretation #

    Dependency graph
    Dependency graph

    Defining formula for incidence: the set of (x, s) contains the element of x and the elements of the clauses where (x, s) occurs.

    Equations
    Instances For
      Dependency graph

      The interpretation of Exact Cover instances in CNF instances.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        Dependency graph

        The points #

        The point of tag t over the element x.

        Equations
        Instances For
          Dependency graph
          theorem DescriptiveComplexity.ExactCoverRed.ecPt_eq_iff {A : Type} {t t' : ECTag} {x x' : A} :
          ecPt t x = ecPt t' x' t = t' x = x'
          Dependency graph
          theorem DescriptiveComplexity.ExactCoverRed.ecPt_surj {A : Type} (q : ecInterp.Map A) :
          ∃ (t : ECTag) (x : A), q = ecPt t x
          Dependency graph

          Characterization of the four relations #

          Dependency graph
          Dependency graph
          Dependency graph
          Dependency graph
          Dependency graph
          Dependency graph
          Dependency graph
          Dependency graph

          The sets of the family are exactly the literal sets.

          Dependency graph

          The ground elements are exactly the variables and the clauses.

          Dependency graph

          Correctness #

          Correctness of the reduction: a CNF structure is exactly-one satisfiable iff its literal set system has an exact cover.

          Dependency graph

          1-in-SAT FO-reduces to Exact Cover: the ground elements are the variables and the clauses, and the family has one set per literal. No order, no gadget and no counting.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            Dependency graph

            NP-completeness #

            Exact Cover is NP-hard: 1-in-SAT, which is NP-hard, FO-reduces to it.

            Dependency graph

            Exact Cover is NP-complete, derived from the first-order reductions of this library and the Cook–Levin theorem.

            Dependency graph