@@ -41,16 +41,6 @@ section AuxLemmas
41
41
42
42
variable {Ω F : Type *} {m mΩ : MeasurableSpace Ω} {μ : Measure Ω} {f : Ω → F}
43
43
44
- -- Porting note: todo: move to `MeasureTheory/MeasurableSpace`, after `Measurable.mono`
45
- theorem measurable_id'' (hm : m ≤ mΩ) : @Measurable Ω Ω mΩ m id :=
46
- measurable_id.mono le_rfl hm
47
- #align probability_theory.measurable_id'' ProbabilityTheory.measurable_id''
48
-
49
- -- Porting note: todo: move to `MeasureTheory/MeasurableSpace`, after `Measurable.mono`
50
- theorem aemeasurable_id'' (μ : Measure Ω) (hm : m ≤ mΩ) : @AEMeasurable Ω Ω m mΩ id μ :=
51
- @Measurable.aemeasurable Ω Ω mΩ m id μ (measurable_id'' hm)
52
- #align probability_theory.ae_measurable_id'' ProbabilityTheory.aemeasurable_id''
53
-
54
44
theorem _root_.MeasureTheory.AEStronglyMeasurable.comp_snd_map_prod_id [TopologicalSpace F]
55
45
(hm : m ≤ mΩ) (hf : AEStronglyMeasurable f μ) : AEStronglyMeasurable (fun x : Ω × Ω => f x.2 )
56
46
(@Measure.map Ω (Ω × Ω) (m.prod mΩ) mΩ (fun ω => (id ω, id ω)) μ) := by
@@ -71,91 +61,144 @@ end AuxLemmas
71
61
72
62
variable {Ω F : Type *} [TopologicalSpace Ω] {m : MeasurableSpace Ω} [mΩ : MeasurableSpace Ω]
73
63
[PolishSpace Ω] [BorelSpace Ω] [Nonempty Ω] {μ : Measure Ω} [IsFiniteMeasure μ]
74
- [NormedAddCommGroup F] {f : Ω → F}
75
64
76
65
/-- Kernel associated with the conditional expectation with respect to a σ-algebra. It satisfies
77
66
`μ[f | m] =ᵐ[μ] fun ω => ∫ y, f y ∂(condexpKernel μ m ω)`.
78
67
It is defined as the conditional distribution of the identity given the identity, where the second
79
- identity is understood as a map from `Ω` with the σ-algebra `mΩ` to `Ω` with σ-algebra `m`. -/
68
+ identity is understood as a map from `Ω` with the σ-algebra `mΩ` to `Ω` with σ-algebra `m ⊓ mΩ`.
69
+ We use `m ⊓ mΩ` instead of `m` to ensure that it is a sub-σ-algebra of `mΩ`. We then use
70
+ `kernel.comap` to get a kernel from `m` to `mΩ` instead of from `m ⊓ mΩ` to `mΩ`. -/
80
71
noncomputable irreducible_def condexpKernel (μ : Measure Ω) [IsFiniteMeasure μ]
81
72
(m : MeasurableSpace Ω) : @kernel Ω Ω m mΩ :=
82
- @condDistrib Ω Ω Ω _ mΩ _ _ _ mΩ m id id μ _
73
+ kernel.comap (@condDistrib Ω Ω Ω _ mΩ _ _ _ mΩ (m ⊓ mΩ) id id μ _) id
74
+ (measurable_id'' (inf_le_left : m ⊓ mΩ ≤ m))
83
75
#align probability_theory.condexp_kernel ProbabilityTheory.condexpKernel
84
76
77
+ lemma condexpKernel_apply_eq_condDistrib :
78
+ condexpKernel μ m ω = @condDistrib Ω Ω Ω _ mΩ _ _ _ mΩ (m ⊓ mΩ) id id μ _ (id ω) := by
79
+ simp_rw [condexpKernel, kernel.comap_apply]
80
+
81
+ instance : IsMarkovKernel (condexpKernel μ m) := by simp only [condexpKernel]; infer_instance
82
+
85
83
section Measurability
86
84
85
+ variable [NormedAddCommGroup F] {f : Ω → F}
86
+
87
87
theorem measurable_condexpKernel {s : Set Ω} (hs : MeasurableSet s) :
88
88
Measurable[m] fun ω => condexpKernel μ m ω s := by
89
- rw [condexpKernel]; convert measurable_condDistrib (μ := μ) hs; rw [MeasurableSpace.comap_id]
89
+ simp_rw [condexpKernel_apply_eq_condDistrib]
90
+ refine Measurable.mono ?_ (inf_le_left : m ⊓ mΩ ≤ m) le_rfl
91
+ convert measurable_condDistrib (μ := μ) hs
92
+ rw [MeasurableSpace.comap_id]
90
93
#align probability_theory.measurable_condexp_kernel ProbabilityTheory.measurable_condexpKernel
91
94
95
+ theorem stronglyMeasurable_condexpKernel {s : Set Ω} (hs : MeasurableSet s) :
96
+ StronglyMeasurable[m] fun ω => condexpKernel μ m ω s :=
97
+ Measurable.stronglyMeasurable (measurable_condexpKernel hs)
98
+
92
99
theorem _root_.MeasureTheory.AEStronglyMeasurable.integral_condexpKernel [NormedSpace ℝ F]
93
- [CompleteSpace F] (hm : m ≤ mΩ) ( hf : AEStronglyMeasurable f μ) :
100
+ [CompleteSpace F] (hf : AEStronglyMeasurable f μ) :
94
101
AEStronglyMeasurable (fun ω => ∫ y, f y ∂condexpKernel μ m ω) μ := by
95
- rw [condexpKernel]
96
- exact AEStronglyMeasurable.integral_condDistrib (aemeasurable_id'' μ hm) aemeasurable_id
97
- (hf.comp_snd_map_prod_id hm)
102
+ simp_rw [condexpKernel_apply_eq_condDistrib]
103
+ exact AEStronglyMeasurable.integral_condDistrib
104
+ (aemeasurable_id'' μ (inf_le_right : m ⊓ mΩ ≤ mΩ)) aemeasurable_id
105
+ (hf.comp_snd_map_prod_id inf_le_right)
98
106
#align measure_theory.ae_strongly_measurable.integral_condexp_kernel MeasureTheory.AEStronglyMeasurable.integral_condexpKernel
99
107
100
108
theorem aestronglyMeasurable'_integral_condexpKernel [NormedSpace ℝ F] [CompleteSpace F]
101
- (hm : m ≤ mΩ) ( hf : AEStronglyMeasurable f μ) :
109
+ (hf : AEStronglyMeasurable f μ) :
102
110
AEStronglyMeasurable' m (fun ω => ∫ y, f y ∂condexpKernel μ m ω) μ := by
103
111
rw [condexpKernel]
104
- have h := aestronglyMeasurable'_integral_condDistrib (aemeasurable_id'' μ hm) aemeasurable_id
105
- (hf.comp_snd_map_prod_id hm)
106
- rwa [MeasurableSpace.comap_id] at h
112
+ have h := aestronglyMeasurable'_integral_condDistrib
113
+ (aemeasurable_id'' μ (inf_le_right : m ⊓ mΩ ≤ mΩ)) aemeasurable_id
114
+ (hf.comp_snd_map_prod_id (inf_le_right : m ⊓ mΩ ≤ mΩ))
115
+ rw [MeasurableSpace.comap_id] at h
116
+ exact AEStronglyMeasurable'.mono h inf_le_left
107
117
#align probability_theory.ae_strongly_measurable'_integral_condexp_kernel ProbabilityTheory.aestronglyMeasurable'_integral_condexpKernel
108
118
109
119
end Measurability
110
120
111
121
section Integrability
112
122
113
- theorem _root_.MeasureTheory.Integrable.condexpKernel_ae (hm : m ≤ mΩ) (hf_int : Integrable f μ) :
123
+ variable [NormedAddCommGroup F] {f : Ω → F}
124
+
125
+ theorem _root_.MeasureTheory.Integrable.condexpKernel_ae (hf_int : Integrable f μ) :
114
126
∀ᵐ ω ∂μ, Integrable f (condexpKernel μ m ω) := by
115
127
rw [condexpKernel]
116
- exact Integrable.condDistrib_ae (aemeasurable_id'' μ hm) aemeasurable_id
117
- (hf_int.comp_snd_map_prod_id hm)
128
+ exact Integrable.condDistrib_ae
129
+ (aemeasurable_id'' μ (inf_le_right : m ⊓ mΩ ≤ mΩ)) aemeasurable_id
130
+ (hf_int.comp_snd_map_prod_id (inf_le_right : m ⊓ mΩ ≤ mΩ))
118
131
#align measure_theory.integrable.condexp_kernel_ae MeasureTheory.Integrable.condexpKernel_ae
119
132
120
- theorem _root_.MeasureTheory.Integrable.integral_norm_condexpKernel (hm : m ≤ mΩ)
121
- (hf_int : Integrable f μ) : Integrable (fun ω => ∫ y, ‖f y‖ ∂condexpKernel μ m ω) μ := by
133
+ theorem _root_.MeasureTheory.Integrable.integral_norm_condexpKernel (hf_int : Integrable f μ) :
134
+ Integrable (fun ω => ∫ y, ‖f y‖ ∂condexpKernel μ m ω) μ := by
122
135
rw [condexpKernel]
123
- exact Integrable.integral_norm_condDistrib (aemeasurable_id'' μ hm) aemeasurable_id
124
- (hf_int.comp_snd_map_prod_id hm)
136
+ exact Integrable.integral_norm_condDistrib
137
+ (aemeasurable_id'' μ (inf_le_right : m ⊓ mΩ ≤ mΩ)) aemeasurable_id
138
+ (hf_int.comp_snd_map_prod_id (inf_le_right : m ⊓ mΩ ≤ mΩ))
125
139
#align measure_theory.integrable.integral_norm_condexp_kernel MeasureTheory.Integrable.integral_norm_condexpKernel
126
140
127
141
theorem _root_.MeasureTheory.Integrable.norm_integral_condexpKernel [NormedSpace ℝ F]
128
- [CompleteSpace F] (hm : m ≤ mΩ) ( hf_int : Integrable f μ) :
142
+ [CompleteSpace F] (hf_int : Integrable f μ) :
129
143
Integrable (fun ω => ‖∫ y, f y ∂condexpKernel μ m ω‖) μ := by
130
144
rw [condexpKernel]
131
- exact Integrable.norm_integral_condDistrib (aemeasurable_id'' μ hm) aemeasurable_id
132
- (hf_int.comp_snd_map_prod_id hm)
145
+ exact Integrable.norm_integral_condDistrib
146
+ (aemeasurable_id'' μ (inf_le_right : m ⊓ mΩ ≤ mΩ)) aemeasurable_id
147
+ (hf_int.comp_snd_map_prod_id (inf_le_right : m ⊓ mΩ ≤ mΩ))
133
148
#align measure_theory.integrable.norm_integral_condexp_kernel MeasureTheory.Integrable.norm_integral_condexpKernel
134
149
135
150
theorem _root_.MeasureTheory.Integrable.integral_condexpKernel [NormedSpace ℝ F] [CompleteSpace F]
136
- (hm : m ≤ mΩ) ( hf_int : Integrable f μ) :
151
+ (hf_int : Integrable f μ) :
137
152
Integrable (fun ω => ∫ y, f y ∂condexpKernel μ m ω) μ := by
138
153
rw [condexpKernel]
139
- exact Integrable.integral_condDistrib (aemeasurable_id'' μ hm) aemeasurable_id
140
- (hf_int.comp_snd_map_prod_id hm)
154
+ exact Integrable.integral_condDistrib
155
+ (aemeasurable_id'' μ (inf_le_right : m ⊓ mΩ ≤ mΩ)) aemeasurable_id
156
+ (hf_int.comp_snd_map_prod_id (inf_le_right : m ⊓ mΩ ≤ mΩ))
141
157
#align measure_theory.integrable.integral_condexp_kernel MeasureTheory.Integrable.integral_condexpKernel
142
158
143
- theorem integrable_toReal_condexpKernel (hm : m ≤ mΩ) {s : Set Ω} (hs : MeasurableSet s) :
159
+ theorem integrable_toReal_condexpKernel {s : Set Ω} (hs : MeasurableSet s) :
144
160
Integrable (fun ω => (condexpKernel μ m ω s).toReal) μ := by
145
161
rw [condexpKernel]
146
- exact integrable_toReal_condDistrib (aemeasurable_id'' μ hm ) hs
162
+ exact integrable_toReal_condDistrib (aemeasurable_id'' μ (inf_le_right : m ⊓ mΩ ≤ mΩ) ) hs
147
163
#align probability_theory.integrable_to_real_condexp_kernel ProbabilityTheory.integrable_toReal_condexpKernel
148
164
149
165
end Integrability
150
166
167
+ lemma condexpKernel_ae_eq_condexp' [IsFiniteMeasure μ] {s : Set Ω} (hs : MeasurableSet s) :
168
+ (fun ω ↦ (condexpKernel μ m ω s).toReal) =ᵐ[μ] μ⟦s | m ⊓ mΩ⟧ := by
169
+ have h := condDistrib_ae_eq_condexp (μ := μ)
170
+ (measurable_id'' (inf_le_right : m ⊓ mΩ ≤ mΩ)) measurable_id hs
171
+ simp only [id_eq, ge_iff_le, MeasurableSpace.comap_id, preimage_id_eq] at h
172
+ simp_rw [condexpKernel_apply_eq_condDistrib]
173
+ exact h
174
+
175
+ lemma condexpKernel_ae_eq_condexp [IsFiniteMeasure μ]
176
+ (hm : m ≤ mΩ) {s : Set Ω} (hs : MeasurableSet s) :
177
+ (fun ω ↦ (condexpKernel μ m ω s).toReal) =ᵐ[μ] μ⟦s | m⟧ :=
178
+ (condexpKernel_ae_eq_condexp' hs).trans (by rw [inf_of_le_left hm])
179
+
180
+ lemma condexpKernel_ae_eq_trim_condexp [IsFiniteMeasure μ]
181
+ (hm : m ≤ mΩ) {s : Set Ω} (hs : MeasurableSet s) :
182
+ (fun ω ↦ (condexpKernel μ m ω s).toReal) =ᵐ[μ.trim hm] μ⟦s | m⟧ := by
183
+ rw [ae_eq_trim_iff hm _ stronglyMeasurable_condexp]
184
+ · exact condexpKernel_ae_eq_condexp hm hs
185
+ · refine Measurable.stronglyMeasurable ?_
186
+ exact @Measurable.ennreal_toReal _ m _ (measurable_condexpKernel hs)
187
+
188
+ theorem condexp_ae_eq_integral_condexpKernel' [NormedAddCommGroup F] {f : Ω → F}
189
+ [NormedSpace ℝ F] [CompleteSpace F] (hf_int : Integrable f μ) :
190
+ μ[f|m ⊓ mΩ] =ᵐ[μ] fun ω => ∫ y, f y ∂condexpKernel μ m ω := by
191
+ have hX : @Measurable Ω Ω mΩ (m ⊓ mΩ) id := measurable_id.mono le_rfl (inf_le_right : m ⊓ mΩ ≤ mΩ)
192
+ simp_rw [condexpKernel_apply_eq_condDistrib]
193
+ have h := condexp_ae_eq_integral_condDistrib_id hX hf_int
194
+ simpa only [MeasurableSpace.comap_id, id_eq] using h
195
+
151
196
/-- The conditional expectation of `f` with respect to a σ-algebra `m` is almost everywhere equal to
152
197
the integral `∫ y, f y ∂(condexpKernel μ m ω)`. -/
153
- theorem condexp_ae_eq_integral_condexpKernel [NormedSpace ℝ F] [CompleteSpace F] (hm : m ≤ mΩ)
154
- (hf_int : Integrable f μ) : μ[f|m] =ᵐ[μ] fun ω => ∫ y, f y ∂condexpKernel μ m ω := by
155
- have hX : @Measurable Ω Ω mΩ m id := measurable_id.mono le_rfl hm
156
- rw [condexpKernel]
157
- refine' EventuallyEq.trans _ (condexp_ae_eq_integral_condDistrib_id hX hf_int)
158
- simp only [MeasurableSpace.comap_id, id.def]; rfl
198
+ theorem condexp_ae_eq_integral_condexpKernel [NormedAddCommGroup F] {f : Ω → F}
199
+ [NormedSpace ℝ F] [CompleteSpace F] (hm : m ≤ mΩ) (hf_int : Integrable f μ) :
200
+ μ[f|m] =ᵐ[μ] fun ω => ∫ y, f y ∂condexpKernel μ m ω :=
201
+ ((condexp_ae_eq_integral_condexpKernel' hf_int).symm.trans (by rw [inf_of_le_left hm])).symm
159
202
#align probability_theory.condexp_ae_eq_integral_condexp_kernel ProbabilityTheory.condexp_ae_eq_integral_condexpKernel
160
203
161
204
end ProbabilityTheory
0 commit comments