Documentation

DescriptiveComplexity.Problems.Hamilton.Defs

Hamilton circuits: definitions #

DIRECTED HAMILTON CIRCUIT and (undirected) HAMILTON CIRCUIT (Karp 1972): does a graph have a circuit visiting every vertex exactly once? Both live on the same vocabulary FirstOrder.Language.digraph, a single binary relation arc; the undirected problem reads that relation symmetrically (DescriptiveComplexity.DGEdge), which is the honest reading of an undirected graph presented by a possibly asymmetric edge relation.

A circuit is a linear order #

A Hamilton circuit is a cyclic enumeration of the universe, and cutting it anywhere turns it into a linear order whose consecutive elements are adjacent and whose last element is adjacent to its first (DescriptiveComplexity.TourOn). That reading is what makes the problem Σ₁: a relation is what an existential second-order block can guess, and “being a linear order”, “being the immediate successor” and the two adjacency demands are first-order. It is the same device the job-sequencing certificate uses for its schedule, one dimension down: there the order is a sequence of the universe, here it is a cycle of it.

On the empty universe every condition is vacuous, so the empty graph counts as a yes-instance; on a one-element universe the wrap-around demand becomes a self-loop, which is the usual convention.

Relation symbols of the language of digraphs.

Instances For
    Dependency graph
    Dependency graph
    Dependency graph

    The relational language of digraphs: one binary relation. The undirected problem reads it symmetrically rather than on a vocabulary of its own.

    Equations
    Instances For
      Dependency graph
      Dependency graph
      @[reducible, inline]

      The arc symbol of digraphs.

      Equations
      Instances For
        Dependency graph

        Tours of a relation #

        def DescriptiveComplexity.SuccOf {A : Type} (Le : AAProp) (x y : A) :

        y is the immediate Le-successor of x: above it, distinct from it, and with nothing strictly in between.

        Equations
        Instances For
          Dependency graph
          def DescriptiveComplexity.TourOn {A : Type} (R : AAProp) :

          A tour of a relation: a linear order of the universe whose consecutive elements are related and whose last element is related to its first. On a finite universe this is exactly a Hamilton circuit, cut open at one place.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            Dependency graph
            theorem DescriptiveComplexity.succOf_equiv {A B : Type} (u : A B) {Le : AAProp} {x y : A} :
            SuccOf (fun (b b' : B) => Le (u.symm b) (u.symm b')) (u x) (u y) SuccOf Le x y

            Being the immediate successor transports along an equivalence.

            Dependency graph
            theorem DescriptiveComplexity.tourOn_of_equiv {A B : Type} (u : A B) {RA : AAProp} {RB : BBProp} (hR : ∀ (a a' : A), RA a a' RB (u a) (u a')) (h : TourOn RA) :

            Having a tour transports along an equivalence commuting with the two relations.

            Dependency graph

            The two problems #

            Dependency graph

            There is an edge between a and b: the arc relation read symmetrically, which is how the undirected problem reads its instance.

            Equations
            Instances For
              Dependency graph

              A digraph is a yes-instance of DIRECTED HAMILTON CIRCUIT when its arcs carry a tour of the universe.

              Equations
              Instances For
                Dependency graph

                A graph is a yes-instance of HAMILTON CIRCUIT when its edges – the arcs read symmetrically – carry a tour of the universe.

                Equations
                Instances For
                  Dependency graph
                  Dependency graph
                  Dependency graph

                  DIRECTED HAMILTON CIRCUIT, as a problem on digraphs: is there a circuit following the arcs and visiting every vertex exactly once?

                  Equations
                  Instances For
                    Dependency graph

                    HAMILTON CIRCUIT, as a problem on digraphs read symmetrically: is there a circuit following the edges and visiting every vertex exactly once?

                    Equations
                    Instances For
                      Dependency graph