Lemma 3.7 — every distance label stays at most
ProvedGoldbergTarjan.Generic.run_label_leLet be a flow network with vertices and let be an execution of the generic algorithm, started from the initial state of Fig. 2 with the simple labeling. Then at any time and for any vertex,
In particular all labels stay finite. This is the key amortization bound of the paper: it bounds the number of relabelings (Lemma 3.8) and, through them, the numbers of saturating and nonsaturating pushes.
import Mathlib import Definitions.Def_GoldbergTarjan_Generic_Run
namespace GoldbergTarjan.Generic
/-- Lemma 3.7 (Goldberg–Tarjan 1988, p. 927). At any time during the execution of the
algorithm and for any vertex `v ∈ V`, `d(v) ≤ 2n - 1`, where `n = |V|`. -/
theorem run_label_le {V : Type} [Fintype V] [DecidableEq V]
(N : Network V) (σ : ℕ → State V) (K : ℕ) (hrun : IsRun N σ K) :
∀ k ≤ K, ∀ v : V, (σ k).2 v ≤ ((2 * Fintype.card V - 1 : ℕ) : ℕ∞) := by sorry
end GoldbergTarjan.Generic
Read-back
What the Lean code literally says, in plain math · claude-opus-5-5
The statement concerns an arbitrary finite type with decidable equality, , a network , a sequence of states , and .
Hypothesis. is a run of length : it starts at the initial state, and each of the first steps is an applicable push or relabel.
Conclusion. For every and every vertex :
In particular, every label along the run is finite; none equals .
Degenerate cases. The bound is computed with truncated natural-number subtraction. Since forces , the truncation never takes effect, and the bound is at least . For , the statement concerns only the initial labels, which are at and elsewhere.
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.