Documentation

DescriptiveComplexity.Problems.Sat.CountingDnf

#DNF: counting the models of a DNF formula #

The number of models of a formula in disjunctive normal form, on the vocabulary of SAT read disjunctively as for DescriptiveComplexity.TAUT: a model is a set of variables of the formula making every literal of some term true (DescriptiveComplexity.DnfModel).

Deciding whether a DNF formula has a model is easy – it has one exactly when some term contains no variable both positively and negatively – so #DNF is not parsimoniously #P-hard unless P = NP. It is the first problem of the catalog that is not parsimoniously complete:

This is the reduction of Durand, Hermann, Kolaitis 2005 (Proposition 3.4), where it is the example of a strong subtractive reduction: the difference of the counts at a tautology and at the negated formula, the models of the second being among those of the first. So #DNF is also complete under subtractive reductions, a notion under which #P is closed: that stronger statement is DescriptiveComplexity.sharpDnf_sharpP_complete, in DescriptiveComplexity.Problems.Sat.CountingDnfSubtractive.

Models of a DNF formula #

The set ν of true variables is a model of the DNF formula: it makes every literal of some term true, and consists of variables of the formula.

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

    The kernel #

    Kernel conjunct: some term has all its literals true.

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

      The first-order kernel of #DNF: some term is true, and the truth assignment only holds of variables of the formula.

      Equations
      Instances For
        Dependency graph

        The counting problem #

        The number of models of a DNF formula is the number of witnesses of the kernel of #DNF.

        Dependency graph

        #DNF: the number of models of a DNF formula.

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

          #DNF is in #P: the models of a DNF formula are the witnesses of an existential second-order sentence.

          Dependency graph

          De Morgan: the non-models of a CNF formula #

          De Morgan's law, for models: the models of the DNF formula B, the sign swap of the CNF formula A, are the sets of variables of A that are not models of A.

          Dependency graph
          Dependency graph

          The reduction #

          “x is a variable of the formula”: it occurs in some clause.

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

            #SAT reduces to #DNF with one call: #SAT(φ) = 2 ^ n - #DNF(¬φ), for n the number of variables of φ.

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

              #DNF is one-call #P-complete (Durand, Hermann, Kolaitis 2005): in #P, and every problem of #P reduces to it with one call. Registered in the Lax archive as Lax859101.DnfComplete.sharpDnf_sharpP_oneCallComplete.

              Dependency graph