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:
- the ground elements are the variables and the clauses;
- the family has one set per literal
(x, s), namely{x} ∪ {clauses where (x, s) occurs}.
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
Equations
- One or more equations did not get rendered due to their size.
- DescriptiveComplexity.ExactCoverRed.instDecidableEqECTag.decEq DescriptiveComplexity.ExactCoverRed.ECTag.velt DescriptiveComplexity.ExactCoverRed.ECTag.velt = isTrue ⋯
- DescriptiveComplexity.ExactCoverRed.instDecidableEqECTag.decEq DescriptiveComplexity.ExactCoverRed.ECTag.velt (DescriptiveComplexity.ExactCoverRed.ECTag.lset s) = isFalse ⋯
- DescriptiveComplexity.ExactCoverRed.instDecidableEqECTag.decEq DescriptiveComplexity.ExactCoverRed.ECTag.celt DescriptiveComplexity.ExactCoverRed.ECTag.celt = isTrue ⋯
- DescriptiveComplexity.ExactCoverRed.instDecidableEqECTag.decEq DescriptiveComplexity.ExactCoverRed.ECTag.celt (DescriptiveComplexity.ExactCoverRed.ECTag.lset s) = isFalse ⋯
- DescriptiveComplexity.ExactCoverRed.instDecidableEqECTag.decEq (DescriptiveComplexity.ExactCoverRed.ECTag.lset s) DescriptiveComplexity.ExactCoverRed.ECTag.velt = isFalse ⋯
- DescriptiveComplexity.ExactCoverRed.instDecidableEqECTag.decEq (DescriptiveComplexity.ExactCoverRed.ECTag.lset s) DescriptiveComplexity.ExactCoverRed.ECTag.celt = isFalse ⋯
Instances For
Dependency graph
Equations
- One or more equations did not get rendered due to their size.
Dependency graph
Dependency graph
The interpretation #
Defining formula for the ground elements: the variables and the clauses.
Equations
- DescriptiveComplexity.ExactCoverRed.elemF DescriptiveComplexity.ExactCoverRed.ECTag.velt = ⊤
- DescriptiveComplexity.ExactCoverRed.elemF DescriptiveComplexity.ExactCoverRed.ECTag.celt = DescriptiveComplexity.ThreeSatToSat.clF (0, 0)
- DescriptiveComplexity.ExactCoverRed.elemF (DescriptiveComplexity.ExactCoverRed.ECTag.lset s) = ⊥
Instances For
Dependency graph
Defining formula for the family: one set per literal.
Equations
Instances For
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
- One or more equations did not get rendered due to their size.
- DescriptiveComplexity.ExactCoverRed.memF x✝¹ x✝ = ⊥
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.
Instances For
Dependency graph
Dependency graph
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.