Erdős–Feller–Pollard renewal theorem:
ProvedRenewal.renewal_limitLet be the waiting-time law of a recurrent event (a renewal process): is the probability that the first occurrence happens at time , and the event is certain to occur, . Write
for the tail, so , , and . Let be the renewal sequence,
so is the probability that the event occurs at time . The mean waiting time is , assumed here to be finite, and the law is assumed aperiodic: no integer divides every with .
Under these hypotheses the renewal sequence converges to the reciprocal of the mean:
This is the Erdős–Feller–Pollard theorem, the central limit statement of elementary renewal theory. Aperiodicity is essential: with period the sequence vanishes off the multiples of and tends to along them. Finiteness of is essential too, though in the opposite direction only: when one still has , for any period, which is the companion null case.
Formalization notes. The waiting-time law is presented through its tail rather than through directly, which is the form in which the hypotheses are usually available and which makes the mean expressible without an infinite sum of the : hstep says , hr0 says , hrlim says (the law is proper), and hmean says . Aperiodicity appears as hape; note that always holds, so the it produces is automatically nonzero. Only the values are used, and is irrelevant. In hurec the index is shifted so that the sum runs over k ∈ Finset.range (n+1) with summand , which is .
Typical use. For an irreducible aperiodic positive-recurrent Markov chain on a countable state space and a state , taking and satisfies exactly these hypotheses, and the conclusion is the convergence .
import Mathlib.Analysis.SpecificLimits.Normed import Mathlib.Analysis.PSeries import Mathlib.Order.Filter.AtTopBot.Basic import Mathlib.Topology.Algebra.Order.LiminfLimsup import Mathlib.NumberTheory.FrobeniusNumber
namespace Renewal
/-- **Erdős–Feller–Pollard renewal theorem** (aperiodic, finite-mean case). -/
theorem renewal_limit (f r u : ℕ → ℝ) (mu : ℝ)
(hf : ∀ k, 0 ≤ f k)
(hstep : ∀ n : ℕ, r n = r (n + 1) + f (n + 1))
(hr0 : r 0 = 1)
(hrlim : Filter.Tendsto r Filter.atTop (nhds 0))
(hmean : HasSum r mu)
(hape : ∀ d : ℕ, 2 ≤ d → ∃ k : ℕ, 0 < f k ∧ ¬ (d ∣ k))
(hu0 : u 0 = 1)
(hurec : ∀ n : ℕ, u (n + 1) = ∑ k ∈ Finset.range (n + 1), f (k + 1) * u (n - k)) :
Filter.Tendsto u Filter.atTop (nhds (1 / mu)) := by sorry
end Renewal