Doukhan–Massart–Rio CLT: , (Jones Thm 6)
ProvedMarkovChainCLT.clt_of_exp_alpha_of_log_momentLet be a centered, strictly stationary sequence of real random variables on a probability space, with partial sums . Suppose the strong mixing coefficients decay exponentially, for some , and
Then the series
converges absolutely, and if then as .
This Doukhan–Massart–Rio theorem trades the moment for a barely-more-than-second moment when mixing is exponentially fast — the sharpest sequence-level input available for geometrically ergodic chains.
Formalization Note The stated moment already implies , so square-integrability is not assumed separately. 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
import Mathlib.Analysis.SpecialFunctions.Log.PosLog
open MeasureTheory ProbabilityTheory Filter
open scoped ENNReal NNReal Topology ProbabilityTheory
/-- **Theorem 6** (Doukhan–Massart–Rio 1994): a centered strictly stationary
sequence with exponentially fast strong mixing and `E[Y₀² log⁺|Y₀|] < ∞` 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_exp_alpha_of_log_moment {Ω : Type*} [MeasurableSpace Ω]
(P : Measure Ω) [IsProbabilityMeasure P] (Y : ℕ → Ω → ℝ)
(hY : ∀ n, Measurable (Y n)) (hstat : IsStrictlyStationary P Y)
(hcent : ∫ ω, Y 0 ω ∂P = 0)
(c a : ℝ) (ha0 : 0 ≤ a) (ha1 : a < 1)
(hα : ∀ n, alphaMixingCoef P Y n ≤ c * a ^ n)
(hmom : Integrable (fun ω => (Y 0 ω) ^ 2 * Real.posLog |Y 0 ω|) P) :
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