Reference · Lemmas behind operations-research checks
rainbow.math.lemmas.indep-set-dual
General lemmas: indep set dual. The mathematical facts the corresponding checks rest on, each checked by the kernel.
signed/at-most-total
signed/at-most-total : (a b : ℚ) → proposition/disjunction (a ≤ b) (b ≤ a)
ℚ = signed/SignedRational≤ = signed/at-most
signed/one-minus-nonnegative
signed/one-minus-nonnegative : (a : ℚ) (h : a ≤ 1) → 0 ≤ 1 + signed/negate a
+ = signed/add0 = signed/zero1 = signed/oneℚ = signed/SignedRational≤ = signed/at-most
signed/zero-one-at-most-one
signed/zero-one-at-most-one : (x : ℚ) (h : x · (1 + signed/negate x) = 0) → x ≤ 1
+ = signed/add0 = signed/zero1 = signed/one= = signed/equivalent: equality of rational values· = signed/multiplyℚ = signed/SignedRational≤ = signed/at-most
signed/multiply-subtract-expand
signed/multiply-subtract-expand : (p q t : ℚ) → p · (q + signed/negate t) = p · q + signed/negate (p · t)
+ = signed/add= = signed/equivalent: equality of rational values· = signed/multiplyℚ = signed/SignedRational
signed/square-at-most-self-at-most-one
signed/square-at-most-self-at-most-one : (s : ℚ) (h0 : 0 ≤ s) (h : s · s ≤ s) → s ≤ 1
0 = signed/zero1 = signed/one· = signed/multiplyℚ = signed/SignedRational≤ = signed/at-most
signed/multiply-split-at
signed/multiply-split-at : (y t a : ℚ) → y · t = y · a + y · (t + signed/negate a)
+ = signed/add= = signed/equivalent: equality of rational values· = signed/multiplyℚ = signed/SignedRational
signed/independent-meets-clique-at-most-once
signed/independent-meets-clique-at-most-once : (A M : ℕ → ℕ → ℚ) (z : ℕ → ℚ) (n C : ℕ) (hz0 : ∀ (idx : ℕ), ∀ (bound : nat/strict-below idx n), 0 ≤ z idx) (hz1 : ∀ (idx : ℕ), ∀ (bound : nat/strict-below idx n), z idx ≤ 1) (hM0 : ∀ (idx : ℕ), ∀ (bound : nat/strict-below idx n), 0 ≤ (fun rv => M C rv) idx) (hM1 : ∀ (idx : ℕ), ∀ (bound : nat/strict-below idx n), (fun rv => M C rv) idx ≤ 1) (hA0 : ∀ (au : ℕ), ∀ (au-lt : nat/strict-below au n), ∀ (av : ℕ), ∀ (av-lt : nat/strict-below av n), 0 ≤ A au av) (hA1 : ∀ (au : ℕ), ∀ (au-lt : nat/strict-below au n), ∀ (av : ℕ), ∀ (av-lt : nat/strict-below av n), A au av ≤ 1) (hcl : ∀ (idx : ℕ), ∀ (bound : nat/strict-below idx n), signed/expr-sum-value (fun kv => M C idx · (M C kv · (1 + signed/negate (A idx kv)))) n ≤ 0) (hind : ∀ (idx : ℕ), ∀ (bound : nat/strict-below idx n), signed/expr-sum-value (fun iv => z idx · (z iv · A idx iv)) n ≤ z idx) → signed/expr-sum-value (fun mv => z mv · M C mv) n ≤ 1
+ = signed/add0 = signed/zero1 = signed/one· = signed/multiplyℕ = data/Natℚ = signed/SignedRational≤ = signed/at-most
signed/clique-cover-weak-duality
signed/clique-cover-weak-duality : (A M : ℕ → ℕ → ℚ) (w z y : ℕ → ℚ) (n m : ℕ) (hz0 : ∀ (idx : ℕ), ∀ (bound : nat/strict-below idx n), 0 ≤ z idx) (hz1 : ∀ (idx : ℕ), ∀ (bound : nat/strict-below idx n), z idx ≤ 1) (hA0 : ∀ (au : ℕ), ∀ (au-lt : nat/strict-below au n), ∀ (av : ℕ), ∀ (av-lt : nat/strict-below av n), 0 ≤ A au av) (hA1 : ∀ (au : ℕ), ∀ (au-lt : nat/strict-below au n), ∀ (av : ℕ), ∀ (av-lt : nat/strict-below av n), A au av ≤ 1) (hM0 : ∀ (mc : ℕ), ∀ (mc-lt : nat/strict-below mc m), ∀ (mv : ℕ), ∀ (mv-lt : nat/strict-below mv n), 0 ≤ M mc mv) (hM1 : ∀ (mc : ℕ), ∀ (mc-lt : nat/strict-below mc m), ∀ (mv : ℕ), ∀ (mv-lt : nat/strict-below mv n), M mc mv ≤ 1) (hcl : ∀ (lc : ℕ), ∀ (lc-lt : nat/strict-below lc m), ∀ (idx : ℕ), ∀ (bound : nat/strict-below idx n), signed/expr-sum-value (fun kv => M lc idx · (M lc kv · (1 + signed/negate (A idx kv)))) n ≤ 0) (hind : ∀ (idx : ℕ), ∀ (bound : nat/strict-below idx n), signed/expr-sum-value (fun iv => z idx · (z iv · A idx iv)) n ≤ z idx) (hy0 : ∀ (idx : ℕ), ∀ (bound : nat/strict-below idx m), 0 ≤ y idx) (hcov : ∀ (idx : ℕ), ∀ (bound : nat/strict-below idx n), w idx ≤ signed/expr-sum-value (fun dc => y dc · M dc idx) m) → signed/expr-sum-value (fun dv => w dv · z dv) n ≤ signed/expr-sum-value (fun dy => y dy) m
+ = signed/add0 = signed/zero1 = signed/one· = signed/multiplyℕ = data/Natℚ = signed/SignedRational≤ = signed/at-most