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 bydobrushinCoeff
under 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.