Skip to content
Rainbow docs menu

Reference · Finite types, distributions and Markov chains

rainbow.math.finite.rational-argmax

Finite types, distributions and Markov chainssrc/rainbow/math/finite/rational_argmax.clj3 definitions, 15 theorems

Executable finite argmax with exact rational dominance certificates.

decision/nnrat-select

DefinitionSource, line 389

decision/nnrat-select.{u} :
  (A : Type u) (score : A → ℚ≥0) (x₁ x₂ : A)
  → A

ℚ≥0 = nnrat/NonnegativeRational

list/nnrat-argmax-from

DefinitionSource, line 409

list/nnrat-argmax-from.{u} :
  (A : Type u) (score : A → ℚ≥0) (x₁ : A) (x₂ : List A)
  → A

List = data/Listℚ≥0 = nnrat/NonnegativeRational

decision/finite-nnrat-argmax

DefinitionSource, line 431

decision/finite-nnrat-argmax.{u} :
  (A : Type u) (actions : Finset A) (initial : A) (score : A → ℚ≥0)
  → A

Finset = finset-data/Finsetℚ≥0 = nnrat/NonnegativeRational

bool/false-not-true

TheoremWorked exampleNo axiomsSource, line 139

bool/false-not-true :
  (h₁ : data/false = data/true)
  → proposition/falsity

= = equality/Eq

bool/true-not-false

TheoremWorked exampleNo axiomsSource, line 159

bool/true-not-false :
  (h₁ : data/true = data/false)
  → proposition/falsity

= = equality/Eq

nat/decide-at-most-true-sound

TheoremFor all inputsNo axiomsSource, line 181

nat/decide-at-most-true-sound :
  (left right : ℕ)
  (same : nat/decide-at-most left right = data/true)
  → left ≤ right

= = equality/Eqℕ = data/Nat≤ = nat/at-most

nat/decide-at-most-false-reverse

TheoremFor all inputsNo axiomsSource, line 251

nat/decide-at-most-false-reverse :
  (left right : ℕ)
  (same : nat/decide-at-most left right = data/false)
  → right ≤ left

= = equality/Eqℕ = data/Nat≤ = nat/at-most

nnrat/at-most-rewrite-left

TheoremFor all inputsNo axiomsSource, line 310

nnrat/at-most-rewrite-left :
  (left equivalent-left right : ℚ≥0)
  (same : left = equivalent-left)
  (ordered : equivalent-left ≤ right)
  → left ≤ right

= = equality/Eqℚ≥0 = nnrat/NonnegativeRational≤ = nnrat/at-most

nnrat/decide-at-most-true-sound

TheoremFor all inputsNo axiomsSource, line 331

nnrat/decide-at-most-true-sound :
  (left right : ℚ≥0)
  (same : audit/decide-nnrat-at-most left right = data/true)
  → left ≤ right

= = equality/Eqℚ≥0 = nnrat/NonnegativeRational≤ = nnrat/at-most

nnrat/decide-at-most-false-reverse

TheoremFor all inputsNo axiomsSource, line 360

nnrat/decide-at-most-false-reverse :
  (left right : ℚ≥0)
  (same : audit/decide-nnrat-at-most left right = data/false)
  → right ≤ left

= = equality/Eqℚ≥0 = nnrat/NonnegativeRational≤ = nnrat/at-most

decision/nnrat-select-is-left-or-right

TheoremFor all inputsNo axiomsSource, line 456

decision/nnrat-select-is-left-or-right.{u} :
  (A : Type u) (score : A → ℚ≥0) (left right : A)
  → proposition/disjunction (select = left) (select = right)
  where select := decision/nnrat-select A score left right

= = equality/Eqℚ≥0 = nnrat/NonnegativeRational

decision/nnrat-select-left-bound

TheoremFor all inputsNo axiomsSource, line 501

decision/nnrat-select-left-bound.{u} :
  (A : Type u) (score : A → ℚ≥0) (left right : A)
  → score left ≤ score (decision/nnrat-select A score left right)

ℚ≥0 = nnrat/NonnegativeRational≤ = nnrat/at-most

decision/nnrat-select-right-bound

TheoremFor all inputsNo axiomsSource, line 543

decision/nnrat-select-right-bound.{u} :
  (A : Type u) (score : A → ℚ≥0) (left right : A)
  → score right ≤ score (decision/nnrat-select A score left right)

ℚ≥0 = nnrat/NonnegativeRational≤ = nnrat/at-most

list/nnrat-argmax-from-bounds-initial

TheoremFor all inputsNo axiomsSource, line 580

list/nnrat-argmax-from-bounds-initial.{u} :
  (A : Type u) (score : A → ℚ≥0) (initial : A) (source : List A)
  → (fun source₁ => score initial ≤ score (list/nnrat-argmax-from A score initial source₁)) source

List = data/Listℚ≥0 = nnrat/NonnegativeRational≤ = nnrat/at-most

list/nnrat-argmax-from-bounds-member

TheoremFor all inputsNo axiomsSource, line 621

list/nnrat-argmax-from-bounds-member.{u} :
  (A : Type u) (score : A → ℚ≥0) (initial : A) (source : List A) (value : A)
  (member : list/membership A source value)
  → score value ≤ score (list/nnrat-argmax-from A score initial source)

List = data/Listℚ≥0 = nnrat/NonnegativeRational≤ = nnrat/at-most

list/nnrat-argmax-from-is-initial-or-member

TheoremFor all inputsNo axiomsSource, line 694

list/nnrat-argmax-from-is-initial-or-member.{u} :
  (A : Type u) (score : A → ℚ≥0) (initial : A) (source : List A)
  → proposition/disjunction (list/nnrat-argmax-from A score initial source = initial) (membership)
  where membership := list/membership A source (list/nnrat-argmax-from A score initial source)

= = equality/EqList = data/Listℚ≥0 = nnrat/NonnegativeRational

decision/finite-nnrat-argmax-is-member

TheoremFor all inputsNo axiomsSource, line 782

decision/finite-nnrat-argmax-is-member.{u} :
  (A : Type u) (actions : Finset A) (initial : A) (score : A → ℚ≥0)
  (initial-member : initial ∈ actions)
  → decision/finite-nnrat-argmax A actions initial score ∈ actions

Finset = finset-data/Finsetℚ≥0 = nnrat/NonnegativeRational∈ = finset-data/to-set: membership in a finite set

decision/finite-nnrat-argmax-dominates

TheoremFor all inputsNo axiomsSource, line 816

decision/finite-nnrat-argmax-dominates.{u} :
  (A : Type u) (actions : Finset A) (initial : A) (score : A → ℚ≥0) (candidate : A)
  (candidate-member : candidate ∈ actions)
  → score candidate ≤ score (decision/finite-nnrat-argmax A actions initial score)

Finset = finset-data/Finsetℚ≥0 = nnrat/NonnegativeRational∈ = finset-data/to-set: membership in a finite set≤ = nnrat/at-most