Documentation

Mathlib.Probability.StrongLaw

The strong law of large numbers #

We prove the strong law of large numbers, in ProbabilityTheory.strong_law_ae: If X n is a sequence of independent identically distributed integrable random variables, then āˆ‘ i āˆˆ range n, X i / n converges almost surely to š”¼[X 0]. We give here the strong version, due to Etemadi, that only requires pairwise independence.

This file also contains the Lįµ– version of the strong law of large numbers provided by ProbabilityTheory.strong_law_Lp which shows āˆ‘ i āˆˆ range n, X i / n converges in Lįµ– to š”¼[X 0] provided X n is independent identically distributed and is Lįµ–.

Implementation #

The main point is to prove the result for real-valued random variables, as the general case of Banach-space valued random variables follows from this case and approximation by simple functions. The real version is given in ProbabilityTheory.strong_law_ae_real.

We follow the proof by Etemadi Etemadi, An elementary proof of the strong law of large numbers, which goes as follows.

It suffices to prove the result for nonnegative X, as one can prove the general result by splitting a general X into its positive part and negative part. Consider Xā‚™ a sequence of nonnegative integrable identically distributed pairwise independent random variables. Let Yā‚™ be the truncation of Xā‚™ up to n. We claim that

  āˆ‘_k ā„™ (|āˆ‘_{i=0}^{c^k - 1} Yįµ¢ - š”¼[Yįµ¢]| > c^k Īµ)
    ā‰¤ āˆ‘_k (c^k Īµ)^{-2} āˆ‘_{i=0}^{c^k - 1} Var[Yįµ¢]    (by Markov inequality)
    ā‰¤ āˆ‘_i (C/i^2) Var[Yįµ¢]                           (as āˆ‘_{c^k > i} 1/(c^k)^2 ā‰¤ C/i^2)
    ā‰¤ āˆ‘_i (C/i^2) š”¼[Yįµ¢^2]
    ā‰¤ 2C š”¼[X^2]                                     (see `sum_variance_truncation_le`)

Prerequisites on truncations #

def ProbabilityTheory.truncation {Ī± : Type u_1} (f : Ī± ā†’ ā„) (A : ā„) :
Ī± ā†’ ā„

Truncating a real-valued function to the interval (-A, A].

