Documentation

DescriptiveComplexity.Problems.Steiner.Reductions

Vertex Cover reduces to Steiner Tree #

The classical reduction, read in the tagged framework (DescriptiveComplexity.steinerInterp, tag Fin 3, dimension 2): a marked graph becomes the bipartite incidence structure of its edges, plus a root joined to every vertex.

A connected set containing all terminals must join every edge-terminal to the root, and an edge's only neighbors are its two endpoints, so the vertices it uses form a vertex cover; conversely a vertex cover joins every edge to the root through one of its endpoints. Since vertices are the only non-terminals, the budget counts exactly the cover, and the marked diagonal transports the threshold unchanged.

The root is a single fresh element, so – as for the fresh variable of DescriptiveComplexity.Problems.NaeSat – this is an ordered reduction: an interpretation adds elements only by tags, and a tag contributes a whole copy of the universe, so the root has to be picked out inside its copy as the minimum (DescriptiveComplexity.minF).

@[reducible, inline]

The adjacency symbol over the ordered expansion of marked graphs.

Equations
Instances For
    Dependency graph
    @[reducible, inline]

    The mark symbol over the ordered expansion of marked graphs.

    Equations
    Instances For
      Dependency graph

      “The pair is an edge of the input”, as a formula on the coordinates of the i-th argument.

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

        “The pair is diagonal”, as a formula on the coordinates of the i-th argument.

        Equations
        Instances For
          Dependency graph

          The three sorts of point of the interpreted structure. Tags built from constructors, rather than Fin 3, so that the tag match inside the defining formulas reduces definitionally in the characterization proofs.

          • vertex : SteinerTag

            A vertex of the input graph, carried by the diagonal.

          • edge : SteinerTag

            An edge of the input graph, carried by an adjacent off-diagonal pair.

          • root : SteinerTag

            The root, carried by the diagonal of the minimum.

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

            The interpretation of Vertex Cover into Steiner Tree.

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

              The point carrying the vertex v.

              Equations
              Instances For
                Dependency graph

                The point carrying the (oriented) edge (u, v).

                Equations
                Instances For
                  Dependency graph

                  The point carrying the root, at the minimum m.

                  Equations
                  Instances For
                    Dependency graph

                    Shapes #

                    The three master characterizations, from which the point-level lemmas above and the case analyses of the correctness proof follow.

                    @[simp]
                    Dependency graph
                    Dependency graph
                    Dependency graph
                    Dependency graph
                    Dependency graph
                    Dependency graph

                    Counting on the vertex points #

                    The two halves of the correspondence, set by set #

                    Correctness #

                    Correctness of the interpretation: a graph has a vertex cover at most as large as its marked set iff the associated incidence structure has a Steiner tree of the same budget.

                    Dependency graph

                    Vertex Cover ordered-FO-reduces to Steiner Tree: the edges become the terminals, the vertices the available Steiner points, and the minimum of a spare copy the root joining them all.

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

                      The edge-weighted variant #

                      The same construction, with one clause changed: the marked set must now count k plus one unit per edge point, since a Steiner tree of the incidence structure spends one edge joining each edge point to an endpoint before it can spend anything on the cover. Marking the edge points themselves is exactly that budget, and it needs no arithmetic in the formulas.

                      The interpretation of Vertex Cover into the edge-weighted Steiner Tree: as DescriptiveComplexity.steinerInterp, but the marked set also contains every edge point.

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

                        The vertex point of the edge-weighted interpretation.

                        Equations
                        Instances For
                          Dependency graph

                          The edge point of the edge-weighted interpretation.

                          Equations
                          Instances For
                            Dependency graph

                            The root point of the edge-weighted interpretation.

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

                              Correctness of the edge-weighted reduction #

                              The edge points of the interpreted structure: what the marked set pays for before any cover.

                              Equations
                              Instances For
                                Dependency graph

                                Correctness of the edge-weighted interpretation: a graph has a vertex cover at most as large as its marked set iff the associated incidence structure has an edge-weighted Steiner tree within the enlarged budget.

                                Dependency graph

                                Vertex Cover ordered-FO-reduces to the edge-weighted Steiner Tree: Karp's original reading of the problem, with the budget enlarged by one unit per edge point – the price of attaching each terminal to the tree.

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