Reference · Finite types, distributions and Markov chains
rainbow.math.finite.nnrat-sup-distance
A native finite supremum metric for NNRAT-valued functions. Bellman values are functions into exact nonnegative rationals, while Rainbow's existing finite function metric is Nat-valued and its signed supremum metric is list-vector-specific. This module closes that representation gap without inventing quotient subtraction on NNRAT: each value is embedded canonically with `signed/from-nnrat`, scalar distance is the existing quotient-safe signed distance, and the finite maximum is the existing signed map-max fold over the exact finset enumeration. The result has the laws needed by a posteriori Bellman certificates: every enumerated component is below the supremum, pointwise bounds fold globally, and the metric is nonnegative, symmetric, and triangular. Native, kernel-checked, and axiom-free on D63.
metric/finite-nnrat-sup-distance
metric/finite-nnrat-sup-distance.{u} :
(A : Type u) (source : Finset A) (left right : A → ℚ≥0)
→ ℚFinset = finset-data/Finsetℚ = signed/SignedRationalℚ≥0 = nnrat/NonnegativeRational
list/signed-map-max-upper-bound
list/signed-map-max-upper-bound.{u} :
(A : Type u) (mapping : A → ℚ) (source : List A) (value : A)
(member : list/membership A source value)
→ mapping value ≤ list/signed-map-max A mapping sourceList = data/Listℚ = signed/SignedRational≤ = signed/at-most
metric/finite-nnrat-sup-distance-upper-bound
metric/finite-nnrat-sup-distance-upper-bound.{u} :
(A : Type u) (source : Finset A) (left right : A → ℚ≥0) (state : A)
(member : state ∈ source)
→ signed/distance (signed/from-nnrat (left state)) (signed/from-nnrat (right state)) ≤ metric/finite-nnrat-sup-distance A source left rightFinset = finset-data/Finsetℚ≥0 = nnrat/NonnegativeRational∈ = finset-data/to-set: membership in a finite set≤ = signed/at-most
metric/finite-nnrat-sup-distance-bounded
metric/finite-nnrat-sup-distance-bounded.{u} :
(A : Type u) (source : Finset A) (left right : A → ℚ≥0) (upper : ℚ)
(zero-upper : 0 ≤ upper)
(pointwise : ∀ (state : A), ∀ (member : state ∈ source), signed/distance (signed/from-nnrat (left state)) (signed/from-nnrat (right state)) ≤ upper)
→ metric/finite-nnrat-sup-distance A source left right ≤ upper0 = signed/zeroFinset = finset-data/Finsetℚ = signed/SignedRationalℚ≥0 = nnrat/NonnegativeRational∈ = finset-data/to-set: membership in a finite set≤ = signed/at-most
metric/finite-nnrat-sup-distance-nonnegative
metric/finite-nnrat-sup-distance-nonnegative.{u} :
(A : Type u) (source : Finset A) (left right : A → ℚ≥0)
→ 0 ≤ metric/finite-nnrat-sup-distance A source left right0 = signed/zeroFinset = finset-data/Finsetℚ≥0 = nnrat/NonnegativeRational≤ = signed/at-most
metric/finite-nnrat-sup-distance-symmetric
metric/finite-nnrat-sup-distance-symmetric.{u} :
(A : Type u) (source : Finset A) (left right : A → ℚ≥0)
→ distance left right = distance right left
where distance := metric/finite-nnrat-sup-distance A source= = signed/equivalent: equality of rational valuesFinset = finset-data/Finsetℚ≥0 = nnrat/NonnegativeRational
metric/finite-nnrat-sup-distance-triangle
metric/finite-nnrat-sup-distance-triangle.{u} :
(A : Type u) (source : Finset A) (left middle right : A → ℚ≥0)
→ distance right ≤ distance middle + metric/finite-nnrat-sup-distance A source middle right
where distance := metric/finite-nnrat-sup-distance A source left+ = signed/addFinset = finset-data/Finsetℚ≥0 = nnrat/NonnegativeRational≤ = signed/at-most