Documentation

DescriptiveComplexity.Problems.Steiner.Membership

Steiner Tree is existential second-order definable #

The membership half of its NP-completeness (DescriptiveComplexity.steinerTree_sigmaSODefinable). The existential block guesses four relations – the chosen set, a root, a strict partial order certifying connectivity, and an injection of the chosen non-terminals into the marked set – and the first-order kernel checks the eight conditions of DescriptiveComplexity.steinerOn_iff_certificate.

The interesting one is connectivity, which is a transitive-closure condition and hence not first-order. What is guessed instead is a root – as a relation constrained to hold of at most one element, since the empty set is connected and has no root – together with an order in which every other chosen vertex has a chosen neighbor strictly below it. Walking down the order reaches the root; that is the same certificate idea as for acyclicity in DescriptiveComplexity.Problems.Feedback, run in the opposite direction.

The relation variables of the block.

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

    The adj symbol over the sum.

    Equations
    Instances For
      Dependency graph
      @[reducible, inline]

      The vocabulary of the kernel: the instance expanded by the block.

      Equations
      Instances For
        Dependency graph
        Dependency graph
        Dependency graph
        Dependency graph

        The single existential block of the Σ₁ definition of Steiner Tree: its four relation variables.

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

          The marked symbol over the sum.

          Equations
          Instances For
            Dependency graph

            The clauses #

            The first-order kernel of the Σ₁ definition of Steiner Tree.

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

              Realization #

              Steiner Tree is Σ₁-definable: guess the chosen set, its root, an order certifying that it is connected, and an injection of its non-terminals into the marked set, then check the eight conditions first-order.

              Dependency graph

              The edge-weighted variant #

              The same certificate, plus the edge set itself, and with the threshold injection mapping pairs to elements – hence a ternary relation variable, for which DescriptiveComplexity.realize_rel₃ (DescriptiveComplexity.Interpretation) plays the role Mathlib's Formula.realize_rel₁/ play at lower arity.

              Dependency graph
              Dependency graph
              @[reducible, inline]

              The adj symbol over the sum.

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

                The single existential block of the Σ₁ definition of the edge-weighted Steiner tree: its five relation variables.

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

                  The relation variables of the block.

                  Instances For
                    Dependency graph
                    Dependency graph

                    The first-order kernel of the Σ₁ definition of the edge-weighted Steiner tree.

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

                      The edge-weighted Steiner Tree is Σ₁-definable: guess the edge set, the vertices it spans, a root, an order certifying connectivity, and an injection of the chosen edges into the marked set.

                      Dependency graph