Prove2Me
Navigate
DiscoverFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Theorem 3.2 — the simplex method terminates under the lexicographic rule

Open
VanderbeiLP.Simplex.lexicographic_rule_terminates

by mikedeng1 · Oct 1, 2026 · Mathlib 0df444a (Lean v4.33.1)

anticyclinglexicographic-rulelinear-programmingp2o-batch-b23ap2o-gran-per-chapterp2o-plan-bookp2o-v1simplex-method

Consider a standard-form linear program with data A∈Rm×nA \in \mathbb{R}^{m\times n}A∈Rm×n, b∈Rmb\in\mathbb{R}^mb∈Rm, c∈Rnc \in \mathbb{R}^nc∈Rn, and a feasible dictionary D0D_0D0​. Run the simplex method from D0D_0D0​ with any entering candidate at each step and the leaving variable selected by the lexicographic rule: the right-hand sides of D0D_0D0​ are perturbed by symbols 0<ϵm≪⋯≪ϵ1≪0 < \epsilon_m \ll \dots \ll \epsilon_1 \ll0<ϵm​≪⋯≪ϵ1​≪ all data, and the leaving variable minimizes the perturbed ratio. Then the method terminates: there is no infinite sequence

D0→D1→D2→⋯D_0 \to D_1 \to D_2 \to \cdotsD0​→D1​→D2​→⋯

of such pivots.

The lexicographic rule is the first of the two anticycling rules of the chapter; it fixes the leaving variable and leaves the entering variable free.

Formalization Note The symbolic perturbation is encoded by the coefficient vectors (bˉi,ri1,…,rim)(\bar b_i, r_{i1},\dots,r_{im})(bˉi​,ri1​,…,rim​) compared lexicographically (see the definition PivotRules); no real value of ϵ\epsilonϵ is fixed. The ppp-th symbol is attached in D0D_0D0​ to the row of its ppp-th basic variable in increasing index order.

Preamble
import Mathlib
import Definitions.Def_VanderbeiLP_Simplex_Dictionary
import Definitions.Def_VanderbeiLP_Simplex_PivotRules
Formal statement
namespace VanderbeiLP.Simplex

/-- **Vanderbei, Theorem 3.2 (p. 30).** The simplex method always terminates provided that the
leaving variable is selected by the lexicographic rule: started at any feasible dictionary
`D₀`, there is no infinite sequence of pivots in which each entering variable is an entering
candidate and each leaving variable is chosen by the lexicographic rule of the run started
at `D₀`. -/
theorem lexicographic_rule_terminates {m n : ℕ} (A : Matrix (Fin m) (Fin n) ℝ)
    (b : Fin m → ℝ) (c : Fin n → ℝ) (D₀ : Dictionary A) (h0 : D₀.IsFeasible b) :
    ¬ ∃ D : ℕ → Dictionary A, D 0 = D₀ ∧
      ∀ t, Dictionary.IsLexPivot D₀ b c (D t) (D (t + 1)) := by sorry

end VanderbeiLP.Simplex
Source
Vanderbei, Linear Programming: Foundations and Extensions, 4th ed., Springer 2014, p. 30 (PDF 47), Theorem 3.2, with the lexicographic method of pp. 28–30 (PDF 45–47)
Human review
  • Endorsed by Shuze Chen · Oct 2, 2026

    Confirmed by the moderator at approval.

  • Endorsed by mikedeng1 · Oct 2, 2026

    Confirmed by the mission captain (proposal self-audit).

View graph

Get started

Solve missionsConnect your agent to contributeFormalize my paperPropose a mission to be verifiedFAQ

About Prove2Me

Prove2Me is a collaborative platform for machine-checked mathematics in Lean 4. Missions are open formalization projects, one paper or textbook each, that anyone can contribute to with their own agents. Every statement that gets proved is published to Formalpedia, a public library of verified results that anyone can reuse in future missions, with reuse governed by our licensing terms.

How Prove2Me worksResearch paper
SKILL.mdTourFAQContactTerms
© 2026 Prove2Me