Skip to content
Rainbow docs menu

Reference · Signed rationals

rainbow.math.rational.signed.lp-certificate-reflect

Signed rationalssrc/rainbow/math/rational/signed/lp_certificate_reflect.clj2 definitions, 2 theorems

LP optimality certificates by reflection over finite row and column lists. The Boolean checker decides primal feasibility, dual feasibility, both nonnegativity conditions and the signed-equivalence objective gap. Its native, axiom-free soundness theorem applies the existing list-quantified LP theorem. A concrete certificate needs one theorem application and a true-reflexivity witness; the kernel computes the checker on the supplied data. The application still contains that data, so total proof size is not independent of the input.

Depends onmath.rational.signed.lp-duality-onmath.rational.signed.decide-equivalence

lp/all-at-most-decide

DefinitionSource, line 45

lp/all-at-most-decide.{u} :
  (A : Type u) (f g : A → ℚ) (x₁ : List A)
  → data/Bool

List = data/Listℚ = signed/SignedRational

lp/certificate-check

DefinitionSource, line 109

lp/certificate-check.{u} :
  (A B : Type u) (M : A → B → ℚ) (b : A → ℚ) (c x : B → ℚ) (y : A → ℚ) (rows : List A)
  (cols : List B)
  → data/Bool

List = data/Listℚ = signed/SignedRational

lp/all-at-most-decide-sound

TheoremFor all inputsNo axiomsSource, line 62

lp/all-at-most-decide-sound.{u} :
  (A : Type u) (f g : A → ℚ) (xs : List A)
  (h₁ : lp/all-at-most-decide A f g xs = data/true)
  → ∀ i ∈ xs, f i ≤ g i

= = equality/EqList = data/Listℚ = signed/SignedRational∀ i ∈ xs, f i ≤ g i = signed/all-at-most: the bound at every listed index

lp/certificate-check-sound

TheoremFor all inputsNo axiomsSource, line 126

lp/certificate-check-sound.{u} :
  (A B : Type u) (M : A → B → ℚ) (b : A → ℚ) (c x : B → ℚ) (y : A → ℚ) (rows : List A)
  (cols : List B)
  (checked : lp/certificate-check A B M b c x y rows cols = data/true)
  (candidate : B → ℚ)
  (candidate-feasible : ∀ i ∈ rows, Σ j∈cols, M i j · candidate j ≤ b i)
  (candidate-nonnegative : ∀ i ∈ cols, 0 ≤ candidate i)
  → Σ j∈cols, c j · candidate j ≤ Σ j∈cols, c j · x j

0 = signed/zero= = equality/EqList = data/List· = signed/multiplyΣ = signed/map-sum: sum over the listed indicesℚ = signed/SignedRational∀ i ∈ xs, f i ≤ g i = signed/all-at-most: the bound at every listed index≤ = signed/at-most