Reference · Lemmas behind operations-research checks
rainbow.math.lemmas.transport-dual
General lemmas: transport dual. The mathematical facts the corresponding checks rest on, each checked by the kernel.
signed/rect-double-sum-row-supplies
signed/rect-double-sum-row-supplies : (w : ℕ → ℚ) (X : ℕ → ℕ → ℚ) (s : ℕ → ℚ) (m n : ℕ) (hrows : ∀ (idx : ℕ), ∀ (bound : nat/strict-below idx m), signed/expr-sum-value (fun rj => X idx rj) n = s idx) → signed/expr-sum-value (fun i => signed/expr-sum-value (fun column-index => (fun wr => fun wc => w wr · X wr wc) i column-index) n) m = signed/expr-sum-value (fun si => s si · w si) m
= = signed/equivalent: equality of rational values· = signed/multiplyℕ = data/Natℚ = signed/SignedRational
signed/rect-double-sum-col-demands
signed/rect-double-sum-col-demands : (w : ℕ → ℚ) (X : ℕ → ℕ → ℚ) (d : ℕ → ℚ) (m n : ℕ) (hcols : ∀ (idx : ℕ), ∀ (bound : nat/strict-below idx n), signed/expr-sum-value (fun ci => X ci idx) m = d idx) → signed/expr-sum-value (fun i => signed/expr-sum-value (fun column-index => (fun wr => fun wc => w wc · X wr wc) i column-index) n) m = signed/expr-sum-value (fun dj => d dj · w dj) n
= = signed/equivalent: equality of rational values· = signed/multiplyℕ = data/Natℚ = signed/SignedRational
signed/transport-weak-duality
signed/transport-weak-duality : (c : ℕ → ℕ → ℚ) (u v s d : ℕ → ℚ) (X : ℕ → ℕ → ℚ) (m n : ℕ) (hdual : ∀ (ai : ℕ), ∀ (ai-bound : nat/strict-below ai m), ∀ (aj : ℕ), ∀ (aj-bound : nat/strict-below aj n), u ai + v aj ≤ c ai aj) (x0 : ∀ (ai : ℕ), ∀ (ai-bound : nat/strict-below ai m), ∀ (aj : ℕ), ∀ (aj-bound : nat/strict-below aj n), 0 ≤ X ai aj) (hrows : ∀ (idx : ℕ), ∀ (bound : nat/strict-below idx m), signed/expr-sum-value (fun rj => X idx rj) n = s idx) (hcols : ∀ (idx : ℕ), ∀ (bound : nat/strict-below idx n), signed/expr-sum-value (fun ci => X ci idx) m = d idx) → signed/expr-sum-value (fun di => s di · u di) m + signed/expr-sum-value (fun dj => d dj · v dj) n ≤ signed/expr-sum-value (fun i => signed/expr-sum-value (fun column-index => (fun ki => fun kj => c ki kj · X ki kj) i column-index) n) m
+ = signed/add0 = signed/zero= = signed/equivalent: equality of rational values· = signed/multiplyℕ = data/Natℚ = signed/SignedRational≤ = signed/at-most