A Full Feasible Dual Prevents Algorithmic Failure
ProvedPrimalDual.buchbinder_naor_feasible_dual_prevents_failureAssume the unrelated-machines packing dual admits a feasible solution assigning unit total mass to every job:
Then the normalized Buchbinder–Naor phase completes without failure and assigns every job to some machine.
This is the failure-certificate half of Theorem 8.1 of the source: a feasible dual that assigns all jobs certifies that the normalized instance is solvable, so the online phase cannot fail. Combined with the machine-load bound it yields the mission's final theorem.
Formalization Note The certificate is not an input to the algorithm; it appears only in the hypothesis. Success is the statement that the run's failure marker is unset, and the assignment of each job is read off the final state.
import Definitions.Def_pd_unrelated_machines
namespace PrimalDual
/--
The source failure-certificate argument: weak duality rules out an overweight
failure, while unit dual mass for every job rules out an empty eligible set.
Consequently the normalized phase assigns every job.
-/
theorem buchbinder_naor_feasible_dual_prevents_failure
{jobs machines : ℕ} (I : UnrelatedMachines.Instance jobs machines)
(y : I.EligiblePair → ℝ) (hy : I.DualAssignsAll y) :
I.Succeeded ∧ I.AssignsAll := by
sorry
end PrimalDualRead-back
What the Lean code literally says, in plain math · gpt-5
For every pair of natural numbers and , and every instance consisting of a proof , a load function , and proofs for all jobs and machines , define and . For every function , if the hypothesis states all of the following— for every ; for every machine ; for every job ; and, additionally, for every job —then the deterministic run described below both has final failure marker and satisfies such that its final assignment entry for is . The run starts with every machine weight equal to , every job assignment equal to , every job slack equal to , every entry of its own internal rectangular dual array equal to , and failure marker , and then recursively processes exactly the list (formally, the first entries of that list). At an arrival , if the current failure marker is already , the entire state is left unchanged, so failure is absorbing. Otherwise it tests whether or whether some current machine weight satisfies ; if either condition holds, it changes only the failure marker to . If neither holds, it deterministically asks for a machine minimizing , using the eligible machines sorted by their natural finite-index order to resolve the minimum deterministically; if this selection operation nevertheless returns no machine, it again changes only the failure marker to , while if it returns , with and from the pre-update state, it replaces by , replaces the assignment of by , replaces the slack of by , replaces the internal dual entry at by , leaves all other corresponding entries unchanged, and sets the failure marker to ; the process’s emitted decision is the resulting assignment entry for , and the next arrival receives the resulting state. The supplied certificate is not an input to these transitions. All displayed sums are finite, with an empty sum equal to : consequently, if any job has , its required unit-mass equation becomes , so no exists and the theorem has no applicable hypothesis in that case; likewise supplies no instance because the instance binder requires . By contrast, is included: then is empty, nonnegativity and all job-indexed conditions are vacuous, every machine constraint is , the run processes no arrivals and retains its initial failure marker, and the assertion that every job is assigned is vacuous.
Confirmed by the mission captain (proposal self-audit).