Documentation

DescriptiveComplexity.Problems.DominatingSet.CountingHardness

#Dominating Set is parsimoniously #P-complete #

DescriptiveComplexity.sharpDominatingSet_sharpP_parsimoniousComplete, by a reduction from #SAT (DescriptiveComplexity.sharpSat_parsimonious_sharpDominatingSet), order-free.

The reduction of DescriptiveComplexity.Problems.DominatingSet.Reduction, from Set Cover, is not parsimonious, and cannot be made so by adjusting it: a dominating set may hold element vertices, and a cover smaller than the threshold can be padded with one. What a count of dominating sets of a given size needs is a graph in which that size leaves no slack. Here:

A private vertex is dominated from within the four vertices of its variable, so a dominating set meets each such group, and at the threshold size it meets each exactly once and holds nothing else. The one vertex of a group has to dominate both private vertices, which are not adjacent: it is a literal vertex (DescriptiveComplexity.SatToDom.dom_structure). So the dominating sets of the threshold size are the assignments of the variables of the formula, and dominating the clause vertices is satisfying the clauses (DescriptiveComplexity.SatToDom.solEquiv).

Junk – a tagged element that is not a variable, or not a clause – has to be dominated too, and is made adjacent to every literal vertex. That needs a literal vertex in the set, which a formula with a clause provides; a formula with no clause at all has one model, and is sent to the edgeless graph with everything marked, which has one dominating set of the threshold size (DescriptiveComplexity.SatToDom.NoCl).

Tags of the reduction.

  • lit (s : Bool) : SDTag

    The vertex of the literal of sign s of a variable.

  • priv (b : Bool) : SDTag

    One of the two private vertices of a variable.

  • cl : SDTag

    The vertex 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 semantic side #

    Dependency graph

    The formulas and the interpretation #

    Dependency graph
    noncomputable def DescriptiveComplexity.SatToDom.targetF {α : Type} (s : Bool) (x : α) :

    DescriptiveComplexity.SatToDom.Target, as a formula.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      Dependency graph
      noncomputable def DescriptiveComplexity.SatToDom.litDomF {α : Type} :
      SDTag → α → SDTag → α → FirstOrder.Language.sat.Formula α

      DescriptiveComplexity.SatToDom.LitDom, as a formula.

      Equations
      Instances For
        Dependency graph

        The adjacency formulas of the interpretation, by tag.

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

          The mark formulas of the interpretation, by tag.

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

            The interpretation producing, from a CNF structure, the graph whose dominating sets of the threshold size are its models.

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

              The points #

              The vertex of tag t over the element x.

              Equations
              Instances For
                Dependency graph

                Characterization of the two relations #

                The two sides of the bijection #

                The dominating set of an assignment: the vertices of its true literals – or everything, when there is no clause.

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

                  The assignment of a dominating set: the variables whose positive literal vertex it holds.

                  Equations
                  Instances For
                    Dependency graph

                    Correctness #

                    The dominating set of a model is one, of the threshold size.

                    Dependency graph
                    theorem DescriptiveComplexity.SatToDom.dom_structure {A : Type} [FirstOrder.Language.sat.Structure A] [Finite A] (hne : ¬NoCl A) {D : sdInterp.Map A → Prop} (hD : DomSetOfSize (sdInterp.Map A) D) :
                    (∀ (t : SDTag) (x : A), D (sdPt t x) → ∃ (s : Bool), t = SDTag.lit s ∧ SatOccurs A x) ∧ (∀ (x : A), SatOccurs A x → ∃ (s : Bool), D (sdPt (SDTag.lit s) x)) ∧ ∀ (t t' : SDTag) (x : A), D (sdPt t x) → D (sdPt t' x) → t = t'

                    A dominating set of the threshold size is an assignment: it consists of literal vertices of variables, one per variable.

                    Dependency graph

                    The assignment of a dominating set of the threshold size is a model.

                    Dependency graph

                    A dominating set of the threshold size is the dominating set of its assignment.

                    Dependency graph

                    A model is the assignment of its dominating set.

                    Dependency graph

                    The dominating sets of the threshold size of the interpreted graph are the models of the CNF formula, bijectively.

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

                      #SAT reduces parsimoniously to #Dominating Set, without an order.

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

                        #Dominating Set is parsimoniously #P-complete, counting the dominating sets of exactly the threshold size. Registered in the Lax archive as Lax280166.DominatingSetComplete.sharpDominatingSet_sharpP_parsimoniousComplete.

                        Dependency graph

                        SharpDominatingSet is #P-complete: parsimoniously, hence under subtractive reductions.

                        Dependency graph