Documentation

DescriptiveComplexity.Problems.Hamilton.CountingHardness

#Directed Hamilton Circuit is parsimoniously #P-complete #

DescriptiveComplexity.sharpDirHamCircuit_sharpP_parsimoniousComplete, by a relativized reduction from #1-in-SAT (DescriptiveComplexity.sharpOneInSat_rel_ordered_parsimonious_sharpDirHamCircuit).

The mathematics is in the three files before this one: the row graph of a CNF formula (DescriptiveComplexity.Problems.Hamilton.CountingGadget) has exactly the exactly-one models of the formula as Hamilton circuits (DescriptiveComplexity.HamGadget.modelEquiv). What is left is to draw that graph in the formula, first-order: a vertex is a tag and a pair of elements (DescriptiveComplexity.HamGadget.toVtx), the vertices that exist are cut out by the domain formula of a relativized interpretation (DescriptiveComplexity.HamGadget.domF), and an arc is a formula on two such pairs (DescriptiveComplexity.HamGadget.stepF). The interpreted universe is then the vertex type of the row graph, arcs included (DescriptiveComplexity.HamGadget.vtxEquiv, DescriptiveComplexity.HamGadget.dgArc_iff).

The reduction is relativized because a circuit spans the universe: a tagged pair that is no vertex would have to lie on every circuit. It is ordered because the rows are: the occurrences of a variable are laid out in the order of the instance, and so are the variables.

Tags of the interpretation: the kinds of vertices of the row graph.

  • top : HTag

    The entry of a row.

  • lft : HTag

    The left end of a row.

  • rgt : HTag

    The right end of a row.

  • pad0 : HTag

    The first padding of a row.

  • ain (s : Bool) : HTag

    The left vertex of an occurrence of sign s.

  • bout (s : Bool) : HTag

    The right vertex of an occurrence of sign s.

  • pad (s : Bool) : HTag

    The padding after an occurrence of sign s.

  • cls : HTag

    A clause vertex.

  • zero : HTag

    The vertex of a formula with no clause.

Instances For
    Dependency graph
    Equations
    Instances For
      Dependency graph
      Dependency graph
      Dependency graph
      Dependency graph

      The formulas #

      noncomputable def DescriptiveComplexity.HamGadget.varF {α : Type} (x : α) :

      x is a variable of the formula, as a formula.

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

        DescriptiveComplexity.HamGadget.VFirst, as a formula.

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

          DescriptiveComplexity.HamGadget.VLast, as a formula.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            Dependency graph
            noncomputable def DescriptiveComplexity.HamGadget.vStepF {α : Type} (x y : α) :

            DescriptiveComplexity.HamGadget.VStep, as a formula.

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

              A sign condition, as a formula.

              Equations
              Instances For
                Dependency graph
                Dependency graph

                The arc formulas, by tags: DescriptiveComplexity.HamGadget.Step, drawn. The free variable (i, j) is the j-th component of the i-th vertex.

                Equations
                Instances For
                  Dependency graph

                  The relativized interpretation drawing the row graph of a CNF formula.

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

                    Realization #

                    Which pairs of elements are vertices, by tag.

                    Equations
                    Instances For
                      Dependency graph
                      Dependency graph

                      The interpreted universe is the vertex type of the row graph #

                      Dependency graph

                      The vertex of a point of the interpreted universe.

                      Equations
                      Instances For
                        Dependency graph
                        Dependency graph
                        Dependency graph

                        The interpreted universe is the vertex type of the row graph.

                        Equations
                        Instances For
                          Dependency graph

                          The interpreted arcs are the arcs of the row graph.

                          Dependency graph
                          Dependency graph

                          #1-in-SAT reduces parsimoniously to #Directed Hamilton Circuit, by a relativized interpretation: the tagged pairs that are no vertex of the row graph are left out of the universe.

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

                            #Directed Hamilton Circuit is parsimoniously #P-complete: counting the Hamilton circuits of a digraph. Registered in the Lax archive as Lax280166.DirHamCircuitComplete.sharpDirHamCircuit_sharpP_parsimoniousComplete.

                            Dependency graph

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

                            Dependency graph