Reference · Non-negative rationals
rainbow.math.rational.nnrat.finite-min-positive
Positive lower bounds from finite exact-rational minima. The existing non-empty minimum fold takes an explicit initial value and a list of remaining values. If every input is strictly positive, its result is strictly positive. Combined with the fold's existing lower-bound law, this produces an exact positive value below every input—the quantitative finite-minimum ingredient for Markov minorization and mixing bounds. Native, kernel-checked, and axiom-free on D63.
nnrat/min-ub-positive
nnrat/min-ub-positive : (initial : ℚ≥0) (rest : List ℚ≥0) (initial-positive : nnrat/positive initial) (rest-positive : ∀ (value : ℚ≥0), ∀ (member : list/membership ℚ≥0 rest value), nnrat/positive value) → nnrat/positive (nnrat/min-ub initial rest)
List = data/Listℚ≥0 = nnrat/NonnegativeRational
nnrat/min-ub-positive-lower-bound
nnrat/min-ub-positive-lower-bound : (initial : ℚ≥0) (rest : List ℚ≥0) (initial-positive : nnrat/positive initial) (rest-positive : ∀ (value : ℚ≥0), ∀ (member : list/membership ℚ≥0 rest value), nnrat/positive value) → proposition/conjunction (nnrat/positive (nnrat/min-ub initial rest)) (all) where all := nnrat/le-all initial rest (nnrat/min-ub initial rest)
List = data/Listℚ≥0 = nnrat/NonnegativeRational
nnrat/le-all-member
nnrat/le-all-member : (initial : ℚ≥0) (rest : List ℚ≥0) (low : ℚ≥0) (bounds : nnrat/le-all initial rest low) (value : ℚ≥0) (member : list/membership ℚ≥0 (data/cons ℚ≥0 initial rest) value) → low ≤ value
List = data/Listℚ≥0 = nnrat/NonnegativeRational≤ = nnrat/at-most
nnrat/min-ub-below-member
nnrat/min-ub-below-member : (initial : ℚ≥0) (rest : List ℚ≥0) (value : ℚ≥0) (member : list/membership ℚ≥0 (data/cons ℚ≥0 initial rest) value) → nnrat/min-ub initial rest ≤ value
List = data/Listℚ≥0 = nnrat/NonnegativeRational≤ = nnrat/at-most