src/HOL/Probability/Product_Measure.thy
author hellerar
Thu, 02 Sep 2010 15:31:38 +0200
changeset 39094 67da17aced5a
parent 39080 cae59dc0a094
child 39095 f92b7e2877c2
permissions -rw-r--r--
measure unique
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
35833
7b7ae5aa396d Added product measure space
hoelzl
parents:
diff changeset
     1
theory Product_Measure
38656
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
     2
imports Lebesgue_Integration
35833
7b7ae5aa396d Added product measure space
hoelzl
parents:
diff changeset
     3
begin
7b7ae5aa396d Added product measure space
hoelzl
parents:
diff changeset
     4
39080
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
     5
definition dynkin
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
     6
where "dynkin M =
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
     7
      ((\<forall> A \<in> sets M. A \<subseteq> space M) \<and>
39094
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
     8
       space M \<in> sets M \<and> (\<forall> b \<in> sets M. \<forall> a \<in> sets M. a \<subseteq> b \<longrightarrow> b - a \<in> sets M) \<and>
39080
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
     9
       (\<forall> a. (\<forall> i j :: nat. i \<noteq> j \<longrightarrow> a i \<inter> a j = {}) \<and>
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    10
             (\<forall> i :: nat. a i \<in> sets M) \<longrightarrow> UNION UNIV a \<in> sets M))"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    11
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    12
lemma dynkinI:
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    13
  assumes "\<And> A. A \<in> sets M \<Longrightarrow> A \<subseteq> space M"
39094
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
    14
  assumes "space M \<in> sets M" and "\<forall> b \<in> sets M. \<forall> a \<in> sets M. a \<subseteq> b \<longrightarrow> b - a \<in> sets M"
39080
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    15
  assumes "\<And> a. (\<And> i j :: nat. i \<noteq> j \<Longrightarrow> a i \<inter> a j = {})
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    16
          \<Longrightarrow> (\<And> i :: nat. a i \<in> sets M) \<Longrightarrow> UNION UNIV a \<in> sets M"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    17
  shows "dynkin M"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    18
using assms unfolding dynkin_def by auto
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    19
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    20
lemma dynkin_subset:
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    21
  assumes "dynkin M"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    22
  shows "\<And> A. A \<in> sets M \<Longrightarrow> A \<subseteq> space M"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    23
using assms unfolding dynkin_def by auto
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    24
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    25
lemma dynkin_space:
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    26
  assumes "dynkin M"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    27
  shows "space M \<in> sets M"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    28
using assms unfolding dynkin_def by auto
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    29
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    30
lemma dynkin_diff:
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    31
  assumes "dynkin M"
39094
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
    32
  shows "\<And> a b. \<lbrakk> a \<in> sets M ; b \<in> sets M ; a \<subseteq> b \<rbrakk> \<Longrightarrow> b - a \<in> sets M"
39080
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    33
using assms unfolding dynkin_def by auto
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    34
39094
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
    35
lemma dynkin_empty:
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
    36
  assumes "dynkin M"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
    37
  shows "{} \<in> sets M"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
    38
using dynkin_diff[OF assms dynkin_space[OF assms] dynkin_space[OF assms]] by auto
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
    39
39080
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    40
lemma dynkin_UN:
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    41
  assumes "dynkin M"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    42
  assumes "\<And> i j :: nat. i \<noteq> j \<Longrightarrow> a i \<inter> a j = {}"
39094
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
    43
  assumes "\<And> i :: nat. a i \<in> sets M"
39080
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    44
  shows "UNION UNIV a \<in> sets M"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    45
using assms unfolding dynkin_def by auto
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    46
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    47
definition Int_stable
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    48
where "Int_stable M = (\<forall> a \<in> sets M. (\<forall> b \<in> sets M. a \<inter> b \<in> sets M))"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    49
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    50
lemma dynkin_trivial:
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    51
  shows "dynkin \<lparr> space = A, sets = Pow A \<rparr>"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    52
by (rule dynkinI) auto
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    53
39094
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
    54
lemma dynkin_lemma:
39080
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    55
  assumes stab: "Int_stable E"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    56
  and spac: "space E = space D"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    57
  and subsED: "sets E \<subseteq> sets D"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    58
  and subsDE: "sets D \<subseteq> sigma_sets (space E) (sets E)"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    59
  and dyn: "dynkin D"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    60
  shows "sigma (space E) (sets E) = D"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    61
proof -
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    62
  def sets_\<delta>E == "\<Inter> {sets d | d :: 'a algebra. dynkin d \<and> space d = space E \<and> sets E \<subseteq> sets d}"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    63
  def \<delta>E == "\<lparr> space = space E, sets = sets_\<delta>E \<rparr>"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    64
  have "\<lparr> space = space E, sets = Pow (space E) \<rparr> \<in> {d | d. dynkin d \<and> space d = space E \<and> sets E \<subseteq> sets d}"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    65
    using dynkin_trivial spac subsED dynkin_subset[OF dyn] by fastsimp
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    66
  hence not_empty: "{sets (d :: 'a algebra) | d. dynkin d \<and> space d = space E \<and> sets E \<subseteq> sets d} \<noteq> {}"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    67
    using exI[of "\<lambda> x. space x = space E \<and> dynkin x \<and> sets E \<subseteq> sets x" "\<lparr> space = space E, sets = Pow (space E) \<rparr>", simplified]
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    68
    by auto
