p. 63 — interchanging two adjacent items: elsewhere, and (I) ⟺ (II)
ProvedJohnsonFlowShop.TwoStage.interchange_iffLet be real processing times of items and an order, being the item in position . Fix a position with , and let be the order obtained from by interchanging the items in positions and . Write and for Johnson's quantities of and . Then
- for every position ;
- relation (I) holds exactly when relation (II) holds for the items in positions and :
So only the two affected terms of change, and comparing them reduces to comparing four processing times. This is the "Solution of problem" on p. 63 and the reduction of (I) to (II) in Theorem 1.
Formalization Note swaps positions, not item labels. is of the interchanged order, with the upper limit on the -sum as in the definition of on p. 62; the page's display of prints the upper limit on the -sum, which is a typo (with it, the subtraction on p. 63 does not produce (II)). No positivity is needed.
import Mathlib import Definitions.Def_JohnsonFlowShop_Shared_K
namespace JohnsonFlowShop.TwoStage
/-- p. 63, adjacent interchange and (I) ⟺ (II): let `σ'` be `σ` with the items in positions
`j` and `j + 1` interchanged. Then `K'_u = K_u` for every other position `u`, and
`max (K_j, K_{j+1}) < max (K'_j, K'_{j+1})` holds exactly when
`min (A (σ j), B (σ (j+1))) < min (A (σ (j+1)), B (σ j))`. -/
theorem interchange_iff {n : ℕ} (A B : Fin n → ℝ) (σ : Equiv.Perm (Fin n))
(j : ℕ) (hj : j + 1 < n) :
(∀ u : Fin n, u ≠ ⟨j, by omega⟩ → u ≠ ⟨j + 1, hj⟩ →
Shared.K A B (σ * Equiv.swap ⟨j, by omega⟩ ⟨j + 1, hj⟩) u = Shared.K A B σ u) ∧
(max (Shared.K A B σ ⟨j, by omega⟩) (Shared.K A B σ ⟨j + 1, hj⟩) <
max (Shared.K A B (σ * Equiv.swap ⟨j, by omega⟩ ⟨j + 1, hj⟩) ⟨j, by omega⟩)
(Shared.K A B (σ * Equiv.swap ⟨j, by omega⟩ ⟨j + 1, hj⟩) ⟨j + 1, hj⟩) ↔
min (A (σ ⟨j, by omega⟩)) (B (σ ⟨j + 1, hj⟩)) <
min (A (σ ⟨j + 1, hj⟩)) (B (σ ⟨j, by omega⟩))) := by sorry
end JohnsonFlowShop.TwoStage
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.