Skip to content
Browse chapters
Imports

29.5 Full initialized SIMPLEX

The public solver combines the auxiliary phase-I feasibility test with the restored-objective phase II. Its result type exposes exactly the three CLRS outcomes and carries a proof of each outcome.

namespace CLRSnamespace Chapter29namespace StandardLP

Certified outcomes of the complete two-phase SIMPLEX algorithm.

inductive InitializedSimplexResult (P : StandardLP m n) where | infeasible (notFeasible : ¬∃ x, P.IsFeasible x) | optimal (assignment : Fin n → ℝ) (isOptimal : P.IsOptimal assignment) | unbounded (isUnbounded : P.IsUnbounded)

CLRS INITIALIZE-SIMPLEX followed by finite Bland-SIMPLEX.

The initialized solver always certifies infeasibility, returns an optimal assignment, or proves the objective unbounded.

theorem initializedSimplex_complete (P : StandardLP m n) : (¬∃ x, P.IsFeasible x) ∨ (∃ x, P.IsOptimal x) ∨ P.IsUnbounded := by cases P.initializedSimplex with | infeasible h => exact Or.inl h | optimal x hx => exact Or.inr (Or.inl ⟨x, hx⟩) | unbounded h => exact Or.inr (Or.inr h)
end StandardLPend Chapter29end CLRS