Reference · Lemmas behind operations-research checks
rainbow.math.lemmas.auction-assignment
General lemmas: auction assignment. The mathematical facts the corresponding checks rest on, each checked by the kernel.
signed/assignment-net-sum
signed/assignment-net-sum : (z a : ℕ → ℕ → ℚ) (p : ℕ → ℚ) (n : ℕ) (hcol : ∀ (idx : ℕ), ∀ (bound : nat/strict-below idx n), signed/expr-sum-value (fun ci => z ci idx) n = 1) → signed/expr-sum-value (fun ri => signed/expr-sum-value (fun nk => z ri nk · (a ri nk + signed/negate (p nk))) n) n = signed/expr-sum-value (fun vi => signed/expr-sum-value (fun vk => z vi vk · a vi vk) n) n + signed/negate (signed/expr-sum-value (fun ps => p ps) n)
+ = signed/add1 = signed/one= = signed/equivalent: equality of rational values· = signed/multiplyℕ = data/Natℚ = signed/SignedRational
signed/auction-near-optimal
signed/auction-near-optimal : (a x : ℕ → ℕ → ℚ) (p : ℕ → ℚ) (eps : ℚ) (n : ℕ) (hxcol : ∀ (idx : ℕ), ∀ (bound : nat/strict-below idx n), signed/expr-sum-value (fun ci => x ci idx) n = 1) (hcs : ∀ (ci : ℕ), ∀ (ci-lt : nat/strict-below ci n), ∀ (ck : ℕ), ∀ (ck-lt : nat/strict-below ck n), a ci ck + signed/negate (p ck) ≤ signed/expr-sum-value (fun nk => x ci nk · (a ci nk + signed/negate (p nk))) n + eps) (y : ℕ → ℕ → ℚ) (hy01 : ∀ (yi : ℕ), ∀ (yi-lt : nat/strict-below yi n), ∀ (yj : ℕ), ∀ (yj-lt : nat/strict-below yj n), y yi yj · (1 + signed/negate (y yi yj)) = 0) (hrow : ∀ (idx : ℕ), ∀ (bound : nat/strict-below idx n), signed/expr-sum-value (fun rj => y idx rj) n = 1) (hcol : ∀ (idx : ℕ), ∀ (bound : nat/strict-below idx n), signed/expr-sum-value (fun ci => y ci idx) n = 1) → signed/expr-sum-value (fun vi => signed/expr-sum-value (fun vk => y vi vk · a vi vk) n) n ≤ signed/expr-sum-value (fun vi => signed/expr-sum-value (fun vk => x vi vk · a vi vk) n) n + eps · signed/from-nnrat (nnrat/make n 0)
+ = signed/add0 = signed/zero1 = signed/one= = signed/equivalent: equality of rational values· = signed/multiplyℕ = data/Natℚ = signed/SignedRational≤ = signed/at-most