@@ -151,34 +151,25 @@ lemma condDistrib_hist_eq_condDistrib_hist_withDensity (h : IsBayesAlgEnvSeq Q
151151 rw [Kernel.withDensity_apply _ (by fun_prop), ← he.map_eq, ← he₀.map_eq]
152152 exact (hae.hasLaw_hist_withDensity hae₀ hc n).map_eq
153153
154- variable [StandardBorelSpace 𝓔] [Nonempty 𝓔]
155- variable [IsProbabilityMeasure Q]
156-
157- lemma hasLaw_hist_env (h : IsBayesAlgEnvSeq Q κ alg E A R' P)
154+ lemma hasLaw_hist_withDensity (h : IsBayesAlgEnvSeq Q κ alg E A R' P)
158155 (h₀ : IsBayesAlgEnvSeq Q κ alg₀ E₀ A₀ R₀ P₀) (hc : alg ≪ₐ alg₀) (n : ℕ) :
159- HasLaw (fun ω ↦ (IsAlgEnvSeq.hist A R' n ω, E ω))
160- (P.map (IsAlgEnvSeq.hist A R' n) ⊗ₘ condDistrib E₀ (IsAlgEnvSeq.hist A₀ R₀ n) P₀) P where
161- aemeasurable := ((IsAlgEnvSeq.measurable_hist h.measurable_A h.measurable_R n).prodMk
162- h.measurable_E).aemeasurable
156+ HasLaw (IsAlgEnvSeq.hist A R' n)
157+ ((P₀.map (IsAlgEnvSeq.hist A₀ R₀ n)).withDensity (alg.density alg₀ n)) P where
158+ aemeasurable := (IsAlgEnvSeq.measurable_hist h.measurable_A h.measurable_R n).aemeasurable
163159 map_eq := by
164160 have hA := h.measurable_A
165161 have hR := h.measurable_R
166162 have hA₀ := h₀.measurable_A
167163 have hR₀ := h₀.measurable_R
168164 have hE := h.measurable_E
169165 have hE₀ := h₀.measurable_E
170- have hcd := h.condDistrib_hist_eq_condDistrib_hist_withDensity h₀ hc n
171- have hm : P.map (IsAlgEnvSeq.hist A R' n) =
172- (P₀.map (IsAlgEnvSeq.hist A₀ R₀ n)).withDensity (alg.density alg₀ n) := by
173- rw [← map_bind_condDistrib hE (by fun_prop), h.hasLaw_env.map_eq,
174- Measure.bind_congr_right hcd, Kernel.comp_withDensity_const (by fun_prop),
175- ← h₀.hasLaw_env.map_eq, map_bind_condDistrib hE₀ (by fun_prop)]
176- rw [← compProd_map_condDistrib_swap hE (by fun_prop), h.hasLaw_env.map_eq,
177- Measure.compProd_eq_compProd_withDensity (by fun_prop) hcd,
178- Measure.map_swap_withDensity_fst (by fun_prop),
179- ← h₀.hasLaw_env.map_eq, compProd_map_condDistrib_swap hE₀ (by fun_prop),
180- ← compProd_map_condDistrib (by fun_prop),
181- ← Measure.withDensity_compProd_left (by fun_prop), ← hm]
166+ rw [← map_bind_condDistrib hE (by fun_prop), h.hasLaw_env.map_eq,
167+ Measure.bind_congr_right (h.condDistrib_hist_eq_condDistrib_hist_withDensity h₀ hc n),
168+ Kernel.comp_withDensity_const (by fun_prop),
169+ ← h₀.hasLaw_env.map_eq, map_bind_condDistrib hE₀ (by fun_prop)]
170+
171+ variable [StandardBorelSpace 𝓔] [Nonempty 𝓔]
172+ variable [IsProbabilityMeasure Q]
182173
183174lemma hasCondDistrib_env_hist (h : IsBayesAlgEnvSeq Q κ alg E A R' P)
184175 (h₀ : IsBayesAlgEnvSeq Q κ alg₀ E₀ A₀ R₀ P₀) (hc : alg ≪ₐ alg₀) (n : ℕ) :
@@ -187,8 +178,21 @@ lemma hasCondDistrib_env_hist (h : IsBayesAlgEnvSeq Q κ alg E A R' P)
187178 aemeasurable_fst := h.measurable_E.aemeasurable
188179 aemeasurable_snd := (IsAlgEnvSeq.measurable_hist h.measurable_A h.measurable_R n).aemeasurable
189180 condDistrib_eq := by
190- rw [condDistrib_ae_eq_iff_measure_eq_compProd _ h.measurable_E.aemeasurable]
191- exact (h.hasLaw_hist_env h₀ hc n).map_eq
181+ have hA := h.measurable_A
182+ have hR := h.measurable_R
183+ have hA₀ := h₀.measurable_A
184+ have hR₀ := h₀.measurable_R
185+ have hE := h.measurable_E
186+ have hE₀ := h₀.measurable_E
187+ rw [condDistrib_ae_eq_iff_measure_eq_compProd _ h.measurable_E.aemeasurable,
188+ ← compProd_map_condDistrib_swap hE (by fun_prop), h.hasLaw_env.map_eq,
189+ Measure.compProd_eq_compProd_withDensity (by fun_prop)
190+ (h.condDistrib_hist_eq_condDistrib_hist_withDensity h₀ hc n),
191+ Measure.map_swap_withDensity_fst (by fun_prop),
192+ ← h₀.hasLaw_env.map_eq, compProd_map_condDistrib_swap hE₀ (by fun_prop),
193+ ← compProd_map_condDistrib (by fun_prop),
194+ ← Measure.withDensity_compProd_left (by fun_prop),
195+ ← (hasLaw_hist_withDensity h h₀ hc n).map_eq]
192196
193197end IsBayesAlgEnvSeq
194198
0 commit comments