Theorem 1 — the branch of a Steiner tree through is a Steiner tree for
ProvedDreyfusWagner.Steiner.theorem1_branch_isSteinerTreeLet be a finite connected undirected graph whose arcs have positive lengths, let , and let be a Steiner tree connecting . Let be a node touching an arc of , let be the set of arcs of touching , and let . Let be the set of nodes of reachable from along paths in whose first arc lies in , and put . Then
In words: cutting a Steiner tree at any of its nodes and keeping the branches through a chosen set of arcs at that node gives an optimal Steiner tree for the terminals on those branches together with the cut node. Dreyfus and Wagner use this to view Steiner trees as collections of optimal subtrees joined at their roots, which is the first half of the proof of the Optimal Decomposition Theorem.
Formalization Note "The arcs of involved in connecting the nodes of " is read as the set of arcs of lying on some path in from to a node of (see the definition of the branch). The paper writes for a not necessarily proper subset; the statement uses , so (branch empty, ) and are included.
import Mathlib import Definitions.Def_DreyfusWagner_Steiner_SteinerProblem import Definitions.Def_DreyfusWagner_Steiner_Branch
namespace DreyfusWagner.Steiner
/-- Dreyfus–Wagner 1971, Appendix A, Theorem 1, p. 206: for a Steiner tree `S` connecting `Y`, a
node `x` touching an arc of `S` and a set `C ⊆ B(x)` of arcs of `S` at `x`, the arcs of `S`
involved in connecting `Y_C = Y_C(x) ∪ {x}` form a Steiner tree connecting `Y_C`. -/
theorem theorem1_branch_isSteinerTree {V : Type*} [Fintype V] [DecidableEq V]
(G : SimpleGraph V) [DecidableRel G.Adj] (ℓ : Sym2 V → ℝ)
(hpos : ∀ e ∈ G.edgeSet, 0 < ℓ e) (hconn : G.Connected)
(Y : Finset V) (S : Finset (Sym2 V)) (hS : IsSteinerTree G ℓ Y S)
(x : V) (hx : ∃ e ∈ S, x ∈ e) (C : Finset (Sym2 V)) (hC : C ⊆ touchingArcs S x) :
IsSteinerTree G ℓ (insert x (reachVia Y S x C)) (branchArcs Y S x C) := by sorry
end DreyfusWagner.Steiner
Read-back
What the Lean code literally says, in plain math · claude-opus-5-5
Let be a finite node type with decidable equality, a connected simple graph on with edge set , and a length function with for every . The hypotheses are:
- is a finite node set and is a Steiner tree for . That is, , joins every two nodes of in the graph formed by its arcs, and has minimum total length among all subsets of with that property.
- is a node that lies on at least one arc of . It need not belong to .
- is a set of arcs with .
Define two sets:
- is the set of reachable from by a path in that repeats no node, has at least one arc, and has its first arc in .
- is the set of arcs of that lie on some node-repeat-free path in from to some . That path need not begin with an arc of .
The conclusion is that is a Steiner tree for the node set in . That is:
- ;
- connects ;
- has total length that of every subset of connecting .
Degenerate cases. If , then and . The claim then says that is a Steiner tree for , which, since lengths on are positive, holds exactly as the minimum-length set. If is empty or a singleton, positive lengths force . The hypothesis that touches an arc of is then unsatisfiable, and the statement is vacuous.
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.