Skip to content

Commit e51a804

Browse files
committed
Refactor AlgorithmDensity (in progress)
1 parent fbbc172 commit e51a804

1 file changed

Lines changed: 26 additions & 22 deletions

File tree

‎LeanBandits/SequentialLearning/AlgorithmDensity.lean‎

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -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

183174
lemma 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

193197
end IsBayesAlgEnvSeq
194198

0 commit comments

Comments
 (0)