Reference · Lemmas behind operations-research checks
rainbow.math.lemmas.max-closure
General lemmas: max closure. The mathematical facts the corresponding checks rest on, each checked by the kernel.
signed/closure-arc-term
signed/closure-arc-term : (a w xi xj : ℚ) (ha : a · (1 + signed/negate a) = 0) (hw : 0 ≤ w) (hwa : w ≤ a · w) (hxi : xi · (1 + signed/negate xi) = 0) (hxj : xj · (1 + signed/negate xj) = 0) (hrow : a · xi · (1 + signed/negate xj) = 0) → w · (xi + signed/negate xj) ≤ 0
+ = signed/add0 = signed/zero1 = signed/one= = signed/equivalent: equality of rational values· = signed/multiplyℚ = signed/SignedRational≤ = signed/at-most
signed/closure-weak-duality
signed/closure-weak-duality : (A W : ℕ → ℕ → ℚ) (p u x : ℕ → ℚ) (n : ℕ) (hA : ∀ (ai : ℕ), ∀ (ai-lt : nat/strict-below ai n), ∀ (aj : ℕ), ∀ (aj-lt : nat/strict-below aj n), A ai aj · (1 + signed/negate (A ai aj)) = 0) (hu : ∀ (idx : ℕ), ∀ (bound : nat/strict-below idx n), 0 ≤ u idx) (hw : ∀ (wi : ℕ), ∀ (wi-lt : nat/strict-below wi n), ∀ (wj : ℕ), ∀ (wj-lt : nat/strict-below wj n), 0 ≤ W wi wj) (hwA : ∀ (vi : ℕ), ∀ (vi-lt : nat/strict-below vi n), ∀ (vj : ℕ), ∀ (vj-lt : nat/strict-below vj n), W vi vj ≤ A vi vj · W vi vj) (hdual : ∀ (idx : ℕ), ∀ (bound : nat/strict-below idx n), p idx + signed/expr-sum-value (fun ik => W ik idx) n ≤ u idx + signed/expr-sum-value (fun oj => W idx oj) n) (hx01 : ∀ (idx : ℕ), ∀ (bound : nat/strict-below idx n), x idx · (1 + signed/negate (x idx)) = 0) (hclosed : ∀ (idx : ℕ), ∀ (bound : nat/strict-below idx n), signed/expr-sum-value (fun rj => A idx rj · x idx · (1 + signed/negate (x rj))) n ≤ 0) → signed/expr-sum-value (fun pi => p pi · x pi) n ≤ signed/expr-sum-value (fun us => u us) n
+ = signed/add0 = signed/zero1 = signed/one= = signed/equivalent: equality of rational values· = signed/multiplyℕ = data/Natℚ = signed/SignedRational≤ = signed/at-most