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 neighbour 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 four relation variables guessed by the Σ₁ definition of Steiner
Tree.
- set : SteinerGuess
The chosen set of vertices.
- root : SteinerGuess
The root of the chosen set.
- order : SteinerGuess
The order certifying connectivity.
- inj : SteinerGuess
The injection witnessing the threshold.
Instances For
Dependency graph
Dependency graph
Equations
- One or more equations did not get rendered due to their size.
Dependency graph
The single existential block of the Σ₁ definition of Steiner Tree.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The symbol of the chosen-set relation variable.
Equations
Instances For
Dependency graph
The symbol of the root relation variable.
Equations
Instances For
Dependency graph
The symbol of the order relation variable.
Equations
Instances For
Dependency graph
The symbol of the injection relation variable.
Equations
Instances For
Dependency graph
The vocabulary of the kernel.
Equations
Instances For
Dependency graph
The adjacency symbol in the kernel's vocabulary.
Instances For
Dependency graph
The terminal symbol in the kernel's vocabulary.
Instances For
Dependency graph
The mark symbol in the kernel's vocabulary.
Instances For
Dependency graph
The chosen-set symbol in the kernel's vocabulary.
Instances For
Dependency graph
The root symbol in the kernel's vocabulary.
Instances For
Dependency graph
The order symbol in the kernel's vocabulary.
Instances For
Dependency graph
The injection symbol in the kernel's vocabulary.
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.
The five relation variables guessed by the Σ₁ definition of the
edge-weighted Steiner tree.
- tree : EdgeSteinerGuess
The chosen set of edges.
- set : EdgeSteinerGuess
The chosen set of vertices.
- root : EdgeSteinerGuess
The root of the chosen set.
- order : EdgeSteinerGuess
The order certifying connectivity.
- inj : EdgeSteinerGuess
The injection witnessing the threshold.
Instances For
Dependency graph
Dependency graph
Equations
- One or more equations did not get rendered due to their size.
Dependency graph
The single existential block 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 symbol of the edge-set relation variable.
Equations
Instances For
Dependency graph
The symbol of the chosen-set relation variable.
Equations
Instances For
Dependency graph
The symbol of the root relation variable.
Equations
Instances For
Dependency graph
The symbol of the order relation variable.
Equations
Instances For
Dependency graph
The symbol of the injection relation variable.
Equations
Instances For
Dependency graph
The vocabulary of the edge-weighted kernel.
Equations
Instances For
Dependency graph
The adjacency symbol in the edge-weighted kernel's vocabulary.
Instances For
Dependency graph
The terminal symbol in the edge-weighted kernel's vocabulary.
Instances For
Dependency graph
The mark symbol in the edge-weighted kernel's vocabulary.
Instances For
Dependency graph
The edge-set symbol in the edge-weighted kernel's vocabulary.
Instances For
Dependency graph
The chosen-set symbol in the edge-weighted kernel's vocabulary.
Instances For
Dependency graph
The root symbol in the edge-weighted kernel's vocabulary.
Instances For
Dependency graph
The order symbol in the edge-weighted kernel's vocabulary.
Instances For
Dependency graph
The injection symbol in the edge-weighted kernel's vocabulary.
Instances For
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.