Reference · Lemmas behind operations-research checks
rainbow.math.lemmas.benders-cut
General lemmas: benders cut. The mathematical facts the corresponding checks rest on, each checked by the kernel.
signed/recourse-weak-duality
signed/recourse-weak-duality : (q : ℕ → ℚ) (W : ℕ → ℕ → ℚ) (pi y r : ℕ → ℚ) (m2 n2 : ℕ) (hdual : ∀ (idx : ℕ), ∀ (bound : nat/strict-below idx n2), signed/expr-sum-value (fun i => pi i · W i idx) m2 ≤ q idx) (y0 : ∀ (idx : ℕ), ∀ (bound : nat/strict-below idx n2), 0 ≤ y idx) (feas : ∀ (idx : ℕ), ∀ (bound : nat/strict-below idx m2), signed/expr-sum-value (fun j => W idx j · y j) n2 = r idx) → signed/expr-sum-value (fun ri => pi ri · r ri) m2 ≤ signed/expr-sum-value (fun qj => q qj · y qj) n2
0 = signed/zero= = signed/equivalent: equality of rational values· = signed/multiplyℕ = data/Natℚ = signed/SignedRational≤ = signed/at-most
signed/benders-cut-valid
signed/benders-cut-valid : (q : ℕ → ℚ) (W H : ℕ → ℕ → ℚ) (T : ℕ → ℕ → ℕ → ℚ) (PI : ℕ → ℕ → ℚ) (p : ℕ → ℚ) (alpha : ℚ) (beta x : ℕ → ℚ) (Y : ℕ → ℕ → ℚ) (S m2 n2 n1 : ℕ) (hdual : ∀ (sc : ℕ), ∀ (sc-bound : nat/strict-below sc S), ∀ (idx : ℕ), ∀ (bound : nat/strict-below idx n2), signed/expr-sum-value (fun i => (fun sr => PI sc sr) i · W i idx) m2 ≤ q idx) (p0 : ∀ (idx : ℕ), ∀ (bound : nat/strict-below idx S), 0 ≤ p idx) (halpha : alpha = signed/expr-sum-value (fun as => p as · signed/expr-sum-value (fun hi => PI as hi · H as hi) m2) S) (hbeta : ∀ (idx : ℕ), ∀ (bound : nat/strict-below idx n1), beta idx = signed/expr-sum-value (fun i => p i · (fun gs => fun gk => signed/expr-sum-value (fun i₁ => (fun sr => …⟨1⟩ …⟨1⟩ …⟨1⟩) i₁ · (fun ti => fun tj => …⟨7⟩) i₁ gk) m2) i idx) S) (Y0 : ∀ (sc : ℕ), ∀ (sc-bound : nat/strict-below sc S), ∀ (idx : ℕ), ∀ (bound : nat/strict-below idx n2), 0 ≤ Y sc idx) (feas : ∀ (sc : ℕ), ∀ (sc-bound : nat/strict-below sc S), ∀ (idx : ℕ), ∀ (bound : nat/strict-below idx m2), signed/expr-sum-value (fun j => W idx j · (fun sr => Y sc sr) j) n2 = (fun hi => H sc hi + signed/negate (signed/expr-sum-value (fun j => (fun ti => fun tj => …⟨7⟩) hi j · x j) n1)) idx) → alpha + signed/negate (signed/expr-sum-value (fun di => beta di · x di) n1) ≤ signed/expr-sum-value (fun es => p es · signed/expr-sum-value (fun di => q di · (fun sr => Y es sr) di) n2) S
+ = signed/add0 = signed/zero= = signed/equivalent: equality of rational values· = signed/multiplyℕ = data/Natℚ = signed/SignedRational≤ = signed/at-most