src/HOL/Probability/Central_Limit_Theorem.thy
changeset 63040 eb4ddd18d635
parent 62083 7582b39f51ed
child 63329 6b26c378ab35
equal deleted inserted replaced
63039:1a20fd9cf281 63040:eb4ddd18d635
    22     and X_distrib: "\<And>n. distr M borel (X n) = \<mu>"
    22     and X_distrib: "\<And>n. distr M borel (X n) = \<mu>"
    23   defines "S n \<equiv> \<lambda>x. \<Sum>i<n. X i x"
    23   defines "S n \<equiv> \<lambda>x. \<Sum>i<n. X i x"
    24   shows "weak_conv_m (\<lambda>n. distr M borel (\<lambda>x. S n x / sqrt (n * \<sigma>\<^sup>2))) std_normal_distribution"
    24   shows "weak_conv_m (\<lambda>n. distr M borel (\<lambda>x. S n x / sqrt (n * \<sigma>\<^sup>2))) std_normal_distribution"
    25 proof -
    25 proof -
    26   let ?S' = "\<lambda>n x. S n x / sqrt (real n * \<sigma>\<^sup>2)"
    26   let ?S' = "\<lambda>n x. S n x / sqrt (real n * \<sigma>\<^sup>2)"
    27   def \<phi> \<equiv> "\<lambda>n. char (distr M borel (?S' n))"
    27   define \<phi> where "\<phi> n = char (distr M borel (?S' n))" for n
    28   def \<psi> \<equiv> "\<lambda>n t. char \<mu> (t / sqrt (\<sigma>\<^sup>2 * n))"
    28   define \<psi> where "\<psi> n t = char \<mu> (t / sqrt (\<sigma>\<^sup>2 * n))" for n t
    29 
    29 
    30   have X_rv [simp, measurable]: "\<And>n. random_variable borel (X n)"
    30   have X_rv [simp, measurable]: "\<And>n. random_variable borel (X n)"
    31     using X_indep unfolding indep_vars_def2 by simp
    31     using X_indep unfolding indep_vars_def2 by simp
    32   interpret \<mu>: real_distribution \<mu>
    32   interpret \<mu>: real_distribution \<mu>
    33     by (subst X_distrib [symmetric, of 0], rule real_distribution_distr, simp)
    33     by (subst X_distrib [symmetric, of 0], rule real_distribution_distr, simp)
    46     fix n :: nat
    46     fix n :: nat
    47     assume "n \<ge> nat (ceiling (t^2 / 4))"
    47     assume "n \<ge> nat (ceiling (t^2 / 4))"
    48     hence n: "n \<ge> t^2 / 4" by (subst nat_ceiling_le_eq [symmetric])
    48     hence n: "n \<ge> t^2 / 4" by (subst nat_ceiling_le_eq [symmetric])
    49     let ?t = "t / sqrt (\<sigma>\<^sup>2 * n)"
    49     let ?t = "t / sqrt (\<sigma>\<^sup>2 * n)"
    50 
    50 
    51     def \<psi>' \<equiv> "\<lambda>n i. char (distr M borel (\<lambda>x. X i x / sqrt (\<sigma>\<^sup>2 * n)))"
    51     define \<psi>' where "\<psi>' n i = char (distr M borel (\<lambda>x. X i x / sqrt (\<sigma>\<^sup>2 * n)))" for n i
    52     have *: "\<And>n i t. \<psi>' n i t = \<psi> n t"
    52     have *: "\<And>n i t. \<psi>' n i t = \<psi> n t"
    53       unfolding \<psi>_def \<psi>'_def char_def
    53       unfolding \<psi>_def \<psi>'_def char_def
    54       by (subst X_distrib [symmetric]) (auto simp: integral_distr)
    54       by (subst X_distrib [symmetric]) (auto simp: integral_distr)
    55 
    55 
    56     have "\<phi> n t = char (distr M borel (\<lambda>x. \<Sum>i<n. X i x / sqrt (\<sigma>\<^sup>2 * real n))) t"
    56     have "\<phi> n t = char (distr M borel (\<lambda>x. \<Sum>i<n. X i x / sqrt (\<sigma>\<^sup>2 * real n))) t"