Set Splitting is NP-complete #
SET SPLITTING, also known as hypergraph 2-colourability: can the ground
elements of a set system be coloured with two colours so that no set of the
family is monochromatic? Like Exact Cover it lives on
FirstOrder.Language.setSystem unchanged (DescriptiveComplexity.SetSplitting,
DescriptiveComplexity.Problems.SetFamily.Defs) and carries no threshold – the
colouring, not a cardinality, is the whole question.
Hardness comes from NAE-SAT (DescriptiveComplexity.Problems.NaeSat) by a reduction
with no gadget and no counting, order-free and of dimension 1:
- the ground elements are the literals
(x, s); - the family has one set
{x, ¬x}per variable, and one set per clause, holding its literals.
A two-colouring splits the pair {x, ¬x} exactly when it gives the two
literals of x opposite colours – that is a truth assignment – and it
splits a clause set exactly when the clause has both a true and a false
literal, which is not-all-equal satisfaction. The correspondence is so direct
that the reduction is essentially the identity on clauses; only the pair sets
are new, and they are what turns an arbitrary colouring into an assignment.
Tags of the reduction: the ground element of a literal, the set of a variable, and the set of a clause.
- lit
(s : Bool)
: SplTag
The ground element of the literal
(x, s). - pairSet : SplTag
The set
{x, ¬x}of the variablex. - clSet : SplTag
The set of the literals of a clause.
Instances For
Dependency graph
Dependency graph
Equations
- One or more equations did not get rendered due to their size.
- DescriptiveComplexity.SetSplitRed.instDecidableEqSplTag.decEq (DescriptiveComplexity.SetSplitRed.SplTag.lit s) DescriptiveComplexity.SetSplitRed.SplTag.pairSet = isFalse ⋯
- DescriptiveComplexity.SetSplitRed.instDecidableEqSplTag.decEq (DescriptiveComplexity.SetSplitRed.SplTag.lit s) DescriptiveComplexity.SetSplitRed.SplTag.clSet = isFalse ⋯
- DescriptiveComplexity.SetSplitRed.instDecidableEqSplTag.decEq DescriptiveComplexity.SetSplitRed.SplTag.pairSet (DescriptiveComplexity.SetSplitRed.SplTag.lit s) = isFalse ⋯
- DescriptiveComplexity.SetSplitRed.instDecidableEqSplTag.decEq DescriptiveComplexity.SetSplitRed.SplTag.pairSet DescriptiveComplexity.SetSplitRed.SplTag.pairSet = isTrue ⋯
- DescriptiveComplexity.SetSplitRed.instDecidableEqSplTag.decEq DescriptiveComplexity.SetSplitRed.SplTag.clSet (DescriptiveComplexity.SetSplitRed.SplTag.lit s) = isFalse ⋯
- DescriptiveComplexity.SetSplitRed.instDecidableEqSplTag.decEq DescriptiveComplexity.SetSplitRed.SplTag.clSet DescriptiveComplexity.SetSplitRed.SplTag.clSet = isTrue ⋯
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 literals.
Equations
Instances For
Dependency graph
Defining formula for the family: one set per variable and one per clause.
Equations
- DescriptiveComplexity.SetSplitRed.famF DescriptiveComplexity.SetSplitRed.SplTag.pairSet = ⊤
- DescriptiveComplexity.SetSplitRed.famF DescriptiveComplexity.SetSplitRed.SplTag.clSet = DescriptiveComplexity.ThreeSatToSat.clF (0, 0)
- DescriptiveComplexity.SetSplitRed.famF (DescriptiveComplexity.SetSplitRed.SplTag.lit s) = ⊥
Instances For
Dependency graph
Defining formula for incidence: the pair set of x holds both literals of
x, and the set of a clause holds the literals occurring in it.
Equations
- DescriptiveComplexity.SetSplitRed.memF (DescriptiveComplexity.SetSplitRed.SplTag.lit s) DescriptiveComplexity.SetSplitRed.SplTag.pairSet = DescriptiveComplexity.ThreeSatToSat.eqF (0, 0) (1, 0)
- DescriptiveComplexity.SetSplitRed.memF (DescriptiveComplexity.SetSplitRed.SplTag.lit s) DescriptiveComplexity.SetSplitRed.SplTag.clSet = DescriptiveComplexity.ThreeSatToSat.occF s (1, 0) (0, 0)
- DescriptiveComplexity.SetSplitRed.memF x✝¹ x✝ = ⊥
Instances For
Dependency graph
The interpretation of Set Splitting 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 ground elements are exactly the literals.
Dependency graph
The sets of the family are the pair sets and the clause sets.
Dependency graph
Correctness #
Correctness of the reduction: a CNF structure is not-all-equal satisfiable iff its literal set system can be split.
Dependency graph
NAE-SAT FO-reduces to Set Splitting: the ground elements are the literals, the family holds one pair set per variable and one set per clause. 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 #
Set Splitting is in NP: it is Σ₁-definable.
Dependency graph
Set Splitting is NP-hard: NAE-SAT, which is NP-hard, FO-reduces to it.
Dependency graph
Set Splitting is NP-complete, derived from the first-order reductions of this library and the Cook–Levin theorem.