§2, proof of the Theorem, p. 544 — moving a job of to the end keeps the precedence constraints
ProvedLawlerPrec.MinMax.move_last_feasiblep2o-batch-pfp1ap2o-gran-per-chapterp2o-plan-paperp2o-v1precedence-constraintsschedulingsingle-machine
Let be a sequence of the job set that observes the precedence constraints, and let be a job that is not required to precede any other job of . Let be obtained from by removing and appending it at the end. Then
In Lawler's proof and ; this is the first of the three steps showing that moving to the last position never hurts.
Formalization Note is written l.erase k ++ [k] for l, which is the page's whenever l = A ++ [k] ++ B ++ [k'], and covers also the case where is already last.
Preamble
import Mathlib import Definitions.Def_LawlerPrec_MinMax_IsFeasible import Definitions.Def_LawlerPrec_MinMax_lastEligible
Formal statement
namespace LawlerPrec.MinMax
/-- §2, proof of the Theorem, p. 544, third paragraph: moving a job `k ∈ S` to the last position
of a sequence `π′ = l` that observes the precedence constraints gives a sequence
`π = l.erase k ++ [k]` that observes them too. When `l = A ++ [k] ++ B ++ [k′]` this `π` is the
page's `A ++ B ++ [k′] ++ [k]`. -/
theorem move_last_feasible {ι : Type*} [DecidableEq ι] (prec : ι → ι → Prop) (J : Finset ι)
(l : List ι) (k : ι) (hl : IsFeasible prec J l) (hk : k ∈ lastEligible prec J) :
IsFeasible prec J (l.erase k ++ [k]) := by sorry
end LawlerPrec.MinMax
Source
Lawler, Optimal Sequencing of a Single Machine Subject to Precedence Constraints, Management Science 19(5), 1973, p. 544, §2 Sequencing Theorem, PROOF, third paragraph
Human review
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.