Documentation

DescriptiveComplexity.Problems.Sat.CountingRestricted

#2SAT, #HORN-SAT, #Monotone-2SAT, and all the vertex covers of a graph #

The model counts of the CNF formulas of a restricted shape: DescriptiveComplexity.SharpTwoSAT (at most two literals per clause), DescriptiveComplexity.SharpHornSAT (at most one positive literal per clause) and DescriptiveComplexity.SharpMonotoneTwoSAT (at most two literals per clause, all positive), each #SAT restricted to a first-order definable class of formulas (DescriptiveComplexity.CountingProblem.restrict), and DescriptiveComplexity.SharpAllVertexCovers, the number of vertex covers of a graph. Deciding the first three is in PTIME; counting their models is one-call #P-complete (Valiant 1979).

The vertex covers of a graph are the complements of its independent sets, so the last problem is counting all the independent sets under another name (DescriptiveComplexity.sharpAllVertexCovers_eq). The three others are reached from it by one reduction with a sign (DescriptiveComplexity.edgeInterp): one clause per edge, holding its two ends as literals of that sign. With the negative sign the models are the independent sets, the formula is a 2-CNF and a Horn formula; with the positive sign the models are the vertex covers, the formula a monotone 2-CNF. In both cases the models are sets of non-isolated vertices, the variables of the formula, and each isolated vertex doubles the count of the graph: the post-processing multiplies by 2 to the number of isolated vertices.

The classes of formulas #

noncomputable def DescriptiveComplexity.occS {α : Type} (s : Bool) (c x : α) :

The literal (x, s) occurs in the clause c, over the vocabulary of CNF formulas.

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

    At most two literals per clause: among any three occurrences of a clause, two coincide.

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

      At most one positive literal per clause.

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

        No negative literal.

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

          No clause has a negative literal.

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

            The problems #

            #2SAT: the number of models of a CNF formula with at most two literals per clause, 0 on the other formulas.

            Equations
            Instances For
              Dependency graph

              #HORN-SAT: the number of models of a Horn formula, 0 on the other formulas.

              Equations
              Instances For
                Dependency graph

                #Monotone-2SAT: the number of models of a CNF formula with at most two literals per clause, all positive, 0 on the other formulas.

                Equations
                Instances For
                  Dependency graph

                  Graphs: independent sets and vertex covers #

                  An edge of a graph: two distinct adjacent vertices.

                  Equations
                  Instances For
                    Dependency graph

                    A vertex is not isolated: it is an end of an edge.

                    Equations
                    Instances For
                      Dependency graph

                      A vertex cover: every edge has an end in it.

                      Equations
                      Instances For
                        Dependency graph

                        The vertex covers are the complements of the independent sets.

                        Dependency graph

                        Counting all the vertex covers of a graph.

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

                          One clause per edge #

                          @[reducible, inline]

                          The adjacency symbol, over the ordered expansion.

                          Equations
                          Instances For
                            Dependency graph

                            The domain of the clauses: the edges.

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

                              One clause per edge, holding its two ends as literals of sign s: the tag true carries the clauses, on the edges, and the tag false the variables, on the diagonal.

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

                                x is isolated.

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

                                  The count of the graph is the model count of the formula of its edges, doubled for each isolated vertex.

                                  Dependency graph

                                  Counting all the independent sets reduces to #SAT with one call, the formula being one clause of sign s per edge.

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

                                    What the formula of the edges is #

                                    Dependency graph
                                    Dependency graph
                                    Dependency graph

                                    Completeness #

                                    Dependency graph
                                    Dependency graph
                                    Dependency graph