Equations
Instances For
    theorem ProbabilityTheory.abs_truncation_le_bound {Ī± : Type u_1} (f : Ī± ā†’ ā„) (A : ā„) (x : Ī±) :
    @[simp]
    theorem ProbabilityTheory.truncation_zero {Ī± : Type u_1} (f : Ī± ā†’ ā„) :
    theorem ProbabilityTheory.abs_truncation_le_abs_self {Ī± : Type u_1} (f : Ī± ā†’ ā„) (A : ā„) (x : Ī±) :
    theorem ProbabilityTheory.truncation_eq_self {Ī± : Type u_1} {f : Ī± ā†’ ā„} {A : ā„} {x : Ī±} (h : |f x| < A) :
    theorem ProbabilityTheory.truncation_eq_of_nonneg {Ī± : Type u_1} {f : Ī± ā†’ ā„} {A : ā„} (h : āˆ€ (x : Ī±), 0 ā‰¤ f x) :
    ProbabilityTheory.truncation f A = (Set.Ioc 0 A).indicator id āˆ˜ f
    theorem ProbabilityTheory.truncation_nonneg {Ī± : Type u_1} {f : Ī± ā†’ ā„} (A : ā„) {x : Ī±} (h : 0 ā‰¤ f x) :
    theorem ProbabilityTheory.moment_truncation_eq_intervalIntegral {Ī± : Type u_1} {m : MeasurableSpace Ī±} {Ī¼ : MeasureTheory.Measure Ī±} {f : Ī± ā†’ ā„} (hf : MeasureTheory.AEStronglyMeasurable f Ī¼) {A : ā„} (hA : 0 ā‰¤ A) {n : ā„•} (hn : n ā‰  0) :
    āˆ« (x : Ī±), ProbabilityTheory.truncation f A x ^ n āˆ‚Ī¼ = āˆ« (y : ā„) in -A..A, y ^ n āˆ‚MeasureTheory.Measure.map f Ī¼
    theorem ProbabilityTheory.moment_truncation_eq_intervalIntegral_of_nonneg {Ī± : Type u_1} {m : MeasurableSpace Ī±} {Ī¼ : MeasureTheory.Measure Ī±} {f : Ī± ā†’ ā„} (hf : MeasureTheory.AEStronglyMeasurable f Ī¼) {A : ā„} {n : ā„•} (hn : n ā‰  0) (h'f : 0 ā‰¤ f) :
    āˆ« (x : Ī±), ProbabilityTheory.truncation f A x ^ n āˆ‚Ī¼ = āˆ« (y : ā„) in 0 ..A, y ^ n āˆ‚MeasureTheory.Measure.map f Ī¼
    theorem ProbabilityTheory.integral_truncation_eq_intervalIntegral {Ī± : Type u_1} {m : MeasurableSpace Ī±} {Ī¼ : MeasureTheory.Measure Ī±} {f : Ī± ā†’ ā„} (hf : MeasureTheory.AEStronglyMeasurable f Ī¼) {A : ā„} (hA : 0 ā‰¤ A) :
    āˆ« (x : Ī±), ProbabilityTheory.truncation f A x āˆ‚Ī¼ = āˆ« (y : ā„) in -A..A, y āˆ‚MeasureTheory.Measure.map f Ī¼
    theorem ProbabilityTheory.integral_truncation_eq_intervalIntegral_of_nonneg {Ī± : Type u_1} {m : MeasurableSpace Ī±} {Ī¼ : MeasureTheory.Measure Ī±} {f : Ī± ā†’ ā„} (hf : MeasureTheory.AEStronglyMeasurable f Ī¼) {A : ā„} (h'f : 0 ā‰¤ f) :
    āˆ« (x : Ī±), ProbabilityTheory.truncation f A x āˆ‚Ī¼ = āˆ« (y : ā„) in 0 ..A, y āˆ‚MeasureTheory.Measure.map f Ī¼
    theorem ProbabilityTheory.integral_truncation_le_integral_of_nonneg {Ī± : Type u_1} {m : MeasurableSpace Ī±} {Ī¼ : MeasureTheory.Measure Ī±} {f : Ī± ā†’ ā„} (hf : MeasureTheory.Integrable f Ī¼) (h'f : 0 ā‰¤ f) {A : ā„} :
    āˆ« (x : Ī±), ProbabilityTheory.truncation f A x āˆ‚Ī¼ ā‰¤ āˆ« (x : Ī±), f x āˆ‚Ī¼
    theorem ProbabilityTheory.tendsto_integral_truncation {Ī± : Type u_1} {m : MeasurableSpace Ī±} {Ī¼ : MeasureTheory.Measure Ī±} {f : Ī± ā†’ ā„} (hf : MeasureTheory.Integrable f Ī¼) :
    Filter.Tendsto (fun (A : ā„) => āˆ« (x : Ī±), ProbabilityTheory.truncation f A x āˆ‚Ī¼) Filter.atTop (nhds (āˆ« (x : Ī±), f x āˆ‚Ī¼))

    If a function is integrable, then the integral of its truncated versions converges to the integral of the whole function.

    theorem ProbabilityTheory.IdentDistrib.truncation {Ī± : Type u_1} {m : MeasurableSpace Ī±} {Ī¼ : MeasureTheory.Measure Ī±} {Ī² : Type u_2} [MeasurableSpace Ī²] {Ī½ : MeasureTheory.Measure Ī²} {f : Ī± ā†’ ā„} {g : Ī² ā†’ ā„} (h : ProbabilityTheory.IdentDistrib f g Ī¼ Ī½) {A : ā„} :
    theorem ProbabilityTheory.sum_prob_mem_Ioc_le {Ī© : Type u_1} [MeasureTheory.MeasureSpace Ī©] [MeasureTheory.IsProbabilityMeasure MeasureTheory.volume] {X : Ī© ā†’ ā„} (hint : MeasureTheory.Integrable X MeasureTheory.volume) (hnonneg : 0 ā‰¤ X) {K : ā„•} {N : ā„•} (hKN : K ā‰¤ N) :
    āˆ‘ j āˆˆ Finset.range K, MeasureTheory.volume {Ļ‰ : Ī© | X Ļ‰ āˆˆ Set.Ioc ā†‘j ā†‘N} ā‰¤ ENNReal.ofReal ((āˆ« (a : Ī©), X a) + 1)
    theorem ProbabilityTheory.tsum_prob_mem_Ioi_lt_top {Ī© : Type u_1} [MeasureTheory.MeasureSpace Ī©] [MeasureTheory.IsProbabilityMeasure MeasureTheory.volume] {X : Ī© ā†’ ā„} (hint : MeasureTheory.Integrable X MeasureTheory.volume) (hnonneg : 0 ā‰¤ X) :
    āˆ‘' (j : ā„•), MeasureTheory.volume {Ļ‰ : Ī© | X Ļ‰ āˆˆ Set.Ioi ā†‘j} < āŠ¤
    theorem ProbabilityTheory.sum_variance_truncation_le {Ī© : Type u_1} [MeasureTheory.MeasureSpace Ī©] [MeasureTheory.IsProbabilityMeasure MeasureTheory.volume] {X : Ī© ā†’ ā„} (hint : MeasureTheory.Integrable X MeasureTheory.volume) (hnonneg : 0 ā‰¤ X) (K : ā„•) :
    āˆ‘ j āˆˆ Finset.range K, (ā†‘j ^ 2)ā»Ā¹ * āˆ« (a : Ī©), (ProbabilityTheory.truncation X ā†‘j ^ 2) a ā‰¤ 2 * āˆ« (a : Ī©), X a

    Proof of the strong law of large numbers (almost sure version, assuming only pairwise independence) for nonnegative random variables, following Etemadi's proof.

    theorem ProbabilityTheory.strong_law_aux1 {Ī© : Type u_1} [MeasureTheory.MeasureSpace Ī©] [MeasureTheory.IsProbabilityMeasure MeasureTheory.volume] (X : ā„• ā†’ Ī© ā†’ ā„) (hint : MeasureTheory.Integrable (X 0) MeasureTheory.volume) (hindep : Pairwise fun (i j : ā„•) => ProbabilityTheory.IndepFun (X i) (X j) MeasureTheory.volume) (hident : āˆ€ (i : ā„•), ProbabilityTheory.IdentDistrib (X i) (X 0) MeasureTheory.volume MeasureTheory.volume) (hnonneg : āˆ€ (i : ā„•) (Ļ‰ : Ī©), 0 ā‰¤ X i Ļ‰) {c : ā„} (c_one : 1 < c) {Īµ : ā„} (Īµpos : 0 < Īµ) :
    āˆ€įµ (Ļ‰ : Ī©), āˆ€į¶  (n : ā„•) in Filter.atTop, |āˆ‘ i āˆˆ Finset.range āŒŠc ^ nāŒ‹ā‚Š, ProbabilityTheory.truncation (X i) (ā†‘i) Ļ‰ - āˆ« (a : Ī©), (āˆ‘ i āˆˆ Finset.range āŒŠc ^ nāŒ‹ā‚Š, ProbabilityTheory.truncation (X i) ā†‘i) a| < Īµ * ā†‘āŒŠc ^ nāŒ‹ā‚Š

    The truncation of Xįµ¢ up to i satisfies the strong law of large numbers (with respect to the truncated expectation) along the sequence c^n, for any c > 1, up to a given Īµ > 0. This follows from a variance control.

    theorem ProbabilityTheory.strong_law_aux2 {Ī© : Type u_1} [MeasureTheory.MeasureSpace Ī©] [MeasureTheory.IsProbabilityMeasure MeasureTheory.volume] (X : ā„• ā†’ Ī© ā†’ ā„) (hint : MeasureTheory.Integrable (X 0) MeasureTheory.volume) (hindep : Pairwise fun (i j : ā„•) => ProbabilityTheory.IndepFun (X i) (X j) MeasureTheory.volume) (hident : āˆ€ (i : ā„•), ProbabilityTheory.IdentDistrib (X i) (X 0) MeasureTheory.volume MeasureTheory.volume) (hnonneg : āˆ€ (i : ā„•) (Ļ‰ : Ī©), 0 ā‰¤ X i Ļ‰) {c : ā„} (c_one : 1 < c) :
    āˆ€įµ (Ļ‰ : Ī©), (fun (n : ā„•) => āˆ‘ i āˆˆ Finset.range āŒŠc ^ nāŒ‹ā‚Š, ProbabilityTheory.truncation (X i) (ā†‘i) Ļ‰ - āˆ« (a : Ī©), (āˆ‘ i āˆˆ Finset.range āŒŠc ^ nāŒ‹ā‚Š, ProbabilityTheory.truncation (X i) ā†‘i) a) =o[Filter.atTop] fun (n : ā„•) => ā†‘āŒŠc ^ nāŒ‹ā‚Š
    theorem ProbabilityTheory.strong_law_aux3 {Ī© : Type u_1} [MeasureTheory.MeasureSpace Ī©] [MeasureTheory.IsProbabilityMeasure MeasureTheory.volume] (X : ā„• ā†’ Ī© ā†’ ā„) (hint : MeasureTheory.Integrable (X 0) MeasureTheory.volume) (hident : āˆ€ (i : ā„•), ProbabilityTheory.IdentDistrib (X i) (X 0) MeasureTheory.volume MeasureTheory.volume) :
    (fun (n : ā„•) => (āˆ« (a : Ī©), (āˆ‘ i āˆˆ Finset.range n, ProbabilityTheory.truncation (X i) ā†‘i) a) - ā†‘n * āˆ« (a : Ī©), X 0 a) =o[Filter.atTop] Nat.cast

    The expectation of the truncated version of Xįµ¢ behaves asymptotically like the whole expectation. This follows from convergence and CesĆ ro averaging.

    theorem ProbabilityTheory.strong_law_aux4 {Ī© : Type u_1} [MeasureTheory.MeasureSpace Ī©] [MeasureTheory.IsProbabilityMeasure MeasureTheory.volume] (X : ā„• ā†’ Ī© ā†’ ā„) (hint : MeasureTheory.Integrable (X 0) MeasureTheory.volume) (hindep : Pairwise fun (i j : ā„•) => ProbabilityTheory.IndepFun (X i) (X j) MeasureTheory.volume) (hident : āˆ€ (i : ā„•), ProbabilityTheory.IdentDistrib (X i) (X 0) MeasureTheory.volume MeasureTheory.volume) (hnonneg : āˆ€ (i : ā„•) (Ļ‰ : Ī©), 0 ā‰¤ X i Ļ‰) {c : ā„} (c_one : 1 < c) :
    āˆ€įµ (Ļ‰ : Ī©), (fun (n : ā„•) => āˆ‘ i āˆˆ Finset.range āŒŠc ^ nāŒ‹ā‚Š, ProbabilityTheory.truncation (X i) (ā†‘i) Ļ‰ - ā†‘āŒŠc ^ nāŒ‹ā‚Š * āˆ« (a : Ī©), X 0 a) =o[Filter.atTop] fun (n : ā„•) => ā†‘āŒŠc ^ nāŒ‹ā‚Š
    theorem ProbabilityTheory.strong_law_aux5 {Ī© : Type u_1} [MeasureTheory.MeasureSpace Ī©] [MeasureTheory.IsProbabilityMeasure MeasureTheory.volume] (X : ā„• ā†’ Ī© ā†’ ā„) (hint : MeasureTheory.Integrable (X 0) MeasureTheory.volume) (hident : āˆ€ (i : ā„•), ProbabilityTheory.IdentDistrib (X i) (X 0) MeasureTheory.volume MeasureTheory.volume) (hnonneg : āˆ€ (i : ā„•) (Ļ‰ : Ī©), 0 ā‰¤ X i Ļ‰) :
    āˆ€įµ (Ļ‰ : Ī©), (fun (n : ā„•) => āˆ‘ i āˆˆ Finset.range n, ProbabilityTheory.truncation (X i) (ā†‘i) Ļ‰ - āˆ‘ i āˆˆ Finset.range n, X i Ļ‰) =o[Filter.atTop] fun (n : ā„•) => ā†‘n

    The truncated and non-truncated versions of Xįµ¢ have the same asymptotic behavior, as they almost surely coincide at all but finitely many steps. This follows from a probability computation and Borel-Cantelli.

    theorem ProbabilityTheory.strong_law_aux6 {Ī© : Type u_1} [MeasureTheory.MeasureSpace Ī©] [MeasureTheory.IsProbabilityMeasure MeasureTheory.volume] (X : ā„• ā†’ Ī© ā†’ ā„) (hint : MeasureTheory.Integrable (X 0) MeasureTheory.volume) (hindep : Pairwise fun (i j : ā„•) => ProbabilityTheory.IndepFun (X i) (X j) MeasureTheory.volume) (hident : āˆ€ (i : ā„•), ProbabilityTheory.IdentDistrib (X i) (X 0) MeasureTheory.volume MeasureTheory.volume) (hnonneg : āˆ€ (i : ā„•) (Ļ‰ : Ī©), 0 ā‰¤ X i Ļ‰) {c : ā„} (c_one : 1 < c) :
    āˆ€įµ (Ļ‰ : Ī©), Filter.Tendsto (fun (n : ā„•) => (āˆ‘ i āˆˆ Finset.range āŒŠc ^ nāŒ‹ā‚Š, X i Ļ‰) / ā†‘āŒŠc ^ nāŒ‹ā‚Š) Filter.atTop (nhds (āˆ« (a : Ī©), X 0 a))
    theorem ProbabilityTheory.strong_law_aux7 {Ī© : Type u_1} [MeasureTheory.MeasureSpace Ī©] [MeasureTheory.IsProbabilityMeasure MeasureTheory.volume] (X : ā„• ā†’ Ī© ā†’ ā„) (hint : MeasureTheory.Integrable (X 0) MeasureTheory.volume) (hindep : Pairwise fun (i j : ā„•) => ProbabilityTheory.IndepFun (X i) (X j) MeasureTheory.volume) (hident : āˆ€ (i : ā„•), ProbabilityTheory.IdentDistrib (X i) (X 0) MeasureTheory.volume MeasureTheory.volume) (hnonneg : āˆ€ (i : ā„•) (Ļ‰ : Ī©), 0 ā‰¤ X i Ļ‰) :
    āˆ€įµ (Ļ‰ : Ī©), Filter.Tendsto (fun (n : ā„•) => (āˆ‘ i āˆˆ Finset.range n, X i Ļ‰) / ā†‘n) Filter.atTop (nhds (āˆ« (a : Ī©), X 0 a))

    Xįµ¢ satisfies the strong law of large numbers along all integers. This follows from the corresponding fact along the sequences c^n, and the fact that any integer can be sandwiched between c^n and c^(n+1) with comparably small error if c is close enough to 1 (which is formalized in tendsto_div_of_monotone_of_tendsto_div_floor_pow).

    theorem ProbabilityTheory.strong_law_ae_real {Ī© : Type u_2} {m : MeasurableSpace Ī©} {Ī¼ : MeasureTheory.Measure Ī©} (X : ā„• ā†’ Ī© ā†’ ā„) (hint : MeasureTheory.Integrable (X 0) Ī¼) (hindep : Pairwise fun (i j : ā„•) => ProbabilityTheory.IndepFun (X i) (X j) Ī¼) (hident : āˆ€ (i : ā„•), ProbabilityTheory.IdentDistrib (X i) (X 0) Ī¼ Ī¼) :
    āˆ€įµ (Ļ‰ : Ī©) āˆ‚Ī¼, Filter.Tendsto (fun (n : ā„•) => (āˆ‘ i āˆˆ Finset.range n, X i Ļ‰) / ā†‘n) Filter.atTop (nhds (āˆ« (x : Ī©), X 0 x āˆ‚Ī¼))

    Strong law of large numbers, almost sure version: if X n is a sequence of independent identically distributed integrable real-valued random variables, then āˆ‘ i āˆˆ range n, X i / n converges almost surely to š”¼[X 0]. We give here the strong version, due to Etemadi, that only requires pairwise independence. Superseded by strong_law_ae, which works for random variables taking values in any Banach space.

    theorem ProbabilityTheory.strong_law_ae_simpleFunc_comp {Ī© : Type u_1} {mĪ© : MeasurableSpace Ī©} {Ī¼ : MeasureTheory.Measure Ī©} [MeasureTheory.IsProbabilityMeasure Ī¼] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ā„ E] [CompleteSpace E] [MeasurableSpace E] (X : ā„• ā†’ Ī© ā†’ E) (h' : Measurable (X 0)) (hindep : Pairwise fun (i j : ā„•) => ProbabilityTheory.IndepFun (X i) (X j) Ī¼) (hident : āˆ€ (i : ā„•), ProbabilityTheory.IdentDistrib (X i) (X 0) Ī¼ Ī¼) (Ļ† : MeasureTheory.SimpleFunc E E) :
    āˆ€įµ (Ļ‰ : Ī©) āˆ‚Ī¼, Filter.Tendsto (fun (n : ā„•) => (ā†‘n)ā»Ā¹ ā€¢ āˆ‘ i āˆˆ Finset.range n, Ļ† (X i Ļ‰)) Filter.atTop (nhds (āˆ« (x : Ī©), (ā‡‘Ļ† āˆ˜ X 0) x āˆ‚Ī¼))

    Preliminary lemma for the strong law of large numbers for vector-valued random variables: the composition of the random variables with a simple function satisfies the strong law of large numbers.

    theorem ProbabilityTheory.strong_law_ae_of_measurable {Ī© : Type u_1} {mĪ© : MeasurableSpace Ī©} {Ī¼ : MeasureTheory.Measure Ī©} [MeasureTheory.IsProbabilityMeasure Ī¼] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ā„ E] [CompleteSpace E] [MeasurableSpace E] [BorelSpace E] (X : ā„• ā†’ Ī© ā†’ E) (hint : MeasureTheory.Integrable (X 0) Ī¼) (h' : MeasureTheory.StronglyMeasurable (X 0)) (hindep : Pairwise fun (i j : ā„•) => ProbabilityTheory.IndepFun (X i) (X j) Ī¼) (hident : āˆ€ (i : ā„•), ProbabilityTheory.IdentDistrib (X i) (X 0) Ī¼ Ī¼) :
    āˆ€įµ (Ļ‰ : Ī©) āˆ‚Ī¼, Filter.Tendsto (fun (n : ā„•) => (ā†‘n)ā»Ā¹ ā€¢ āˆ‘ i āˆˆ Finset.range n, X i Ļ‰) Filter.atTop (nhds (āˆ« (x : Ī©), X 0 x āˆ‚Ī¼))

    Preliminary lemma for the strong law of large numbers for vector-valued random variables, assuming measurability in addition to integrability. This is weakened to ae measurability in the full version ProbabilityTheory.strong_law_ae.

    theorem ProbabilityTheory.strong_law_ae {Ī© : Type u_1} {mĪ© : MeasurableSpace Ī©} {Ī¼ : MeasureTheory.Measure Ī©} {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ā„ E] [CompleteSpace E] [MeasurableSpace E] [BorelSpace E] (X : ā„• ā†’ Ī© ā†’ E) (hint : MeasureTheory.Integrable (X 0) Ī¼) (hindep : Pairwise fun (i j : ā„•) => ProbabilityTheory.IndepFun (X i) (X j) Ī¼) (hident : āˆ€ (i : ā„•), ProbabilityTheory.IdentDistrib (X i) (X 0) Ī¼ Ī¼) :
    āˆ€įµ (Ļ‰ : Ī©) āˆ‚Ī¼, Filter.Tendsto (fun (n : ā„•) => (ā†‘n)ā»Ā¹ ā€¢ āˆ‘ i āˆˆ Finset.range n, X i Ļ‰) Filter.atTop (nhds (āˆ« (x : Ī©), X 0 x āˆ‚Ī¼))

    Strong law of large numbers, almost sure version: if X n is a sequence of independent identically distributed integrable random variables taking values in a Banach space, then nā»Ā¹ ā€¢ āˆ‘ i āˆˆ range n, X i converges almost surely to š”¼[X 0]. We give here the strong version, due to Etemadi, that only requires pairwise independence.

    theorem ProbabilityTheory.strong_law_Lp {Ī© : Type u_1} {mĪ© : MeasurableSpace Ī©} {Ī¼ : MeasureTheory.Measure Ī©} {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ā„ E] [CompleteSpace E] [MeasurableSpace E] [BorelSpace E] {p : ENNReal} (hp : 1 ā‰¤ p) (hp' : p ā‰  āŠ¤) (X : ā„• ā†’ Ī© ā†’ E) (hā„’p : MeasureTheory.Memā„’p (X 0) p Ī¼) (hindep : Pairwise fun (i j : ā„•) => ProbabilityTheory.IndepFun (X i) (X j) Ī¼) (hident : āˆ€ (i : ā„•), ProbabilityTheory.IdentDistrib (X i) (X 0) Ī¼ Ī¼) :
    Filter.Tendsto (fun (n : ā„•) => MeasureTheory.eLpNorm (fun (Ļ‰ : Ī©) => (ā†‘n)ā»Ā¹ ā€¢ āˆ‘ i āˆˆ Finset.range n, X i Ļ‰ - āˆ« (x : Ī©), X 0 x āˆ‚Ī¼) p Ī¼) Filter.atTop (nhds 0)

    Strong law of large numbers, Lįµ– version: if X n is a sequence of independent identically distributed random variables in Lįµ–, then nā»Ā¹ ā€¢ āˆ‘ i āˆˆ range n, X i converges in Lįµ– to š”¼[X 0].