The dual objective is at most the doubly-weighted sum
ProvedPrimalDualOnline.LP.dual_le_weightedThe other inequality in the weak-duality chain. If is componentwise nonnegative and satisfies the primal constraints for every , then
Only these two hypotheses are needed: primal nonnegativity and the dual constraints play no part, and the cost vector does not appear at all.
import Definitions.Def_PrimalDualOnline_FiniteLP import Mathlib.Tactic
open PrimalDualOnline.LP
theorem PrimalDualOnline.LP.dual_le_weighted
{I J : Type*} [Fintype I] [Fintype J]
(A : I → J → ℝ) (b : J → ℝ) (x : I → ℝ) (y : J → ℝ)
(hy : ∀ j : J, 0 ≤ y j) (hpf : ∀ j : J, b j ≤ ∑ i : I, A i j * x i) :
dualObjective b y ≤ ∑ j : J, (∑ i : I, A i j * x i) * y j := by sorryRead-back
What the Lean code literally says, in plain math · claude-opus-5
Read-back 3 — dual_le_weighted
Data and binders. Two implicitly quantified types and in arbitrary universes, each with a finiteness structure, and four explicit pieces of real-valued data:
- , a real matrix with rows indexed by , columns by , entries ;
- , one real number per column index;
- , one real number per row index;
- , one real number per column index.
Hypotheses. Two, each universally quantified over the column index type :
- — every component of is nonnegative.
- — for each column index , is at most the sum over all row indices of . Note the direction: is the smaller side.
Conclusion. Unfolding the bundle's definition , the assertion is
Here the inner sum runs over , the first index of (a column of contracted against ), and the outer sum runs over , the second index of ; the column value is multiplied on the right by . The inequality is non-strict and points in the direction: dual objective weighted quantity.
Sign conditions present and absent. Nonnegativity is assumed only for . There is no sign condition on — its components may be negative — nor on the entries of , nor on . Both stated hypotheses bear on data occurring in the conclusion ( in hypothesis 1; and the column sums in hypothesis 2); neither is left unused in the sense of constraining data absent from the conclusion.
Degenerate cases. If is empty, both hypotheses are vacuously true and both sides are the empty sum , giving . If is empty, each inner sum is , hypothesis 2 degenerates to for every , the right-hand side is , and the assertion becomes . If both are empty, the statement reduces to . Nothing excludes , , , or .
Not asserted. The statement does not assert equality, nor strict inequality, nor nonnegativity of either side. It says nothing about , about , or about any comparison between the dual objective and a primal objective; no weak-duality chain is claimed. It assumes and asserts nothing about the sign of , about being a feasible or optimal primal point, or about being feasible for constraints of the form (no such hypothesis appears). It does not assert that the right-hand side may be rewritten with the summation order reversed, and it states no connection to the other two statements in this bundle. The declaration's body is a placeholder, so no proof is supplied by the code.
Confirmed by the mission captain (proposal self-audit).