39094
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
    69
  have \<delta>E_D: "sets_\<delta>E \<subseteq> sets D"
39080
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    70
    unfolding sets_\<delta>E_def using assms by auto
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    71
  have \<delta>ynkin: "dynkin \<delta>E"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    72
  proof (rule dynkinI, safe)
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    73
    fix A x assume asm: "A \<in> sets \<delta>E" "x \<in> A"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    74
    { fix d :: "('a, 'b) algebra_scheme" assume "A \<in> sets d" "dynkin d \<and> space d = space E"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    75
      hence "A \<subseteq> space d"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    76
        using dynkin_subset by auto }
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    77
    show "x \<in> space \<delta>E" using asm
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    78
      unfolding \<delta>E_def sets_\<delta>E_def using not_empty
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    79
    proof auto
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    80
      fix x A fix d :: "'a algebra"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    81
      assume asm: "\<forall>x. (\<exists>d :: 'a algebra. x = sets d \<and>
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    82
        dynkin d \<and>
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    83
        space d = space E \<and>
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    84
        sets E \<subseteq> sets d) \<longrightarrow>
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    85
        A \<in> x" "x \<in> A"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    86
        and asm': "space d = space E" "dynkin d" "sets E \<subseteq> sets d"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    87
      have "A \<in> sets d"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    88
        apply (rule impE[OF spec[OF asm(1), of "sets d"]])
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    89
        using exI[of _ d] asm' by auto
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    90
      thus "x \<in> space E" using asm' dynkin_subset[OF asm'(2), of A] asm(2) by auto
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    91
    qed
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    92
  next
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    93
    show "space \<delta>E \<in> sets \<delta>E"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    94
      unfolding \<delta>E_def sets_\<delta>E_def
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    95
      using dynkin_space by fastsimp
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    96
  next
39094
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
    97
    fix a b assume "a \<in> sets \<delta>E" "b \<in> sets \<delta>E" "a \<subseteq> b"
39080
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    98
    thus "b - a \<in> sets \<delta>E"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
    99
      unfolding \<delta>E_def sets_\<delta>E_def by (auto intro:dynkin_diff)
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   100
  next
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   101
    fix a assume asm: "\<And>i j :: nat. i \<noteq> j \<Longrightarrow> a i \<inter> a j = {}" "\<And>i. a i \<in> sets \<delta>E"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   102
    thus "UNION UNIV a \<in> sets \<delta>E"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   103
      unfolding \<delta>E_def sets_\<delta>E_def apply (auto intro!:dynkin_UN[OF _ asm(1)])
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   104
      by blast
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   105
  qed
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   106
  def Dy == "\<lambda> d. {A | A. A \<in> sets_\<delta>E \<and> A \<inter> d \<in> sets_\<delta>E}"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   107
  { fix d assume dasm: "d \<in> sets_\<delta>E"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   108
    have "dynkin \<lparr> space = space E, sets = Dy d \<rparr>"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   109
    proof (rule dynkinI, auto)
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   110
      fix A x assume "A \<in> Dy d" "x \<in> A"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   111
      thus "x \<in> space E" unfolding Dy_def sets_\<delta>E_def using not_empty
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   112
      proof auto fix x A fix da :: "'a algebra"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   113
        assume asm: "x \<in> A"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   114
          "\<forall>x. (\<exists>d :: 'a algebra. x = sets d \<and>
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   115
          dynkin d \<and> space d = space E \<and>
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   116
          sets E \<subseteq> sets d) \<longrightarrow> A \<in> x"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   117
          "\<forall>x. (\<exists>d. x = sets d \<and>
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   118
          dynkin d \<and> space d = space E \<and>
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   119
          sets E \<subseteq> sets d) \<longrightarrow> A \<inter> d \<in> x"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   120
          "space da = space E" "dynkin da"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   121
          "sets E \<subseteq> sets da"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   122
        have "A \<in> sets da"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   123
          apply (rule impE[OF spec[OF asm(2)], of "sets da"])
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   124
          apply (rule exI[of _ da])
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   125
          using exI[of _ da] asm(4,5,6) by auto
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   126
        thus "x \<in> space E" using dynkin_subset[OF asm(5)] asm by auto
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   127
      qed
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   128
    next
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   129
      show "space E \<in> Dy d"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   130
        unfolding Dy_def \<delta>E_def sets_\<delta>E_def
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   131
      proof auto
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   132
        fix d assume asm: "dynkin d" "space d = space E" "sets E \<subseteq> sets d"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   133
        hence "space d \<in> sets d" using dynkin_space[OF asm(1)] by auto
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   134
        thus "space E \<in> sets d" using asm by auto
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   135
      next
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   136
        fix da :: "'a algebra" assume asm: "dynkin da" "space da = space E" "sets E \<subseteq> sets da"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   137
        have d: "d = space E \<inter> d"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   138
          using dasm dynkin_subset[OF asm(1)] asm(2) dynkin_subset[OF \<delta>ynkin]
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   139
          unfolding \<delta>E_def by auto
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   140
        hence "space E \<inter> d \<in> sets \<delta>E" unfolding \<delta>E_def
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   141
          using dasm by auto
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   142
        have "sets \<delta>E \<subseteq> sets da" unfolding \<delta>E_def sets_\<delta>E_def using asm
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   143
          by auto
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   144
        thus "space E \<inter> d \<in> sets da" using dasm asm d dynkin_subset[OF \<delta>ynkin]
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   145
          unfolding \<delta>E_def by auto
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   146
      qed
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   147
    next
