@@ -705,33 +705,7 @@ theorem indepFun_iff_map_prod_eq_prod_map_map {mβ : MeasurableSpace β} {mβ' :
705705 f ⟂ᵢ[μ] g ↔ μ.map (fun ω ↦ (f ω, g ω)) = (μ.map f).prod (μ.map g) := by
706706 apply indepFun_iff_map_prod_eq_prod_map_map' hf hg <;> apply IsFiniteMeasure.toSigmaFinite
707707
708- theorem iIndepFun_iff_map_fun_eq_pi_map [Fintype ι] {β : ι → Type *}
709- {m : ∀ i, MeasurableSpace (β i)} {f : Π i, Ω → β i} [IsProbabilityMeasure μ]
710- (hf : ∀ i, AEMeasurable (f i) μ) :
711- iIndepFun f μ ↔ μ.map (fun ω i ↦ f i ω) = Measure.pi (fun i ↦ μ.map (f i)) := by
712- classical
713- rw [iIndepFun_iff_measure_inter_preimage_eq_mul]
714- have h₀ {s : ∀ i, Set (β i)} (hm : ∀ (i : ι), MeasurableSet (s i)) :
715- ∏ i : ι, μ (f i ⁻¹' s i) = ∏ i : ι, μ.map (f i) (s i) ∧
716- μ (⋂ i : ι, (f i ⁻¹' s i)) = μ.map (fun ω i ↦ f i ω) (univ.pi s) := by
717- constructor
718- · congr with x
719- rw [Measure.map_apply_of_aemeasurable (hf x) (hm x)]
720- · rw [Measure.map_apply_of_aemeasurable (aemeasurable_pi_lambda _ fun x ↦ hf x)
721- (.univ_pi hm)]
722- congr with x
723- simp
724- constructor
725- · refine fun hS ↦ (Measure.pi_eq fun h hm ↦ ?_).symm
726- rw [← (h₀ hm).1 , ← (h₀ hm).2 ]
727- simpa [hm] using hS Finset.univ (sets := h)
728- · intro h S s hs
729- specialize h₀ (s := fun i ↦ if i ∈ S then s i else univ)
730- fun i ↦ by beta_reduce; split_ifs with hiS <;> simp [hiS, hs]
731- simp only [apply_ite, preimage_univ, measure_univ, Finset.prod_ite_mem, Finset.univ_inter,
732- Finset.prod_ite, Finset.filter_univ_mem, iInter_ite, iInter_univ, inter_univ, h,
733- Measure.pi_pi] at h₀
734- rw [h₀.2 , ← h₀.1 ]
708+ alias ⟨IndepFun.map_prod_eq_prod_map_map, _⟩ := indepFun_iff_map_prod_eq_prod_map_map
735709
736710@[symm]
737711nonrec theorem IndepFun.symm {_ : MeasurableSpace β} {_ : MeasurableSpace β'}
@@ -777,25 +751,6 @@ lemma indepFun_prod₀ (mX : AEMeasurable X μ) (mY : AEMeasurable Y ν) :
777751 · rw [measurePreserving_snd.map_eq]
778752 exact (AEMeasurable.ae_eq_mk mY).symm
779753
780- variable {ι : Type *} [Fintype ι] {Ω : ι → Type *} {mΩ : ∀ i, MeasurableSpace (Ω i)}
781- {μ : (i : ι) → Measure (Ω i)} [∀ i, IsProbabilityMeasure (μ i)]
782- {𝓧 : ι → Type *} [∀ i, MeasurableSpace (𝓧 i)] {X : (i : ι) → Ω i → 𝓧 i}
783-
784- /-- Given random variables `X i : Ω i → 𝓧 i`, they are independent when viewed as random
785- variables defined on the product space `Π i, Ω i`. -/
786- lemma iIndepFun_pi (mX : ∀ i, AEMeasurable (X i) (μ i)) :
787- iIndepFun (fun i ω ↦ X i (ω i)) (Measure.pi μ) := by
788- refine iIndepFun_iff_map_fun_eq_pi_map ?_ |>.2 ?_
789- · exact fun i ↦ (mX i).comp_quasiMeasurePreserving (Measure.quasiMeasurePreserving_eval _ i)
790- rw [Measure.pi_map_pi mX]
791- congr
792- ext i : 1
793- rw [← (measurePreserving_eval μ i).map_eq, AEMeasurable.map_map_of_aemeasurable,
794- Function.comp_def]
795- · rw [(measurePreserving_eval μ i).map_eq]
796- exact mX i
797- · exact (measurable_pi_apply i).aemeasurable
798-
799754end Prod
800755
801756theorem IndepFun.comp {_mβ : MeasurableSpace β} {_mβ' : MeasurableSpace β'}
@@ -882,6 +837,71 @@ lemma iIndepFun_iff_finset : iIndepFun f μ ↔ ∀ s : Finset ι, iIndepFun (s.
882837
883838alias ⟨iIndepFun.restrict, _⟩ := iIndepFun_iff_finset
884839
840+ theorem iIndepFun.map_fun_eq_pi_map [Fintype ι] {β : ι → Type *}
841+ {m : ∀ i, MeasurableSpace (β i)} {f : Π i, Ω → β i}
842+ (hf : ∀ i, AEMeasurable (f i) μ) (h : iIndepFun f μ) :
843+ μ.map (fun ω i ↦ f i ω) = Measure.pi (fun i ↦ μ.map (f i)) := by
844+ classical
845+ have := h.isProbabilityMeasure
846+ rw [iIndepFun_iff_measure_inter_preimage_eq_mul] at h
847+ have h₀ {s : ∀ i, Set (β i)} (hm : ∀ (i : ι), MeasurableSet (s i)) :
848+ ∏ i : ι, μ (f i ⁻¹' s i) = ∏ i : ι, μ.map (f i) (s i) ∧
849+ μ (⋂ i : ι, (f i ⁻¹' s i)) = μ.map (fun ω i ↦ f i ω) (univ.pi s) := by
850+ constructor
851+ · congr with x
852+ rw [Measure.map_apply_of_aemeasurable (hf x) (hm x)]
853+ · rw [Measure.map_apply_of_aemeasurable (aemeasurable_pi_lambda _ fun x ↦ hf x)
854+ (.univ_pi hm)]
855+ congr with x
856+ simp
857+ refine (Measure.pi_eq fun h' hm ↦ ?_).symm
858+ rw [← (h₀ hm).1 , ← (h₀ hm).2 ]
859+ simpa [hm] using h Finset.univ (sets := h')
860+
861+ theorem iIndepFun_iff_map_fun_eq_pi_map [Fintype ι] {β : ι → Type *}
862+ {m : ∀ i, MeasurableSpace (β i)} {f : Π i, Ω → β i} [IsProbabilityMeasure μ]
863+ (hf : ∀ i, AEMeasurable (f i) μ) :
864+ iIndepFun f μ ↔ μ.map (fun ω i ↦ f i ω) = Measure.pi (fun i ↦ μ.map (f i)) := by
865+ refine ⟨iIndepFun.map_fun_eq_pi_map hf, ?_⟩
866+ classical
867+ rw [iIndepFun_iff_measure_inter_preimage_eq_mul]
868+ have h₀ {s : ∀ i, Set (β i)} (hm : ∀ (i : ι), MeasurableSet (s i)) :
869+ ∏ i : ι, μ (f i ⁻¹' s i) = ∏ i : ι, μ.map (f i) (s i) ∧
870+ μ (⋂ i : ι, (f i ⁻¹' s i)) = μ.map (fun ω i ↦ f i ω) (univ.pi s) := by
871+ constructor
872+ · congr with x
873+ rw [Measure.map_apply_of_aemeasurable (hf x) (hm x)]
874+ · rw [Measure.map_apply_of_aemeasurable (aemeasurable_pi_lambda _ fun x ↦ hf x)
875+ (.univ_pi hm)]
876+ congr with x
877+ simp
878+ intro h S s hs
879+ specialize h₀ (s := fun i ↦ if i ∈ S then s i else univ)
880+ fun i ↦ by beta_reduce; split_ifs with hiS <;> simp [hiS, hs]
881+ simp only [apply_ite, preimage_univ, measure_univ, Finset.prod_ite_mem, Finset.univ_inter,
882+ Finset.prod_ite, Finset.filter_univ_mem, iInter_ite, iInter_univ, inter_univ, h,
883+ Measure.pi_pi] at h₀
884+ rw [h₀.2 , ← h₀.1 ]
885+
886+ variable {ι : Type *} [Fintype ι] {Ω : ι → Type *} {mΩ : ∀ i, MeasurableSpace (Ω i)}
887+ {μ : (i : ι) → Measure (Ω i)} [∀ i, IsProbabilityMeasure (μ i)]
888+ {𝓧 : ι → Type *} [∀ i, MeasurableSpace (𝓧 i)] {X : (i : ι) → Ω i → 𝓧 i}
889+
890+ /-- Given random variables `X i : Ω i → 𝓧 i`, they are independent when viewed as random
891+ variables defined on the product space `Π i, Ω i`. -/
892+ lemma iIndepFun_pi (mX : ∀ i, AEMeasurable (X i) (μ i)) :
893+ iIndepFun (fun i ω ↦ X i (ω i)) (Measure.pi μ) := by
894+ refine iIndepFun_iff_map_fun_eq_pi_map ?_ |>.2 ?_
895+ · exact fun i ↦ (mX i).comp_quasiMeasurePreserving (Measure.quasiMeasurePreserving_eval _ i)
896+ rw [Measure.pi_map_pi mX]
897+ congr
898+ ext i : 1
899+ rw [← (measurePreserving_eval μ i).map_eq, AEMeasurable.map_map_of_aemeasurable,
900+ Function.comp_def]
901+ · rw [(measurePreserving_eval μ i).map_eq]
902+ exact mX i
903+ · exact (measurable_pi_apply i).aemeasurable
904+
885905end iIndepFun
886906
887907section Mul
0 commit comments