Lemma 3

Lax496464.Lemma3 · concepts/Lax496464/Lemma3.lean · lax-496464

proven

Loading review…

Sign in with ORCID

Community review

Flags

Each flag is tied to a public ORCID identity and explains why this concept may be incorrect.

No flags have been submitted.

    Community review

    Flag this concept

    State precisely what appears incorrect. This explanation will be public under your ORCID name.

    No source line selected.

    Natural Language Statement

    Theorem

    Recursion (5) computes the table of due-date profiles.

    Stepping to the start time of job jj, an entry at sjs_j is reached either by passing jj over, in which case some profile at the previous start time shifts to it, or by selecting jj, in which case the profile with jj's own coordinate decremented shifts to it, the weight drops by wjw_j, and the first-stage machine must be able to finish jj by sjs_j. Past the last start time the table answers the question.

    The printed form of the recursion is not correct — its shift leaves coordinates unconstrained that the profile of a selection cannot have — and the counterexamples are small: one job on two machines for the branch that selects, two jobs on one machine for the branch that passes over. The algorithm is nonetheless correct as printed. What it maintains is the weaker invariant that an entry Tj[x⃗,W′]≤P′T_j[\vec{x}, W'] \le P' is witnessed by a feasible selection of weight W′W' and preprocessing cost at most P′P' whose profile is at most x⃗\vec{x} coordinatewise, and it still derives every feasible selection with its exact profile. A vector that overstates the profile only overstates how many machines are busy, so the capacity test rejects more rather than less, and the optimum read off at the end is exact.

    Concept map
    6 concepts
    100%
    Proven claimDefinitionThis conceptRelated conceptA → B: B builds on A
    Evidence

    This concept declares 4 statements. Each proof establishes one of them relative to its assumptions.

    1 exists_reachableProfile_iff proven

    2 printed_not_correct proven

    3 printed_readoff proven

    4 reachableProfile_start proven

    In the paper

    • page 5 of this submission's paper

    Lean source view on GitHub

    1import Lax496464.Profile
    2
    3/-!
    4---
    5title: Lemma 3
    6type: theorem
    7---
    8Recursion (5) computes the table of due-date profiles.
    9
    10Stepping to the start time of job jj, an entry at sjs_j is reached either by passing jj
    11over, in which case some profile at the previous start time shifts to it, or by selecting
    12jj, in which case the profile with jj's own coordinate decremented shifts to it, the
    13weight drops by wjw_j, and the first-stage machine must be able to finish jj by sjs_j.
    14Past the last start time the table answers the question.
    15
    16The printed form of the recursion is not correct — its shift leaves coordinates
    17unconstrained that the profile of a selection cannot have — and the counterexamples are
    18small: one job on two machines for the branch that selects, two jobs on one machine for
    19the branch that passes over. **The algorithm is nonetheless correct as printed.** What it
    20maintains is the weaker invariant that an entry Tj[x⃗,W′]≤P′T_j[\vec{x}, W'] \le P' is witnessed by
    21a feasible selection of weight W′W' and preprocessing cost at most P′P' whose profile is
    22*at most* x⃗\vec{x} coordinatewise, and it still derives every feasible selection with its
    23exact profile. A vector that overstates the profile only overstates how many machines are
    24busy, so the capacity test rejects more rather than less, and the optimum read off at the
    25end is exact.
    26
    27# Formalization Notes
    28
    29Three statements, in order of what they are about.
    30
    31The first is the recursion the paper means, with the missing condition supplied by
    32carrying the profile as a function on all coordinates rather than a vector of length
    33qmax⁡q_{\max}: shifting then constrains every coordinate, and there is nothing left free.
    34This is the lemma as it should have been printed.
    35
    36The second says the printed recursion is not that lemma: there is an entry it derives
    37that no selection realizes. It quantifies over instances, since a single one suffices,
    38and it is what makes the defect a statement rather than a remark.
    39
    40The third is what rescues the algorithm: the value read off after the last job is the
    41largest weight of a feasible set, for the recursion exactly as printed. It carries the
    42paper's standing assumptions — positive processing times, positive weights, processing
    43times bounded by qmax⁡q_{\max} — and the distinctness of start times that Section 4's
    44rescaling provides.
    45-/
    46
    47namespace Lax496464.Lemma3
    48
    49open Lax496464.FlowShop Lax496464.FlowShop.Instance
    50open Lax496464.Sweep Lax496464.Profile
    51
    52variable (I : Instance)
    53
    54/-- **Lemma 3, repaired.** The step to the start time of job `j`. -/
    55axiom reachableProfile_start (hq : ∀ i : I.Job, 0 < I.q i) {qmax : ℕ}
    56 (hqmax : ∀ k : I.Job, I.q k ≤ qmax) {t' t : ℤ} {δ : ℕ} {j : I.Job}
    57 {x : ℕ → ℕ} {W' : ℕ} {P' : ℤ}
    58 (hδ : (δ : ℤ) = t - t') (htt : t' < t) (hsj : s j = t)
    59 (hnos : ∀ k : I.Job, k ≠ j → ¬ (t' < s k ∧ s k ≤ t)) :
    60 ReachableProfile I t x W' P' ↔
    61 (∃ y : ℕ → ℕ, (∀ i, 1 ≤ i → x i = y (δ + i)) ∧ ReachableProfile I t' y W' P') ∨
    62 (0 < x (I.q j) ∧ (∑ i ∈ Finset.Icc 1 qmax, x i) ≤ I.machines ∧
    63 ∃ (W'' : ℕ) (P'' : ℤ) (y : ℕ → ℕ),
    64 W'' + I.w j = W' ∧
    65 (∀ i, 1 ≤ i → (if i = I.q j then x i - 1 else x i) = y (δ + i)) ∧
    66 ReachableProfile I t' y W'' P'' ∧
    67 P'' + I.p j ≤ s j ∧ P'' + I.p j ≤ P')
    68
    69/-- **The read-off, repaired.** Past the last start time, a profile of weight `W'` is
    70exactly a feasible set of weight `W'`. -/
    71axiom exists_reachableProfile_iff {t : ℤ} (ht : ∀ k : I.Job, s k ≤ t) (W' : ℕ) :
    72 (∃ (x : ℕ → ℕ) (P' : ℤ), ReachableProfile I t x W' P') ↔
    73 ∃ Z : Finset I.Job, Feasible I Z ∧ weight I Z = W'
    74
    75/-- **Lemma 3 is false as printed.** Some instance, with positive processing times and
    76positive weights, has a stage at which the printed recursion derives a profile that no
    77set of jobs has. -/
    78axiom printed_not_correct :
    79 ∃ (J : Instance) (qmax : ℕ) (k : J.Job) (x : Fin qmax → ℕ) (W : ℕ) (P : ℤ),
    80 (∀ i : J.Job, 0 < J.q i) ∧ (∀ i : J.Job, 0 < J.w i) ∧
    81 (∀ i : J.Job, J.q i ≤ qmax) ∧
    82 Printed J qmax ((k : ℕ) + 1) x W P ∧
    83 ∀ Z : Finset J.Job, ∃ c : Fin qmax,
    84 dueProfile J Z (s k) ((c : ℕ) + 1) ≠ x c
    85
    86/-- **The algorithm is correct as printed.** For the recursion exactly as the paper
    87prints it, the weights reached after the last job are exactly the weights of feasible
    88sets. -/
    89axiom printed_readoff {qmax : ℕ} (hq : ∀ i : I.Job, 0 < I.q i) (hw : ∀ i : I.Job, 0 < I.w i)
    90 (hqmax : ∀ i : I.Job, I.q i ≤ qmax)
    91 (hdist : ∀ i j : I.Job, i < j → s i < s j) (W : ℕ) :
    92 (∃ (x : Fin qmax → ℕ) (P : ℤ), Printed I qmax I.jobs x W P) ↔
    93 ∃ Z : Finset I.Job, Feasible I Z ∧ weight I Z = W
    94
    95end Lax496464.Lemma3
    96
    Show ProofShow ProofShow ProofShow Proof
    Formalization Notes

    Three statements, in order of what they are about.

    The first is the recursion the paper means, with the missing condition supplied by carrying the profile as a function on all coordinates rather than a vector of length qmax⁡q_{\max}: shifting then constrains every coordinate, and there is nothing left free. This is the lemma as it should have been printed.

    The second says the printed recursion is not that lemma: there is an entry it derives that no selection realizes. It quantifies over instances, since a single one suffices, and it is what makes the defect a statement rather than a remark.

    The third is what rescues the algorithm: the value read off after the last job is the largest weight of a feasible set, for the recursion exactly as printed. It carries the paper's standing assumptions — positive processing times, positive weights, processing times bounded by qmax⁡q_{\max} — and the distinctness of start times that Section 4's rescaling provides.

    Builds on
    Used by

    none

    From Mathlib

    none

    Discussion

    Ask a question or add context. Endorsements and structured flags are kept in the review panel above.

    Loading discussion…