39094
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   148
      fix a b assume absm: "a \<in> Dy d" "b \<in> Dy d" "a \<subseteq> b"
39080
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   149
      hence "a \<in> sets \<delta>E" "b \<in> sets \<delta>E"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   150
        unfolding Dy_def \<delta>E_def by auto
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   151
      hence *: "b - a \<in> sets \<delta>E"
39094
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   152
        using dynkin_diff[OF \<delta>ynkin] `a \<subseteq> b` by auto
39080
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   153
      have "a \<inter> d \<in> sets \<delta>E" "b \<inter> d \<in> sets \<delta>E"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   154
        using absm unfolding Dy_def \<delta>E_def by auto
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   155
      hence "(b \<inter> d) - (a \<inter> d) \<in> sets \<delta>E"
39094
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   156
        using dynkin_diff[OF \<delta>ynkin] `a \<subseteq> b` by auto
39080
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   157
      hence **: "(b - a) \<inter> d \<in> sets \<delta>E" by (auto simp add:Diff_Int_distrib2)
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   158
      thus "b - a \<in> Dy d"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   159
        using * ** unfolding Dy_def \<delta>E_def by auto
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   160
    next
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   161
      fix a assume aasm: "\<And>i j :: nat. i \<noteq> j \<Longrightarrow> a i \<inter> a j = {}" "\<And>i. a i \<in> Dy d"
39094
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   162
      hence "\<And> i. a i \<in> sets \<delta>E"
39080
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   163
        unfolding Dy_def \<delta>E_def by auto
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   164
      from dynkin_UN[OF \<delta>ynkin aasm(1) this]
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   165
      have *: "UNION UNIV a \<in> sets \<delta>E" by auto
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   166
      from aasm
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   167
      have aE: "\<forall> i. a i \<inter> d \<in> sets \<delta>E"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   168
        unfolding Dy_def \<delta>E_def by auto
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   169
      from aasm
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   170
      have "\<And>i j :: nat. i \<noteq> j \<Longrightarrow> (a i \<inter> d) \<inter> (a j \<inter> d) = {}" by auto
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   171
      from dynkin_UN[OF \<delta>ynkin this]
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   172
      have "UNION UNIV (\<lambda> i. a i \<inter> d) \<in> sets \<delta>E"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   173
        using aE by auto
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   174
      hence **: "UNION UNIV a \<inter> d \<in> sets \<delta>E" by auto
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   175
      from * ** show "UNION UNIV a \<in> Dy d" unfolding Dy_def \<delta>E_def by auto
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   176
    qed } note Dy_nkin = this
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   177
  have E_\<delta>E: "sets E \<subseteq> sets \<delta>E"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   178
    unfolding \<delta>E_def sets_\<delta>E_def by auto
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   179
  { fix d assume dasm: "d \<in> sets \<delta>E"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   180
    { fix e assume easm: "e \<in> sets E"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   181
      hence deasm: "e \<in> sets \<delta>E"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   182
        unfolding \<delta>E_def sets_\<delta>E_def by auto
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   183
      have subset: "Dy e \<subseteq> sets \<delta>E"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   184
        unfolding Dy_def \<delta>E_def by auto
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   185
      { fix e' assume e'asm: "e' \<in> sets E"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   186
        have "e' \<inter> e \<in> sets E"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   187
          using easm e'asm stab unfolding Int_stable_def by auto
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   188
        hence "e' \<inter> e \<in> sets \<delta>E"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   189
          unfolding \<delta>E_def sets_\<delta>E_def by auto
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   190
        hence "e' \<in> Dy e" using e'asm unfolding Dy_def \<delta>E_def sets_\<delta>E_def by auto }
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   191
      hence E_Dy: "sets E \<subseteq> Dy e" by auto
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   192
      have "\<lparr> space = space E, sets = Dy e \<rparr> \<in> {d | d. dynkin d \<and> space d = space E \<and> sets E \<subseteq> sets d}"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   193
        using Dy_nkin[OF deasm[unfolded \<delta>E_def, simplified]] E_\<delta>E E_Dy by auto
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   194
      hence "sets_\<delta>E \<subseteq> Dy e"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   195
        unfolding sets_\<delta>E_def
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   196
      proof auto fix x
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   197
        assume asm: "\<forall>xa. (\<exists>d :: 'a algebra. xa = sets d \<and>
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   198
          dynkin d \<and>
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   199
          space d = space E \<and>
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   200
          sets E \<subseteq> sets d) \<longrightarrow>
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   201
          x \<in> xa"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   202
          "dynkin \<lparr>space = space E, sets = Dy e\<rparr>"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   203
          "sets E \<subseteq> Dy e"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   204
        show "x \<in> Dy e"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   205
          apply (rule impE[OF spec[OF asm(1), of "Dy e"]])
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   206
          apply (rule exI[of _ "\<lparr>space = space E, sets = Dy e\<rparr>"])
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   207
          using asm by auto
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   208
      qed
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   209
      hence "sets \<delta>E = Dy e" using subset unfolding \<delta>E_def by auto
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   210
      hence "d \<inter> e \<in> sets \<delta>E"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   211
        using dasm easm deasm unfolding Dy_def \<delta>E_def by auto
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   212
      hence "e \<in> Dy d" using deasm
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   213
        unfolding Dy_def \<delta>E_def
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   214
        by (auto simp add:Int_commute) }
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   215
    hence "sets E \<subseteq> Dy d" by auto
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   216
    hence "sets \<delta>E \<subseteq> Dy d" using Dy_nkin[OF dasm[unfolded \<delta>E_def, simplified]]
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   217
      unfolding \<delta>E_def sets_\<delta>E_def 
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   218
    proof auto
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   219
      fix x
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   220
      assume asm: "sets E \<subseteq> Dy d"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   221
        "dynkin \<lparr>space = space E, sets = Dy d\<rparr>"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   222
        "\<forall>xa. (\<exists>d :: 'a algebra. xa = sets d \<and> dynkin d \<and>
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   223
            space d = space E \<and> sets E \<subseteq> sets d) \<longrightarrow> x \<in> xa"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   224
      show "x \<in> Dy d"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   225
        apply (rule impE[OF spec[OF asm(3), of "Dy d"]])
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   226
        apply (rule exI[of _ "\<lparr>space = space E, sets = Dy d\<rparr>"])
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   227
        using asm by auto
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   228
    qed
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   229
    hence *: "sets \<delta>E = Dy d"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   230
      unfolding Dy_def \<delta>E_def by auto
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   231
    fix a assume aasm: "a \<in> sets \<delta>E"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   232
    hence "a \<inter> d \<in> sets \<delta>E"
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   233
      using * dasm unfolding Dy_def \<delta>E_def by auto } note \<delta>E_stab = this
