Weak Duality for Finite Standard-Form Linear Programs
ProvedPrimalDual.pd_weak_dualityWeak duality for the finite standard-form pair.
Let , , and be a finite standard-form primal–dual pair with primal variables indexed by and constraints by . Let be primal feasible, i.e. and for every , and let be dual feasible, i.e. and for every . Then
Every feasible dual value is therefore a lower bound on every feasible primal value. In this mission the inequality turns a feasible dual of value into a certificate that no feasible primal of value below exists, which is the engine of the load-balancing failure argument.
Formalization Note No sign conditions on , , or are required: the statement covers the general standard form, not only the covering–packing subclass.
import Definitions.Def_pd_finite_lp
namespace PrimalDual
theorem pd_weak_duality {ι κ : Type*} [Fintype ι] [Fintype κ]
(P : FinitePrimalDual ι κ) (x : ι → ℝ) (y : κ → ℝ)
(hx : P.PrimalFeasible x) (hy : P.DualFeasible y) :
P.dualObjective y ≤ P.primalObjective x := by
sorry
end PrimalDualRead-back
What the Lean code literally says, in plain math · gpt-5
For every pair of finite index types and —each equipped with a Fintype structure and neither required to be nonempty—for every record consisting of arbitrary functions , , and , and for every and , if for every and for every , and if for every and for every , then . Every displayed sum is the finite sum over the entire indicated index type, so a sum over an empty type is and a universally quantified condition over an empty type is vacuous: if is empty, the primal objective is , the -nonnegativity and dual-constraint conditions are vacuous, and primal feasibility requires for every ; if is empty, the dual objective is , the -nonnegativity and primal-constraint conditions are vacuous, and dual feasibility requires for every ; if both are empty, all feasibility conditions are vacuous and the conclusion is .
Confirmed by the mission captain (proposal self-audit).