Reference · Finite types, distributions and Markov chains
rainbow.math.finite.nnrat-sup-radius
A Bellman-compatible NNRAT supremum radius over exact finite carriers. Unlike the signed-valued metric view, this fold stays in NNRAT, so its result can be supplied directly as the epsilon parameter of Rainbow's finite Bellman contraction theorems. It maps each enumerated state to the exact `nnrat/distance` of the two values and folds with the decidable NNRAT maximum. The package proves the two directions a residual certificate needs: every member distance is below the finite radius, and any uniform pointwise bound bounds the radius. Nonnegativity is structural from the zero base. Native, kernel-checked, and axiom-free on D63.
list/nnrat-map-max
list/nnrat-map-max.{u} :
(A : Type u) (mapping : A → ℚ≥0) (x₁ : List A)
→ ℚ≥0List = data/Listℚ≥0 = nnrat/NonnegativeRational
metric/finite-nnrat-sup-radius
metric/finite-nnrat-sup-radius.{u} :
(A : Type u) (source : Finset A) (left right : A → ℚ≥0)
→ ℚ≥0Finset = finset-data/Finsetℚ≥0 = nnrat/NonnegativeRational
list/nnrat-map-max-upper-bound
list/nnrat-map-max-upper-bound.{u} :
(A : Type u) (mapping : A → ℚ≥0) (source : List A) (value : A)
(member : list/membership A source value)
→ mapping value ≤ list/nnrat-map-max A mapping sourceList = data/Listℚ≥0 = nnrat/NonnegativeRational≤ = nnrat/at-most
list/nnrat-map-max-bounded
list/nnrat-map-max-bounded.{u} :
(A : Type u) (mapping : A → ℚ≥0) (upper : ℚ≥0)
(zero-upper : 0 ≤ upper)
(source : List A)
(pointwise : ∀ (value : A), ∀ (member : list/membership A source value), mapping value ≤ upper)
→ list/nnrat-map-max A mapping source ≤ upper0 = nnrat/zeroList = data/Listℚ≥0 = nnrat/NonnegativeRational≤ = nnrat/at-most
list/nnrat-map-max-nonnegative
list/nnrat-map-max-nonnegative.{u} :
(A : Type u) (mapping : A → ℚ≥0) (source : List A)
→ 0 ≤ list/nnrat-map-max A mapping source0 = nnrat/zeroList = data/Listℚ≥0 = nnrat/NonnegativeRational≤ = nnrat/at-most
metric/finite-nnrat-sup-radius-upper-bound
metric/finite-nnrat-sup-radius-upper-bound.{u} :
(A : Type u) (source : Finset A) (left right : A → ℚ≥0) (state : A)
(member : state ∈ source)
→ nnrat/distance (left state) (right state) ≤ max s∈source |left s - right s|Finset = finset-data/Finsetmax s∈S |f s - g s| = metric/finite-nnrat-sup-radius: largest distance over the listed states (0 if none)ℚ≥0 = nnrat/NonnegativeRational∈ = finset-data/to-set: membership in a finite set≤ = nnrat/at-most
metric/finite-nnrat-sup-radius-bounded
metric/finite-nnrat-sup-radius-bounded.{u} :
(A : Type u) (source : Finset A) (left right : A → ℚ≥0) (upper : ℚ≥0)
(zero-upper : 0 ≤ upper)
(pointwise : ∀ (state : A), ∀ (member : state ∈ source), nnrat/distance (left state) (right state) ≤ upper)
→ max s∈source |left s - right s| ≤ upper0 = nnrat/zeroFinset = finset-data/Finsetmax s∈S |f s - g s| = metric/finite-nnrat-sup-radius: largest distance over the listed states (0 if none)ℚ≥0 = nnrat/NonnegativeRational∈ = finset-data/to-set: membership in a finite set≤ = nnrat/at-most
metric/finite-nnrat-sup-radius-nonnegative
metric/finite-nnrat-sup-radius-nonnegative.{u} :
(A : Type u) (source : Finset A) (left right : A → ℚ≥0)
→ 0 ≤ max s∈source |left s - right s|0 = nnrat/zeroFinset = finset-data/Finsetmax s∈S |f s - g s| = metric/finite-nnrat-sup-radius: largest distance over the listed states (0 if none)ℚ≥0 = nnrat/NonnegativeRational≤ = nnrat/at-most