39094
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   234
  { fix A :: "nat \<Rightarrow> 'a set" assume Asm: "range A \<subseteq> sets \<delta>E" "\<And>A. A \<in> sets \<delta>E \<Longrightarrow> A \<subseteq> space \<delta>E"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   235
      "\<And>a. a \<in> sets \<delta>E \<Longrightarrow> space \<delta>E - a \<in> sets \<delta>E"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   236
    "{} \<in> sets \<delta>E" "space \<delta>E \<in> sets \<delta>E"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   237
    let "?A i" = "A i \<inter> (\<Inter> j \<in> {..< i}. space \<delta>E - A j)"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   238
    { fix i :: nat
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   239
      have *: "(\<Inter> j \<in> {..< i}. space \<delta>E - A j) \<inter> space \<delta>E \<in> sets \<delta>E"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   240
        apply (induct i)
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   241
        using lessThan_Suc Asm \<delta>E_stab apply fastsimp
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   242
        apply (subst lessThan_Suc)
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   243
        apply (subst INT_insert)
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   244
        apply (subst Int_assoc)
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   245
        apply (subst \<delta>E_stab)
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   246
        using lessThan_Suc Asm \<delta>E_stab Asm
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   247
        apply (fastsimp simp add:Int_assoc dynkin_diff[OF \<delta>ynkin])
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   248
        prefer 2 apply simp
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   249
        apply (rule dynkin_diff[OF \<delta>ynkin, of _ "space \<delta>E", OF _ dynkin_space[OF \<delta>ynkin]])
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   250
        using Asm by auto
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   251
      have **: "\<And> i. A i \<subseteq> space \<delta>E" using Asm by auto
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   252
      have "(\<Inter> j \<in> {..< i}. space \<delta>E - A j) \<subseteq> space \<delta>E \<or> (\<Inter> j \<in> {..< i}. A j) = UNIV \<and> i = 0"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   253
        apply (cases i)
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   254
        using Asm ** dynkin_subset[OF \<delta>ynkin, of "A (i - 1)"]
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   255
        by auto
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   256
      hence Aisets: "?A i \<in> sets \<delta>E"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   257
        apply (cases i)
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   258
        using Asm * apply fastsimp
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   259
        apply (rule \<delta>E_stab)
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   260
        using Asm * **
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   261
        by (auto simp add:Int_absorb2)
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   262
      have "?A i = disjointed A i" unfolding disjointed_def
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   263
      atLeast0LessThan using Asm by auto
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   264
      hence "?A i = disjointed A i" "?A i \<in> sets \<delta>E"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   265
        using Aisets by auto
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   266
    } note Ai = this
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   267
    from dynkin_UN[OF \<delta>ynkin _ this(2)] this disjoint_family_disjointed[of A]
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   268
    have "(\<Union> i. ?A i) \<in> sets \<delta>E"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   269
      by (auto simp add:disjoint_family_on_def disjointed_def)
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   270
    hence "(\<Union> i. A i) \<in> sets \<delta>E"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   271
      using Ai(1) UN_disjointed_eq[of A] by auto } note \<delta>E_UN = this
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   272
  { fix a b assume asm: "a \<in> sets \<delta>E" "b \<in> sets \<delta>E"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   273
    let ?ab = "\<lambda> i. if (i::nat) = 0 then a else if i = 1 then b else {}"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   274
    have *: "(\<Union> i. ?ab i) \<in> sets \<delta>E"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   275
      apply (rule \<delta>E_UN)
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   276
      using asm \<delta>E_UN dynkin_empty[OF \<delta>ynkin] 
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   277
      dynkin_subset[OF \<delta>ynkin] 
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   278
      dynkin_space[OF \<delta>ynkin]
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   279
      dynkin_diff[OF \<delta>ynkin] by auto
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   280
    have "(\<Union> i. ?ab i) = a \<union> b" apply auto
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   281
      apply (case_tac "i = 0")
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   282
      apply auto
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   283
      apply (case_tac "i = 1")
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   284
      by auto
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   285
    hence "a \<union> b \<in> sets \<delta>E" using * by auto} note \<delta>E_Un = this
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   286
  have "sigma_algebra \<delta>E"
