Bandits.ArrayModel.indepFun_fst_add_one_aux
No docstring.
Bandits.ArrayModel.indepFun_fst_add_one_aux.{u_1, u_2} {π : Type u_1} {R : Type u_2} {mπ : MeasurableSpace π} {mR : MeasurableSpace R} (Ξ½ : ProbabilityTheory.Kernel π R) [ProbabilityTheory.IsMarkovKernel Ξ½] (n : β) : ProbabilityTheory.IndepFun (fun Ο => Prod.fst Ο (n + 1)) (fun Ο => (fun i => Prod.fst Ο βi, Prod.snd Ο)) (arrayMeasure Ξ½)Bandits.ArrayModel.indepFun_fst_add_one_aux.{u_1, u_2} {π : Type u_1} {R : Type u_2} {mπ : MeasurableSpace π} {mR : MeasurableSpace R} (Ξ½ : ProbabilityTheory.Kernel π R) [ProbabilityTheory.IsMarkovKernel Ξ½] (n : β) : ProbabilityTheory.IndepFun (fun Ο => Prod.fst Ο (n + 1)) (fun Ο => (fun i => Prod.fst Ο βi, Prod.snd Ο)) (arrayMeasure Ξ½)
Code
lemma indepFun_fst_add_one_aux (Ξ½ : Kernel π R) [IsMarkovKernel Ξ½] (n : β) :
(fun Ο β¦ Ο.1 (n + 1)) βα΅’[arrayMeasure Ξ½] (fun Ο β¦ (fun (i : Iic n) β¦ Ο.1 i, Ο.2))Proof
by
let ΞΌβ : Measure (β β I) := Measure.infinitePi fun _ β¦ volume
let ΞΌβ : Measure (β β π β R) := streamMeasure Ξ½
-- Coordinates of ΞΌβ are independent
have h_indep : iIndepFun (fun i (Ο : β β I) β¦ Ο i) ΞΌβ :=
iIndepFun_infinitePi (fun _ β¦ measurable_id)
have h_indep_n : IndepFun (fun Ο β¦ Ο (n + 1)) (fun Ο β¦ fun i : Iic n β¦ Ο i) ΞΌβ := by
have h := h_indep.indepFun_finsetβ {n + 1} (Iic n) (by simp)
(fun i β¦ (measurable_pi_apply i).aemeasurable)
convert h.comp (measurable_pi_apply β¨n + 1, by simpβ©) measurable_id using 1
Β· rfl
Β· rfl
rw [indepFun_iff_measure_inter_preimage_eq_mul]
intro s t hs ht
let X : (β β I) Γ (β β π β R) β I := fun Ο β¦ Ο.1 (n + 1)
let Y : (β β I) Γ (β β π β R) β (Iic n β I) Γ (β β π β R) := fun Ο β¦ (fun i β¦ Ο.1 i, Ο.2)
change (ΞΌβ.prod ΞΌβ) (X β»ΒΉ' s β© Y β»ΒΉ' t) = (ΞΌβ.prod ΞΌβ) (X β»ΒΉ' s) * (ΞΌβ.prod ΞΌβ) (Y β»ΒΉ' t)
-- Rewrite using Fubini
rw [Measure.prod_apply (hs.preimage (by fun_prop : Measurable X)),
Measure.prod_apply (ht.preimage (by fun_prop : Measurable Y)),
Measure.prod_apply ((hs.preimage (by fun_prop : Measurable X)).inter
(ht.preimage (by fun_prop : Measurable Y)))]
-- Compute fibers
have hX_fst Οβ : ΞΌβ (Prod.mk Οβ β»ΒΉ' (X β»ΒΉ' s)) = s.indicator 1 (Οβ (n + 1)) := by
simp only [X, Set.preimage_preimage]
by_cases h : Οβ (n + 1) β s <;> simp [h]
have hY_fst Οβ : ΞΌβ (Prod.mk Οβ β»ΒΉ' (Y β»ΒΉ' t)) = ΞΌβ {y | ((fun i : Iic n β¦ Οβ i), y) β t} := rfl
have hXY Οβ : ΞΌβ (Prod.mk Οβ β»ΒΉ' (X β»ΒΉ' s β© Y β»ΒΉ' t)) =
s.indicator 1 (Οβ (n + 1)) * ΞΌβ {y | ((fun i : Iic n β¦ Οβ i), y) β t} := by
simp only [X, Y, Set.preimage_inter, Set.preimage_preimage]
by_cases h : Οβ (n + 1) β s
Β· simp [h]
congr
Β· simp [h]
simp_rw [hY_fst, hX_fst, hXY]
-- Factor the integral using independence
let g : (Iic n β I) β ENNReal := fun x β¦ ΞΌβ {y | (x, y) β t}
have hg_meas : Measurable g := measurable_measure_prodMk_left ht
have hf_meas : Measurable (fun Οβ : β β I β¦ s.indicator (1 : I β ENNReal) (Οβ (n + 1))) :=
(measurable_one.indicator hs).comp (measurable_pi_apply _)
have hindep_fg : IndepFun (fun Οβ β¦ s.indicator (1 : I β ENNReal) (Οβ (n + 1)))
(fun Οβ β¦ g (fun i β¦ Οβ i)) ΞΌβ :=
h_indep_n.comp (measurable_one.indicator hs) hg_meas
have h_eq (Οβ : β β I) : ΞΌβ {y | ((fun i : Iic n β¦ Οβ i), y) β t} = g (fun i β¦ Οβ i) := rfl
simp_rw [h_eq]
exact lintegral_mul_eq_lintegral_mul_lintegral_of_indepFun hf_meas (by fun_prop) hindep_fgActions: Source Β· Open Issue
Meaning last changed in v4.34.0-rc2-1-g439785b (2026-08-23), the 5th recorded change.
Self-contained, with its dependencies inlined and proofs replaced by sorry: download the raw file Β· open it in the Lean web editor.
Dependency graph
Audit surface: 4 project declarations, 54 external constants
β Proved: no sorry anywhere in its closure
This is the tool's own reading of one build's recorded axioms, and it is not robust against an author who wants it to pass. Checking meant to be relied on should go through Comparator, which replays the proof through the kernel from an export against an explicit list of permitted axioms.