Ibragimov–Linnik CLT, bounded case: a.s., (Jones Thm 5(i))
ProvedMarkovChainCLT.clt_of_bounded_of_summable_alphaLet be a centered, strictly stationary sequence of real random variables on a probability space, with partial sums . Suppose there is a constant with almost surely for every , and the strong mixing coefficients are summable, .
Then the series
converges absolutely, and if then as .
This is the bounded case of the Ibragimov–Linnik central limit theorem, the engine behind the polynomial-ergodicity CLT for bounded functionals (goal condition 1) — the regime of posterior probabilities in Bayesian MCMC.
Formalization Note Sequences are indexed from , so and the past -algebras used by the mixing coefficients start at ; under strict stationarity this agrees with the source, which indexes from . Absolute convergence of the covariance series is expressed as unconditional summability, and the limit statement is weak convergence of the laws of .
import Definitions.Def_MixingCoefficients
import Mathlib.MeasureTheory.Function.ConvergenceInDistribution
import Mathlib.Probability.Distributions.Gaussian.Real
open MeasureTheory ProbabilityTheory Filter
open scoped ENNReal NNReal Topology ProbabilityTheory
/-- **Theorem 5, condition 1** (Ibragimov 1962; Ibragimov–Linnik 1971): a centered
strictly stationary strongly mixing sequence that is uniformly bounded and has
summable strong mixing coefficients satisfies
`σ² = E[Y₀²] + 2 ∑_{k≥1} E[Y₀ Y_k]` (absolutely convergent), and if `σ² > 0` then
`S_n / √n →d N(0, σ²)`. -/
theorem MarkovChainCLT.clt_of_bounded_of_summable_alpha {Ω : Type*} [MeasurableSpace Ω]
(P : Measure Ω) [IsProbabilityMeasure P] (Y : ℕ → Ω → ℝ)
(hY : ∀ n, Measurable (Y n)) (hstat : IsStrictlyStationary P Y)
(hcent : ∫ ω, Y 0 ω ∂P = 0)
(B : ℝ) (hB : ∀ n, ∀ᵐ ω ∂P, |Y n ω| < B)
(hα : Summable (fun n => alphaMixingCoef P Y n)) :
Summable (fun k : ℕ => ∫ ω, Y 0 ω * Y (k + 1) ω ∂P) ∧
(0 < seqAsymptoticVariance P Y →
TendstoInDistribution
(fun (n : ℕ) ω => (Real.sqrt n)⁻¹ * ∑ i ∈ Finset.range n, Y i ω)
atTop (id : ℝ → ℝ) (fun _ => P)
(gaussianReal 0 (seqAsymptoticVariance P Y).toNNReal)) := by sorry