Reference · Finite types, distributions and Markov chains
rainbow.math.finite.expectation
Executable finite natural mass and expectation numerators. This is the exact arithmetic substrate for finite probability. Natural masses plus an explicit normalization scale avoid introducing floating-point semantics or pretending that raw fractions already form a quotient field.
nat/multiply
nat/multiply : (x₁ x₂ : ℕ) → ℕ
ℕ = data/Nat
list/nat-map-sum
list/nat-map-sum.{u} :
(A : Type u) (mapping : A → ℕ) (x₁ : List A)
→ ℕList = data/Listℕ = data/Nat
probability/weight-total
probability/weight-total.{u} :
(A : Type u) (source : Finset A) (mass : A → ℕ)
→ ℕFinset = finset-data/Finsetℕ = data/Nat
probability/normalized-at
probability/normalized-at.{u} :
(A : Type u) (scale : ℕ) (source : Finset A) (mass : A → ℕ)
→ PropFinset = finset-data/Finsetℕ = data/Nat
probability/expectation-numerator
probability/expectation-numerator.{u} :
(A : Type u) (source : Finset A) (mass value : A → ℕ)
→ ℕFinset = finset-data/Finsetℕ = data/Nat
list/nat-map-sum-zero
list/nat-map-sum-zero.{u} :
(A : Type u) (source : List A)
→ list/nat-map-sum A (fun x₃ => 0) source = 0= = equality/EqList = data/List
probability/expectation-zero
probability/expectation-zero.{u} :
(A : Type u) (source : Finset A) (mass : A → ℕ)
→ probability/expectation-numerator A source mass (fun x₂ => 0) = 0= = equality/EqFinset = finset-data/Finsetℕ = data/Nat
nat/one-times
nat/one-times : (value : ℕ) → nat/multiply 1 value = value
= = equality/Eqℕ = data/Nat
nat/times-zero
nat/times-zero : (value : ℕ) → nat/multiply value 0 = 0
= = equality/Eqℕ = data/Nat