Reference · Finite types, distributions and Markov chains
rainbow.math.finite.markov-point-mass
Canonical point masses for finite exact-rational Markov kernels. A point mass is the unit diagonal spike induced by a certified Boolean equality decision. On an exhaustive duplicate-free carrier, pushing that mass through one kernel step is equivalent to the selected source row. This is the exact bridge from the mass-based iteration API to finite-step reachability. Native, kernel-checked, and axiom-free on D63.
markov/nnrat-point-mass
markov/nnrat-point-mass.{u} :
(S : Type u) (decision : S → S → data/Bool) (x₁ x₂ : S)
→ ℚ≥0ℚ≥0 = nnrat/NonnegativeRational
markov/nnrat-point-mass-positive-at-selected
markov/nnrat-point-mass-positive-at-selected.{u} :
(S : Type u) (decision : S → S → data/Bool)
(certified : finite/certified-equality-decision S decision) (selected : S)
→ nnrat/positive (markov/nnrat-point-mass S decision selected selected)markov/nnrat-kernel-step-point-mass
markov/nnrat-kernel-step-point-mass.{u} :
(S : Type u) (states : Finset S) (decision : S → S → data/Bool) (kernel : S → S → ℚ≥0)
(exhaustive : finite/certified-exhaustive-carrier S states decision)
(selected target : S)
→ markov/nnrat-kernel-step S states kernel (fun state => mass state) target = kernel selected target
where mass := markov/nnrat-point-mass S decision selected= = nnrat/equivalent: equality of rational valuesFinset = finset-data/Finsetℚ≥0 = nnrat/NonnegativeRational
markov/nnrat-kernel-step-point-mass-positive
markov/nnrat-kernel-step-point-mass-positive.{u} :
(S : Type u) (states : Finset S) (decision : S → S → data/Bool) (kernel : S → S → ℚ≥0)
(exhaustive : finite/certified-exhaustive-carrier S states decision)
(selected target : S) (entry-positive : nnrat/positive (kernel selected target))
→ nnrat/positive (markov/nnrat-kernel-step S states kernel (fun state => mass state) target)
where mass := markov/nnrat-point-mass S decision selectedFinset = finset-data/Finsetℚ≥0 = nnrat/NonnegativeRational
markov/nnrat-kernel-iterate-one-point-mass
markov/nnrat-kernel-iterate-one-point-mass.{u} :
(S : Type u) (states : Finset S) (decision : S → S → data/Bool) (kernel : S → S → ℚ≥0)
(exhaustive : finite/certified-exhaustive-carrier S states decision)
(selected target : S)
→ markov/nnrat-kernel-iterate S states kernel 1 (fun state => mass state) target = kernel selected target
where mass := markov/nnrat-point-mass S decision selected= = nnrat/equivalent: equality of rational valuesFinset = finset-data/Finsetℚ≥0 = nnrat/NonnegativeRational
markov/nnrat-kernel-iterate-one-point-mass-positive
markov/nnrat-kernel-iterate-one-point-mass-positive.{u} :
(S : Type u) (states : Finset S) (decision : S → S → data/Bool) (kernel : S → S → ℚ≥0)
(exhaustive : finite/certified-exhaustive-carrier S states decision)
(selected target : S) (entry-positive : nnrat/positive (kernel selected target))
→ nnrat/positive (markov/nnrat-kernel-iterate S states kernel 1 (fun state => mass state) target)
where mass := markov/nnrat-point-mass S decision selectedFinset = finset-data/Finsetℚ≥0 = nnrat/NonnegativeRational
markov/nnrat-kernel-iterate-zero-point-mass-positive
markov/nnrat-kernel-iterate-zero-point-mass-positive.{u} :
(S : Type u) (states : Finset S) (decision : S → S → data/Bool) (kernel : S → S → ℚ≥0)
(certified : finite/certified-equality-decision S decision) (selected : S)
→ nnrat/positive (markov/nnrat-kernel-iterate S states kernel 0 (fun state => mass state) selected)
where mass := markov/nnrat-point-mass S decision selectedFinset = finset-data/Finsetℚ≥0 = nnrat/NonnegativeRational
markov/nnrat-point-mass-iterate-positive-along-trajectory
markov/nnrat-point-mass-iterate-positive-along-trajectory.{u} :
(S : Type u) (states : Finset S) (decision : S → S → data/Bool) (kernel : S → S → ℚ≥0)
(certified : finite/certified-equality-decision S decision) (trajectory : ℕ → S)
(trajectory-member : ∀ (step : ℕ), list/membership S (finset-data/enumeration S states) (trajectory step))
(edge-positive : ∀ (step : ℕ), nnrat/positive (kernel (trajectory step) (trajectory (data/succ step))))
(steps : ℕ)
→ nnrat/positive (markov/nnrat-kernel-iterate S states kernel steps (fun state => mass state) (trajectory steps))
where mass := markov/nnrat-point-mass S decision (trajectory 0)Finset = finset-data/Finsetℕ = data/Natℚ≥0 = nnrat/NonnegativeRational