Reference · Lemmas behind operations-research checks
rainbow.math.lemmas.qp-kkt
General lemmas: qp kkt. The mathematical facts the corresponding checks rest on, each checked by the kernel.
signed/qp-gram-action
signed/qp-gram-action : (Q R : ℕ → ℕ → ℚ) (x : ℕ → ℚ) (n : ℕ) (gram : ∀ (gi : ℕ), ∀ (gi-lt : nat/strict-below gi n), ∀ (gj : ℕ), ∀ (gj-lt : nat/strict-below gj n), Q gi gj = signed/expr-sum-value (fun g => R g gi · R g gj) n) (column-index : ℕ) (column-indexb : nat/strict-below column-index n) → signed/expr-sum-value (fun j => Q column-index j · x j) n = signed/expr-sum-value (fun i => (fun r => signed/expr-sum-value (fun j => R r j · x j) n) i · R i column-index) n
= = signed/equivalent: equality of rational values· = signed/multiplyℕ = data/Natℚ = signed/SignedRational
signed/qp-gram-bilinear
signed/qp-gram-bilinear : (Q R : ℕ → ℕ → ℚ) (x z : ℕ → ℚ) (n : ℕ) (gram : ∀ (gi : ℕ), ∀ (gi-lt : nat/strict-below gi n), ∀ (gj : ℕ), ∀ (gj-lt : nat/strict-below gj n), Q gi gj = signed/expr-sum-value (fun g => R g gi · R g gj) n) → signed/expr-sum-value (fun i => z i · signed/expr-sum-value (fun j => Q i j · x j) n) n = signed/expr-sum-value (fun d => (fun r => signed/expr-sum-value (fun j => R r j · x j) n) d · (fun r => signed/expr-sum-value (fun j => R r j · z j) n) d) n
= = signed/equivalent: equality of rational values· = signed/multiplyℕ = data/Natℚ = signed/SignedRational
signed/qp-square-difference-rearrange
signed/qp-square-difference-rearrange : (a b : ℚ) → a · a + (a · b + a · b) + (a + signed/negate b) · (a + signed/negate b) = b · b + (a · a + a · a)
+ = signed/add= = signed/equivalent: equality of rational values· = signed/multiplyℚ = signed/SignedRational
signed/qp-square-tangent
signed/qp-square-tangent : (a b : ℚ) → signed/from-nnrat nnrat/half · (a · a) + a · b ≤ signed/from-nnrat nnrat/half · (b · b) + a · a
+ = signed/add· = signed/multiplyℚ = signed/SignedRational≤ = signed/at-most
signed/qp-gram-tangent
signed/qp-gram-tangent : (Q R : ℕ → ℕ → ℚ) (x z : ℕ → ℚ) (n : ℕ) (gram : ∀ (gi : ℕ), ∀ (gi-lt : nat/strict-below gi n), ∀ (gj : ℕ), ∀ (gj-lt : nat/strict-below gj n), Q gi gj = signed/expr-sum-value (fun g => R g gi · R g gj) n) → signed/from-nnrat nnrat/half · value + signed/expr-sum-value (fun i => z i · signed/expr-sum-value (fun j => Q i j · x j) n) n ≤ signed/from-nnrat nnrat/half · signed/expr-sum-value (fun i => z i · signed/expr-sum-value (fun j => Q i j · z j) n) n + value where value := signed/expr-sum-value (fun i => x i · signed/expr-sum-value (fun j => Q i j · x j) n) n
+ = signed/add= = signed/equivalent: equality of rational values· = signed/multiplyℕ = data/Natℚ = signed/SignedRational≤ = signed/at-most
signed/qp-stationary-dot
signed/qp-stationary-dot : (Q A : ℕ → ℕ → ℚ) (c x y z : ℕ → ℚ) (m n : ℕ) (stat : ∀ (st : ℕ), ∀ (st-lt : nat/strict-below st n), signed/expr-sum-value (fun j => Q st j · x j) n + c st + signed/expr-sum-value (fun i => y i · A i st) m = 0) → signed/expr-sum-value (fun i => z i · signed/expr-sum-value (fun j => Q i j · x j) n) n + signed/expr-sum-value (fun d => c d · z d) n + signed/expr-sum-value (fun i => y i · signed/expr-sum-value (fun j => A i j · z j) n) m = 0
+ = signed/add0 = signed/zero= = signed/equivalent: equality of rational values· = signed/multiplyℕ = data/Natℚ = signed/SignedRational
signed/qp-complementary-product
signed/qp-complementary-product : (y b r : ℚ) (h : y · (b + signed/negate r) = 0) → y · r = y · b
+ = signed/add0 = signed/zero= = signed/equivalent: equality of rational values· = signed/multiplyℚ = signed/SignedRational
signed/qp-complementary-sum
signed/qp-complementary-sum : (A : ℕ → ℕ → ℚ) (b x y : ℕ → ℚ) (m n : ℕ) (comp : ∀ (cp : ℕ), ∀ (cp-lt : nat/strict-below cp m), y cp · (b cp + signed/negate (signed/expr-sum-value (fun j => A cp j · x j) n)) = 0) → signed/expr-sum-value (fun i => y i · signed/expr-sum-value (fun j => A i j · x j) n) m = signed/expr-sum-value (fun d => y d · b d) m
+ = signed/add0 = signed/zero= = signed/equivalent: equality of rational values· = signed/multiplyℕ = data/Natℚ = signed/SignedRational
signed/qp-balance-order
signed/qp-balance-order : (a b p q : ℚ) (ha : a + p = 0) (hb : b + q = 0) (hq : q ≤ p) → a ≤ b
+ = signed/add0 = signed/zero= = signed/equivalent: equality of rational valuesℚ = signed/SignedRational≤ = signed/at-most
signed/qp-combine-bounds
signed/qp-combine-bounds : (xx zx zz cx cz : ℚ) (tangent : signed/from-nnrat nnrat/half · xx + zx ≤ signed/from-nnrat nnrat/half · zz + xx) (linear : xx + cx ≤ zx + cz) → signed/from-nnrat nnrat/half · xx + cx ≤ signed/from-nnrat nnrat/half · zz + cz
+ = signed/add· = signed/multiplyℚ = signed/SignedRational≤ = signed/at-most
signed/expr-sum-qp-kkt-optimal
signed/expr-sum-qp-kkt-optimal : (Q R A : ℕ → ℕ → ℚ) (b c x y : ℕ → ℚ) (m n : ℕ) (gram : ∀ (gi : ℕ), ∀ (gi-lt : nat/strict-below gi n), ∀ (gj : ℕ), ∀ (gj-lt : nat/strict-below gj n), Q gi gj = signed/expr-sum-value (fun g => R g gi · R g gj) n) (stat : ∀ (st : ℕ), ∀ (st-lt : nat/strict-below st n), signed/expr-sum-value (fun j => Q st j · x j) n + c st + signed/expr-sum-value (fun i => y i · A i st) m = 0) (comp : ∀ (cp : ℕ), ∀ (cp-lt : nat/strict-below cp m), y cp · (b cp + signed/negate (signed/expr-sum-value (fun j => A cp j · x j) n)) = 0) (yn : ∀ (yn : ℕ), ∀ (yn-lt : nat/strict-below yn m), 0 ≤ y yn) (z : ℕ → ℚ) (feasible : ∀ (pf : ℕ), ∀ (pf-lt : nat/strict-below pf m), signed/expr-sum-value (fun j => A pf j · z j) n ≤ b pf) → signed/from-nnrat nnrat/half · signed/expr-sum-value (fun i => x i · signed/expr-sum-value (fun j => Q i j · x j) n) n + signed/expr-sum-value (fun d => c d · x d) n ≤ signed/from-nnrat nnrat/half · signed/expr-sum-value (fun i => z i · signed/expr-sum-value (fun j => Q i j · z j) n) n + signed/expr-sum-value (fun d => c d · z d) n
+ = signed/add0 = signed/zero= = signed/equivalent: equality of rational values· = signed/multiplyℕ = data/Natℚ = signed/SignedRational≤ = signed/at-most