Correctness of coupling from the past (Propp--Wilson)
ProvedMarkovMixing.cftp_correctLet be a Markov chain on a finite state space with stationary distribution , and let be a random mapping representation of : a probability distribution on update functions with for all . Coupling from the past draws i.i.d. maps at past times and composes them forward up to time zero,
(deepening the horizon prepends randomness inside the composition; the maps near time stay fixed). The composition has coalesced when it is a constant map, and the algorithm outputs the common value. Assume coalescence is almost sure: .
The theorem (correctness of coupling from the past, Propp–Wilson; §22.2–22.3 of Levin–Peres–Wilmer — the capstone of Chapter 22 and of this series) asserts: for every state ,
The output of CFTP is an exact sample from the stationary distribution — no mixing-time error, no knowledge of required. The point is the direction of composition: for fixed the law of is that of forward steps from , but the coalesced value is shared by all , so on the coalescence event the output agrees with a chain started from itself — and the discrepancy is bounded by the vanishing non-coalescence probability. Running the same maps into the future instead produces a biased sample; the from-the-past order is what the proof, and the formalization, pin down.
import Definitions.Def_mm_cftp import Mathlib.Analysis.SpecificLimits.Basic
namespace MarkovMixing
/-- **§22.2–22.3, correctness of coupling from the past** (Propp–Wilson;
LPW), the capstone of Chapter 22: if the update maps represent `P`, `π` is
stationary for `P`, and coalescence is almost sure, then the CFTP output is
distributed *exactly* according to `π`: the probability of collapsing to `y`
within `t` steps from the past tends to `π(y)`. -/
theorem cftp_correct {V : Type*} [Fintype V] [DecidableEq V] [Nonempty V]
(P : Matrix V V ℝ) (hP : IsStochastic P)
(π : V → ℝ) (hπ : IsStationary P π)
(ν : (V → V) → ℝ) (hν : IsRandomMapRep P ν)
(hcoal : Filter.Tendsto (fun t => cftpNotCoalescedProb ν t)
Filter.atTop (nhds 0)) (y : V) :
Filter.Tendsto (fun t => cftpOutputProb ν t y)
Filter.atTop (nhds (π y)) := by
sorry
end MarkovMixingRead-back
What the Lean code literally says, in plain math · claude-fable-5
Read-back: cftp_correct
Let be a finite, nonempty type with decidable equality. The theorem takes the following data and hypotheses:
- a real matrix indexed by , assumed stochastic: all entries and every row sums to one, ;
- a function , assumed stationary for in the sense of the conjunction: is a probability distribution on ( for all and ) and the row-vector–matrix product satisfies , i.e. for every ;
- a real-valued function on the finite set of all maps , assumed to be a random map representation of : is a probability distribution on maps (, ) and for every , ;
- a coalescence hypothesis
hcoal: the sequence
(the total -product weight of the -tuples of maps whose composition, taken with highest index applied first, fails to send all of to one common value) converges to as ;
- a fixed point .
The conclusion is a limit statement about that fixed : the sequence of real numbers
— the total -product weight of the -tuples whose composed map sends every point of to the specific point — converges to as (convergence in the standard topology of ). Since is universally quantified before the conclusion, this holds for each separately; only pointwise convergence of these numbers is asserted — no rate, no uniformity in , and no statement about any finite .
Confirmed by the mission captain (proposal self-audit).