Skip to content
Rainbow docs menu

Reference · Finite types, distributions and Markov chains

rainbow.math.finite.rational-argmin

Finite types, distributions and Markov chainssrc/rainbow/math/finite/rational_argmin.clj3 definitions, 8 theorems

Executable finite argmin with exact rational minimality certificates.

Depends onmath.finite.rational-argmax

decision/nnrat-select-min

DefinitionSource, line 98

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

ℚ≥0 = nnrat/NonnegativeRational

list/nnrat-argmin-from

DefinitionSource, line 118

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

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

decision/finite-nnrat-argmin

DefinitionSource, line 140

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

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

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

TheoremFor all inputsNo axiomsSource, line 165

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

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

decision/nnrat-select-min-bounds-left

TheoremFor all inputsNo axiomsSource, line 210

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

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

decision/nnrat-select-min-bounds-right

TheoremFor all inputsNo axiomsSource, line 252

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

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

list/nnrat-argmin-from-bounded-by-initial

TheoremFor all inputsNo axiomsSource, line 288

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

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

list/nnrat-argmin-from-bounded-by-member

TheoremFor all inputsNo axiomsSource, line 330

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

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

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

TheoremFor all inputsNo axiomsSource, line 411

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

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

decision/finite-nnrat-argmin-is-member

TheoremFor all inputsNo axiomsSource, line 499

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

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

decision/finite-nnrat-argmin-dominates

TheoremFor all inputsNo axiomsSource, line 533

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

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