Markov Chains Monte Carlo and Perron–Frobenius in Lean 4
Formalization of:
- finite-state Markov chains (kernels, total variation, convergence),
- basic MCMC algorithms (Gibbs, Metropolis–Hastings),
- Perron–Frobenius theory and supporting spectral material,
- groundwork for a general MCMC kernel interface (non-finite).
Build
Prerequisites: Lean 4 and Lake (elan recommended).
- macOS:
cd MCMC lake build
Open the folder in VS Code for interactive proofs.
Directory overview
MCMC/Finite/Core.lean: finite Markov chains; states, transitions, stationary distributionstoKernel.lean: bridge to kernel transitionsTotalVariation.lean: total variation distance and Dobrushin coefficientConvergence.lean: convergence/mixing statements for finite chainsMetropolisHastings.lean: Metropolis–Hastings kernelGibbs.lean: Gibbs sampling
MCMC/PF/aux.lean: auxiliary lemmasLinearAlgebra/Matrix/PerronFrobenius/: PF and spectral/JNF files- core:
Defs,Irreducible,Primitive,Aperiodic,CollatzWielandt,Multiplicity,Dominance - stochastic/sampling:
Stochastic.lean
- core:
MCMC/Kernel/: WIP general-state kernel interface
Finite-state TV and Dobrushin (key results)
MCMC/Finite/TotalVariation.lean provides:
tvDist: total variation on finite distributions (L1/2 formulation).dobrushinCoeff: sup TV distance between rows of a stochastic matrix.- contraction:
tvDist_contract(TV contracts bydobrushinCoeffunder a kernel). - submultiplicativity:
dobrushinCoeff_mul, powers:dobrushinCoeff_pow. - primitive link:
dobrushinCoeff_lt_one_of_primitive(∃ k, δ(P^k) < 1 for primitive P).
Consequences (used in Convergence.lean and PF links):
- quantitative TV convergence for finite primitive chains,
- geometric decay along powers once some δ(P^k) < 1,
- bridge to PF primitivity results in
PF/…/PerronFrobenius.
Contributing
Feel free to open issues or PRs for discussion and suggestions.