Skip to content
Rainbow docs menu

Reference · Finite types, distributions and Markov chains

rainbow.math.finite.markov-stationarity

Finite types, distributions and Markov chainssrc/rainbow/math/finite/markov_stationarity.clj4 definitions, 5 theorems

Exact finite NNRAT Markov kernels, detailed balance, and stationarity. `markov/nnrat-kernel-step` pushes a mass function through a finite kernel. Kernel normalization is rowwise total mass one. Detailed balance equates every directed probability flow with its reverse. Summing those checked pairwise equivalences and factoring the target mass proves stationarity. The module also gives pointwise congruence of the step in both its mass and kernel arguments, and proves that a stationary normalized mass remains normalized after a step. Native, kernel-checked, and axiom-free on D63.

Depends onmath.finite.bellman-value-optimality

markov/nnrat-kernel-step

DefinitionSource, line 69

markov/nnrat-kernel-step.{u} :
  (S : Type u) (states : Finset S) (kernel : S → S → ℚ≥0) (mass : S → ℚ≥0) (x₁ : S)
  → ℚ≥0

Finset = finset-data/Finsetℚ≥0 = nnrat/NonnegativeRational

markov/nnrat-kernel-rows-normalized

DefinitionSource, line 96

markov/nnrat-kernel-rows-normalized.{u} :
  (S : Type u) (states : Finset S) (kernel : S → S → ℚ≥0)
  → Prop

Finset = finset-data/Finsetℚ≥0 = nnrat/NonnegativeRational

markov/nnrat-detailed-balance

DefinitionSource, line 117

markov/nnrat-detailed-balance.{u} :
  (S : Type u) (mass : S → ℚ≥0) (kernel : S → S → ℚ≥0)
  → Prop

ℚ≥0 = nnrat/NonnegativeRational

markov/nnrat-stationary

DefinitionSource, line 139

markov/nnrat-stationary.{u} :
  (S : Type u) (states : Finset S) (kernel : S → S → ℚ≥0) (mass : S → ℚ≥0)
  → Prop

Finset = finset-data/Finsetℚ≥0 = nnrat/NonnegativeRational

markov/nnrat-kernel-step-respects-mass-equivalence

TheoremFor all inputsNo axiomsSource, line 162

markov/nnrat-kernel-step-respects-mass-equivalence.{u} :
  (S : Type u) (states : Finset S) (kernel : S → S → ℚ≥0)
  (left-mass right-mass : S → ℚ≥0)
  (same-mass : ∀ (state : S), left-mass state = right-mass state)
  (target : S)
  → step left-mass target = step right-mass target
  where step := markov/nnrat-kernel-step S states kernel

= = nnrat/equivalent: equality of rational valuesFinset = finset-data/Finsetℚ≥0 = nnrat/NonnegativeRational

markov/nnrat-kernel-step-respects-kernel-equivalence

TheoremFor all inputsNo axiomsSource, line 215

markov/nnrat-kernel-step-respects-kernel-equivalence.{u} :
  (S : Type u) (states : Finset S) (left-kernel right-kernel : S → S → ℚ≥0)
  (same-kernel : ∀ (source : S), ∀ (target : S), left-kernel source target = right-kernel source target)
  (mass : S → ℚ≥0) (target : S)
  → markov/nnrat-kernel-step S states left-kernel mass target = markov/nnrat-kernel-step S states right-kernel mass target

= = nnrat/equivalent: equality of rational valuesFinset = finset-data/Finsetℚ≥0 = nnrat/NonnegativeRational

markov/nnrat-kernel-step-respects-equivalence

TheoremFor all inputsNo axiomsSource, line 269

markov/nnrat-kernel-step-respects-equivalence.{u} :
  (S : Type u) (states : Finset S) (left-kernel right-kernel : S → S → ℚ≥0)
  (same-kernel : ∀ (source : S), ∀ (target : S), left-kernel source target = right-kernel source target)
  (left-mass right-mass : S → ℚ≥0)
  (same-mass : ∀ (state : S), left-mass state = right-mass state)
  (target : S)
  → markov/nnrat-kernel-step S states left-kernel left-mass target = markov/nnrat-kernel-step S states right-kernel right-mass target

= = nnrat/equivalent: equality of rational valuesFinset = finset-data/Finsetℚ≥0 = nnrat/NonnegativeRational

markov/nnrat-detailed-balance-implies-stationary

TheoremFor all inputsNo axiomsSource, line 335

markov/nnrat-detailed-balance-implies-stationary.{u} :
  (S : Type u) (states : Finset S) (kernel : S → S → ℚ≥0) (mass : S → ℚ≥0)
  (normalized : markov/nnrat-kernel-rows-normalized S states kernel)
  (balanced : markov/nnrat-detailed-balance S mass kernel)
  → markov/nnrat-stationary S states kernel mass

Finset = finset-data/Finsetℚ≥0 = nnrat/NonnegativeRational

markov/nnrat-stationary-step-normalized

TheoremFor all inputsNo axiomsSource, line 423

markov/nnrat-stationary-step-normalized.{u} :
  (S : Type u) (states : Finset S) (kernel : S → S → ℚ≥0) (mass : S → ℚ≥0)
  (mass-normalized : probability/nnrat-total-mass S states mass = 1)
  (fixed : markov/nnrat-stationary S states kernel mass)
  → probability/nnrat-total-mass S states (fun state => step state) = 1
  where step := markov/nnrat-kernel-step S states kernel mass

1 = nnrat/one= = nnrat/equivalent: equality of rational valuesFinset = finset-data/Finsetℚ≥0 = nnrat/NonnegativeRational