Lemma 2.1 — at an active vertex either a push or a relabel applies
ProvedGoldbergTarjan.Generic.push_or_relabel_applicableLet be a flow network, let be a preflow, let be a valid labeling for , and let be an active vertex (, , ). Then
Lemma 2.1 links the two notions of termination: when no basic operation applies, there is no active vertex. It is used in the proof of Theorem 3.4.
import Mathlib import Definitions.Def_GoldbergTarjan_Generic_Operations
namespace GoldbergTarjan.Generic
/-- Lemma 2.1 (Goldberg–Tarjan 1988, p. 925). If `f` is a preflow, `d` is any valid labeling
for `f`, and `v` is any active vertex, then either a push or a relabel operation is applicable
to `v`. -/
theorem push_or_relabel_applicable {V : Type} [Fintype V] [DecidableEq V]
(N : Network V) (f : V → V → ℝ) (d : V → ℕ∞) (v : V)
(hf : IsPreflow N f) (hd : IsValidLabeling N f d) (hv : IsActive N f d v) :
(∃ w, PushApplicable N f d v w) ∨ RelabelApplicable N f d v := 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 on , a real function on , a labeling , and a vertex . Recall that has capacities with , a source , and a sink . Three hypotheses are assumed.
- is a preflow:
- ;
- ;
- for all .
- is a valid labeling for : , , and whenever .
- is active: , , , and .
Conclusion. At least one of the following holds:
- there exists a vertex such that is applicable, meaning is active, , and ; or
- is applicable, meaning is active and for every with .
Degenerate cases. Because , the hypotheses force ; on an empty or one-element no network exists and the statement is vacuous. The hypotheses are jointly satisfiable only when some vertex other than exists, so ; for no vertex is active and the statement is vacuous. If has no outgoing residual edge, the relabel condition holds vacuously.
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.