39080
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   287
    apply unfold_locales
39094
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   288
    using dynkin_subset[OF \<delta>ynkin]
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   289
    using dynkin_diff[OF \<delta>ynkin, of _ "space \<delta>E", OF _ dynkin_space[OF \<delta>ynkin]]
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   290
    using dynkin_diff[OF \<delta>ynkin, of "space \<delta>E" "space \<delta>E", OF dynkin_space[OF \<delta>ynkin] dynkin_space[OF \<delta>ynkin]]
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   291
    using dynkin_space[OF \<delta>ynkin]
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   292
    using \<delta>E_UN \<delta>E_Un
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   293
    by auto
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   294
  from sigma_algebra.sigma_subset[OF this E_\<delta>E] \<delta>E_D subsDE spac
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   295
  show ?thesis by (auto simp add:\<delta>E_def sigma_def)
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   296
qed
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   297
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   298
lemma measure_eq:
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   299
  assumes fin: "\<mu> (space M) = \<nu> (space M)" "\<nu> (space M) < \<omega>" 
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   300
  assumes E: "M = sigma (space E) (sets E)" "Int_stable E"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   301
  assumes eq: "\<And> e. e \<in> sets E \<Longrightarrow> \<mu> e = \<nu> e"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   302
  assumes ms: "measure_space M \<mu>" "measure_space M \<nu>"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   303
  assumes A: "A \<in> sets M"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   304
  shows "\<mu> A = \<nu> A"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   305
