probability.kernel.condexpMathlib.Probability.Kernel.Condexp

This file has been ported!

Changes since the initial port

The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -64,7 +64,7 @@ theorem MeasureTheory.AEStronglyMeasurable.comp_snd_map_prod_id [TopologicalSpac
     AEStronglyMeasurable (fun x : Ω × Ω => f x.2)
       (@Measure.map Ω (Ω × Ω) (m.Prod mΩ) mΩ (fun ω => (id ω, id ω)) μ) :=
   by
-  rw [← ae_strongly_measurable_comp_snd_map_prod_mk_iff (measurable_id'' hm)] at hf 
+  rw [← ae_strongly_measurable_comp_snd_map_prod_mk_iff (measurable_id'' hm)] at hf
   simp_rw [id.def] at hf ⊢
   exact hf
 #align measure_theory.ae_strongly_measurable.comp_snd_map_prod_id MeasureTheory.AEStronglyMeasurable.comp_snd_map_prod_id
@@ -76,7 +76,7 @@ theorem MeasureTheory.Integrable.comp_snd_map_prod_id [NormedAddCommGroup F] (hm
     Integrable (fun x : Ω × Ω => f x.2)
       (@Measure.map Ω (Ω × Ω) (m.Prod mΩ) mΩ (fun ω => (id ω, id ω)) μ) :=
   by
-  rw [← integrable_comp_snd_map_prod_mk_iff (measurable_id'' hm)] at hf 
+  rw [← integrable_comp_snd_map_prod_mk_iff (measurable_id'' hm)] at hf
   simp_rw [id.def] at hf ⊢
   exact hf
 #align measure_theory.integrable.comp_snd_map_prod_id MeasureTheory.Integrable.comp_snd_map_prod_id
@@ -129,7 +129,7 @@ theorem aestronglyMeasurable'_integral_condexpKernel [NormedSpace ℝ F] [Comple
   have h :=
     ae_strongly_measurable'_integral_cond_distrib (ae_measurable_id'' μ hm) aemeasurable_id
       (hf.comp_snd_map_prod_id hm)
-  rwa [MeasurableSpace.comap_id] at h 
+  rwa [MeasurableSpace.comap_id] at h
 #align probability_theory.ae_strongly_measurable'_integral_condexp_kernel ProbabilityTheory.aestronglyMeasurable'_integral_condexpKernel
 -/
 
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2023 Rémy Degenne. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Rémy Degenne
 -/
-import Mathbin.Probability.Kernel.CondDistrib
+import Probability.Kernel.CondDistrib
 
 #align_import probability.kernel.condexp from "leanprover-community/mathlib"@"1b089e3bdc3ce6b39cd472543474a0a137128c6c"
 
Diff
@@ -44,18 +44,18 @@ section AuxLemmas
 
 variable {Ω F : Type _} {m mΩ : MeasurableSpace Ω} {μ : Measure Ω} {f : Ω → F}
 
-#print ProbabilityTheory.measurable_id'' /-
+#print measurable_id'' /-
 -- todo after the port: move to measure_theory/measurable_space, after measurable.mono
 theorem measurable_id'' (hm : m ≤ mΩ) : @Measurable Ω Ω mΩ m id :=
   measurable_id.mono le_rfl hm
-#align probability_theory.measurable_id'' ProbabilityTheory.measurable_id''
+#align probability_theory.measurable_id'' measurable_id''
 -/
 
-#print ProbabilityTheory.aemeasurable_id'' /-
+#print aemeasurable_id'' /-
 -- todo after the port: move to measure_theory/measurable_space, after measurable.mono
 theorem aemeasurable_id'' (μ : Measure Ω) (hm : m ≤ mΩ) : @AEMeasurable Ω Ω m mΩ id μ :=
   @Measurable.aemeasurable Ω Ω mΩ m id μ (measurable_id'' hm)
-#align probability_theory.ae_measurable_id'' ProbabilityTheory.aemeasurable_id''
+#align probability_theory.ae_measurable_id'' aemeasurable_id''
 -/
 
 #print MeasureTheory.AEStronglyMeasurable.comp_snd_map_prod_id /-
Diff
@@ -2,14 +2,11 @@
 Copyright (c) 2023 Rémy Degenne. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Rémy Degenne
-
-! This file was ported from Lean 3 source module probability.kernel.condexp
-! leanprover-community/mathlib commit 1b089e3bdc3ce6b39cd472543474a0a137128c6c
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Probability.Kernel.CondDistrib
 
+#align_import probability.kernel.condexp from "leanprover-community/mathlib"@"1b089e3bdc3ce6b39cd472543474a0a137128c6c"
+
 /-!
 # Kernel associated with a conditional expectation
 
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Rémy Degenne
 
 ! This file was ported from Lean 3 source module probability.kernel.condexp
-! leanprover-community/mathlib commit 00abe0695d8767201e6d008afa22393978bb324d
+! leanprover-community/mathlib commit 1b089e3bdc3ce6b39cd472543474a0a137128c6c
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -13,6 +13,9 @@ import Mathbin.Probability.Kernel.CondDistrib
 /-!
 # Kernel associated with a conditional expectation
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 We define `condexp_kernel μ m`, a kernel from `Ω` to `Ω` such that for all integrable functions `f`,
 `μ[f | m] =ᵐ[μ] λ ω, ∫ y, f y ∂(condexp_kernel μ m ω)`.
 
Diff
@@ -44,16 +44,21 @@ section AuxLemmas
 
 variable {Ω F : Type _} {m mΩ : MeasurableSpace Ω} {μ : Measure Ω} {f : Ω → F}
 
+#print ProbabilityTheory.measurable_id'' /-
 -- todo after the port: move to measure_theory/measurable_space, after measurable.mono
 theorem measurable_id'' (hm : m ≤ mΩ) : @Measurable Ω Ω mΩ m id :=
   measurable_id.mono le_rfl hm
 #align probability_theory.measurable_id'' ProbabilityTheory.measurable_id''
+-/
 
+#print ProbabilityTheory.aemeasurable_id'' /-
 -- todo after the port: move to measure_theory/measurable_space, after measurable.mono
-theorem aEMeasurable_id'' (μ : Measure Ω) (hm : m ≤ mΩ) : @AEMeasurable Ω Ω m mΩ id μ :=
+theorem aemeasurable_id'' (μ : Measure Ω) (hm : m ≤ mΩ) : @AEMeasurable Ω Ω m mΩ id μ :=
   @Measurable.aemeasurable Ω Ω mΩ m id μ (measurable_id'' hm)
-#align probability_theory.ae_measurable_id'' ProbabilityTheory.aEMeasurable_id''
+#align probability_theory.ae_measurable_id'' ProbabilityTheory.aemeasurable_id''
+-/
 
+#print MeasureTheory.AEStronglyMeasurable.comp_snd_map_prod_id /-
 theorem MeasureTheory.AEStronglyMeasurable.comp_snd_map_prod_id [TopologicalSpace F] (hm : m ≤ mΩ)
     (hf : AEStronglyMeasurable f μ) :
     AEStronglyMeasurable (fun x : Ω × Ω => f x.2)
@@ -63,7 +68,9 @@ theorem MeasureTheory.AEStronglyMeasurable.comp_snd_map_prod_id [TopologicalSpac
   simp_rw [id.def] at hf ⊢
   exact hf
 #align measure_theory.ae_strongly_measurable.comp_snd_map_prod_id MeasureTheory.AEStronglyMeasurable.comp_snd_map_prod_id
+-/
 
+#print MeasureTheory.Integrable.comp_snd_map_prod_id /-
 theorem MeasureTheory.Integrable.comp_snd_map_prod_id [NormedAddCommGroup F] (hm : m ≤ mΩ)
     (hf : Integrable f μ) :
     Integrable (fun x : Ω × Ω => f x.2)
@@ -73,6 +80,7 @@ theorem MeasureTheory.Integrable.comp_snd_map_prod_id [NormedAddCommGroup F] (hm
   simp_rw [id.def] at hf ⊢
   exact hf
 #align measure_theory.integrable.comp_snd_map_prod_id MeasureTheory.Integrable.comp_snd_map_prod_id
+-/
 
 end AuxLemmas
 
@@ -80,6 +88,7 @@ variable {Ω F : Type _} [TopologicalSpace Ω] {m : MeasurableSpace Ω} [mΩ : M
   [PolishSpace Ω] [BorelSpace Ω] [Nonempty Ω] {μ : Measure Ω} [IsFiniteMeasure μ]
   [NormedAddCommGroup F] {f : Ω → F}
 
+#print ProbabilityTheory.condexpKernel /-
 /-- Kernel associated with the conditional expectation with respect to a σ-algebra. It satisfies
 `μ[f | m] =ᵐ[μ] λ ω, ∫ y, f y ∂(condexp_kernel μ m ω)`.
 It is defined as the conditional distribution of the identity given the identity, where the second
@@ -88,14 +97,18 @@ noncomputable irreducible_def condexpKernel (μ : Measure Ω) [IsFiniteMeasure 
     (m : MeasurableSpace Ω) : @kernel Ω Ω m mΩ :=
   @condDistrib Ω Ω Ω _ mΩ _ _ _ mΩ m id id μ _
 #align probability_theory.condexp_kernel ProbabilityTheory.condexpKernel
+-/
 
 section Measurability
 
+#print ProbabilityTheory.measurable_condexpKernel /-
 theorem measurable_condexpKernel {s : Set Ω} (hs : MeasurableSet s) :
     measurable[m] fun ω => condexpKernel μ m ω s := by rw [condexp_kernel];
   convert measurable_cond_distrib hs; rw [MeasurableSpace.comap_id]
 #align probability_theory.measurable_condexp_kernel ProbabilityTheory.measurable_condexpKernel
+-/
 
+#print MeasureTheory.AEStronglyMeasurable.integral_condexpKernel /-
 theorem MeasureTheory.AEStronglyMeasurable.integral_condexpKernel [NormedSpace ℝ F]
     [CompleteSpace F] (hm : m ≤ mΩ) (hf : AEStronglyMeasurable f μ) :
     AEStronglyMeasurable (fun ω => ∫ y, f y ∂condexpKernel μ m ω) μ :=
@@ -105,8 +118,10 @@ theorem MeasureTheory.AEStronglyMeasurable.integral_condexpKernel [NormedSpace 
     ae_strongly_measurable.integral_cond_distrib (ae_measurable_id'' μ hm) aemeasurable_id
       (hf.comp_snd_map_prod_id hm)
 #align measure_theory.ae_strongly_measurable.integral_condexp_kernel MeasureTheory.AEStronglyMeasurable.integral_condexpKernel
+-/
 
-theorem aEStronglyMeasurable'_integral_condexpKernel [NormedSpace ℝ F] [CompleteSpace F]
+#print ProbabilityTheory.aestronglyMeasurable'_integral_condexpKernel /-
+theorem aestronglyMeasurable'_integral_condexpKernel [NormedSpace ℝ F] [CompleteSpace F]
     (hm : m ≤ mΩ) (hf : AEStronglyMeasurable f μ) :
     AEStronglyMeasurable' m (fun ω => ∫ y, f y ∂condexpKernel μ m ω) μ :=
   by
@@ -115,12 +130,14 @@ theorem aEStronglyMeasurable'_integral_condexpKernel [NormedSpace ℝ F] [Comple
     ae_strongly_measurable'_integral_cond_distrib (ae_measurable_id'' μ hm) aemeasurable_id
       (hf.comp_snd_map_prod_id hm)
   rwa [MeasurableSpace.comap_id] at h 
-#align probability_theory.ae_strongly_measurable'_integral_condexp_kernel ProbabilityTheory.aEStronglyMeasurable'_integral_condexpKernel
+#align probability_theory.ae_strongly_measurable'_integral_condexp_kernel ProbabilityTheory.aestronglyMeasurable'_integral_condexpKernel
+-/
 
 end Measurability
 
 section Integrability
 
+#print MeasureTheory.Integrable.condexpKernel_ae /-
 theorem MeasureTheory.Integrable.condexpKernel_ae (hm : m ≤ mΩ) (hf_int : Integrable f μ) :
     ∀ᵐ ω ∂μ, Integrable f (condexpKernel μ m ω) :=
   by
@@ -129,7 +146,9 @@ theorem MeasureTheory.Integrable.condexpKernel_ae (hm : m ≤ mΩ) (hf_int : Int
     integrable.cond_distrib_ae (ae_measurable_id'' μ hm) aemeasurable_id
       (hf_int.comp_snd_map_prod_id hm)
 #align measure_theory.integrable.condexp_kernel_ae MeasureTheory.Integrable.condexpKernel_ae
+-/
 
+#print MeasureTheory.Integrable.integral_norm_condexpKernel /-
 theorem MeasureTheory.Integrable.integral_norm_condexpKernel (hm : m ≤ mΩ)
     (hf_int : Integrable f μ) : Integrable (fun ω => ∫ y, ‖f y‖ ∂condexpKernel μ m ω) μ :=
   by
@@ -138,7 +157,9 @@ theorem MeasureTheory.Integrable.integral_norm_condexpKernel (hm : m ≤ mΩ)
     integrable.integral_norm_cond_distrib (ae_measurable_id'' μ hm) aemeasurable_id
       (hf_int.comp_snd_map_prod_id hm)
 #align measure_theory.integrable.integral_norm_condexp_kernel MeasureTheory.Integrable.integral_norm_condexpKernel
+-/
 
+#print MeasureTheory.Integrable.norm_integral_condexpKernel /-
 theorem MeasureTheory.Integrable.norm_integral_condexpKernel [NormedSpace ℝ F] [CompleteSpace F]
     (hm : m ≤ mΩ) (hf_int : Integrable f μ) :
     Integrable (fun ω => ‖∫ y, f y ∂condexpKernel μ m ω‖) μ :=
@@ -148,7 +169,9 @@ theorem MeasureTheory.Integrable.norm_integral_condexpKernel [NormedSpace ℝ F]
     integrable.norm_integral_cond_distrib (ae_measurable_id'' μ hm) aemeasurable_id
       (hf_int.comp_snd_map_prod_id hm)
 #align measure_theory.integrable.norm_integral_condexp_kernel MeasureTheory.Integrable.norm_integral_condexpKernel
+-/
 
+#print MeasureTheory.Integrable.integral_condexpKernel /-
 theorem MeasureTheory.Integrable.integral_condexpKernel [NormedSpace ℝ F] [CompleteSpace F]
     (hm : m ≤ mΩ) (hf_int : Integrable f μ) :
     Integrable (fun ω => ∫ y, f y ∂condexpKernel μ m ω) μ :=
@@ -158,16 +181,20 @@ theorem MeasureTheory.Integrable.integral_condexpKernel [NormedSpace ℝ F] [Com
     integrable.integral_cond_distrib (ae_measurable_id'' μ hm) aemeasurable_id
       (hf_int.comp_snd_map_prod_id hm)
 #align measure_theory.integrable.integral_condexp_kernel MeasureTheory.Integrable.integral_condexpKernel
+-/
 
+#print ProbabilityTheory.integrable_toReal_condexpKernel /-
 theorem integrable_toReal_condexpKernel (hm : m ≤ mΩ) {s : Set Ω} (hs : MeasurableSet s) :
     Integrable (fun ω => (condexpKernel μ m ω s).toReal) μ :=
   by
   rw [condexp_kernel]
   exact integrable_to_real_cond_distrib (ae_measurable_id'' μ hm) hs
 #align probability_theory.integrable_to_real_condexp_kernel ProbabilityTheory.integrable_toReal_condexpKernel
+-/
 
 end Integrability
 
+#print ProbabilityTheory.condexp_ae_eq_integral_condexpKernel /-
 /-- The conditional expectation of `f` with respect to a σ-algebra `m` is almost everywhere equal to
 the integral `∫ y, f y ∂(condexp_kernel μ m ω)`. -/
 theorem condexp_ae_eq_integral_condexpKernel [NormedSpace ℝ F] [CompleteSpace F] (hm : m ≤ mΩ)
@@ -178,6 +205,7 @@ theorem condexp_ae_eq_integral_condexpKernel [NormedSpace ℝ F] [CompleteSpace
   refine' eventually_eq.trans _ (condexp_ae_eq_integral_cond_distrib_id hX hf_int)
   simp only [MeasurableSpace.comap_id, id.def]
 #align probability_theory.condexp_ae_eq_integral_condexp_kernel ProbabilityTheory.condexp_ae_eq_integral_condexpKernel
+-/
 
 end ProbabilityTheory
 
Diff
@@ -106,16 +106,16 @@ theorem MeasureTheory.AEStronglyMeasurable.integral_condexpKernel [NormedSpace 
       (hf.comp_snd_map_prod_id hm)
 #align measure_theory.ae_strongly_measurable.integral_condexp_kernel MeasureTheory.AEStronglyMeasurable.integral_condexpKernel
 
-theorem aeStronglyMeasurable'_integral_condexpKernel [NormedSpace ℝ F] [CompleteSpace F]
+theorem aEStronglyMeasurable'_integral_condexpKernel [NormedSpace ℝ F] [CompleteSpace F]
     (hm : m ≤ mΩ) (hf : AEStronglyMeasurable f μ) :
-    AeStronglyMeasurable' m (fun ω => ∫ y, f y ∂condexpKernel μ m ω) μ :=
+    AEStronglyMeasurable' m (fun ω => ∫ y, f y ∂condexpKernel μ m ω) μ :=
   by
   rw [condexp_kernel]
   have h :=
     ae_strongly_measurable'_integral_cond_distrib (ae_measurable_id'' μ hm) aemeasurable_id
       (hf.comp_snd_map_prod_id hm)
   rwa [MeasurableSpace.comap_id] at h 
-#align probability_theory.ae_strongly_measurable'_integral_condexp_kernel ProbabilityTheory.aeStronglyMeasurable'_integral_condexpKernel
+#align probability_theory.ae_strongly_measurable'_integral_condexp_kernel ProbabilityTheory.aEStronglyMeasurable'_integral_condexpKernel
 
 end Measurability
 
Diff
@@ -77,15 +77,15 @@ theorem MeasureTheory.Integrable.comp_snd_map_prod_id [NormedAddCommGroup F] (hm
 end AuxLemmas
 
 variable {Ω F : Type _} [TopologicalSpace Ω] {m : MeasurableSpace Ω} [mΩ : MeasurableSpace Ω]
-  [PolishSpace Ω] [BorelSpace Ω] [Nonempty Ω] {μ : Measure Ω} [FiniteMeasure μ]
+  [PolishSpace Ω] [BorelSpace Ω] [Nonempty Ω] {μ : Measure Ω} [IsFiniteMeasure μ]
   [NormedAddCommGroup F] {f : Ω → F}
 
 /-- Kernel associated with the conditional expectation with respect to a σ-algebra. It satisfies
 `μ[f | m] =ᵐ[μ] λ ω, ∫ y, f y ∂(condexp_kernel μ m ω)`.
 It is defined as the conditional distribution of the identity given the identity, where the second
 identity is understood as a map from `Ω` with the σ-algebra `mΩ` to `Ω` with σ-algebra `m`. -/
-noncomputable irreducible_def condexpKernel (μ : Measure Ω) [FiniteMeasure μ]
-  (m : MeasurableSpace Ω) : @kernel Ω Ω m mΩ :=
+noncomputable irreducible_def condexpKernel (μ : Measure Ω) [IsFiniteMeasure μ]
+    (m : MeasurableSpace Ω) : @kernel Ω Ω m mΩ :=
   @condDistrib Ω Ω Ω _ mΩ _ _ _ mΩ m id id μ _
 #align probability_theory.condexp_kernel ProbabilityTheory.condexpKernel
 
Diff
@@ -59,8 +59,8 @@ theorem MeasureTheory.AEStronglyMeasurable.comp_snd_map_prod_id [TopologicalSpac
     AEStronglyMeasurable (fun x : Ω × Ω => f x.2)
       (@Measure.map Ω (Ω × Ω) (m.Prod mΩ) mΩ (fun ω => (id ω, id ω)) μ) :=
   by
-  rw [← ae_strongly_measurable_comp_snd_map_prod_mk_iff (measurable_id'' hm)] at hf
-  simp_rw [id.def] at hf⊢
+  rw [← ae_strongly_measurable_comp_snd_map_prod_mk_iff (measurable_id'' hm)] at hf 
+  simp_rw [id.def] at hf ⊢
   exact hf
 #align measure_theory.ae_strongly_measurable.comp_snd_map_prod_id MeasureTheory.AEStronglyMeasurable.comp_snd_map_prod_id
 
@@ -69,8 +69,8 @@ theorem MeasureTheory.Integrable.comp_snd_map_prod_id [NormedAddCommGroup F] (hm
     Integrable (fun x : Ω × Ω => f x.2)
       (@Measure.map Ω (Ω × Ω) (m.Prod mΩ) mΩ (fun ω => (id ω, id ω)) μ) :=
   by
-  rw [← integrable_comp_snd_map_prod_mk_iff (measurable_id'' hm)] at hf
-  simp_rw [id.def] at hf⊢
+  rw [← integrable_comp_snd_map_prod_mk_iff (measurable_id'' hm)] at hf 
+  simp_rw [id.def] at hf ⊢
   exact hf
 #align measure_theory.integrable.comp_snd_map_prod_id MeasureTheory.Integrable.comp_snd_map_prod_id
 
@@ -114,7 +114,7 @@ theorem aeStronglyMeasurable'_integral_condexpKernel [NormedSpace ℝ F] [Comple
   have h :=
     ae_strongly_measurable'_integral_cond_distrib (ae_measurable_id'' μ hm) aemeasurable_id
       (hf.comp_snd_map_prod_id hm)
-  rwa [MeasurableSpace.comap_id] at h
+  rwa [MeasurableSpace.comap_id] at h 
 #align probability_theory.ae_strongly_measurable'_integral_condexp_kernel ProbabilityTheory.aeStronglyMeasurable'_integral_condexpKernel
 
 end Measurability

Changes in mathlib4

mathlib3
mathlib4
feat(Probability/Kernel): disintegration of finite kernels (#10603)

Let κ : kernel α (β × Ω) be a finite kernel, where Ω is a standard Borel space. Then if α is countable or β has a countably generated σ-algebra (for example if it is standard Borel), then there exists a kernel (α × β) Ω called conditional kernel and denoted by condKernel κ such that κ = fst κ ⊗ₖ condKernel κ.

Properties of integrals involving condKernel are collated in the file Integral.lean. The conditional kernel is unique (almost everywhere w.r.t. fst κ): this is proved in the file Unique.lean.

Co-authored-by: sgouezel <sebastien.gouezel@univ-rennes1.fr> Co-authored-by: Rémy Degenne <remydegenne@gmail.com>

Diff
@@ -97,7 +97,7 @@ theorem stronglyMeasurable_condexpKernel {s : Set Ω} (hs : MeasurableSet s) :
   Measurable.stronglyMeasurable (measurable_condexpKernel hs)
 
 theorem _root_.MeasureTheory.AEStronglyMeasurable.integral_condexpKernel [NormedSpace ℝ F]
-    [CompleteSpace F] (hf : AEStronglyMeasurable f μ) :
+    (hf : AEStronglyMeasurable f μ) :
     AEStronglyMeasurable (fun ω => ∫ y, f y ∂condexpKernel μ m ω) μ := by
   simp_rw [condexpKernel_apply_eq_condDistrib]
   exact AEStronglyMeasurable.integral_condDistrib
@@ -105,7 +105,7 @@ theorem _root_.MeasureTheory.AEStronglyMeasurable.integral_condexpKernel [Normed
     (hf.comp_snd_map_prod_id inf_le_right)
 #align measure_theory.ae_strongly_measurable.integral_condexp_kernel MeasureTheory.AEStronglyMeasurable.integral_condexpKernel
 
-theorem aestronglyMeasurable'_integral_condexpKernel [NormedSpace ℝ F] [CompleteSpace F]
+theorem aestronglyMeasurable'_integral_condexpKernel [NormedSpace ℝ F]
     (hf : AEStronglyMeasurable f μ) :
     AEStronglyMeasurable' m (fun ω => ∫ y, f y ∂condexpKernel μ m ω) μ := by
   rw [condexpKernel]
@@ -139,7 +139,7 @@ theorem _root_.MeasureTheory.Integrable.integral_norm_condexpKernel (hf_int : In
 #align measure_theory.integrable.integral_norm_condexp_kernel MeasureTheory.Integrable.integral_norm_condexpKernel
 
 theorem _root_.MeasureTheory.Integrable.norm_integral_condexpKernel [NormedSpace ℝ F]
-    [CompleteSpace F] (hf_int : Integrable f μ) :
+    (hf_int : Integrable f μ) :
     Integrable (fun ω => ‖∫ y, f y ∂condexpKernel μ m ω‖) μ := by
   rw [condexpKernel]
   exact Integrable.norm_integral_condDistrib
@@ -147,7 +147,7 @@ theorem _root_.MeasureTheory.Integrable.norm_integral_condexpKernel [NormedSpace
     (hf_int.comp_snd_map_prod_id (inf_le_right : m ⊓ mΩ ≤ mΩ))
 #align measure_theory.integrable.norm_integral_condexp_kernel MeasureTheory.Integrable.norm_integral_condexpKernel
 
-theorem _root_.MeasureTheory.Integrable.integral_condexpKernel [NormedSpace ℝ F] [CompleteSpace F]
+theorem _root_.MeasureTheory.Integrable.integral_condexpKernel [NormedSpace ℝ F]
     (hf_int : Integrable f μ) :
     Integrable (fun ω => ∫ y, f y ∂condexpKernel μ m ω) μ := by
   rw [condexpKernel]
chore: avoid id.def (adaptation for nightly-2024-03-27) (#11829)

Co-authored-by: Ruben Van de Velde <65514131+Ruben-VandeVelde@users.noreply.github.com>

Diff
@@ -45,7 +45,7 @@ theorem _root_.MeasureTheory.AEStronglyMeasurable.comp_snd_map_prod_id [Topologi
     (hm : m ≤ mΩ) (hf : AEStronglyMeasurable f μ) : AEStronglyMeasurable (fun x : Ω × Ω => f x.2)
       (@Measure.map Ω (Ω × Ω) (m.prod mΩ) mΩ (fun ω => (id ω, id ω)) μ) := by
   rw [← aestronglyMeasurable_comp_snd_map_prod_mk_iff (measurable_id'' hm)] at hf
-  simp_rw [id.def] at hf ⊢
+  simp_rw [id] at hf ⊢
   exact hf
 #align measure_theory.ae_strongly_measurable.comp_snd_map_prod_id MeasureTheory.AEStronglyMeasurable.comp_snd_map_prod_id
 
@@ -53,7 +53,7 @@ theorem _root_.MeasureTheory.Integrable.comp_snd_map_prod_id [NormedAddCommGroup
     (hf : Integrable f μ) : Integrable (fun x : Ω × Ω => f x.2)
       (@Measure.map Ω (Ω × Ω) (m.prod mΩ) mΩ (fun ω => (id ω, id ω)) μ) := by
   rw [← integrable_comp_snd_map_prod_mk_iff (measurable_id'' hm)] at hf
-  simp_rw [id.def] at hf ⊢
+  simp_rw [id] at hf ⊢
   exact hf
 #align measure_theory.integrable.comp_snd_map_prod_id MeasureTheory.Integrable.comp_snd_map_prod_id
 
chore: use StandardBorelSpace everywhere in the probability folder instead of PolishSpace (#8746)
Diff
@@ -59,8 +59,8 @@ theorem _root_.MeasureTheory.Integrable.comp_snd_map_prod_id [NormedAddCommGroup
 
 end AuxLemmas
 
-variable {Ω F : Type*} [TopologicalSpace Ω] {m : MeasurableSpace Ω} [mΩ : MeasurableSpace Ω]
-  [PolishSpace Ω] [BorelSpace Ω] [Nonempty Ω] {μ : Measure Ω} [IsFiniteMeasure μ]
+variable {Ω F : Type*} {m : MeasurableSpace Ω} [mΩ : MeasurableSpace Ω]
+  [StandardBorelSpace Ω] [Nonempty Ω] {μ : Measure Ω} [IsFiniteMeasure μ]
 
 /-- Kernel associated with the conditional expectation with respect to a σ-algebra. It satisfies
 `μ[f | m] =ᵐ[μ] fun ω => ∫ y, f y ∂(condexpKernel μ m ω)`.
@@ -70,13 +70,12 @@ We use `m ⊓ mΩ` instead of `m` to ensure that it is a sub-σ-algebra of `mΩ`
 `kernel.comap` to get a kernel from `m` to `mΩ` instead of from `m ⊓ mΩ` to `mΩ`. -/
 noncomputable irreducible_def condexpKernel (μ : Measure Ω) [IsFiniteMeasure μ]
     (m : MeasurableSpace Ω) : @kernel Ω Ω m mΩ :=
-  kernel.comap (@condDistrib Ω Ω Ω _ mΩ _ _ _ mΩ (m ⊓ mΩ) id id μ _) id
+  kernel.comap (@condDistrib Ω Ω Ω mΩ _ _ mΩ (m ⊓ mΩ) id id μ _) id
     (measurable_id'' (inf_le_left : m ⊓ mΩ ≤ m))
 #align probability_theory.condexp_kernel ProbabilityTheory.condexpKernel
 
-set_option autoImplicit true in
-lemma condexpKernel_apply_eq_condDistrib :
-    condexpKernel μ m ω = @condDistrib Ω Ω Ω _ mΩ _ _ _ mΩ (m ⊓ mΩ) id id μ _ (id ω) := by
+lemma condexpKernel_apply_eq_condDistrib {ω : Ω} :
+    condexpKernel μ m ω = @condDistrib Ω Ω Ω mΩ _ _ mΩ (m ⊓ mΩ) id id μ _ (id ω) := by
   simp_rw [condexpKernel, kernel.comap_apply]
 
 instance : IsMarkovKernel (condexpKernel μ m) := by simp only [condexpKernel]; infer_instance
fix: disable autoImplicit globally (#6528)

Autoimplicits are highly controversial and also defeat the performance-improving work in #6474.

The intent of this PR is to make autoImplicit opt-in on a per-file basis, by disabling it in the lakefile and enabling it again with set_option autoImplicit true in the few files that rely on it.

That also keeps this PR small, as opposed to attempting to "fix" files to not need it any more.

I claim that many of the uses of autoImplicit in these files are accidental; situations such as:

  • Assuming variables are in scope, but pasting the lemma in the wrong section
  • Pasting in a lemma from a scratch file without checking to see if the variable names are consistent with the rest of the file
  • Making a copy-paste error between lemmas and forgetting to add an explicit arguments.

Having set_option autoImplicit false as the default prevents these types of mistake being made in the 90% of files where autoImplicits are not used at all, and causes them to be caught by CI during review.

I think there were various points during the port where we encouraged porters to delete the universes u v lines; I think having autoparams for universe variables only would cover a lot of the cases we actually use them, while avoiding any real shortcomings.

A Zulip poll (after combining overlapping votes accordingly) was in favor of this change with 5:5:18 as the no:dontcare:yes vote ratio.

While this PR was being reviewed, a handful of files gained some more likely-accidental autoImplicits. In these places, set_option autoImplicit true has been placed locally within a section, rather than at the top of the file.

Diff
@@ -74,6 +74,7 @@ noncomputable irreducible_def condexpKernel (μ : Measure Ω) [IsFiniteMeasure 
     (measurable_id'' (inf_le_left : m ⊓ mΩ ≤ m))
 #align probability_theory.condexp_kernel ProbabilityTheory.condexpKernel
 
+set_option autoImplicit true in
 lemma condexpKernel_apply_eq_condDistrib :
     condexpKernel μ m ω = @condDistrib Ω Ω Ω _ mΩ _ _ _ mΩ (m ⊓ mΩ) id id μ _ (id ω) := by
   simp_rw [condexpKernel, kernel.comap_apply]
feat(Probability/Kernel/Condexp): some properties of condexpKernel (#6109)

condexpKernel is a Markov kernel, is strongly measurable and is a.e. equal to the conditional expectation.

Co-authored-by: RemyDegenne <Remydegenne@gmail.com>

Diff
@@ -41,16 +41,6 @@ section AuxLemmas
 
 variable {Ω F : Type*} {m mΩ : MeasurableSpace Ω} {μ : Measure Ω} {f : Ω → F}
 
--- Porting note: todo: move to `MeasureTheory/MeasurableSpace`, after `Measurable.mono`
-theorem measurable_id'' (hm : m ≤ mΩ) : @Measurable Ω Ω mΩ m id :=
-  measurable_id.mono le_rfl hm
-#align probability_theory.measurable_id'' ProbabilityTheory.measurable_id''
-
--- Porting note: todo: move to `MeasureTheory/MeasurableSpace`, after `Measurable.mono`
-theorem aemeasurable_id'' (μ : Measure Ω) (hm : m ≤ mΩ) : @AEMeasurable Ω Ω m mΩ id μ :=
-  @Measurable.aemeasurable Ω Ω mΩ m id μ (measurable_id'' hm)
-#align probability_theory.ae_measurable_id'' ProbabilityTheory.aemeasurable_id''
-
 theorem _root_.MeasureTheory.AEStronglyMeasurable.comp_snd_map_prod_id [TopologicalSpace F]
     (hm : m ≤ mΩ) (hf : AEStronglyMeasurable f μ) : AEStronglyMeasurable (fun x : Ω × Ω => f x.2)
       (@Measure.map Ω (Ω × Ω) (m.prod mΩ) mΩ (fun ω => (id ω, id ω)) μ) := by
@@ -71,91 +61,144 @@ end AuxLemmas
 
 variable {Ω F : Type*} [TopologicalSpace Ω] {m : MeasurableSpace Ω} [mΩ : MeasurableSpace Ω]
   [PolishSpace Ω] [BorelSpace Ω] [Nonempty Ω] {μ : Measure Ω} [IsFiniteMeasure μ]
-  [NormedAddCommGroup F] {f : Ω → F}
 
 /-- Kernel associated with the conditional expectation with respect to a σ-algebra. It satisfies
 `μ[f | m] =ᵐ[μ] fun ω => ∫ y, f y ∂(condexpKernel μ m ω)`.
 It is defined as the conditional distribution of the identity given the identity, where the second
-identity is understood as a map from `Ω` with the σ-algebra `mΩ` to `Ω` with σ-algebra `m`. -/
+identity is understood as a map from `Ω` with the σ-algebra `mΩ` to `Ω` with σ-algebra `m ⊓ mΩ`.
+We use `m ⊓ mΩ` instead of `m` to ensure that it is a sub-σ-algebra of `mΩ`. We then use
+`kernel.comap` to get a kernel from `m` to `mΩ` instead of from `m ⊓ mΩ` to `mΩ`. -/
 noncomputable irreducible_def condexpKernel (μ : Measure Ω) [IsFiniteMeasure μ]
     (m : MeasurableSpace Ω) : @kernel Ω Ω m mΩ :=
-  @condDistrib Ω Ω Ω _ mΩ _ _ _ mΩ m id id μ _
+  kernel.comap (@condDistrib Ω Ω Ω _ mΩ _ _ _ mΩ (m ⊓ mΩ) id id μ _) id
+    (measurable_id'' (inf_le_left : m ⊓ mΩ ≤ m))
 #align probability_theory.condexp_kernel ProbabilityTheory.condexpKernel
 
+lemma condexpKernel_apply_eq_condDistrib :
+    condexpKernel μ m ω = @condDistrib Ω Ω Ω _ mΩ _ _ _ mΩ (m ⊓ mΩ) id id μ _ (id ω) := by
+  simp_rw [condexpKernel, kernel.comap_apply]
+
+instance : IsMarkovKernel (condexpKernel μ m) := by simp only [condexpKernel]; infer_instance
+
 section Measurability
 
+variable [NormedAddCommGroup F] {f : Ω → F}
+
 theorem measurable_condexpKernel {s : Set Ω} (hs : MeasurableSet s) :
     Measurable[m] fun ω => condexpKernel μ m ω s := by
-  rw [condexpKernel]; convert measurable_condDistrib (μ := μ) hs; rw [MeasurableSpace.comap_id]
+  simp_rw [condexpKernel_apply_eq_condDistrib]
+  refine Measurable.mono ?_ (inf_le_left : m ⊓ mΩ ≤ m) le_rfl
+  convert measurable_condDistrib (μ := μ) hs
+  rw [MeasurableSpace.comap_id]
 #align probability_theory.measurable_condexp_kernel ProbabilityTheory.measurable_condexpKernel
 
+theorem stronglyMeasurable_condexpKernel {s : Set Ω} (hs : MeasurableSet s) :
+    StronglyMeasurable[m] fun ω => condexpKernel μ m ω s :=
+  Measurable.stronglyMeasurable (measurable_condexpKernel hs)
+
 theorem _root_.MeasureTheory.AEStronglyMeasurable.integral_condexpKernel [NormedSpace ℝ F]
-    [CompleteSpace F] (hm : m ≤ mΩ) (hf : AEStronglyMeasurable f μ) :
+    [CompleteSpace F] (hf : AEStronglyMeasurable f μ) :
     AEStronglyMeasurable (fun ω => ∫ y, f y ∂condexpKernel μ m ω) μ := by
-  rw [condexpKernel]
-  exact AEStronglyMeasurable.integral_condDistrib (aemeasurable_id'' μ hm) aemeasurable_id
-    (hf.comp_snd_map_prod_id hm)
+  simp_rw [condexpKernel_apply_eq_condDistrib]
+  exact AEStronglyMeasurable.integral_condDistrib
+    (aemeasurable_id'' μ (inf_le_right : m ⊓ mΩ ≤ mΩ)) aemeasurable_id
+    (hf.comp_snd_map_prod_id inf_le_right)
 #align measure_theory.ae_strongly_measurable.integral_condexp_kernel MeasureTheory.AEStronglyMeasurable.integral_condexpKernel
 
 theorem aestronglyMeasurable'_integral_condexpKernel [NormedSpace ℝ F] [CompleteSpace F]
-    (hm : m ≤ mΩ) (hf : AEStronglyMeasurable f μ) :
+    (hf : AEStronglyMeasurable f μ) :
     AEStronglyMeasurable' m (fun ω => ∫ y, f y ∂condexpKernel μ m ω) μ := by
   rw [condexpKernel]
-  have h := aestronglyMeasurable'_integral_condDistrib (aemeasurable_id'' μ hm) aemeasurable_id
-    (hf.comp_snd_map_prod_id hm)
-  rwa [MeasurableSpace.comap_id] at h
+  have h := aestronglyMeasurable'_integral_condDistrib
+    (aemeasurable_id'' μ (inf_le_right : m ⊓ mΩ ≤ mΩ)) aemeasurable_id
+    (hf.comp_snd_map_prod_id (inf_le_right : m ⊓ mΩ ≤ mΩ))
+  rw [MeasurableSpace.comap_id] at h
+  exact AEStronglyMeasurable'.mono h inf_le_left
 #align probability_theory.ae_strongly_measurable'_integral_condexp_kernel ProbabilityTheory.aestronglyMeasurable'_integral_condexpKernel
 
 end Measurability
 
 section Integrability
 
-theorem _root_.MeasureTheory.Integrable.condexpKernel_ae (hm : m ≤ mΩ) (hf_int : Integrable f μ) :
+variable [NormedAddCommGroup F] {f : Ω → F}
+
+theorem _root_.MeasureTheory.Integrable.condexpKernel_ae (hf_int : Integrable f μ) :
     ∀ᵐ ω ∂μ, Integrable f (condexpKernel μ m ω) := by
   rw [condexpKernel]
-  exact Integrable.condDistrib_ae (aemeasurable_id'' μ hm) aemeasurable_id
-    (hf_int.comp_snd_map_prod_id hm)
+  exact Integrable.condDistrib_ae
+    (aemeasurable_id'' μ (inf_le_right : m ⊓ mΩ ≤ mΩ)) aemeasurable_id
+    (hf_int.comp_snd_map_prod_id (inf_le_right : m ⊓ mΩ ≤ mΩ))
 #align measure_theory.integrable.condexp_kernel_ae MeasureTheory.Integrable.condexpKernel_ae
 
-theorem _root_.MeasureTheory.Integrable.integral_norm_condexpKernel (hm : m ≤ mΩ)
-    (hf_int : Integrable f μ) : Integrable (fun ω => ∫ y, ‖f y‖ ∂condexpKernel μ m ω) μ := by
+theorem _root_.MeasureTheory.Integrable.integral_norm_condexpKernel (hf_int : Integrable f μ) :
+    Integrable (fun ω => ∫ y, ‖f y‖ ∂condexpKernel μ m ω) μ := by
   rw [condexpKernel]
-  exact Integrable.integral_norm_condDistrib (aemeasurable_id'' μ hm) aemeasurable_id
-    (hf_int.comp_snd_map_prod_id hm)
+  exact Integrable.integral_norm_condDistrib
+    (aemeasurable_id'' μ (inf_le_right : m ⊓ mΩ ≤ mΩ)) aemeasurable_id
+    (hf_int.comp_snd_map_prod_id (inf_le_right : m ⊓ mΩ ≤ mΩ))
 #align measure_theory.integrable.integral_norm_condexp_kernel MeasureTheory.Integrable.integral_norm_condexpKernel
 
 theorem _root_.MeasureTheory.Integrable.norm_integral_condexpKernel [NormedSpace ℝ F]
-    [CompleteSpace F] (hm : m ≤ mΩ) (hf_int : Integrable f μ) :
+    [CompleteSpace F] (hf_int : Integrable f μ) :
     Integrable (fun ω => ‖∫ y, f y ∂condexpKernel μ m ω‖) μ := by
   rw [condexpKernel]
-  exact Integrable.norm_integral_condDistrib (aemeasurable_id'' μ hm) aemeasurable_id
-    (hf_int.comp_snd_map_prod_id hm)
+  exact Integrable.norm_integral_condDistrib
+    (aemeasurable_id'' μ (inf_le_right : m ⊓ mΩ ≤ mΩ)) aemeasurable_id
+    (hf_int.comp_snd_map_prod_id (inf_le_right : m ⊓ mΩ ≤ mΩ))
 #align measure_theory.integrable.norm_integral_condexp_kernel MeasureTheory.Integrable.norm_integral_condexpKernel
 
 theorem _root_.MeasureTheory.Integrable.integral_condexpKernel [NormedSpace ℝ F] [CompleteSpace F]
-    (hm : m ≤ mΩ) (hf_int : Integrable f μ) :
+    (hf_int : Integrable f μ) :
     Integrable (fun ω => ∫ y, f y ∂condexpKernel μ m ω) μ := by
   rw [condexpKernel]
-  exact Integrable.integral_condDistrib (aemeasurable_id'' μ hm) aemeasurable_id
-    (hf_int.comp_snd_map_prod_id hm)
+  exact Integrable.integral_condDistrib
+    (aemeasurable_id'' μ (inf_le_right : m ⊓ mΩ ≤ mΩ)) aemeasurable_id
+    (hf_int.comp_snd_map_prod_id (inf_le_right : m ⊓ mΩ ≤ mΩ))
 #align measure_theory.integrable.integral_condexp_kernel MeasureTheory.Integrable.integral_condexpKernel
 
-theorem integrable_toReal_condexpKernel (hm : m ≤ mΩ) {s : Set Ω} (hs : MeasurableSet s) :
+theorem integrable_toReal_condexpKernel {s : Set Ω} (hs : MeasurableSet s) :
     Integrable (fun ω => (condexpKernel μ m ω s).toReal) μ := by
   rw [condexpKernel]
-  exact integrable_toReal_condDistrib (aemeasurable_id'' μ hm) hs
+  exact integrable_toReal_condDistrib (aemeasurable_id'' μ (inf_le_right : m ⊓ mΩ ≤ mΩ)) hs
 #align probability_theory.integrable_to_real_condexp_kernel ProbabilityTheory.integrable_toReal_condexpKernel
 
 end Integrability
 
+lemma condexpKernel_ae_eq_condexp' [IsFiniteMeasure μ] {s : Set Ω} (hs : MeasurableSet s) :
+    (fun ω ↦ (condexpKernel μ m ω s).toReal) =ᵐ[μ] μ⟦s | m ⊓ mΩ⟧ := by
+  have h := condDistrib_ae_eq_condexp (μ := μ)
+    (measurable_id'' (inf_le_right : m ⊓ mΩ ≤ mΩ)) measurable_id hs
+  simp only [id_eq, ge_iff_le, MeasurableSpace.comap_id, preimage_id_eq] at h
+  simp_rw [condexpKernel_apply_eq_condDistrib]
+  exact h
+
+lemma condexpKernel_ae_eq_condexp [IsFiniteMeasure μ]
+    (hm : m ≤ mΩ) {s : Set Ω} (hs : MeasurableSet s) :
+    (fun ω ↦ (condexpKernel μ m ω s).toReal) =ᵐ[μ] μ⟦s | m⟧ :=
+  (condexpKernel_ae_eq_condexp' hs).trans (by rw [inf_of_le_left hm])
+
+lemma condexpKernel_ae_eq_trim_condexp [IsFiniteMeasure μ]
+    (hm : m ≤ mΩ) {s : Set Ω} (hs : MeasurableSet s) :
+    (fun ω ↦ (condexpKernel μ m ω s).toReal) =ᵐ[μ.trim hm] μ⟦s | m⟧ := by
+  rw [ae_eq_trim_iff hm _ stronglyMeasurable_condexp]
+  · exact condexpKernel_ae_eq_condexp hm hs
+  · refine Measurable.stronglyMeasurable ?_
+    exact @Measurable.ennreal_toReal _ m _ (measurable_condexpKernel hs)
+
+theorem condexp_ae_eq_integral_condexpKernel' [NormedAddCommGroup F] {f : Ω → F}
+    [NormedSpace ℝ F] [CompleteSpace F] (hf_int : Integrable f μ) :
+    μ[f|m ⊓ mΩ] =ᵐ[μ] fun ω => ∫ y, f y ∂condexpKernel μ m ω := by
+  have hX : @Measurable Ω Ω mΩ (m ⊓ mΩ) id := measurable_id.mono le_rfl (inf_le_right : m ⊓ mΩ ≤ mΩ)
+  simp_rw [condexpKernel_apply_eq_condDistrib]
+  have h := condexp_ae_eq_integral_condDistrib_id hX hf_int
+  simpa only [MeasurableSpace.comap_id, id_eq] using h
+
 /-- The conditional expectation of `f` with respect to a σ-algebra `m` is almost everywhere equal to
 the integral `∫ y, f y ∂(condexpKernel μ m ω)`. -/
-theorem condexp_ae_eq_integral_condexpKernel [NormedSpace ℝ F] [CompleteSpace F] (hm : m ≤ mΩ)
-    (hf_int : Integrable f μ) : μ[f|m] =ᵐ[μ] fun ω => ∫ y, f y ∂condexpKernel μ m ω := by
-  have hX : @Measurable Ω Ω mΩ m id := measurable_id.mono le_rfl hm
-  rw [condexpKernel]
-  refine' EventuallyEq.trans _ (condexp_ae_eq_integral_condDistrib_id hX hf_int)
-  simp only [MeasurableSpace.comap_id, id.def]; rfl
+theorem condexp_ae_eq_integral_condexpKernel [NormedAddCommGroup F] {f : Ω → F}
+    [NormedSpace ℝ F] [CompleteSpace F] (hm : m ≤ mΩ) (hf_int : Integrable f μ) :
+    μ[f|m] =ᵐ[μ] fun ω => ∫ y, f y ∂condexpKernel μ m ω :=
+  ((condexp_ae_eq_integral_condexpKernel' hf_int).symm.trans (by rw [inf_of_le_left hm])).symm
 #align probability_theory.condexp_ae_eq_integral_condexp_kernel ProbabilityTheory.condexp_ae_eq_integral_condexpKernel
 
 end ProbabilityTheory
chore: banish Type _ and Sort _ (#6499)

We remove all possible occurences of Type _ and Sort _ in favor of Type* and Sort*.

This has nice performance benefits.

Diff
@@ -39,7 +39,7 @@ namespace ProbabilityTheory
 
 section AuxLemmas
 
-variable {Ω F : Type _} {m mΩ : MeasurableSpace Ω} {μ : Measure Ω} {f : Ω → F}
+variable {Ω F : Type*} {m mΩ : MeasurableSpace Ω} {μ : Measure Ω} {f : Ω → F}
 
 -- Porting note: todo: move to `MeasureTheory/MeasurableSpace`, after `Measurable.mono`
 theorem measurable_id'' (hm : m ≤ mΩ) : @Measurable Ω Ω mΩ m id :=
@@ -69,7 +69,7 @@ theorem _root_.MeasureTheory.Integrable.comp_snd_map_prod_id [NormedAddCommGroup
 
 end AuxLemmas
 
-variable {Ω F : Type _} [TopologicalSpace Ω] {m : MeasurableSpace Ω} [mΩ : MeasurableSpace Ω]
+variable {Ω F : Type*} [TopologicalSpace Ω] {m : MeasurableSpace Ω} [mΩ : MeasurableSpace Ω]
   [PolishSpace Ω] [BorelSpace Ω] [Nonempty Ω] {μ : Measure Ω} [IsFiniteMeasure μ]
   [NormedAddCommGroup F] {f : Ω → F}
 
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -2,14 +2,11 @@
 Copyright (c) 2023 Rémy Degenne. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Rémy Degenne
-
-! This file was ported from Lean 3 source module probability.kernel.condexp
-! leanprover-community/mathlib commit 00abe0695d8767201e6d008afa22393978bb324d
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Probability.Kernel.CondDistrib
 
+#align_import probability.kernel.condexp from "leanprover-community/mathlib"@"00abe0695d8767201e6d008afa22393978bb324d"
+
 /-!
 # Kernel associated with a conditional expectation
 
chore: tidy various files (#5458)
Diff
@@ -44,12 +44,12 @@ section AuxLemmas
 
 variable {Ω F : Type _} {m mΩ : MeasurableSpace Ω} {μ : Measure Ω} {f : Ω → F}
 
--- todo after the port: move to `MeasureTheory/MeasurableSpace`, after `Measurable.mono`
+-- Porting note: todo: move to `MeasureTheory/MeasurableSpace`, after `Measurable.mono`
 theorem measurable_id'' (hm : m ≤ mΩ) : @Measurable Ω Ω mΩ m id :=
   measurable_id.mono le_rfl hm
 #align probability_theory.measurable_id'' ProbabilityTheory.measurable_id''
 
--- todo after the port: move to `MeasureTheory/MeasurableSpace`, after `Measurable.mono`
+-- Porting note: todo: move to `MeasureTheory/MeasurableSpace`, after `Measurable.mono`
 theorem aemeasurable_id'' (μ : Measure Ω) (hm : m ≤ mΩ) : @AEMeasurable Ω Ω m mΩ id μ :=
   @Measurable.aemeasurable Ω Ω mΩ m id μ (measurable_id'' hm)
 #align probability_theory.ae_measurable_id'' ProbabilityTheory.aemeasurable_id''
feat: port Probability.Kernel.Condexp (#5324)

Dependencies 12 + 1015

1016 files ported (98.8%)
464587 lines ported (98.8%)
Show graph

The unported dependencies are

The following 1 dependencies have changed in mathlib3 since they were ported, which may complicate porting this file