Documentation

DescriptiveComplexity.Problems.SetSplitting

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:

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 variable x.

  • clSet : SplTag

    The set of the literals of a clause.

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

      Equations
      Instances For
        Dependency graph
        theorem DescriptiveComplexity.SetSplitRed.splPt_eq_iff {A : Type} {t t' : SplTag} {x x' : A} :
        splPt t x = splPt t' x' t = t' x = x'
        Dependency graph
        theorem DescriptiveComplexity.SetSplitRed.splPt_surj {A : Type} (q : splInterp.Map A) :
        ∃ (t : SplTag) (x : A), q = splPt 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 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.

          Dependency graph