proof -
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   306
  interpret M: measure_space M \<mu>
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   307
    using ms by simp
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   308
  interpret M': measure_space M \<nu>
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   309
    using ms by simp
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   310
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   311
  let ?D_sets = "{A. A \<in> sets M \<and> \<mu> A = \<nu> A}"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   312
  have \<delta>: "dynkin \<lparr> space = space M , sets = ?D_sets \<rparr>"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   313
  proof (rule dynkinI, safe, simp_all)
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   314
    fix A x assume "A \<in> sets M \<and> \<mu> A = \<nu> A" "x \<in> A"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   315
    thus "x \<in> space M" using assms M.sets_into_space by auto
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   316
  next
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   317
    show "\<mu> (space M) = \<nu> (space M)"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   318
      using fin by auto
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   319
  next
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   320
    fix a b
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   321
    assume asm: "a \<in> sets M \<and> \<mu> a = \<nu> a"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   322
      "b \<in> sets M \<and> \<mu> b = \<nu> b" "a \<subseteq> b"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   323
    hence "a \<subseteq> space M"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   324
      using M.sets_into_space by auto
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   325
    from M.measure_mono[OF this]
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   326
    have "\<mu> a \<le> \<mu> (space M)"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   327
      using asm by auto
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   328
    hence afin: "\<mu> a < \<omega>"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   329
      using fin by auto
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   330
    have *: "b = b - a \<union> a" using asm by auto
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   331
    have **: "(b - a) \<inter> a = {}" using asm by auto
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   332
    have iv: "\<mu> (b - a) + \<mu> a = \<mu> b"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   333
      using M.measure_additive[of "b - a" a]
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   334
        conjunct1[OF asm(1)] conjunct1[OF asm(2)] * **
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   335
      by auto
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   336
    have v: "\<nu> (b - a) + \<nu> a = \<nu> b"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   337
      using M'.measure_additive[of "b - a" a]
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   338
        conjunct1[OF asm(1)] conjunct1[OF asm(2)] * **
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   339
      by auto
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   340
    from iv v have "\<mu> (b - a) = \<nu> (b - a)" using asm afin
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   341
      pinfreal_add_cancel_right[of "\<mu> (b - a)" "\<nu> a" "\<nu> (b - a)"]
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   342
      by auto
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   343
    thus "b - a \<in> sets M \<and> \<mu> (b - a) = \<nu> (b - a)"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   344
      using asm by auto
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   345
  next
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   346
    fix a assume "\<And>i j :: nat. i \<noteq> j \<Longrightarrow> a i \<inter> a j = {}"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   347
      "\<And>i. a i \<in> sets M \<and> \<mu> (a i) = \<nu> (a i)"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   348
    thus "(\<Union>x. a x) \<in> sets M \<and> \<mu> (\<Union>x. a x) = \<nu> (\<Union>x. a x)"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   349
      using M.measure_countably_additive
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   350
        M'.measure_countably_additive
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   351
        M.countable_UN
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   352
      apply (auto simp add:disjoint_family_on_def image_def)
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   353
      apply (subst M.measure_countably_additive[symmetric])
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   354
      apply (auto simp add:disjoint_family_on_def)
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   355
      apply (subst M'.measure_countably_additive[symmetric])
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   356
      by (auto simp add:disjoint_family_on_def)
39080
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   357
  qed
39094
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   358
  have *: "sets E \<subseteq> ?D_sets"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   359
    using eq E sigma_sets.Basic[of _ "sets E"]
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   360
    by (auto simp add:sigma_def)
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   361
  have **: "?D_sets \<subseteq> sets M" by auto
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   362
  have "M = \<lparr> space = space M , sets = ?D_sets \<rparr>"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   363
    unfolding E(1)
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   364
    apply (rule dynkin_lemma[OF E(2)])
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   365
    using eq E space_sigma \<delta> sigma_sets.Basic
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   366
    by (auto simp add:sigma_def)
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   367
  from subst[OF this, of "\<lambda> M. A \<in> sets M", OF A]
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   368
  show ?thesis by auto
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   369
qed
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   370
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   371
lemma
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   372
  assumes sfin: "range A \<subseteq> sets M" "(\<Union>i. A i) = space M" "\<And> i :: nat. \<nu> (A i) < \<omega>"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   373
  assumes A: "\<And>  i. \<mu> (A i) = \<nu> (A i)" "\<And> i. A i \<subseteq> A (Suc i)"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   374
  assumes E: "M = sigma (space E) (sets E)" "Int_stable E"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   375
  assumes eq: "\<And> e. e \<in> sets E \<Longrightarrow> \<mu> e = \<nu> e"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   376
  assumes ms: "measure_space (M :: 'a algebra) \<mu>" "measure_space M \<nu>"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   377
  assumes B: "B \<in> sets M"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   378
  shows "\<mu> B = \<nu> B"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   379
proof -
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   380
  interpret M: measure_space M \<mu> by (rule ms)
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   381
  interpret M': measure_space M \<nu> by (rule ms)
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   382
  have *: "M = \<lparr> space = space M, sets = sets M \<rparr>" by auto
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   383
  { fix i :: nat
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   384
    have **: "M\<lparr> space := A i, sets := op \<inter> (A i) ` sets M \<rparr> =
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   385
      \<lparr> space = A i, sets = op \<inter> (A i) ` sets M \<rparr>"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   386
      by auto
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   387
    have mu_i: "measure_space \<lparr> space = A i, sets = op \<inter> (A i) ` sets M \<rparr> \<mu>"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   388
      using M.restricted_measure_space[of "A i", simplified **]
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   389
        sfin by auto
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   390
    have nu_i: "measure_space \<lparr> space = A i, sets = op \<inter> (A i) ` sets M \<rparr> \<nu>"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   391
      using M'.restricted_measure_space[of "A i", simplified **]
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   392
        sfin by auto
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   393
    let ?M = "\<lparr> space = A i, sets = op \<inter> (A i) ` sets M \<rparr>"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   394
    have "\<mu> (A i \<inter> B) = \<nu> (A i \<inter> B)"
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   395
      apply (rule measure_eq[of \<mu> ?M \<nu> "\<lparr> space = space E \<inter> A i, sets = op \<inter> (A i) ` sets E\<rparr>" "A i \<inter> B", simplified])
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   396
      using assms nu_i mu_i
67da17aced5a measure unique
hellerar
parents: 39080
diff changeset
   397
      apply (auto simp add:image_def) (* TODO *)
39080
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   398
qed
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   399
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   400
lemma
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   401
(*
38656
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   402
definition prod_sets where
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   403
  "prod_sets A B = {z. \<exists>x \<in> A. \<exists>y \<in> B. z = x \<times> y}"
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   404
35833
7b7ae5aa396d Added product measure space
hoelzl
parents:
diff changeset
   405
definition
38656
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   406
  "prod_measure M \<mu> N \<nu> = (\<lambda>A. measure_space.positive_integral M \<mu> (\<lambda>s0. \<nu> ((\<lambda>s1. (s0, s1)) -` A)))"
35833
7b7ae5aa396d Added product measure space
hoelzl
parents:
diff changeset
   407
7b7ae5aa396d Added product measure space
hoelzl
parents:
diff changeset
   408
definition
38656
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   409
  "prod_measure_space M1 M2 = sigma (space M1 \<times> space M2) (prod_sets (sets M1) (sets M2))"
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   410
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   411
lemma prod_setsI: "x \<in> A \<Longrightarrow> y \<in> B \<Longrightarrow> (x \<times> y) \<in> prod_sets A B"
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   412
  by (auto simp add: prod_sets_def)
35833
7b7ae5aa396d Added product measure space
hoelzl
parents:
diff changeset
   413
38656
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   414
lemma sigma_prod_sets_finite:
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   415
  assumes "finite A" and "finite B"
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   416
  shows "sigma_sets (A \<times> B) (prod_sets (Pow A) (Pow B)) = Pow (A \<times> B)"
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   417
proof safe
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   418
  have fin: "finite (A \<times> B)" using assms by (rule finite_cartesian_product)
35833
7b7ae5aa396d Added product measure space
hoelzl
parents:
diff changeset
   419
38656
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   420
  fix x assume subset: "x \<subseteq> A \<times> B"
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   421
  hence "finite x" using fin by (rule finite_subset)
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   422
  from this subset show "x \<in> sigma_sets (A\<times>B) (prod_sets (Pow A) (Pow B))"
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   423
    (is "x \<in> sigma_sets ?prod ?sets")
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   424
  proof (induct x)
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   425
    case empty show ?case by (rule sigma_sets.Empty)
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   426
  next
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   427
    case (insert a x)
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   428
    hence "{a} \<in> sigma_sets ?prod ?sets" by (auto simp: prod_sets_def intro!: sigma_sets.Basic)
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   429
    moreover have "x \<in> sigma_sets ?prod ?sets" using insert by auto
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   430
    ultimately show ?case unfolding insert_is_Un[of a x] by (rule sigma_sets_Un)
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   431
  qed
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   432
next
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   433
  fix x a b
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   434
  assume "x \<in> sigma_sets (A\<times>B) (prod_sets (Pow A) (Pow B))" and "(a, b) \<in> x"
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   435
  from sigma_sets_into_sp[OF _ this(1)] this(2)
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   436
  show "a \<in> A" and "b \<in> B"
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   437
    by (auto simp: prod_sets_def)
35833
7b7ae5aa396d Added product measure space
hoelzl
parents:
diff changeset
   438
qed
7b7ae5aa396d Added product measure space
hoelzl
parents:
diff changeset
   439
38656
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   440
lemma (in sigma_algebra) measurable_prod_sigma:
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   441
  assumes sa1: "sigma_algebra a1" and sa2: "sigma_algebra a2"
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   442
  assumes 1: "(fst o f) \<in> measurable M a1" and 2: "(snd o f) \<in> measurable M a2"
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   443
  shows "f \<in> measurable M (sigma ((space a1) \<times> (space a2))
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   444
                          (prod_sets (sets a1) (sets a2)))"
35977
30d42bfd0174 Added finite measure space.
hoelzl
parents: 35833
diff changeset
   445
proof -
38656
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   446
  from 1 have fn1: "fst \<circ> f \<in> space M \<rightarrow> space a1"
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   447
     and q1: "\<forall>y\<in>sets a1. (fst \<circ> f) -` y \<inter> space M \<in> sets M"
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   448
    by (auto simp add: measurable_def)
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   449
  from 2 have fn2: "snd \<circ> f \<in> space M \<rightarrow> space a2"
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   450
     and q2: "\<forall>y\<in>sets a2. (snd \<circ> f) -` y \<inter> space M \<in> sets M"
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   451
    by (auto simp add: measurable_def)
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   452
  show ?thesis
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   453
    proof (rule measurable_sigma)
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   454
      show "prod_sets (sets a1) (sets a2) \<subseteq> Pow (space a1 \<times> space a2)" using sa1 sa2
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   455
        by (auto simp add: prod_sets_def sigma_algebra_iff dest: algebra.space_closed)
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   456
    next
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   457
      show "f \<in> space M \<rightarrow> space a1 \<times> space a2"
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   458
        by (rule prod_final [OF fn1 fn2])
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   459
    next
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   460
      fix z
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   461
      assume z: "z \<in> prod_sets (sets a1) (sets a2)"
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   462
      thus "f -` z \<inter> space M \<in> sets M"
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   463
        proof (auto simp add: prod_sets_def vimage_Times)
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   464
          fix x y
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   465
          assume x: "x \<in> sets a1" and y: "y \<in> sets a2"
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   466
          have "(fst \<circ> f) -` x \<inter> (snd \<circ> f) -` y \<inter> space M =
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   467
                ((fst \<circ> f) -` x \<inter> space M) \<inter> ((snd \<circ> f) -` y \<inter> space M)"
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   468
            by blast
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   469
          also have "...  \<in> sets M" using x y q1 q2
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   470
            by blast
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   471
          finally show "(fst \<circ> f) -` x \<inter> (snd \<circ> f) -` y \<inter> space M \<in> sets M" .
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   472
        qed
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   473
    qed
35977
30d42bfd0174 Added finite measure space.
hoelzl
parents: 35833
diff changeset
   474
qed
35833
7b7ae5aa396d Added product measure space
hoelzl
parents:
diff changeset
   475
38656
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   476
lemma (in sigma_finite_measure) prod_measure_times:
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   477
  assumes "sigma_finite_measure N \<nu>"
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   478
  and "A1 \<in> sets M" "A2 \<in> sets N"
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   479
  shows "prod_measure M \<mu> N \<nu> (A1 \<times> A2) = \<mu> A1 * \<nu> A2"
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   480
  oops
35833
7b7ae5aa396d Added product measure space
hoelzl
parents:
diff changeset
   481
38656
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   482
lemma (in sigma_finite_measure) sigma_finite_prod_measure_space:
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   483
  assumes "sigma_finite_measure N \<nu>"
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   484
  shows "sigma_finite_measure (prod_measure_space M N) (prod_measure M \<mu> N \<nu>)"
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   485
  oops
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   486
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   487
lemma (in finite_measure_space) finite_prod_measure_times:
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   488
  assumes "finite_measure_space N \<nu>"
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   489
  and "A1 \<in> sets M" "A2 \<in> sets N"
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   490
  shows "prod_measure M \<mu> N \<nu> (A1 \<times> A2) = \<mu> A1 * \<nu> A2"
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   491
proof -
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   492
  interpret N: finite_measure_space N \<nu> by fact
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   493
  have *: "\<And>x. \<nu> (Pair x -` (A1 \<times> A2)) * \<mu> {x} = (if x \<in> A1 then \<nu> A2 * \<mu> {x} else 0)"
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   494
    by (auto simp: vimage_Times comp_def)
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   495
  have "finite A1"
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   496
    using `A1 \<in> sets M` finite_space by (auto simp: sets_eq_Pow intro: finite_subset)
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   497
  then have "\<mu> A1 = (\<Sum>x\<in>A1. \<mu> {x})" using `A1 \<in> sets M`
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   498
    by (auto intro!: measure_finite_singleton simp: sets_eq_Pow)
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   499
  then show ?thesis using `A1 \<in> sets M`
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   500
    unfolding prod_measure_def positive_integral_finite_eq_setsum *
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   501
    by (auto simp add: sets_eq_Pow setsum_right_distrib[symmetric] mult_commute setsum_cases[OF finite_space])
35833
7b7ae5aa396d Added product measure space
hoelzl
parents:
diff changeset
   502
qed
7b7ae5aa396d Added product measure space
hoelzl
parents:
diff changeset
   503
38656
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   504
lemma (in finite_measure_space) finite_prod_measure_space:
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   505
  assumes "finite_measure_space N \<nu>"
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   506
  shows "prod_measure_space M N = \<lparr> space = space M \<times> space N, sets = Pow (space M \<times> space N) \<rparr>"
35977
30d42bfd0174 Added finite measure space.
hoelzl
parents: 35833
diff changeset
   507
proof -
38656
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   508
  interpret N: finite_measure_space N \<nu> by fact
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   509
  show ?thesis using finite_space N.finite_space
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   510
    by (simp add: sigma_def prod_measure_space_def sigma_prod_sets_finite sets_eq_Pow N.sets_eq_Pow)
35833
7b7ae5aa396d Added product measure space
hoelzl
parents:
diff changeset
   511
qed
7b7ae5aa396d Added product measure space
hoelzl
parents:
diff changeset
   512
38656
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   513
lemma (in finite_measure_space) finite_measure_space_finite_prod_measure:
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   514
  assumes "finite_measure_space N \<nu>"
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   515
  shows "finite_measure_space (prod_measure_space M N) (prod_measure M \<mu> N \<nu>)"
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   516
  unfolding finite_prod_measure_space[OF assms]
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   517
proof (rule finite_measure_spaceI)
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   518
  interpret N: finite_measure_space N \<nu> by fact
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   519
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   520
  let ?P = "\<lparr>space = space M \<times> space N, sets = Pow (space M \<times> space N)\<rparr>"
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   521
  show "measure_space ?P (prod_measure M \<mu> N \<nu>)"
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   522
  proof (rule sigma_algebra.finite_additivity_sufficient)
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   523
    show "sigma_algebra ?P" by (rule sigma_algebra_Pow)
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   524
    show "finite (space ?P)" using finite_space N.finite_space by auto
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   525
    from finite_prod_measure_times[OF assms, of "{}" "{}"]
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   526
    show "positive (prod_measure M \<mu> N \<nu>)"
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   527
      unfolding positive_def by simp
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   528
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   529
    show "additive ?P (prod_measure M \<mu> N \<nu>)"
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   530
      unfolding additive_def
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   531
      apply (auto simp add: sets_eq_Pow prod_measure_def positive_integral_add[symmetric]
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   532
                  intro!: positive_integral_cong)
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   533
      apply (subst N.measure_additive[symmetric])
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   534
      by (auto simp: N.sets_eq_Pow sets_eq_Pow)
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   535
  qed
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   536
  show "finite (space ?P)" using finite_space N.finite_space by auto
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   537
  show "sets ?P = Pow (space ?P)" by simp
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   538
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   539
  fix x assume "x \<in> space ?P"
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   540
  with finite_prod_measure_times[OF assms, of "{fst x}" "{snd x}"]
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   541
    finite_measure[of "{fst x}"] N.finite_measure[of "{snd x}"]
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   542
  show "prod_measure M \<mu> N \<nu> {x} \<noteq> \<omega>"
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   543
    by (auto simp add: sets_eq_Pow N.sets_eq_Pow elim!: SigmaE)
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   544
qed
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   545
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   546
lemma (in finite_measure_space) finite_measure_space_finite_prod_measure_alterantive:
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   547
  assumes N: "finite_measure_space N \<nu>"
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   548
  shows "finite_measure_space \<lparr> space = space M \<times> space N, sets = Pow (space M \<times> space N) \<rparr> (prod_measure M \<mu> N \<nu>)"
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   549
    (is "finite_measure_space ?M ?m")
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   550
  unfolding finite_prod_measure_space[OF N, symmetric]
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   551
  using finite_measure_space_finite_prod_measure[OF N] .
d5d342611edb Rewrite the Probability theory.
hoelzl
parents: 36649
diff changeset
   552
39080
cae59dc0a094 dynkin system
hellerar
parents: 38705
diff changeset
   553
*)
35833
7b7ae5aa396d Added product measure space
hoelzl
parents:
diff changeset
   554
end