Strong duality adapter: a primal optimum yields a dual optimum of equal value (Fin-indexed)
ProvedPrimalDualOnline.LP.strong_duality_adapterTheorem 2.2 of the source, one direction, transported from the platform. For a program whose data is indexed by Fin n (variables) and Fin m (constraints), if is an optimal solution of then there exists a that is an optimal solution of with
This is not an independent proof of strong duality. The intended route is to import LinearOptimization.lp_strong_duality, which is already proved in this environment for linear programs in Bertsimas-Tsitsiklis general form, and to reconcile the two presentations: the general form bundles the program as a record with a per-row constraint relation and a per-column sign condition, and instantiating those to " on every row" and "nonnegative on every column" reproduces exactly the feasibility predicates used here, up to the orientation of the matrix and the choice of index type.
The statement is restricted to Fin indices on purpose. The imported dependency path exists only for Fin-indexed data, and no Fintype.equivFin transport has been carried out, so stating it over arbitrary finite index types would assert more than the available dependency chain supports.
import Definitions.Def_PrimalDualOnline_FiniteLP import Mathlib.Tactic
open PrimalDualOnline.LP
theorem PrimalDualOnline.LP.strong_duality_adapter {m n : ℕ}
(A : Fin n → Fin m → ℝ) (b : Fin m → ℝ) (c : Fin n → ℝ)
(x : Fin n → ℝ) (hx : PrimalOptimal A b c x) :
∃ y : Fin m → ℝ, DualOptimal A b c y ∧ primalObjective c x = dualObjective b y := by sorryRead-back
What the Lean code literally says, in plain math · claude-opus-5
Read-back — strong_duality_adapter
Setting and binders. The statement is quantified over two natural numbers and (both implicit, with no positivity or nondegeneracy assumption: and are included), and over four arbitrary data items:
- a real matrix presented as a function , written , whose first index ranges over the concretely-chosen index type (the canonical type of naturals below ) and whose second index ranges over — these are the literal index types, not arbitrary finite or fintype-instantiated index types;
- a vector , written ;
- a vector , written ;
- a vector , written .
No sign, boundedness, rank, or nonzero assumption is imposed on , , or ; all entries are arbitrary reals.
The hypothesis, fully expanded. The single hypothesis is that is primal optimal, which unfolds to the conjunction of:
- Primal feasibility of :
(Note the inequality direction: the weighted column sums are bounded below by , with a non-strict , and is componentwise nonnegative.)
- Minimality of among all primal-feasible points: for every function — the inner quantifier ranges over all real-valued functions on , restricted only by feasibility, with no locality, boundedness, or proximity restriction — if satisfies the same two feasibility conditions ( for all , and for all ), then
So minimizes over the primal-feasible set. Since is itself feasible, is one of the admissible , so this clause is reflexively satisfied at .
The conclusion, fully expanded. There exists a vector (mere existence, not unique existence, and no formula or construction for is asserted) such that both:
- is dual optimal, i.e.
- dual feasibility: (row sums bounded above by , non-strict) and ;
- maximality: for every function satisfying those same two dual-feasibility conditions,
i.e. $y$ *maximizes* $\sum_j b_j y_j$ over the dual-feasible set (note the reversed direction relative to the primal clause: primal optimality is minimization, dual optimality is maximization);
2. the two objective values coincide exactly:
Existence vs. assumption. This statement assumes existence of a primal optimum (it is handed a specific optimal ) and asserts existence of a dual optimum. It is therefore a conditional existence claim, not an unconditional one.
Degenerate cases.
- (no primal variables): is empty, is the unique empty function, and every sum over is the empty sum . The hypothesis then forces for all ; the componentwise-nonnegativity clause and the minimality clause are vacuous/trivial (the only feasible is itself, and ). The primal objective is , so the conclusion demands a with for all (the dual constraint clause, quantified over , is vacuous), maximal over all such , and . If instead some while , the hypothesis is unsatisfiable and the statement is vacuous for that data.
- (no constraints): the first feasibility clause (quantified over ) is vacuous, so primal feasibility reduces to for all , and the hypothesis says minimizes over the nonnegative orthant. The witness is the unique empty function, its dual-feasibility reduces to for all (empty row sums) with the nonnegativity clause vacuous, its maximality is , and the value equality reduces to .
- : all feasibility and optimality clauses are vacuous or trivial, and the value equality reduces to .
Relation to the other two statements. As written, this statement implies the left-to-right direction of strong_duality_iff_fin (from a primal optimum it produces a dual optimum). It also implies strong_duality_value_fin: given any primal optimum and any dual optimum , this statement yields some dual optimum with , and applying the maximality clause of dual optimality in both directions (once with against , once with against ) forces . It does not imply the right-to-left direction of the biconditional.
Not asserted. No claim that is unique; no construction, formula, sign pattern, or complementary-slackness relation for ; no claim that a primal optimum exists for any given ; no claim that the primal-feasible or dual-feasible sets are nonempty, closed, or bounded; no claim about the case where is merely feasible but not optimal; no claim about unbounded or infeasible instances; no weak-duality statement in its own right; no statement about arbitrary finite index types other than and ; and no assertion that the constructed is related to in any way beyond the stated equality of objective values.
Confirmed by the mission captain (proposal self-audit).