measure_theory.function.conditional_expectation.real
⟷
Mathlib.MeasureTheory.Function.ConditionalExpectation.Real
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.
(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)
(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)
(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)
(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)
(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)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -136,8 +136,8 @@ theorem integral_abs_condexp_le (f : α → ℝ) : ∫ x, |(μ[f|m]) x| ∂μ
#align measure_theory.integral_abs_condexp_le MeasureTheory.integral_abs_condexp_le
-/
-#print MeasureTheory.set_integral_abs_condexp_le /-
-theorem set_integral_abs_condexp_le {s : Set α} (hs : measurable_set[m] s) (f : α → ℝ) :
+#print MeasureTheory.setIntegral_abs_condexp_le /-
+theorem setIntegral_abs_condexp_le {s : Set α} (hs : measurable_set[m] s) (f : α → ℝ) :
∫ x in s, |(μ[f|m]) x| ∂μ ≤ ∫ x in s, |f x| ∂μ :=
by
by_cases hnm : m ≤ m0
@@ -166,7 +166,7 @@ theorem set_integral_abs_condexp_le {s : Set α} (hs : measurable_set[m] s) (f :
(le_of_eq <| integral_congr_ae <| eventually_of_forall fun x => _)
rw [← Real.norm_eq_abs, norm_indicator_eq_indicator_norm]
rfl
-#align measure_theory.set_integral_abs_condexp_le MeasureTheory.set_integral_abs_condexp_le
+#align measure_theory.set_integral_abs_condexp_le MeasureTheory.setIntegral_abs_condexp_le
-/
#print MeasureTheory.ae_bdd_condexp_of_ae_bdd /-
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -198,7 +198,7 @@ theorem ae_bdd_condexp_of_ae_bdd {R : ℝ≥0} {f : α → ℝ} (hbdd : ∀ᵐ x
exact
@measurableSet_lt _ _ _ _ _ m _ _ _ _ _ measurable_const
strongly_measurable_condexp.norm.measurable
- simp only [← smul_eq_mul, ← set_integral_const, NNReal.val_eq_coe, IsROrC.ofReal_real_eq_id,
+ simp only [← smul_eq_mul, ← set_integral_const, NNReal.val_eq_coe, RCLike.ofReal_real_eq_id,
id.def]
refine' set_integral_mono_ae hfint.abs.integrable_on _ _
· refine'
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -185,8 +185,8 @@ theorem ae_bdd_condexp_of_ae_bdd {R : ℝ≥0} {f : α → ℝ} (hbdd : ∀ᵐ x
rw [Pi.zero_apply, abs_zero]
exact (abs_nonneg _).trans hx
by_contra h
- change μ _ ≠ 0 at h
- simp only [← zero_lt_iff, Set.compl_def, Set.mem_setOf_eq, not_le] at h
+ change μ _ ≠ 0 at h
+ simp only [← zero_lt_iff, Set.compl_def, Set.mem_setOf_eq, not_le] at h
suffices (μ {x | ↑R < |(μ[f|m]) x|}).toReal * ↑R < (μ {x | ↑R < |(μ[f|m]) x|}).toReal * ↑R by
exact this.ne rfl
refine' lt_of_lt_of_le (set_integral_gt_gt R.coe_nonneg _ _ h.ne.symm) _
@@ -229,7 +229,7 @@ theorem Integrable.uniformIntegrable_condexp {ι : Type _} [IsFiniteMeasure μ]
uniform_integrable_of le_rfl ENNReal.one_ne_top
(fun n => (strongly_measurable_condexp.mono (hℱ n)).AEStronglyMeasurable) fun ε hε => _
by_cases hne : snorm g 1 μ = 0
- · rw [snorm_eq_zero_iff hg.1 one_ne_zero] at hne
+ · rw [snorm_eq_zero_iff hg.1 one_ne_zero] at hne
refine'
⟨0, fun n =>
(le_of_eq <|
@@ -253,8 +253,8 @@ theorem Integrable.uniformIntegrable_condexp {ι : Type _} [IsFiniteMeasure μ]
rw [ENNReal.one_toReal, ENNReal.rpow_one, ENNReal.rpow_one, mul_comm, ←
ENNReal.le_div_iff_mul_le (Or.inl (ENNReal.coe_ne_zero.2 hCpos.ne.symm))
(Or.inl ennreal.coe_lt_top.ne)] at
- this
- simp_rw [ENNReal.coe_le_coe] at this
+ this
+ simp_rw [ENNReal.coe_le_coe] at this
refine' this.trans _
rw [ENNReal.div_le_iff_le_mul (Or.inl (ENNReal.coe_ne_zero.2 hCpos.ne.symm))
(Or.inl ennreal.coe_lt_top.ne),
@@ -390,11 +390,11 @@ theorem condexp_stronglyMeasurable_mul {f g : α → ℝ} (hf : strongly_measura
swap; · simp_rw [condexp_of_not_sigma_finite hm hμm]; rw [MulZeroClass.mul_zero]
haveI : sigma_finite (μ.trim hm) := hμm
obtain ⟨sets, sets_prop, h_univ⟩ := hf.exists_spanning_measurable_set_norm_le hm μ
- simp_rw [forall_and] at sets_prop
+ simp_rw [forall_and] at sets_prop
obtain ⟨h_meas, h_finite, h_norm⟩ := sets_prop
suffices ∀ n, ∀ᵐ x ∂μ, x ∈ sets n → (μ[f * g|m]) x = f x * (μ[g|m]) x
by
- rw [← ae_all_iff] at this
+ rw [← ae_all_iff] at this
filter_upwards [this] with x hx
rw [Pi.mul_apply]
obtain ⟨i, hi⟩ : ∃ i, x ∈ sets i :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -292,7 +292,7 @@ theorem condexp_stronglyMeasurable_simpleFunc_mul (hm : m ≤ m0) (f : @SimpleFu
rw [this, this]
refine' (condexp_indicator (hg.smul c) hs).trans _
filter_upwards [@condexp_smul α ℝ ℝ _ _ _ _ _ m m0 μ c g] with x hx
- classical
+ classical simp_rw [Set.indicator_apply, hx]
· have h_add := @simple_func.coe_add _ _ m _ g₁ g₂
calc
μ[⇑(g₁ + g₂) * g|m] =ᵐ[μ] μ[(⇑g₁ + ⇑g₂) * g|m] := by
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -292,7 +292,7 @@ theorem condexp_stronglyMeasurable_simpleFunc_mul (hm : m ≤ m0) (f : @SimpleFu
rw [this, this]
refine' (condexp_indicator (hg.smul c) hs).trans _
filter_upwards [@condexp_smul α ℝ ℝ _ _ _ _ _ m m0 μ c g] with x hx
- classical simp_rw [Set.indicator_apply, hx]
+ classical
· have h_add := @simple_func.coe_add _ _ m _ g₁ g₂
calc
μ[⇑(g₁ + g₂) * g|m] =ᵐ[μ] μ[(⇑g₁ + ⇑g₂) * g|m] := by
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -86,7 +86,7 @@ theorem snorm_one_condexp_le_snorm (f : α → ℝ) : snorm (μ[f|m]) 1 μ ≤ s
(@ae_of_all _ m0 _ μ (fun x => le_abs_self (f x) : ∀ x, f x ≤ |f x|)),
eventually_le.trans (condexp_neg f).symm.le
(@condexp_mono _ m m0 _ _ _ _ _ _ _ _ hf.neg hf.abs
- (@ae_of_all _ m0 _ μ (fun x => neg_le_abs_self (f x) : ∀ x, -f x ≤ |f x|)))] with
+ (@ae_of_all _ m0 _ μ (fun x => neg_le_abs (f x) : ∀ x, -f x ≤ |f x|)))] with
x hx₁ hx₂
exact abs_le_abs hx₁ hx₂
_ = snorm f 1 μ :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,9 +3,9 @@ Copyright (c) 2022 Rémy Degenne. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Rémy Degenne, Kexing Ying
-/
-import Mathbin.MeasureTheory.Function.ConditionalExpectation.Indicator
-import Mathbin.MeasureTheory.Function.UniformIntegrable
-import Mathbin.MeasureTheory.Decomposition.RadonNikodym
+import MeasureTheory.Function.ConditionalExpectation.Indicator
+import MeasureTheory.Function.UniformIntegrable
+import MeasureTheory.Decomposition.RadonNikodym
#align_import measure_theory.function.conditional_expectation.real from "leanprover-community/mathlib"@"e160cefedc932ce41c7049bf0c4b0f061d06216e"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,16 +2,13 @@
Copyright (c) 2022 Rémy Degenne. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Rémy Degenne, Kexing Ying
-
-! This file was ported from Lean 3 source module measure_theory.function.conditional_expectation.real
-! leanprover-community/mathlib commit e160cefedc932ce41c7049bf0c4b0f061d06216e
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.MeasureTheory.Function.ConditionalExpectation.Indicator
import Mathbin.MeasureTheory.Function.UniformIntegrable
import Mathbin.MeasureTheory.Decomposition.RadonNikodym
+#align_import measure_theory.function.conditional_expectation.real from "leanprover-community/mathlib"@"e160cefedc932ce41c7049bf0c4b0f061d06216e"
+
/-!
# Conditional expectation of real-valued functions
mathlib commit https://github.com/leanprover-community/mathlib/commit/0723536a0522d24fc2f159a096fb3304bef77472
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Rémy Degenne, Kexing Ying
! This file was ported from Lean 3 source module measure_theory.function.conditional_expectation.real
-! leanprover-community/mathlib commit b2ff9a3d7a15fd5b0f060b135421d6a89a999c2f
+! leanprover-community/mathlib commit e160cefedc932ce41c7049bf0c4b0f061d06216e
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -16,6 +16,9 @@ import Mathbin.MeasureTheory.Decomposition.RadonNikodym
# Conditional expectation of real-valued functions
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
This file proves some results regarding the conditional expectation of real-valued functions.
## Main results
mathlib commit https://github.com/leanprover-community/mathlib/commit/2a0ce625dbb0ffbc7d1316597de0b25c1ec75303
@@ -40,6 +40,7 @@ namespace MeasureTheory
variable {α : Type _} {m m0 : MeasurableSpace α} {μ : Measure α}
+#print MeasureTheory.rnDeriv_ae_eq_condexp /-
theorem rnDeriv_ae_eq_condexp {hm : m ≤ m0} [hμm : SigmaFinite (μ.trim hm)] {f : α → ℝ}
(hf : Integrable f μ) :
SignedMeasure.rnDeriv ((μ.withDensityᵥ f).trim hm) (μ.trim hm) =ᵐ[μ] μ[f|m] :=
@@ -64,7 +65,9 @@ theorem rnDeriv_ae_eq_condexp {hm : m ≤ m0} [hμm : SigmaFinite (μ.trim hm)]
strongly_measurable.ae_strongly_measurable'
(signed_measure.measurable_rn_deriv _ _).StronglyMeasurable
#align measure_theory.rn_deriv_ae_eq_condexp MeasureTheory.rnDeriv_ae_eq_condexp
+-/
+#print MeasureTheory.snorm_one_condexp_le_snorm /-
-- TODO: the following couple of lemmas should be generalized and proved using Jensen's inequality
-- for the conditional expectation (not in mathlib yet) .
theorem snorm_one_condexp_le_snorm (f : α → ℝ) : snorm (μ[f|m]) 1 μ ≤ snorm f 1 μ :=
@@ -104,7 +107,9 @@ theorem snorm_one_condexp_le_snorm (f : α → ℝ) : snorm (μ[f|m]) 1 μ ≤ s
filter_upwards [this] with x hx
exact abs_eq_self.2 hx
#align measure_theory.snorm_one_condexp_le_snorm MeasureTheory.snorm_one_condexp_le_snorm
+-/
+#print MeasureTheory.integral_abs_condexp_le /-
theorem integral_abs_condexp_le (f : α → ℝ) : ∫ x, |(μ[f|m]) x| ∂μ ≤ ∫ x, |f x| ∂μ :=
by
by_cases hm : m ≤ m0
@@ -129,7 +134,9 @@ theorem integral_abs_condexp_le (f : α → ℝ) : ∫ x, |(μ[f|m]) x| ∂μ
· simp_rw [← Real.norm_eq_abs]
exact (strongly_measurable_condexp.mono hm).AEStronglyMeasurable.norm
#align measure_theory.integral_abs_condexp_le MeasureTheory.integral_abs_condexp_le
+-/
+#print MeasureTheory.set_integral_abs_condexp_le /-
theorem set_integral_abs_condexp_le {s : Set α} (hs : measurable_set[m] s) (f : α → ℝ) :
∫ x in s, |(μ[f|m]) x| ∂μ ≤ ∫ x in s, |f x| ∂μ :=
by
@@ -160,7 +167,9 @@ theorem set_integral_abs_condexp_le {s : Set α} (hs : measurable_set[m] s) (f :
rw [← Real.norm_eq_abs, norm_indicator_eq_indicator_norm]
rfl
#align measure_theory.set_integral_abs_condexp_le MeasureTheory.set_integral_abs_condexp_le
+-/
+#print MeasureTheory.ae_bdd_condexp_of_ae_bdd /-
/-- If the real valued function `f` is bounded almost everywhere by `R`, then so is its conditional
expectation. -/
theorem ae_bdd_condexp_of_ae_bdd {R : ℝ≥0} {f : α → ℝ} (hbdd : ∀ᵐ x ∂μ, |f x| ≤ R) :
@@ -204,7 +213,9 @@ theorem ae_bdd_condexp_of_ae_bdd {R : ℝ≥0} {f : α → ℝ} (hbdd : ∀ᵐ x
exact Subtype.mk_le_mk.2 (le_of_lt hx)
· exact hbdd
#align measure_theory.ae_bdd_condexp_of_ae_bdd MeasureTheory.ae_bdd_condexp_of_ae_bdd
+-/
+#print MeasureTheory.Integrable.uniformIntegrable_condexp /-
/-- Given a integrable function `g`, the conditional expectations of `g` with respect to
a sequence of sub-σ-algebras is uniformly integrable. -/
theorem Integrable.uniformIntegrable_condexp {ι : Type _} [IsFiniteMeasure μ] {g : α → ℝ}
@@ -258,12 +269,14 @@ theorem Integrable.uniformIntegrable_condexp {ι : Type _} [IsFiniteMeasure μ]
rw [← snorm_congr_ae (condexp_indicator hint hmeasℱ)]
exact snorm_one_condexp_le_snorm _
#align measure_theory.integrable.uniform_integrable_condexp MeasureTheory.Integrable.uniformIntegrable_condexp
+-/
section PullOut
+#print MeasureTheory.condexp_stronglyMeasurable_simpleFunc_mul /-
-- TODO: this section could be generalized beyond multiplication, to any bounded bilinear map.
/-- Auxiliary lemma for `condexp_measurable_mul`. -/
-theorem condexp_strongly_measurable_simpleFunc_mul (hm : m ≤ m0) (f : @SimpleFunc α m ℝ) {g : α → ℝ}
+theorem condexp_stronglyMeasurable_simpleFunc_mul (hm : m ≤ m0) (f : @SimpleFunc α m ℝ) {g : α → ℝ}
(hg : Integrable g μ) : μ[f * g|m] =ᵐ[μ] f * μ[g|m] :=
by
have : ∀ (s c) (f : α → ℝ), Set.indicator s (Function.const α c) * f = s.indicator (c • f) :=
@@ -288,8 +301,10 @@ theorem condexp_strongly_measurable_simpleFunc_mul (hm : m ≤ m0) (f : @SimpleF
exact condexp_add (hg.simple_func_mul' hm _) (hg.simple_func_mul' hm _)
_ =ᵐ[μ] ⇑g₁ * μ[g|m] + ⇑g₂ * μ[g|m] := (eventually_eq.add h_eq₁ h_eq₂)
_ =ᵐ[μ] ⇑(g₁ + g₂) * μ[g|m] := by rw [h_add, add_mul]
-#align measure_theory.condexp_strongly_measurable_simple_func_mul MeasureTheory.condexp_strongly_measurable_simpleFunc_mul
+#align measure_theory.condexp_strongly_measurable_simple_func_mul MeasureTheory.condexp_stronglyMeasurable_simpleFunc_mul
+-/
+#print MeasureTheory.condexp_stronglyMeasurable_mul_of_bound /-
theorem condexp_stronglyMeasurable_mul_of_bound (hm : m ≤ m0) [IsFiniteMeasure μ] {f g : α → ℝ}
(hf : strongly_measurable[m] f) (hg : Integrable g μ) (c : ℝ) (hf_bound : ∀ᵐ x ∂μ, ‖f x‖ ≤ c) :
μ[f * g|m] =ᵐ[μ] f * μ[g|m] := by
@@ -346,8 +361,10 @@ theorem condexp_stronglyMeasurable_mul_of_bound (hm : m ≤ m0) [IsFiniteMeasure
((simple_func.strongly_measurable (fs n)).mono hm).AEStronglyMeasurable
(eventually_of_forall (hfs_bound n))
#align measure_theory.condexp_strongly_measurable_mul_of_bound MeasureTheory.condexp_stronglyMeasurable_mul_of_bound
+-/
-theorem condexp_strongly_measurable_mul_of_bound₀ (hm : m ≤ m0) [IsFiniteMeasure μ] {f g : α → ℝ}
+#print MeasureTheory.condexp_stronglyMeasurable_mul_of_bound₀ /-
+theorem condexp_stronglyMeasurable_mul_of_bound₀ (hm : m ≤ m0) [IsFiniteMeasure μ] {f g : α → ℝ}
(hf : AEStronglyMeasurable' m f μ) (hg : Integrable g μ) (c : ℝ)
(hf_bound : ∀ᵐ x ∂μ, ‖f x‖ ≤ c) : μ[f * g|m] =ᵐ[μ] f * μ[g|m] :=
by
@@ -360,8 +377,10 @@ theorem condexp_strongly_measurable_mul_of_bound₀ (hm : m ≤ m0) [IsFiniteMea
filter_upwards [hf_bound, hf.ae_eq_mk] with x hxc hx_eq
rw [← hx_eq]
exact hxc
-#align measure_theory.condexp_strongly_measurable_mul_of_bound₀ MeasureTheory.condexp_strongly_measurable_mul_of_bound₀
+#align measure_theory.condexp_strongly_measurable_mul_of_bound₀ MeasureTheory.condexp_stronglyMeasurable_mul_of_bound₀
+-/
+#print MeasureTheory.condexp_stronglyMeasurable_mul /-
/-- Pull-out property of the conditional expectation. -/
theorem condexp_stronglyMeasurable_mul {f g : α → ℝ} (hf : strongly_measurable[m] f)
(hfg : Integrable (f * g) μ) (hg : Integrable g μ) : μ[f * g|m] =ᵐ[μ] f * μ[g|m] :=
@@ -410,9 +429,11 @@ theorem condexp_stronglyMeasurable_mul {f g : α → ℝ} (hf : strongly_measura
exact h_norm n x hxs
· simp only [hxs, Set.indicator_of_not_mem, not_false_iff, _root_.norm_zero, Nat.cast_nonneg]
#align measure_theory.condexp_strongly_measurable_mul MeasureTheory.condexp_stronglyMeasurable_mul
+-/
+#print MeasureTheory.condexp_stronglyMeasurable_mul₀ /-
/-- Pull-out property of the conditional expectation. -/
-theorem condexp_strongly_measurable_mul₀ {f g : α → ℝ} (hf : AEStronglyMeasurable' m f μ)
+theorem condexp_stronglyMeasurable_mul₀ {f g : α → ℝ} (hf : AEStronglyMeasurable' m f μ)
(hfg : Integrable (f * g) μ) (hg : Integrable g μ) : μ[f * g|m] =ᵐ[μ] f * μ[g|m] :=
by
have : μ[f * g|m] =ᵐ[μ] μ[hf.mk f * g|m] :=
@@ -423,7 +444,8 @@ theorem condexp_strongly_measurable_mul₀ {f g : α → ℝ} (hf : AEStronglyMe
refine' condexp_strongly_measurable_mul hf.strongly_measurable_mk _ hg
refine' (integrable_congr _).mp hfg
exact eventually_eq.mul hf.ae_eq_mk eventually_eq.rfl
-#align measure_theory.condexp_strongly_measurable_mul₀ MeasureTheory.condexp_strongly_measurable_mul₀
+#align measure_theory.condexp_strongly_measurable_mul₀ MeasureTheory.condexp_stronglyMeasurable_mul₀
+-/
end PullOut
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -348,7 +348,7 @@ theorem condexp_stronglyMeasurable_mul_of_bound (hm : m ≤ m0) [IsFiniteMeasure
#align measure_theory.condexp_strongly_measurable_mul_of_bound MeasureTheory.condexp_stronglyMeasurable_mul_of_bound
theorem condexp_strongly_measurable_mul_of_bound₀ (hm : m ≤ m0) [IsFiniteMeasure μ] {f g : α → ℝ}
- (hf : AeStronglyMeasurable' m f μ) (hg : Integrable g μ) (c : ℝ)
+ (hf : AEStronglyMeasurable' m f μ) (hg : Integrable g μ) (c : ℝ)
(hf_bound : ∀ᵐ x ∂μ, ‖f x‖ ≤ c) : μ[f * g|m] =ᵐ[μ] f * μ[g|m] :=
by
have : μ[f * g|m] =ᵐ[μ] μ[hf.mk f * g|m] :=
@@ -412,7 +412,7 @@ theorem condexp_stronglyMeasurable_mul {f g : α → ℝ} (hf : strongly_measura
#align measure_theory.condexp_strongly_measurable_mul MeasureTheory.condexp_stronglyMeasurable_mul
/-- Pull-out property of the conditional expectation. -/
-theorem condexp_strongly_measurable_mul₀ {f g : α → ℝ} (hf : AeStronglyMeasurable' m f μ)
+theorem condexp_strongly_measurable_mul₀ {f g : α → ℝ} (hf : AEStronglyMeasurable' m f μ)
(hfg : Integrable (f * g) μ) (hg : Integrable g μ) : μ[f * g|m] =ᵐ[μ] f * μ[g|m] :=
by
have : μ[f * g|m] =ᵐ[μ] μ[hf.mk f * g|m] :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/a3e83f0fa4391c8740f7d773a7a9b74e311ae2a3
@@ -105,7 +105,7 @@ theorem snorm_one_condexp_le_snorm (f : α → ℝ) : snorm (μ[f|m]) 1 μ ≤ s
exact abs_eq_self.2 hx
#align measure_theory.snorm_one_condexp_le_snorm MeasureTheory.snorm_one_condexp_le_snorm
-theorem integral_abs_condexp_le (f : α → ℝ) : (∫ x, |(μ[f|m]) x| ∂μ) ≤ ∫ x, |f x| ∂μ :=
+theorem integral_abs_condexp_le (f : α → ℝ) : ∫ x, |(μ[f|m]) x| ∂μ ≤ ∫ x, |f x| ∂μ :=
by
by_cases hm : m ≤ m0
swap
@@ -131,7 +131,7 @@ theorem integral_abs_condexp_le (f : α → ℝ) : (∫ x, |(μ[f|m]) x| ∂μ)
#align measure_theory.integral_abs_condexp_le MeasureTheory.integral_abs_condexp_le
theorem set_integral_abs_condexp_le {s : Set α} (hs : measurable_set[m] s) (f : α → ℝ) :
- (∫ x in s, |(μ[f|m]) x| ∂μ) ≤ ∫ x in s, |f x| ∂μ :=
+ ∫ x in s, |(μ[f|m]) x| ∂μ ≤ ∫ x in s, |f x| ∂μ :=
by
by_cases hnm : m ≤ m0
swap
@@ -142,7 +142,7 @@ theorem set_integral_abs_condexp_le {s : Set α} (hs : measurable_set[m] s) (f :
· simp only [condexp_undef hfint, Pi.zero_apply, abs_zero, integral_const, Algebra.id.smul_eq_mul,
MulZeroClass.mul_zero]
exact integral_nonneg fun x => abs_nonneg _
- have : (∫ x in s, |(μ[f|m]) x| ∂μ) = ∫ x, |(μ[s.indicator f|m]) x| ∂μ :=
+ have : ∫ x in s, |(μ[f|m]) x| ∂μ = ∫ x, |(μ[s.indicator f|m]) x| ∂μ :=
by
rw [← integral_indicator]
swap; · exact hnm _ hs
mathlib commit https://github.com/leanprover-community/mathlib/commit/7e5137f579de09a059a5ce98f364a04e221aabf0
@@ -103,7 +103,6 @@ theorem snorm_one_condexp_le_snorm (f : α → ℝ) : snorm (μ[f|m]) 1 μ ≤ s
(@ae_of_all _ m0 _ μ (fun x => abs_nonneg (f x) : ∀ x, 0 ≤ |f x|))
filter_upwards [this] with x hx
exact abs_eq_self.2 hx
-
#align measure_theory.snorm_one_condexp_le_snorm MeasureTheory.snorm_one_condexp_le_snorm
theorem integral_abs_condexp_le (f : α → ℝ) : (∫ x, |(μ[f|m]) x| ∂μ) ≤ ∫ x, |f x| ∂μ :=
@@ -289,7 +288,6 @@ theorem condexp_strongly_measurable_simpleFunc_mul (hm : m ≤ m0) (f : @SimpleF
exact condexp_add (hg.simple_func_mul' hm _) (hg.simple_func_mul' hm _)
_ =ᵐ[μ] ⇑g₁ * μ[g|m] + ⇑g₂ * μ[g|m] := (eventually_eq.add h_eq₁ h_eq₂)
_ =ᵐ[μ] ⇑(g₁ + g₂) * μ[g|m] := by rw [h_add, add_mul]
-
#align measure_theory.condexp_strongly_measurable_simple_func_mul MeasureTheory.condexp_strongly_measurable_simpleFunc_mul
theorem condexp_stronglyMeasurable_mul_of_bound (hm : m ≤ m0) [IsFiniteMeasure μ] {f g : α → ℝ}
mathlib commit https://github.com/leanprover-community/mathlib/commit/5f25c089cb34db4db112556f23c50d12da81b297
@@ -83,8 +83,8 @@ theorem snorm_one_condexp_le_snorm (f : α → ℝ) : snorm (μ[f|m]) 1 μ ≤ s
(@ae_of_all _ m0 _ μ (fun x => le_abs_self (f x) : ∀ x, f x ≤ |f x|)),
eventually_le.trans (condexp_neg f).symm.le
(@condexp_mono _ m m0 _ _ _ _ _ _ _ _ hf.neg hf.abs
- (@ae_of_all _ m0 _ μ
- (fun x => neg_le_abs_self (f x) : ∀ x, -f x ≤ |f x|)))]with x hx₁ hx₂
+ (@ae_of_all _ m0 _ μ (fun x => neg_le_abs_self (f x) : ∀ x, -f x ≤ |f x|)))] with
+ x hx₁ hx₂
exact abs_le_abs hx₁ hx₂
_ = snorm f 1 μ :=
by
@@ -101,7 +101,7 @@ theorem snorm_one_condexp_le_snorm (f : α → ℝ) : snorm (μ[f|m]) 1 μ ≤ s
exact
condexp_mono (integrable_zero _ _ _) hf.abs
(@ae_of_all _ m0 _ μ (fun x => abs_nonneg (f x) : ∀ x, 0 ≤ |f x|))
- filter_upwards [this]with x hx
+ filter_upwards [this] with x hx
exact abs_eq_self.2 hx
#align measure_theory.snorm_one_condexp_le_snorm MeasureTheory.snorm_one_condexp_le_snorm
@@ -173,13 +173,13 @@ theorem ae_bdd_condexp_of_ae_bdd {R : ℝ≥0} {f : α → ℝ} (hbdd : ∀ᵐ x
by_cases hfint : integrable f μ
swap
· simp_rw [condexp_undef hfint]
- filter_upwards [hbdd]with x hx
+ filter_upwards [hbdd] with x hx
rw [Pi.zero_apply, abs_zero]
exact (abs_nonneg _).trans hx
by_contra h
change μ _ ≠ 0 at h
simp only [← zero_lt_iff, Set.compl_def, Set.mem_setOf_eq, not_le] at h
- suffices (μ { x | ↑R < |(μ[f|m]) x| }).toReal * ↑R < (μ { x | ↑R < |(μ[f|m]) x| }).toReal * ↑R by
+ suffices (μ {x | ↑R < |(μ[f|m]) x|}).toReal * ↑R < (μ {x | ↑R < |(μ[f|m]) x|}).toReal * ↑R by
exact this.ne rfl
refine' lt_of_lt_of_le (set_integral_gt_gt R.coe_nonneg _ _ h.ne.symm) _
· simp_rw [← Real.norm_eq_abs]
@@ -196,7 +196,7 @@ theorem ae_bdd_condexp_of_ae_bdd {R : ℝ≥0} {f : α → ℝ} (hbdd : ∀ᵐ x
· refine'
⟨ae_strongly_measurable_const,
lt_of_le_of_lt _
- (integrable_condexp.integrable_on : integrable_on (μ[f|m]) { x | ↑R < |(μ[f|m]) x| } μ).2⟩
+ (integrable_condexp.integrable_on : integrable_on (μ[f|m]) {x | ↑R < |(μ[f|m]) x|} μ).2⟩
refine'
set_lintegral_mono (Measurable.nnnorm _).coe_nnreal_ennreal
(strongly_measurable_condexp.mono hnm).Measurable.nnnorm.coe_nnreal_ennreal fun x hx => _
@@ -208,11 +208,11 @@ theorem ae_bdd_condexp_of_ae_bdd {R : ℝ≥0} {f : α → ℝ} (hbdd : ∀ᵐ x
/-- Given a integrable function `g`, the conditional expectations of `g` with respect to
a sequence of sub-σ-algebras is uniformly integrable. -/
-theorem Integrable.uniformIntegrable_condexp {ι : Type _} [FiniteMeasure μ] {g : α → ℝ}
+theorem Integrable.uniformIntegrable_condexp {ι : Type _} [IsFiniteMeasure μ] {g : α → ℝ}
(hint : Integrable g μ) {ℱ : ι → MeasurableSpace α} (hℱ : ∀ i, ℱ i ≤ m0) :
UniformIntegrable (fun i => μ[g|ℱ i]) 1 μ :=
by
- have hmeas : ∀ n, ∀ C, MeasurableSet { x | C ≤ ‖(μ[g|ℱ n]) x‖₊ } := fun n C =>
+ have hmeas : ∀ n, ∀ C, MeasurableSet {x | C ≤ ‖(μ[g|ℱ n]) x‖₊} := fun n C =>
measurableSet_le measurable_const (strongly_measurable_condexp.mono (hℱ n)).Measurable.nnnorm
have hg : mem_ℒp g 1 μ := mem_ℒp_one_iff_integrable.2 hint
refine'
@@ -229,12 +229,12 @@ theorem Integrable.uniformIntegrable_condexp {ι : Type _} [FiniteMeasure μ] {g
one_ne_zero).2
_).trans
(zero_le _)⟩
- filter_upwards [@condexp_congr_ae _ _ _ _ _ (ℱ n) m0 μ _ _ hne]with x hx
+ filter_upwards [@condexp_congr_ae _ _ _ _ _ (ℱ n) m0 μ _ _ hne] with x hx
simp only [zero_le', Set.setOf_true, Set.indicator_univ, Pi.zero_apply, hx, condexp_zero]
obtain ⟨δ, hδ, h⟩ := hg.snorm_indicator_le μ le_rfl ENNReal.one_ne_top hε
set C : ℝ≥0 := ⟨δ, hδ.le⟩⁻¹ * (snorm g 1 μ).toNNReal with hC
have hCpos : 0 < C := mul_pos (inv_pos.2 hδ) (ENNReal.toNNReal_pos hne hg.snorm_lt_top.ne)
- have : ∀ n, μ { x : α | C ≤ ‖(μ[g|ℱ n]) x‖₊ } ≤ ENNReal.ofReal δ :=
+ have : ∀ n, μ {x : α | C ≤ ‖(μ[g|ℱ n]) x‖₊} ≤ ENNReal.ofReal δ :=
by
intro n
have :=
@@ -252,8 +252,8 @@ theorem Integrable.uniformIntegrable_condexp {ι : Type _} [FiniteMeasure μ] {g
ENNReal.ofReal_eq_coe_nnreal, ← ENNReal.ofReal_mul hδ.le, mul_inv_cancel hδ.ne.symm,
ENNReal.ofReal_one, one_mul]
exact snorm_one_condexp_le_snorm _
- refine' ⟨C, fun n => le_trans _ (h { x : α | C ≤ ‖(μ[g|ℱ n]) x‖₊ } (hmeas n C) (this n))⟩
- have hmeasℱ : measurable_set[ℱ n] { x : α | C ≤ ‖(μ[g|ℱ n]) x‖₊ } :=
+ refine' ⟨C, fun n => le_trans _ (h {x : α | C ≤ ‖(μ[g|ℱ n]) x‖₊} (hmeas n C) (this n))⟩
+ have hmeasℱ : measurable_set[ℱ n] {x : α | C ≤ ‖(μ[g|ℱ n]) x‖₊} :=
@measurableSet_le _ _ _ _ _ (ℱ n) _ _ _ _ _ measurable_const
(@Measurable.nnnorm _ _ _ _ _ (ℱ n) _ strongly_measurable_condexp.measurable)
rw [← snorm_congr_ae (condexp_indicator hint hmeasℱ)]
@@ -279,7 +279,7 @@ theorem condexp_strongly_measurable_simpleFunc_mul (hm : m ≤ m0) (f : @SimpleF
simple_func.coe_zero, Set.piecewise_eq_indicator]
rw [this, this]
refine' (condexp_indicator (hg.smul c) hs).trans _
- filter_upwards [@condexp_smul α ℝ ℝ _ _ _ _ _ m m0 μ c g]with x hx
+ filter_upwards [@condexp_smul α ℝ ℝ _ _ _ _ _ m m0 μ c g] with x hx
classical simp_rw [Set.indicator_apply, hx]
· have h_add := @simple_func.coe_add _ _ m _ g₁ g₂
calc
@@ -292,7 +292,7 @@ theorem condexp_strongly_measurable_simpleFunc_mul (hm : m ≤ m0) (f : @SimpleF
#align measure_theory.condexp_strongly_measurable_simple_func_mul MeasureTheory.condexp_strongly_measurable_simpleFunc_mul
-theorem condexp_stronglyMeasurable_mul_of_bound (hm : m ≤ m0) [FiniteMeasure μ] {f g : α → ℝ}
+theorem condexp_stronglyMeasurable_mul_of_bound (hm : m ≤ m0) [IsFiniteMeasure μ] {f g : α → ℝ}
(hf : strongly_measurable[m] f) (hg : Integrable g μ) (c : ℝ) (hf_bound : ∀ᵐ x ∂μ, ‖f x‖ ≤ c) :
μ[f * g|m] =ᵐ[μ] f * μ[g|m] := by
let fs := hf.approx_bounded c
@@ -324,10 +324,10 @@ theorem condexp_stronglyMeasurable_mul_of_bound (hm : m ≤ m0) [FiniteMeasure
integrable_condexp.bdd_mul'
((simple_func.strongly_measurable (fs n)).mono hm).AEStronglyMeasurable
(eventually_of_forall (hfs_bound n))
- · filter_upwards [hfs_tendsto]with x hx
+ · filter_upwards [hfs_tendsto] with x hx
rw [Pi.mul_apply]
exact tendsto.mul hx tendsto_const_nhds
- · filter_upwards [hfs_tendsto]with x hx
+ · filter_upwards [hfs_tendsto] with x hx
rw [Pi.mul_apply]
exact tendsto.mul hx tendsto_const_nhds
· exact hg.norm.const_mul c
@@ -349,7 +349,7 @@ theorem condexp_stronglyMeasurable_mul_of_bound (hm : m ≤ m0) [FiniteMeasure
(eventually_of_forall (hfs_bound n))
#align measure_theory.condexp_strongly_measurable_mul_of_bound MeasureTheory.condexp_stronglyMeasurable_mul_of_bound
-theorem condexp_strongly_measurable_mul_of_bound₀ (hm : m ≤ m0) [FiniteMeasure μ] {f g : α → ℝ}
+theorem condexp_strongly_measurable_mul_of_bound₀ (hm : m ≤ m0) [IsFiniteMeasure μ] {f g : α → ℝ}
(hf : AeStronglyMeasurable' m f μ) (hg : Integrable g μ) (c : ℝ)
(hf_bound : ∀ᵐ x ∂μ, ‖f x‖ ≤ c) : μ[f * g|m] =ᵐ[μ] f * μ[g|m] :=
by
@@ -359,7 +359,7 @@ theorem condexp_strongly_measurable_mul_of_bound₀ (hm : m ≤ m0) [FiniteMeasu
have : f * μ[g|m] =ᵐ[μ] hf.mk f * μ[g|m] := eventually_eq.mul hf.ae_eq_mk eventually_eq.rfl
refine' eventually_eq.trans _ this.symm
refine' condexp_strongly_measurable_mul_of_bound hm hf.strongly_measurable_mk hg c _
- filter_upwards [hf_bound, hf.ae_eq_mk]with x hxc hx_eq
+ filter_upwards [hf_bound, hf.ae_eq_mk] with x hxc hx_eq
rw [← hx_eq]
exact hxc
#align measure_theory.condexp_strongly_measurable_mul_of_bound₀ MeasureTheory.condexp_strongly_measurable_mul_of_bound₀
@@ -378,7 +378,7 @@ theorem condexp_stronglyMeasurable_mul {f g : α → ℝ} (hf : strongly_measura
suffices ∀ n, ∀ᵐ x ∂μ, x ∈ sets n → (μ[f * g|m]) x = f x * (μ[g|m]) x
by
rw [← ae_all_iff] at this
- filter_upwards [this]with x hx
+ filter_upwards [this] with x hx
rw [Pi.mul_apply]
obtain ⟨i, hi⟩ : ∃ i, x ∈ sets i :=
by
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -177,8 +177,8 @@ theorem ae_bdd_condexp_of_ae_bdd {R : ℝ≥0} {f : α → ℝ} (hbdd : ∀ᵐ x
rw [Pi.zero_apply, abs_zero]
exact (abs_nonneg _).trans hx
by_contra h
- change μ _ ≠ 0 at h
- simp only [← zero_lt_iff, Set.compl_def, Set.mem_setOf_eq, not_le] at h
+ change μ _ ≠ 0 at h
+ simp only [← zero_lt_iff, Set.compl_def, Set.mem_setOf_eq, not_le] at h
suffices (μ { x | ↑R < |(μ[f|m]) x| }).toReal * ↑R < (μ { x | ↑R < |(μ[f|m]) x| }).toReal * ↑R by
exact this.ne rfl
refine' lt_of_lt_of_le (set_integral_gt_gt R.coe_nonneg _ _ h.ne.symm) _
@@ -219,7 +219,7 @@ theorem Integrable.uniformIntegrable_condexp {ι : Type _} [FiniteMeasure μ] {g
uniform_integrable_of le_rfl ENNReal.one_ne_top
(fun n => (strongly_measurable_condexp.mono (hℱ n)).AEStronglyMeasurable) fun ε hε => _
by_cases hne : snorm g 1 μ = 0
- · rw [snorm_eq_zero_iff hg.1 one_ne_zero] at hne
+ · rw [snorm_eq_zero_iff hg.1 one_ne_zero] at hne
refine'
⟨0, fun n =>
(le_of_eq <|
@@ -243,8 +243,8 @@ theorem Integrable.uniformIntegrable_condexp {ι : Type _} [FiniteMeasure μ] {g
rw [ENNReal.one_toReal, ENNReal.rpow_one, ENNReal.rpow_one, mul_comm, ←
ENNReal.le_div_iff_mul_le (Or.inl (ENNReal.coe_ne_zero.2 hCpos.ne.symm))
(Or.inl ennreal.coe_lt_top.ne)] at
- this
- simp_rw [ENNReal.coe_le_coe] at this
+ this
+ simp_rw [ENNReal.coe_le_coe] at this
refine' this.trans _
rw [ENNReal.div_le_iff_le_mul (Or.inl (ENNReal.coe_ne_zero.2 hCpos.ne.symm))
(Or.inl ennreal.coe_lt_top.ne),
@@ -373,11 +373,11 @@ theorem condexp_stronglyMeasurable_mul {f g : α → ℝ} (hf : strongly_measura
swap; · simp_rw [condexp_of_not_sigma_finite hm hμm]; rw [MulZeroClass.mul_zero]
haveI : sigma_finite (μ.trim hm) := hμm
obtain ⟨sets, sets_prop, h_univ⟩ := hf.exists_spanning_measurable_set_norm_le hm μ
- simp_rw [forall_and] at sets_prop
+ simp_rw [forall_and] at sets_prop
obtain ⟨h_meas, h_finite, h_norm⟩ := sets_prop
suffices ∀ n, ∀ᵐ x ∂μ, x ∈ sets n → (μ[f * g|m]) x = f x * (μ[g|m]) x
by
- rw [← ae_all_iff] at this
+ rw [← ae_all_iff] at this
filter_upwards [this]with x hx
rw [Pi.mul_apply]
obtain ⟨i, hi⟩ : ∃ i, x ∈ sets i :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -32,7 +32,7 @@ This file proves some results regarding the conditional expectation of real-valu
noncomputable section
-open TopologicalSpace MeasureTheory.lp Filter ContinuousLinearMap
+open TopologicalSpace MeasureTheory.Lp Filter ContinuousLinearMap
open scoped NNReal ENNReal Topology BigOperators MeasureTheory
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -34,7 +34,7 @@ noncomputable section
open TopologicalSpace MeasureTheory.lp Filter ContinuousLinearMap
-open NNReal ENNReal Topology BigOperators MeasureTheory
+open scoped NNReal ENNReal Topology BigOperators MeasureTheory
namespace MeasureTheory
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -70,17 +70,11 @@ theorem rnDeriv_ae_eq_condexp {hm : m ≤ m0} [hμm : SigmaFinite (μ.trim hm)]
theorem snorm_one_condexp_le_snorm (f : α → ℝ) : snorm (μ[f|m]) 1 μ ≤ snorm f 1 μ :=
by
by_cases hf : integrable f μ
- swap;
- · rw [condexp_undef hf, snorm_zero]
- exact zero_le _
+ swap; · rw [condexp_undef hf, snorm_zero]; exact zero_le _
by_cases hm : m ≤ m0
- swap;
- · rw [condexp_of_not_le hm, snorm_zero]
- exact zero_le _
+ swap; · rw [condexp_of_not_le hm, snorm_zero]; exact zero_le _
by_cases hsig : sigma_finite (μ.trim hm)
- swap;
- · rw [condexp_of_not_sigma_finite hm hsig, snorm_zero]
- exact zero_le _
+ swap; · rw [condexp_of_not_sigma_finite hm hsig, snorm_zero]; exact zero_le _
calc
snorm (μ[f|m]) 1 μ ≤ snorm (μ[|f||m]) 1 μ :=
by
@@ -152,8 +146,7 @@ theorem set_integral_abs_condexp_le {s : Set α} (hs : measurable_set[m] s) (f :
have : (∫ x in s, |(μ[f|m]) x| ∂μ) = ∫ x, |(μ[s.indicator f|m]) x| ∂μ :=
by
rw [← integral_indicator]
- swap
- · exact hnm _ hs
+ swap; · exact hnm _ hs
refine' integral_congr_ae _
have : (fun x => |(μ[s.indicator f|m]) x|) =ᵐ[μ] fun x => |s.indicator (μ[f|m]) x| :=
eventually_eq.fun_comp (condexp_indicator hfint hs) _
@@ -161,8 +154,7 @@ theorem set_integral_abs_condexp_le {s : Set α} (hs : measurable_set[m] s) (f :
rw [← Real.norm_eq_abs, norm_indicator_eq_indicator_norm]
rfl
rw [this, ← integral_indicator]
- swap
- · exact hnm _ hs
+ swap; · exact hnm _ hs
refine'
(integral_abs_condexp_le _).trans
(le_of_eq <| integral_congr_ae <| eventually_of_forall fun x => _)
@@ -291,12 +283,9 @@ theorem condexp_strongly_measurable_simpleFunc_mul (hm : m ≤ m0) (f : @SimpleF
classical simp_rw [Set.indicator_apply, hx]
· have h_add := @simple_func.coe_add _ _ m _ g₁ g₂
calc
- μ[⇑(g₁ + g₂) * g|m] =ᵐ[μ] μ[(⇑g₁ + ⇑g₂) * g|m] :=
- by
- refine' condexp_congr_ae (eventually_eq.mul _ eventually_eq.rfl)
- rw [h_add]
- _ =ᵐ[μ] μ[⇑g₁ * g|m] + μ[⇑g₂ * g|m] := by
- rw [add_mul]
+ μ[⇑(g₁ + g₂) * g|m] =ᵐ[μ] μ[(⇑g₁ + ⇑g₂) * g|m] := by
+ refine' condexp_congr_ae (eventually_eq.mul _ eventually_eq.rfl); rw [h_add]
+ _ =ᵐ[μ] μ[⇑g₁ * g|m] + μ[⇑g₂ * g|m] := by rw [add_mul];
exact condexp_add (hg.simple_func_mul' hm _) (hg.simple_func_mul' hm _)
_ =ᵐ[μ] ⇑g₁ * μ[g|m] + ⇑g₂ * μ[g|m] := (eventually_eq.add h_eq₁ h_eq₂)
_ =ᵐ[μ] ⇑(g₁ + g₂) * μ[g|m] := by rw [h_add, add_mul]
@@ -379,14 +368,9 @@ theorem condexp_strongly_measurable_mul_of_bound₀ (hm : m ≤ m0) [FiniteMeasu
theorem condexp_stronglyMeasurable_mul {f g : α → ℝ} (hf : strongly_measurable[m] f)
(hfg : Integrable (f * g) μ) (hg : Integrable g μ) : μ[f * g|m] =ᵐ[μ] f * μ[g|m] :=
by
- by_cases hm : m ≤ m0
- swap
- · simp_rw [condexp_of_not_le hm]
- rw [MulZeroClass.mul_zero]
+ by_cases hm : m ≤ m0; swap; · simp_rw [condexp_of_not_le hm]; rw [MulZeroClass.mul_zero]
by_cases hμm : sigma_finite (μ.trim hm)
- swap
- · simp_rw [condexp_of_not_sigma_finite hm hμm]
- rw [MulZeroClass.mul_zero]
+ swap; · simp_rw [condexp_of_not_sigma_finite hm hμm]; rw [MulZeroClass.mul_zero]
haveI : sigma_finite (μ.trim hm) := hμm
obtain ⟨sets, sets_prop, h_univ⟩ := hf.exists_spanning_measurable_set_norm_le hm μ
simp_rw [forall_and] at sets_prop
@@ -398,9 +382,7 @@ theorem condexp_stronglyMeasurable_mul {f g : α → ℝ} (hf : strongly_measura
rw [Pi.mul_apply]
obtain ⟨i, hi⟩ : ∃ i, x ∈ sets i :=
by
- have h_mem : x ∈ ⋃ i, sets i := by
- rw [h_univ]
- exact Set.mem_univ _
+ have h_mem : x ∈ ⋃ i, sets i := by rw [h_univ]; exact Set.mem_univ _
simpa using h_mem
exact hx i hi
refine' fun n => ae_imp_of_ae_restrict _
mathlib commit https://github.com/leanprover-community/mathlib/commit/75e7fca56381d056096ce5d05e938f63a6567828
@@ -97,7 +97,7 @@ theorem snorm_one_condexp_le_snorm (f : α → ℝ) : snorm (μ[f|m]) 1 μ ≤ s
rw [snorm_one_eq_lintegral_nnnorm, snorm_one_eq_lintegral_nnnorm, ←
ENNReal.toReal_eq_toReal (ne_of_lt integrable_condexp.2) (ne_of_lt hf.2), ←
integral_norm_eq_lintegral_nnnorm
- (strongly_measurable_condexp.mono hm).AeStronglyMeasurable,
+ (strongly_measurable_condexp.mono hm).AEStronglyMeasurable,
← integral_norm_eq_lintegral_nnnorm hf.1]
simp_rw [Real.norm_eq_abs]
rw [← @integral_condexp _ _ _ _ _ m m0 μ _ hm hsig hf.abs]
@@ -134,7 +134,7 @@ theorem integral_abs_condexp_le (f : α → ℝ) : (∫ x, |(μ[f|m]) x| ∂μ)
exact hfint.1.norm
· exact eventually_of_forall fun x => abs_nonneg _
· simp_rw [← Real.norm_eq_abs]
- exact (strongly_measurable_condexp.mono hm).AeStronglyMeasurable.norm
+ exact (strongly_measurable_condexp.mono hm).AEStronglyMeasurable.norm
#align measure_theory.integral_abs_condexp_le MeasureTheory.integral_abs_condexp_le
theorem set_integral_abs_condexp_le {s : Set α} (hs : measurable_set[m] s) (f : α → ℝ) :
@@ -225,14 +225,14 @@ theorem Integrable.uniformIntegrable_condexp {ι : Type _} [FiniteMeasure μ] {g
have hg : mem_ℒp g 1 μ := mem_ℒp_one_iff_integrable.2 hint
refine'
uniform_integrable_of le_rfl ENNReal.one_ne_top
- (fun n => (strongly_measurable_condexp.mono (hℱ n)).AeStronglyMeasurable) fun ε hε => _
+ (fun n => (strongly_measurable_condexp.mono (hℱ n)).AEStronglyMeasurable) fun ε hε => _
by_cases hne : snorm g 1 μ = 0
· rw [snorm_eq_zero_iff hg.1 one_ne_zero] at hne
refine'
⟨0, fun n =>
(le_of_eq <|
(snorm_eq_zero_iff
- ((strongly_measurable_condexp.mono (hℱ n)).AeStronglyMeasurable.indicator
+ ((strongly_measurable_condexp.mono (hℱ n)).AEStronglyMeasurable.indicator
(hmeas n 0))
one_ne_zero).2
_).trans
@@ -247,7 +247,7 @@ theorem Integrable.uniformIntegrable_condexp {ι : Type _} [FiniteMeasure μ] {g
intro n
have :=
mul_meas_ge_le_pow_snorm' μ one_ne_zero ENNReal.one_ne_top
- ((@strongly_measurable_condexp _ _ _ _ _ (ℱ n) _ μ g).mono (hℱ n)).AeStronglyMeasurable C
+ ((@strongly_measurable_condexp _ _ _ _ _ (ℱ n) _ μ g).mono (hℱ n)).AEStronglyMeasurable C
rw [ENNReal.one_toReal, ENNReal.rpow_one, ENNReal.rpow_one, mul_comm, ←
ENNReal.le_div_iff_mul_le (Or.inl (ENNReal.coe_ne_zero.2 hCpos.ne.symm))
(Or.inl ennreal.coe_lt_top.ne)] at
@@ -321,19 +321,19 @@ theorem condexp_stronglyMeasurable_mul_of_bound (hm : m ≤ m0) [FiniteMeasure
have : μ[f * μ[g|m]|m] = f * μ[g|m] :=
by
refine' condexp_of_strongly_measurable hm (hf.mul strongly_measurable_condexp) _
- exact integrable_condexp.bdd_mul' (hf.mono hm).AeStronglyMeasurable hf_bound
+ exact integrable_condexp.bdd_mul' (hf.mono hm).AEStronglyMeasurable hf_bound
rw [← this]
refine'
tendsto_condexp_unique (fun n x => fs n x * g x) (fun n x => fs n x * (μ[g|m]) x) (f * g)
(f * μ[g|m]) _ _ _ _ (fun x => c * ‖g x‖) _ (fun x => c * ‖(μ[g|m]) x‖) _ _ _ _
·
exact fun n =>
- hg.bdd_mul' ((simple_func.strongly_measurable (fs n)).mono hm).AeStronglyMeasurable
+ hg.bdd_mul' ((simple_func.strongly_measurable (fs n)).mono hm).AEStronglyMeasurable
(eventually_of_forall (hfs_bound n))
·
exact fun n =>
integrable_condexp.bdd_mul'
- ((simple_func.strongly_measurable (fs n)).mono hm).AeStronglyMeasurable
+ ((simple_func.strongly_measurable (fs n)).mono hm).AEStronglyMeasurable
(eventually_of_forall (hfs_bound n))
· filter_upwards [hfs_tendsto]with x hx
rw [Pi.mul_apply]
@@ -356,7 +356,7 @@ theorem condexp_stronglyMeasurable_mul_of_bound (hm : m ≤ m0) [FiniteMeasure
· infer_instance
exact
integrable_condexp.bdd_mul'
- ((simple_func.strongly_measurable (fs n)).mono hm).AeStronglyMeasurable
+ ((simple_func.strongly_measurable (fs n)).mono hm).AEStronglyMeasurable
(eventually_of_forall (hfs_bound n))
#align measure_theory.condexp_strongly_measurable_mul_of_bound MeasureTheory.condexp_stronglyMeasurable_mul_of_bound
mathlib commit https://github.com/leanprover-community/mathlib/commit/33c67ae661dd8988516ff7f247b0be3018cdd952
@@ -206,8 +206,8 @@ theorem ae_bdd_condexp_of_ae_bdd {R : ℝ≥0} {f : α → ℝ} (hbdd : ∀ᵐ x
lt_of_le_of_lt _
(integrable_condexp.integrable_on : integrable_on (μ[f|m]) { x | ↑R < |(μ[f|m]) x| } μ).2⟩
refine'
- set_lintegral_mono (Measurable.nnnorm _).coe_nNReal_eNNReal
- (strongly_measurable_condexp.mono hnm).Measurable.nnnorm.coe_nNReal_eNNReal fun x hx => _
+ set_lintegral_mono (Measurable.nnnorm _).coe_nnreal_ennreal
+ (strongly_measurable_condexp.mono hnm).Measurable.nnnorm.coe_nnreal_ennreal fun x hx => _
· exact measurable_const
· rw [ENNReal.coe_le_coe, Real.nnnorm_of_nonneg R.coe_nonneg]
exact Subtype.mk_le_mk.2 (le_of_lt hx)
mathlib commit https://github.com/leanprover-community/mathlib/commit/2f8347015b12b0864dfaf366ec4909eb70c78740
@@ -198,7 +198,8 @@ theorem ae_bdd_condexp_of_ae_bdd {R : ℝ≥0} {f : α → ℝ} (hbdd : ∀ᵐ x
exact
@measurableSet_lt _ _ _ _ _ m _ _ _ _ _ measurable_const
strongly_measurable_condexp.norm.measurable
- simp only [← smul_eq_mul, ← set_integral_const, NNReal.val_eq_coe, IsROrC.coe_real_eq_id, id.def]
+ simp only [← smul_eq_mul, ← set_integral_const, NNReal.val_eq_coe, IsROrC.ofReal_real_eq_id,
+ id.def]
refine' set_integral_mono_ae hfint.abs.integrable_on _ _
· refine'
⟨ae_strongly_measurable_const,
mathlib commit https://github.com/leanprover-community/mathlib/commit/d4437c68c8d350fc9d4e95e1e174409db35e30d7
@@ -215,7 +215,7 @@ theorem ae_bdd_condexp_of_ae_bdd {R : ℝ≥0} {f : α → ℝ} (hbdd : ∀ᵐ x
/-- Given a integrable function `g`, the conditional expectations of `g` with respect to
a sequence of sub-σ-algebras is uniformly integrable. -/
-theorem Integrable.uniformIntegrable_condexp {ι : Type _} [IsFiniteMeasure μ] {g : α → ℝ}
+theorem Integrable.uniformIntegrable_condexp {ι : Type _} [FiniteMeasure μ] {g : α → ℝ}
(hint : Integrable g μ) {ℱ : ι → MeasurableSpace α} (hℱ : ∀ i, ℱ i ≤ m0) :
UniformIntegrable (fun i => μ[g|ℱ i]) 1 μ :=
by
@@ -302,7 +302,7 @@ theorem condexp_strongly_measurable_simpleFunc_mul (hm : m ≤ m0) (f : @SimpleF
#align measure_theory.condexp_strongly_measurable_simple_func_mul MeasureTheory.condexp_strongly_measurable_simpleFunc_mul
-theorem condexp_stronglyMeasurable_mul_of_bound (hm : m ≤ m0) [IsFiniteMeasure μ] {f g : α → ℝ}
+theorem condexp_stronglyMeasurable_mul_of_bound (hm : m ≤ m0) [FiniteMeasure μ] {f g : α → ℝ}
(hf : strongly_measurable[m] f) (hg : Integrable g μ) (c : ℝ) (hf_bound : ∀ᵐ x ∂μ, ‖f x‖ ≤ c) :
μ[f * g|m] =ᵐ[μ] f * μ[g|m] := by
let fs := hf.approx_bounded c
@@ -359,7 +359,7 @@ theorem condexp_stronglyMeasurable_mul_of_bound (hm : m ≤ m0) [IsFiniteMeasure
(eventually_of_forall (hfs_bound n))
#align measure_theory.condexp_strongly_measurable_mul_of_bound MeasureTheory.condexp_stronglyMeasurable_mul_of_bound
-theorem condexp_strongly_measurable_mul_of_bound₀ (hm : m ≤ m0) [IsFiniteMeasure μ] {f g : α → ℝ}
+theorem condexp_strongly_measurable_mul_of_bound₀ (hm : m ≤ m0) [FiniteMeasure μ] {f g : α → ℝ}
(hf : AeStronglyMeasurable' m f μ) (hg : Integrable g μ) (c : ℝ)
(hf_bound : ∀ᵐ x ∂μ, ‖f x‖ ≤ c) : μ[f * g|m] =ᵐ[μ] f * μ[g|m] :=
by
mathlib commit https://github.com/leanprover-community/mathlib/commit/92c69b77c5a7dc0f7eeddb552508633305157caa
@@ -215,7 +215,7 @@ theorem ae_bdd_condexp_of_ae_bdd {R : ℝ≥0} {f : α → ℝ} (hbdd : ∀ᵐ x
/-- Given a integrable function `g`, the conditional expectations of `g` with respect to
a sequence of sub-σ-algebras is uniformly integrable. -/
-theorem Integrable.uniformIntegrableCondexp {ι : Type _} [IsFiniteMeasure μ] {g : α → ℝ}
+theorem Integrable.uniformIntegrable_condexp {ι : Type _} [IsFiniteMeasure μ] {g : α → ℝ}
(hint : Integrable g μ) {ℱ : ι → MeasurableSpace α} (hℱ : ∀ i, ℱ i ≤ m0) :
UniformIntegrable (fun i => μ[g|ℱ i]) 1 μ :=
by
@@ -265,7 +265,7 @@ theorem Integrable.uniformIntegrableCondexp {ι : Type _} [IsFiniteMeasure μ] {
(@Measurable.nnnorm _ _ _ _ _ (ℱ n) _ strongly_measurable_condexp.measurable)
rw [← snorm_congr_ae (condexp_indicator hint hmeasℱ)]
exact snorm_one_condexp_le_snorm _
-#align measure_theory.integrable.uniform_integrable_condexp MeasureTheory.Integrable.uniformIntegrableCondexp
+#align measure_theory.integrable.uniform_integrable_condexp MeasureTheory.Integrable.uniformIntegrable_condexp
section PullOut
mathlib commit https://github.com/leanprover-community/mathlib/commit/3180fab693e2cee3bff62675571264cb8778b212
@@ -121,7 +121,7 @@ theorem integral_abs_condexp_le (f : α → ℝ) : (∫ x, |(μ[f|m]) x| ∂μ)
by_cases hfint : integrable f μ
swap
· simp only [condexp_undef hfint, Pi.zero_apply, abs_zero, integral_const, Algebra.id.smul_eq_mul,
- mul_zero]
+ MulZeroClass.mul_zero]
exact integral_nonneg fun x => abs_nonneg _
rw [integral_eq_lintegral_of_nonneg_ae, integral_eq_lintegral_of_nonneg_ae]
· rw [ENNReal.toReal_le_toReal] <;> simp_rw [← Real.norm_eq_abs, ofReal_norm_eq_coe_nnnorm]
@@ -147,7 +147,7 @@ theorem set_integral_abs_condexp_le {s : Set α} (hs : measurable_set[m] s) (f :
by_cases hfint : integrable f μ
swap
· simp only [condexp_undef hfint, Pi.zero_apply, abs_zero, integral_const, Algebra.id.smul_eq_mul,
- mul_zero]
+ MulZeroClass.mul_zero]
exact integral_nonneg fun x => abs_nonneg _
have : (∫ x in s, |(μ[f|m]) x| ∂μ) = ∫ x, |(μ[s.indicator f|m]) x| ∂μ :=
by
@@ -280,7 +280,7 @@ theorem condexp_strongly_measurable_simpleFunc_mul (hm : m ≤ m0) (f : @SimpleF
ext1 x
by_cases hx : x ∈ s
· simp only [hx, Pi.mul_apply, Set.indicator_of_mem, Pi.smul_apply, Algebra.id.smul_eq_mul]
- · simp only [hx, Pi.mul_apply, Set.indicator_of_not_mem, not_false_iff, zero_mul]
+ · simp only [hx, Pi.mul_apply, Set.indicator_of_not_mem, not_false_iff, MulZeroClass.zero_mul]
refine' @simple_func.induction _ _ m _ _ (fun c s hs => _) (fun g₁ g₂ h_disj h_eq₁ h_eq₂ => _) f
· simp only [simple_func.const_zero, simple_func.coe_piecewise, simple_func.coe_const,
simple_func.coe_zero, Set.piecewise_eq_indicator]
@@ -381,11 +381,11 @@ theorem condexp_stronglyMeasurable_mul {f g : α → ℝ} (hf : strongly_measura
by_cases hm : m ≤ m0
swap
· simp_rw [condexp_of_not_le hm]
- rw [mul_zero]
+ rw [MulZeroClass.mul_zero]
by_cases hμm : sigma_finite (μ.trim hm)
swap
· simp_rw [condexp_of_not_sigma_finite hm hμm]
- rw [mul_zero]
+ rw [MulZeroClass.mul_zero]
haveI : sigma_finite (μ.trim hm) := hμm
obtain ⟨sets, sets_prop, h_univ⟩ := hf.exists_spanning_measurable_set_norm_le hm μ
simp_rw [forall_and] at sets_prop
mathlib commit https://github.com/leanprover-community/mathlib/commit/4c586d291f189eecb9d00581aeb3dd998ac34442
@@ -297,7 +297,7 @@ theorem condexp_strongly_measurable_simpleFunc_mul (hm : m ≤ m0) (f : @SimpleF
_ =ᵐ[μ] μ[⇑g₁ * g|m] + μ[⇑g₂ * g|m] := by
rw [add_mul]
exact condexp_add (hg.simple_func_mul' hm _) (hg.simple_func_mul' hm _)
- _ =ᵐ[μ] ⇑g₁ * μ[g|m] + ⇑g₂ * μ[g|m] := eventually_eq.add h_eq₁ h_eq₂
+ _ =ᵐ[μ] ⇑g₁ * μ[g|m] + ⇑g₂ * μ[g|m] := (eventually_eq.add h_eq₁ h_eq₂)
_ =ᵐ[μ] ⇑(g₁ + g₂) * μ[g|m] := by rw [h_add, add_mul]
#align measure_theory.condexp_strongly_measurable_simple_func_mul MeasureTheory.condexp_strongly_measurable_simpleFunc_mul
mathlib commit https://github.com/leanprover-community/mathlib/commit/eb0cb4511aaef0da2462207b67358a0e1fe1e2ee
@@ -34,7 +34,7 @@ noncomputable section
open TopologicalSpace MeasureTheory.lp Filter ContinuousLinearMap
-open NNReal Ennreal Topology BigOperators MeasureTheory
+open NNReal ENNReal Topology BigOperators MeasureTheory
namespace MeasureTheory
@@ -95,7 +95,7 @@ theorem snorm_one_condexp_le_snorm (f : α → ℝ) : snorm (μ[f|m]) 1 μ ≤ s
_ = snorm f 1 μ :=
by
rw [snorm_one_eq_lintegral_nnnorm, snorm_one_eq_lintegral_nnnorm, ←
- Ennreal.toReal_eq_toReal (ne_of_lt integrable_condexp.2) (ne_of_lt hf.2), ←
+ ENNReal.toReal_eq_toReal (ne_of_lt integrable_condexp.2) (ne_of_lt hf.2), ←
integral_norm_eq_lintegral_nnnorm
(strongly_measurable_condexp.mono hm).AeStronglyMeasurable,
← integral_norm_eq_lintegral_nnnorm hf.1]
@@ -124,7 +124,7 @@ theorem integral_abs_condexp_le (f : α → ℝ) : (∫ x, |(μ[f|m]) x| ∂μ)
mul_zero]
exact integral_nonneg fun x => abs_nonneg _
rw [integral_eq_lintegral_of_nonneg_ae, integral_eq_lintegral_of_nonneg_ae]
- · rw [Ennreal.toReal_le_toReal] <;> simp_rw [← Real.norm_eq_abs, ofReal_norm_eq_coe_nnnorm]
+ · rw [ENNReal.toReal_le_toReal] <;> simp_rw [← Real.norm_eq_abs, ofReal_norm_eq_coe_nnnorm]
· rw [← snorm_one_eq_lintegral_nnnorm, ← snorm_one_eq_lintegral_nnnorm]
exact snorm_one_condexp_le_snorm _
· exact ne_of_lt integrable_condexp.2
@@ -205,10 +205,10 @@ theorem ae_bdd_condexp_of_ae_bdd {R : ℝ≥0} {f : α → ℝ} (hbdd : ∀ᵐ x
lt_of_le_of_lt _
(integrable_condexp.integrable_on : integrable_on (μ[f|m]) { x | ↑R < |(μ[f|m]) x| } μ).2⟩
refine'
- set_lintegral_mono (Measurable.nnnorm _).coe_nNReal_ennreal
- (strongly_measurable_condexp.mono hnm).Measurable.nnnorm.coe_nNReal_ennreal fun x hx => _
+ set_lintegral_mono (Measurable.nnnorm _).coe_nNReal_eNNReal
+ (strongly_measurable_condexp.mono hnm).Measurable.nnnorm.coe_nNReal_eNNReal fun x hx => _
· exact measurable_const
- · rw [Ennreal.coe_le_coe, Real.nnnorm_of_nonneg R.coe_nonneg]
+ · rw [ENNReal.coe_le_coe, Real.nnnorm_of_nonneg R.coe_nonneg]
exact Subtype.mk_le_mk.2 (le_of_lt hx)
· exact hbdd
#align measure_theory.ae_bdd_condexp_of_ae_bdd MeasureTheory.ae_bdd_condexp_of_ae_bdd
@@ -223,7 +223,7 @@ theorem Integrable.uniformIntegrableCondexp {ι : Type _} [IsFiniteMeasure μ] {
measurableSet_le measurable_const (strongly_measurable_condexp.mono (hℱ n)).Measurable.nnnorm
have hg : mem_ℒp g 1 μ := mem_ℒp_one_iff_integrable.2 hint
refine'
- uniform_integrable_of le_rfl Ennreal.one_ne_top
+ uniform_integrable_of le_rfl ENNReal.one_ne_top
(fun n => (strongly_measurable_condexp.mono (hℱ n)).AeStronglyMeasurable) fun ε hε => _
by_cases hne : snorm g 1 μ = 0
· rw [snorm_eq_zero_iff hg.1 one_ne_zero] at hne
@@ -238,26 +238,26 @@ theorem Integrable.uniformIntegrableCondexp {ι : Type _} [IsFiniteMeasure μ] {
(zero_le _)⟩
filter_upwards [@condexp_congr_ae _ _ _ _ _ (ℱ n) m0 μ _ _ hne]with x hx
simp only [zero_le', Set.setOf_true, Set.indicator_univ, Pi.zero_apply, hx, condexp_zero]
- obtain ⟨δ, hδ, h⟩ := hg.snorm_indicator_le μ le_rfl Ennreal.one_ne_top hε
+ obtain ⟨δ, hδ, h⟩ := hg.snorm_indicator_le μ le_rfl ENNReal.one_ne_top hε
set C : ℝ≥0 := ⟨δ, hδ.le⟩⁻¹ * (snorm g 1 μ).toNNReal with hC
- have hCpos : 0 < C := mul_pos (inv_pos.2 hδ) (Ennreal.toNnreal_pos hne hg.snorm_lt_top.ne)
- have : ∀ n, μ { x : α | C ≤ ‖(μ[g|ℱ n]) x‖₊ } ≤ Ennreal.ofReal δ :=
+ have hCpos : 0 < C := mul_pos (inv_pos.2 hδ) (ENNReal.toNNReal_pos hne hg.snorm_lt_top.ne)
+ have : ∀ n, μ { x : α | C ≤ ‖(μ[g|ℱ n]) x‖₊ } ≤ ENNReal.ofReal δ :=
by
intro n
have :=
- mul_meas_ge_le_pow_snorm' μ one_ne_zero Ennreal.one_ne_top
+ mul_meas_ge_le_pow_snorm' μ one_ne_zero ENNReal.one_ne_top
((@strongly_measurable_condexp _ _ _ _ _ (ℱ n) _ μ g).mono (hℱ n)).AeStronglyMeasurable C
- rw [Ennreal.one_toReal, Ennreal.rpow_one, Ennreal.rpow_one, mul_comm, ←
- Ennreal.le_div_iff_mul_le (Or.inl (Ennreal.coe_ne_zero.2 hCpos.ne.symm))
+ rw [ENNReal.one_toReal, ENNReal.rpow_one, ENNReal.rpow_one, mul_comm, ←
+ ENNReal.le_div_iff_mul_le (Or.inl (ENNReal.coe_ne_zero.2 hCpos.ne.symm))
(Or.inl ennreal.coe_lt_top.ne)] at
this
- simp_rw [Ennreal.coe_le_coe] at this
+ simp_rw [ENNReal.coe_le_coe] at this
refine' this.trans _
- rw [Ennreal.div_le_iff_le_mul (Or.inl (Ennreal.coe_ne_zero.2 hCpos.ne.symm))
+ rw [ENNReal.div_le_iff_le_mul (Or.inl (ENNReal.coe_ne_zero.2 hCpos.ne.symm))
(Or.inl ennreal.coe_lt_top.ne),
- hC, Nonneg.inv_mk, Ennreal.coe_mul, Ennreal.coe_toNnreal hg.snorm_lt_top.ne, ← mul_assoc, ←
- Ennreal.ofReal_eq_coe_nNReal, ← Ennreal.ofReal_mul hδ.le, mul_inv_cancel hδ.ne.symm,
- Ennreal.ofReal_one, one_mul]
+ hC, Nonneg.inv_mk, ENNReal.coe_mul, ENNReal.coe_toNNReal hg.snorm_lt_top.ne, ← mul_assoc, ←
+ ENNReal.ofReal_eq_coe_nnreal, ← ENNReal.ofReal_mul hδ.le, mul_inv_cancel hδ.ne.symm,
+ ENNReal.ofReal_one, one_mul]
exact snorm_one_condexp_le_snorm _
refine' ⟨C, fun n => le_trans _ (h { x : α | C ≤ ‖(μ[g|ℱ n]) x‖₊ } (hmeas n C) (this n))⟩
have hmeasℱ : measurable_set[ℱ n] { x : α | C ≤ ‖(μ[g|ℱ n]) x‖₊ } :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/271bf175e6c51b8d31d6c0107b7bb4a967c7277e
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Rémy Degenne, Kexing Ying
! This file was ported from Lean 3 source module measure_theory.function.conditional_expectation.real
-! leanprover-community/mathlib commit f2ce6086713c78a7f880485f7917ea547a215982
+! leanprover-community/mathlib commit b2ff9a3d7a15fd5b0f060b135421d6a89a999c2f
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -240,7 +240,7 @@ theorem Integrable.uniformIntegrableCondexp {ι : Type _} [IsFiniteMeasure μ] {
simp only [zero_le', Set.setOf_true, Set.indicator_univ, Pi.zero_apply, hx, condexp_zero]
obtain ⟨δ, hδ, h⟩ := hg.snorm_indicator_le μ le_rfl Ennreal.one_ne_top hε
set C : ℝ≥0 := ⟨δ, hδ.le⟩⁻¹ * (snorm g 1 μ).toNNReal with hC
- have hCpos : 0 < C := mul_pos (NNReal.inv_pos.2 hδ) (Ennreal.toNnreal_pos hne hg.snorm_lt_top.ne)
+ have hCpos : 0 < C := mul_pos (inv_pos.2 hδ) (Ennreal.toNnreal_pos hne hg.snorm_lt_top.ne)
have : ∀ n, μ { x : α | C ≤ ‖(μ[g|ℱ n]) x‖₊ } ≤ Ennreal.ofReal δ :=
by
intro n
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
set_integral
with setIntegral
(#12215)
Done with a global search and replace, and then (to fix the #align
lines), replace (#align \S*)setIntegral
with $1set_integral
.
@@ -40,7 +40,7 @@ variable {α : Type*} {m m0 : MeasurableSpace α} {μ : Measure α}
theorem rnDeriv_ae_eq_condexp {hm : m ≤ m0} [hμm : SigmaFinite (μ.trim hm)] {f : α → ℝ}
(hf : Integrable f μ) :
SignedMeasure.rnDeriv ((μ.withDensityᵥ f).trim hm) (μ.trim hm) =ᵐ[μ] μ[f|m] := by
- refine' ae_eq_condexp_of_forall_set_integral_eq hm hf _ _ _
+ refine' ae_eq_condexp_of_forall_setIntegral_eq hm hf _ _ _
· exact fun _ _ _ => (integrable_of_integrable_trim hm
(SignedMeasure.integrable_rnDeriv ((μ.withDensityᵥ f).trim hm) (μ.trim hm))).integrableOn
· intro s hs _
@@ -49,7 +49,7 @@ theorem rnDeriv_ae_eq_condexp {hm : m ≤ m0} [hμm : SigmaFinite (μ.trim hm)]
(hf.withDensityᵥ_trim_absolutelyContinuous hm)]
rw [withDensityᵥ_apply
(SignedMeasure.integrable_rnDeriv ((μ.withDensityᵥ f).trim hm) (μ.trim hm)) hs,
- ← set_integral_trim hm _ hs]
+ ← setIntegral_trim hm _ hs]
exact (SignedMeasure.measurable_rnDeriv _ _).stronglyMeasurable
· exact (SignedMeasure.measurable_rnDeriv _ _).stronglyMeasurable.aeStronglyMeasurable'
#align measure_theory.rn_deriv_ae_eq_condexp MeasureTheory.rnDeriv_ae_eq_condexp
@@ -113,7 +113,7 @@ theorem integral_abs_condexp_le (f : α → ℝ) : ∫ x, |(μ[f|m]) x| ∂μ
exact (stronglyMeasurable_condexp.mono hm).aestronglyMeasurable.norm
#align measure_theory.integral_abs_condexp_le MeasureTheory.integral_abs_condexp_le
-theorem set_integral_abs_condexp_le {s : Set α} (hs : MeasurableSet[m] s) (f : α → ℝ) :
+theorem setIntegral_abs_condexp_le {s : Set α} (hs : MeasurableSet[m] s) (f : α → ℝ) :
∫ x in s, |(μ[f|m]) x| ∂μ ≤ ∫ x in s, |f x| ∂μ := by
by_cases hnm : m ≤ m0
swap
@@ -136,7 +136,11 @@ theorem set_integral_abs_condexp_le {s : Set α} (hs : MeasurableSet[m] s) (f :
refine' (integral_abs_condexp_le _).trans
(le_of_eq <| integral_congr_ae <| eventually_of_forall fun x => _)
simp_rw [← Real.norm_eq_abs, norm_indicator_eq_indicator_norm]
-#align measure_theory.set_integral_abs_condexp_le MeasureTheory.set_integral_abs_condexp_le
+#align measure_theory.set_integral_abs_condexp_le MeasureTheory.setIntegral_abs_condexp_le
+
+@[deprecated]
+alias set_integral_abs_condexp_le :=
+ setIntegral_abs_condexp_le -- deprecated on 2024-04-17
/-- If the real valued function `f` is bounded almost everywhere by `R`, then so is its conditional
expectation. -/
@@ -157,17 +161,17 @@ theorem ae_bdd_condexp_of_ae_bdd {R : ℝ≥0} {f : α → ℝ} (hbdd : ∀ᵐ x
simp only [← zero_lt_iff, Set.compl_def, Set.mem_setOf_eq, not_le] at h
suffices (μ {x | ↑R < |(μ[f|m]) x|}).toReal * ↑R < (μ {x | ↑R < |(μ[f|m]) x|}).toReal * ↑R by
exact this.ne rfl
- refine' lt_of_lt_of_le (set_integral_gt_gt R.coe_nonneg _ _ h.ne.symm) _
+ refine' lt_of_lt_of_le (setIntegral_gt_gt R.coe_nonneg _ _ h.ne.symm) _
· simp_rw [← Real.norm_eq_abs]
exact (stronglyMeasurable_condexp.mono hnm).measurable.norm
· exact integrable_condexp.abs.integrableOn
- refine' (set_integral_abs_condexp_le _ _).trans _
+ refine' (setIntegral_abs_condexp_le _ _).trans _
· simp_rw [← Real.norm_eq_abs]
exact @measurableSet_lt _ _ _ _ _ m _ _ _ _ _ measurable_const
stronglyMeasurable_condexp.norm.measurable
- simp only [← smul_eq_mul, ← set_integral_const, NNReal.val_eq_coe, RCLike.ofReal_real_eq_id,
+ simp only [← smul_eq_mul, ← setIntegral_const, NNReal.val_eq_coe, RCLike.ofReal_real_eq_id,
_root_.id]
- refine' set_integral_mono_ae hfint.abs.integrableOn _ hbdd
+ refine' setIntegral_mono_ae hfint.abs.integrableOn _ hbdd
refine' ⟨aestronglyMeasurable_const, lt_of_le_of_lt _
(integrable_condexp.integrableOn : IntegrableOn (μ[f|m]) {x | ↑R < |(μ[f|m]) x|} μ).2⟩
refine' set_lintegral_mono measurable_const.nnnorm.coe_nnreal_ennreal
These are changes from #11997, the latest adaptation PR for nightly-2024-04-07, which can be made directly on master.
Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Ruben Van de Velde <65514131+Ruben-VandeVelde@users.noreply.github.com>
@@ -166,7 +166,7 @@ theorem ae_bdd_condexp_of_ae_bdd {R : ℝ≥0} {f : α → ℝ} (hbdd : ∀ᵐ x
exact @measurableSet_lt _ _ _ _ _ m _ _ _ _ _ measurable_const
stronglyMeasurable_condexp.norm.measurable
simp only [← smul_eq_mul, ← set_integral_const, NNReal.val_eq_coe, RCLike.ofReal_real_eq_id,
- id.def]
+ _root_.id]
refine' set_integral_mono_ae hfint.abs.integrableOn _ hbdd
refine' ⟨aestronglyMeasurable_const, lt_of_le_of_lt _
(integrable_condexp.integrableOn : IntegrableOn (μ[f|m]) {x | ↑R < |(μ[f|m]) x|} μ).2⟩
@@ -260,7 +260,7 @@ theorem condexp_stronglyMeasurable_mul_of_bound (hm : m ≤ m0) [IsFiniteMeasure
hf.tendsto_approxBounded_ae hf_bound
by_cases hμ : μ = 0
· simp only [hμ, ae_zero]; norm_cast
- have : μ.ae.NeBot := by simp only [hμ, ae_neBot, Ne.def, not_false_iff]
+ have : μ.ae.NeBot := by simp only [hμ, ae_neBot, Ne, not_false_iff]
have hc : 0 ≤ c := by
rcases hf_bound.exists with ⟨_x, hx⟩
exact (norm_nonneg _).trans hx
@@ -248,7 +248,7 @@ theorem condexp_stronglyMeasurable_simpleFunc_mul (hm : m ≤ m0) (f : @SimpleFu
refine' condexp_congr_ae (EventuallyEq.mul _ EventuallyEq.rfl); rw [h_add]
_ =ᵐ[μ] μ[⇑g₁ * g|m] + μ[⇑g₂ * g|m] := by
rw [add_mul]; exact condexp_add (hg.simpleFunc_mul' hm _) (hg.simpleFunc_mul' hm _)
- _ =ᵐ[μ] ⇑g₁ * μ[g|m] + ⇑g₂ * μ[g|m] := (EventuallyEq.add h_eq₁ h_eq₂)
+ _ =ᵐ[μ] ⇑g₁ * μ[g|m] + ⇑g₂ * μ[g|m] := EventuallyEq.add h_eq₁ h_eq₂
_ =ᵐ[μ] ⇑(g₁ + g₂) * μ[g|m] := by rw [h_add, add_mul]
#align measure_theory.condexp_strongly_measurable_simple_func_mul MeasureTheory.condexp_stronglyMeasurable_simpleFunc_mul
@@ -131,7 +131,7 @@ theorem set_integral_abs_condexp_le {s : Set α} (hs : MeasurableSet[m] s) (f :
(condexp_indicator hfint hs).fun_comp abs
refine' EventuallyEq.trans (eventually_of_forall fun x => _) this.symm
rw [← Real.norm_eq_abs, norm_indicator_eq_indicator_norm]
- rfl
+ simp only [Real.norm_eq_abs]
rw [this, ← integral_indicator (hnm _ hs)]
refine' (integral_abs_condexp_le _).trans
(le_of_eq <| integral_congr_ae <| eventually_of_forall fun x => _)
@@ -229,7 +229,8 @@ theorem condexp_stronglyMeasurable_simpleFunc_mul (hm : m ≤ m0) (f : @SimpleFu
intro s c f
ext1 x
by_cases hx : x ∈ s
- · simp only [hx, Pi.mul_apply, Set.indicator_of_mem, Pi.smul_apply, Algebra.id.smul_eq_mul]; rfl
+ · simp only [hx, Pi.mul_apply, Set.indicator_of_mem, Pi.smul_apply, Algebra.id.smul_eq_mul,
+ Function.const_apply]
· simp only [hx, Pi.mul_apply, Set.indicator_of_not_mem, not_false_iff, zero_mul]
apply @SimpleFunc.induction _ _ m _ (fun f => _)
(fun c s hs => ?_) (fun g₁ g₂ _ h_eq₁ h_eq₂ => ?_) f
IsROrC
to RCLike
(#10819)
IsROrC
contains data, which goes against the expectation that classes prefixed with Is
are prop-valued. People have been complaining about this on and off, so this PR renames IsROrC
to RCLike
.
@@ -165,7 +165,7 @@ theorem ae_bdd_condexp_of_ae_bdd {R : ℝ≥0} {f : α → ℝ} (hbdd : ∀ᵐ x
· simp_rw [← Real.norm_eq_abs]
exact @measurableSet_lt _ _ _ _ _ m _ _ _ _ _ measurable_const
stronglyMeasurable_condexp.norm.measurable
- simp only [← smul_eq_mul, ← set_integral_const, NNReal.val_eq_coe, IsROrC.ofReal_real_eq_id,
+ simp only [← smul_eq_mul, ← set_integral_const, NNReal.val_eq_coe, RCLike.ofReal_real_eq_id,
id.def]
refine' set_integral_mono_ae hfint.abs.integrableOn _ hbdd
refine' ⟨aestronglyMeasurable_const, lt_of_le_of_lt _
@@ -93,12 +93,12 @@ theorem integral_abs_condexp_le (f : α → ℝ) : ∫ x, |(μ[f|m]) x| ∂μ
by_cases hm : m ≤ m0
swap
· simp_rw [condexp_of_not_le hm, Pi.zero_apply, abs_zero, integral_zero]
- exact integral_nonneg fun x => abs_nonneg _
+ positivity
by_cases hfint : Integrable f μ
swap
· simp only [condexp_undef hfint, Pi.zero_apply, abs_zero, integral_const, Algebra.id.smul_eq_mul,
mul_zero]
- exact integral_nonneg fun x => abs_nonneg _
+ positivity
rw [integral_eq_lintegral_of_nonneg_ae, integral_eq_lintegral_of_nonneg_ae]
· rw [ENNReal.toReal_le_toReal] <;> simp_rw [← Real.norm_eq_abs, ofReal_norm_eq_coe_nnnorm]
· rw [← snorm_one_eq_lintegral_nnnorm, ← snorm_one_eq_lintegral_nnnorm]
@@ -118,12 +118,12 @@ theorem set_integral_abs_condexp_le {s : Set α} (hs : MeasurableSet[m] s) (f :
by_cases hnm : m ≤ m0
swap
· simp_rw [condexp_of_not_le hnm, Pi.zero_apply, abs_zero, integral_zero]
- exact integral_nonneg fun x => abs_nonneg _
+ positivity
by_cases hfint : Integrable f μ
swap
· simp only [condexp_undef hfint, Pi.zero_apply, abs_zero, integral_const, Algebra.id.smul_eq_mul,
mul_zero]
- exact integral_nonneg fun x => abs_nonneg _
+ positivity
have : ∫ x in s, |(μ[f|m]) x| ∂μ = ∫ x, |(μ[s.indicator f|m]) x| ∂μ := by
rw [← integral_indicator (hnm _ hs)]
refine' integral_congr_ae _
filter_upwards
(#11208)
This is presumably not exhaustive, but covers about a hundred instances.
Style opinions (e.g., why a particular change is great/not a good idea) are very welcome; I'm still forming my own.
@@ -105,10 +105,10 @@ theorem integral_abs_condexp_le (f : α → ℝ) : ∫ x, |(μ[f|m]) x| ∂μ
exact snorm_one_condexp_le_snorm _
· exact integrable_condexp.2.ne
· exact hfint.2.ne
- · exact eventually_of_forall fun x => abs_nonneg _
+ · filter_upwards with x using abs_nonneg _
· simp_rw [← Real.norm_eq_abs]
exact hfint.1.norm
- · exact eventually_of_forall fun x => abs_nonneg _
+ · filter_upwards with x using abs_nonneg _
· simp_rw [← Real.norm_eq_abs]
exact (stronglyMeasurable_condexp.mono hm).aestronglyMeasurable.norm
#align measure_theory.integral_abs_condexp_le MeasureTheory.integral_abs_condexp_le
@@ -340,7 +340,7 @@ theorem condexp_stronglyMeasurable_mul {f g : α → ℝ} (hf : StronglyMeasurab
rw [Measure.restrict_apply_univ]
exact h_finite n
refine' condexp_stronglyMeasurable_mul_of_bound hm (hf.indicator (h_meas n)) hg.integrableOn n _
- refine' eventually_of_forall fun x => _
+ filter_upwards with x
by_cases hxs : x ∈ sets n
· simpa only [hxs, Set.indicator_of_mem] using h_norm n x hxs
· simp only [hxs, Set.indicator_of_not_mem, not_false_iff, _root_.norm_zero, Nat.cast_nonneg]
refine
s (#10762)
I replaced a few "terminal" refine/refine'
s with exact
.
The strategy was very simple-minded: essentially any refine
whose following line had smaller indentation got replaced by exact
and then I cleaned up the mess.
This PR certainly leaves some further terminal refine
s, but maybe the current change is beneficial.
@@ -145,7 +145,7 @@ theorem ae_bdd_condexp_of_ae_bdd {R : ℝ≥0} {f : α → ℝ} (hbdd : ∀ᵐ x
by_cases hnm : m ≤ m0
swap
· simp_rw [condexp_of_not_le hnm, Pi.zero_apply, abs_zero]
- refine' eventually_of_forall fun _ => R.coe_nonneg
+ exact eventually_of_forall fun _ => R.coe_nonneg
by_cases hfint : Integrable f μ
swap
· simp_rw [condexp_undef hfint]
Classical.choose_spec
by rcases
exact
s@@ -51,8 +51,7 @@ theorem rnDeriv_ae_eq_condexp {hm : m ≤ m0} [hμm : SigmaFinite (μ.trim hm)]
(SignedMeasure.integrable_rnDeriv ((μ.withDensityᵥ f).trim hm) (μ.trim hm)) hs,
← set_integral_trim hm _ hs]
exact (SignedMeasure.measurable_rnDeriv _ _).stronglyMeasurable
- · exact StronglyMeasurable.aeStronglyMeasurable'
- (SignedMeasure.measurable_rnDeriv _ _).stronglyMeasurable
+ · exact (SignedMeasure.measurable_rnDeriv _ _).stronglyMeasurable.aeStronglyMeasurable'
#align measure_theory.rn_deriv_ae_eq_condexp MeasureTheory.rnDeriv_ae_eq_condexp
-- TODO: the following couple of lemmas should be generalized and proved using Jensen's inequality
@@ -104,8 +103,8 @@ theorem integral_abs_condexp_le (f : α → ℝ) : ∫ x, |(μ[f|m]) x| ∂μ
· rw [ENNReal.toReal_le_toReal] <;> simp_rw [← Real.norm_eq_abs, ofReal_norm_eq_coe_nnnorm]
· rw [← snorm_one_eq_lintegral_nnnorm, ← snorm_one_eq_lintegral_nnnorm]
exact snorm_one_condexp_le_snorm _
- · exact ne_of_lt integrable_condexp.2
- · exact ne_of_lt hfint.2
+ · exact integrable_condexp.2.ne
+ · exact hfint.2.ne
· exact eventually_of_forall fun x => abs_nonneg _
· simp_rw [← Real.norm_eq_abs]
exact hfint.1.norm
@@ -126,16 +125,14 @@ theorem set_integral_abs_condexp_le {s : Set α} (hs : MeasurableSet[m] s) (f :
mul_zero]
exact integral_nonneg fun x => abs_nonneg _
have : ∫ x in s, |(μ[f|m]) x| ∂μ = ∫ x, |(μ[s.indicator f|m]) x| ∂μ := by
- rw [← integral_indicator]
- swap; · exact hnm _ hs
+ rw [← integral_indicator (hnm _ hs)]
refine' integral_congr_ae _
have : (fun x => |(μ[s.indicator f|m]) x|) =ᵐ[μ] fun x => |s.indicator (μ[f|m]) x| :=
(condexp_indicator hfint hs).fun_comp abs
refine' EventuallyEq.trans (eventually_of_forall fun x => _) this.symm
rw [← Real.norm_eq_abs, norm_indicator_eq_indicator_norm]
rfl
- rw [this, ← integral_indicator]
- swap; · exact hnm _ hs
+ rw [this, ← integral_indicator (hnm _ hs)]
refine' (integral_abs_condexp_le _).trans
(le_of_eq <| integral_congr_ae <| eventually_of_forall fun x => _)
simp_rw [← Real.norm_eq_abs, norm_indicator_eq_indicator_norm]
@@ -170,15 +167,13 @@ theorem ae_bdd_condexp_of_ae_bdd {R : ℝ≥0} {f : α → ℝ} (hbdd : ∀ᵐ x
stronglyMeasurable_condexp.norm.measurable
simp only [← smul_eq_mul, ← set_integral_const, NNReal.val_eq_coe, IsROrC.ofReal_real_eq_id,
id.def]
- refine' set_integral_mono_ae hfint.abs.integrableOn _ _
- · refine' ⟨aestronglyMeasurable_const, lt_of_le_of_lt _
- (integrable_condexp.integrableOn : IntegrableOn (μ[f|m]) {x | ↑R < |(μ[f|m]) x|} μ).2⟩
- refine' set_lintegral_mono (Measurable.nnnorm _).coe_nnreal_ennreal
- (stronglyMeasurable_condexp.mono hnm).measurable.nnnorm.coe_nnreal_ennreal fun x hx => _
- · exact measurable_const
- · rw [ENNReal.coe_le_coe, Real.nnnorm_of_nonneg R.coe_nonneg]
- exact Subtype.mk_le_mk.2 (le_of_lt hx)
- · exact hbdd
+ refine' set_integral_mono_ae hfint.abs.integrableOn _ hbdd
+ refine' ⟨aestronglyMeasurable_const, lt_of_le_of_lt _
+ (integrable_condexp.integrableOn : IntegrableOn (μ[f|m]) {x | ↑R < |(μ[f|m]) x|} μ).2⟩
+ refine' set_lintegral_mono measurable_const.nnnorm.coe_nnreal_ennreal
+ (stronglyMeasurable_condexp.mono hnm).measurable.nnnorm.coe_nnreal_ennreal fun x hx => _
+ rw [ENNReal.coe_le_coe, Real.nnnorm_of_nonneg R.coe_nonneg]
+ exact Subtype.mk_le_mk.2 (le_of_lt hx)
#align measure_theory.ae_bdd_condexp_of_ae_bdd MeasureTheory.ae_bdd_condexp_of_ae_bdd
/-- Given an integrable function `g`, the conditional expectations of `g` with respect to
@@ -260,32 +255,30 @@ theorem condexp_stronglyMeasurable_mul_of_bound (hm : m ≤ m0) [IsFiniteMeasure
(hf : StronglyMeasurable[m] f) (hg : Integrable g μ) (c : ℝ) (hf_bound : ∀ᵐ x ∂μ, ‖f x‖ ≤ c) :
μ[f * g|m] =ᵐ[μ] f * μ[g|m] := by
let fs := hf.approxBounded c
- have hfs_tendsto : ∀ᵐ x ∂μ, Tendsto (fun n => fs n x) atTop (𝓝 (f x)) :=
+ have hfs_tendsto : ∀ᵐ x ∂μ, Tendsto (fs · x) atTop (𝓝 (f x)) :=
hf.tendsto_approxBounded_ae hf_bound
by_cases hμ : μ = 0
· simp only [hμ, ae_zero]; norm_cast
have : μ.ae.NeBot := by simp only [hμ, ae_neBot, Ne.def, not_false_iff]
- have hc : 0 ≤ c :=
- haveI h_exists : ∃ x, ‖f x‖ ≤ c := Eventually.exists hf_bound
- (norm_nonneg _).trans h_exists.choose_spec
+ have hc : 0 ≤ c := by
+ rcases hf_bound.exists with ⟨_x, hx⟩
+ exact (norm_nonneg _).trans hx
have hfs_bound : ∀ n x, ‖fs n x‖ ≤ c := hf.norm_approxBounded_le hc
have : μ[f * μ[g|m]|m] = f * μ[g|m] := by
refine' condexp_of_stronglyMeasurable hm (hf.mul stronglyMeasurable_condexp) _
exact integrable_condexp.bdd_mul' (hf.mono hm).aestronglyMeasurable hf_bound
rw [← this]
refine' tendsto_condexp_unique (fun n x => fs n x * g x) (fun n x => fs n x * (μ[g|m]) x) (f * g)
- (f * μ[g|m]) _ _ _ _ (fun x => c * ‖g x‖) _ (fun x => c * ‖(μ[g|m]) x‖) _ _ _ _
+ (f * μ[g|m]) _ _ _ _ (c * ‖g ·‖) _ (c * ‖(μ[g|m]) ·‖) _ _ _ _
· exact fun n => hg.bdd_mul' ((SimpleFunc.stronglyMeasurable (fs n)).mono hm).aestronglyMeasurable
(eventually_of_forall (hfs_bound n))
· exact fun n => integrable_condexp.bdd_mul'
((SimpleFunc.stronglyMeasurable (fs n)).mono hm).aestronglyMeasurable
(eventually_of_forall (hfs_bound n))
· filter_upwards [hfs_tendsto] with x hx
- rw [Pi.mul_apply]
- exact Tendsto.mul hx tendsto_const_nhds
+ exact hx.mul tendsto_const_nhds
· filter_upwards [hfs_tendsto] with x hx
- rw [Pi.mul_apply]
- exact Tendsto.mul hx tendsto_const_nhds
+ exact hx.mul tendsto_const_nhds
· exact hg.norm.const_mul c
· exact integrable_condexp.norm.const_mul c
· refine' fun n => eventually_of_forall fun x => _
@@ -312,8 +305,7 @@ theorem condexp_stronglyMeasurable_mul_of_bound₀ (hm : m ≤ m0) [IsFiniteMeas
refine' EventuallyEq.trans _ this.symm
refine' condexp_stronglyMeasurable_mul_of_bound hm hf.stronglyMeasurable_mk hg c _
filter_upwards [hf_bound, hf.ae_eq_mk] with x hxc hx_eq
- rw [← hx_eq]
- exact hxc
+ rwa [← hx_eq]
#align measure_theory.condexp_strongly_measurable_mul_of_bound₀ MeasureTheory.condexp_stronglyMeasurable_mul_of_bound₀
/-- Pull-out property of the conditional expectation. -/
@@ -329,22 +321,20 @@ theorem condexp_stronglyMeasurable_mul {f g : α → ℝ} (hf : StronglyMeasurab
suffices ∀ n, ∀ᵐ x ∂μ, x ∈ sets n → (μ[f * g|m]) x = f x * (μ[g|m]) x by
rw [← ae_all_iff] at this
filter_upwards [this] with x hx
- rw [Pi.mul_apply]
obtain ⟨i, hi⟩ : ∃ i, x ∈ sets i := by
have h_mem : x ∈ ⋃ i, sets i := by rw [h_univ]; exact Set.mem_univ _
simpa using h_mem
exact hx i hi
refine' fun n => ae_imp_of_ae_restrict _
suffices (μ.restrict (sets n))[f * g|m] =ᵐ[μ.restrict (sets n)] f * (μ.restrict (sets n))[g|m] by
- simp_rw [← Pi.mul_apply]
refine' (condexp_restrict_ae_eq_restrict hm (h_meas n) hfg).symm.trans _
exact this.trans (EventuallyEq.rfl.mul (condexp_restrict_ae_eq_restrict hm (h_meas n) hg))
suffices (μ.restrict (sets n))[(sets n).indicator f * g|m] =ᵐ[μ.restrict (sets n)]
(sets n).indicator f * (μ.restrict (sets n))[g|m] by
refine' EventuallyEq.trans _ (this.trans _)
· exact
- condexp_congr_ae ((indicator_ae_eq_restrict (hm _ (h_meas n))).symm.mul EventuallyEq.rfl)
- · exact (indicator_ae_eq_restrict (hm _ (h_meas n))).mul EventuallyEq.rfl
+ condexp_congr_ae ((indicator_ae_eq_restrict <| hm _ <| h_meas n).symm.mul EventuallyEq.rfl)
+ · exact (indicator_ae_eq_restrict <| hm _ <| h_meas n).mul EventuallyEq.rfl
have : IsFiniteMeasure (μ.restrict (sets n)) := by
constructor
rw [Measure.restrict_apply_univ]
@@ -352,8 +342,7 @@ theorem condexp_stronglyMeasurable_mul {f g : α → ℝ} (hf : StronglyMeasurab
refine' condexp_stronglyMeasurable_mul_of_bound hm (hf.indicator (h_meas n)) hg.integrableOn n _
refine' eventually_of_forall fun x => _
by_cases hxs : x ∈ sets n
- · simp only [hxs, Set.indicator_of_mem]
- exact h_norm n x hxs
+ · simpa only [hxs, Set.indicator_of_mem] using h_norm n x hxs
· simp only [hxs, Set.indicator_of_not_mem, not_false_iff, _root_.norm_zero, Nat.cast_nonneg]
#align measure_theory.condexp_strongly_measurable_mul MeasureTheory.condexp_stronglyMeasurable_mul
@@ -361,13 +350,12 @@ theorem condexp_stronglyMeasurable_mul {f g : α → ℝ} (hf : StronglyMeasurab
theorem condexp_stronglyMeasurable_mul₀ {f g : α → ℝ} (hf : AEStronglyMeasurable' m f μ)
(hfg : Integrable (f * g) μ) (hg : Integrable g μ) : μ[f * g|m] =ᵐ[μ] f * μ[g|m] := by
have : μ[f * g|m] =ᵐ[μ] μ[hf.mk f * g|m] :=
- condexp_congr_ae (EventuallyEq.mul hf.ae_eq_mk EventuallyEq.rfl)
+ condexp_congr_ae (hf.ae_eq_mk.mul EventuallyEq.rfl)
refine' this.trans _
- have : f * μ[g|m] =ᵐ[μ] hf.mk f * μ[g|m] := EventuallyEq.mul hf.ae_eq_mk EventuallyEq.rfl
- refine' EventuallyEq.trans _ this.symm
- refine' condexp_stronglyMeasurable_mul hf.stronglyMeasurable_mk _ hg
+ have : f * μ[g|m] =ᵐ[μ] hf.mk f * μ[g|m] := hf.ae_eq_mk.mul EventuallyEq.rfl
+ refine' (condexp_stronglyMeasurable_mul hf.stronglyMeasurable_mk _ hg).trans this.symm
refine' (integrable_congr _).mp hfg
- exact EventuallyEq.mul hf.ae_eq_mk EventuallyEq.rfl
+ exact hf.ae_eq_mk.mul EventuallyEq.rfl
#align measure_theory.condexp_strongly_measurable_mul₀ MeasureTheory.condexp_stronglyMeasurable_mul₀
end PullOut
A variable
declaration made (μ)
an explicit argument, even though it could be deduced from other arguments in almost all cases. The declaration was removed and the change propagated to other files.
@@ -198,7 +198,7 @@ theorem Integrable.uniformIntegrable_condexp {ι : Type*} [IsFiniteMeasure μ] {
(hmeas n 0)) one_ne_zero).2 _).trans (zero_le _)⟩
filter_upwards [condexp_congr_ae (m := ℱ n) hne] with x hx
simp only [zero_le', Set.setOf_true, Set.indicator_univ, Pi.zero_apply, hx, condexp_zero]
- obtain ⟨δ, hδ, h⟩ := hg.snorm_indicator_le μ le_rfl ENNReal.one_ne_top hε
+ obtain ⟨δ, hδ, h⟩ := hg.snorm_indicator_le le_rfl ENNReal.one_ne_top hε
set C : ℝ≥0 := ⟨δ, hδ.le⟩⁻¹ * (snorm g 1 μ).toNNReal with hC
have hCpos : 0 < C := mul_pos (inv_pos.2 hδ) (ENNReal.toNNReal_pos hne hg.snorm_lt_top.ne)
have : ∀ n, μ {x : α | C ≤ ‖(μ[g|ℱ n]) x‖₊} ≤ ENNReal.ofReal δ := by
abs
(#9553)
The current design for abs
is flawed:
Abs
notation typeclass has exactly two instances: one for [Neg α] [Sup α]
, one for [Inv α] [Sup α]
. This means that:
Abs.abs
Abs
instances!Algebra.Order.Group.Abs
are about the additive version.Algebra.Order.Group.PosPart
, and they get additivised to duplicates of the lemmas in Algebra.Order.Group.Abs
!This PR changes the notation typeclass with two new definitions (related through to_additive
): mabs
and abs
. abs
inherits the |a|
notation and mabs
gets |a|ₘ
instead.
The first half of Algebra.Order.Group.Abs
gets multiplicativised. A later PR will multiplicativise the second half, and another one will deduplicate the lemmas in Algebra.Order.Group.PosPart
.
Part of #9411.
Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com>
@@ -71,7 +71,7 @@ theorem snorm_one_condexp_le_snorm (f : α → ℝ) : snorm (μ[f|m]) 1 μ ≤ s
(ae_of_all μ (fun x => le_abs_self (f x) : ∀ x, f x ≤ |f x|)),
EventuallyLE.trans (condexp_neg f).symm.le
(condexp_mono hf.neg hf.abs
- (ae_of_all μ (fun x => neg_le_abs_self (f x): ∀ x, -f x ≤ |f x|)))] with x hx₁ hx₂
+ (ae_of_all μ (fun x => neg_le_abs (f x): ∀ x, -f x ≤ |f x|)))] with x hx₁ hx₂
exact abs_le_abs hx₁ hx₂
_ = snorm f 1 μ := by
rw [snorm_one_eq_lintegral_nnnorm, snorm_one_eq_lintegral_nnnorm, ←
@@ -130,7 +130,7 @@ theorem set_integral_abs_condexp_le {s : Set α} (hs : MeasurableSet[m] s) (f :
swap; · exact hnm _ hs
refine' integral_congr_ae _
have : (fun x => |(μ[s.indicator f|m]) x|) =ᵐ[μ] fun x => |s.indicator (μ[f|m]) x| :=
- EventuallyEq.fun_comp (condexp_indicator hfint hs) _
+ (condexp_indicator hfint hs).fun_comp abs
refine' EventuallyEq.trans (eventually_of_forall fun x => _) this.symm
rw [← Real.norm_eq_abs, norm_indicator_eq_indicator_norm]
rfl
[@foo](https://github.com/foo) _ _ _ _ _ ...
by named arguments (#8702)
Using Lean4's named arguments, we manage to remove a few hard-to-read explicit function calls [@foo](https://github.com/foo) _ _ _ _ _ ...
which used to be necessary in Lean3.
Occasionally, this results in slightly longer code. The benefit of named arguments is readability, as well as to reduce the brittleness of the code when the argument order is changed.
Co-authored-by: Michael Rothgang <rothgami@math.hu-berlin.de>
@@ -67,11 +67,11 @@ theorem snorm_one_condexp_le_snorm (f : α → ℝ) : snorm (μ[f|m]) 1 μ ≤ s
calc
snorm (μ[f|m]) 1 μ ≤ snorm (μ[(|f|)|m]) 1 μ := by
refine' snorm_mono_ae _
- filter_upwards [@condexp_mono _ m m0 _ _ _ _ _ _ _ _ hf hf.abs
- (@ae_of_all _ m0 _ μ (fun x => le_abs_self (f x) : ∀ x, f x ≤ |f x|)),
+ filter_upwards [condexp_mono hf hf.abs
+ (ae_of_all μ (fun x => le_abs_self (f x) : ∀ x, f x ≤ |f x|)),
EventuallyLE.trans (condexp_neg f).symm.le
- (@condexp_mono _ m m0 _ _ _ _ _ _ _ _ hf.neg hf.abs
- (@ae_of_all _ m0 _ μ (fun x => neg_le_abs_self (f x): ∀ x, -f x ≤ |f x|)))] with x hx₁ hx₂
+ (condexp_mono hf.neg hf.abs
+ (ae_of_all μ (fun x => neg_le_abs_self (f x): ∀ x, -f x ≤ |f x|)))] with x hx₁ hx₂
exact abs_le_abs hx₁ hx₂
_ = snorm f 1 μ := by
rw [snorm_one_eq_lintegral_nnnorm, snorm_one_eq_lintegral_nnnorm, ←
@@ -80,12 +80,12 @@ theorem snorm_one_condexp_le_snorm (f : α → ℝ) : snorm (μ[f|m]) 1 μ ≤ s
(stronglyMeasurable_condexp.mono hm).aestronglyMeasurable,
← integral_norm_eq_lintegral_nnnorm hf.1]
simp_rw [Real.norm_eq_abs]
- rw [← @integral_condexp _ _ _ _ _ m m0 μ _ hm hsig hf.abs]
+ rw [← integral_condexp hm hf.abs]
refine' integral_congr_ae _
have : 0 ≤ᵐ[μ] μ[(|f|)|m] := by
- rw [← @condexp_zero α ℝ _ _ _ m m0 μ]
+ rw [← condexp_zero]
exact condexp_mono (integrable_zero _ _ _) hf.abs
- (@ae_of_all _ m0 _ μ (fun x => abs_nonneg (f x) : ∀ x, 0 ≤ |f x|))
+ (ae_of_all μ (fun x => abs_nonneg (f x) : ∀ x, 0 ≤ |f x|))
filter_upwards [this] with x hx
exact abs_eq_self.2 hx
#align measure_theory.snorm_one_condexp_le_snorm MeasureTheory.snorm_one_condexp_le_snorm
@@ -196,7 +196,7 @@ theorem Integrable.uniformIntegrable_condexp {ι : Type*} [IsFiniteMeasure μ] {
refine' ⟨0, fun n => (le_of_eq <|
(snorm_eq_zero_iff ((stronglyMeasurable_condexp.mono (hℱ n)).aestronglyMeasurable.indicator
(hmeas n 0)) one_ne_zero).2 _).trans (zero_le _)⟩
- filter_upwards [@condexp_congr_ae _ _ _ _ _ (ℱ n) m0 μ _ _ hne] with x hx
+ filter_upwards [condexp_congr_ae (m := ℱ n) hne] with x hx
simp only [zero_le', Set.setOf_true, Set.indicator_univ, Pi.zero_apply, hx, condexp_zero]
obtain ⟨δ, hδ, h⟩ := hg.snorm_indicator_le μ le_rfl ENNReal.one_ne_top hε
set C : ℝ≥0 := ⟨δ, hδ.le⟩⁻¹ * (snorm g 1 μ).toNNReal with hC
@@ -204,7 +204,7 @@ theorem Integrable.uniformIntegrable_condexp {ι : Type*} [IsFiniteMeasure μ] {
have : ∀ n, μ {x : α | C ≤ ‖(μ[g|ℱ n]) x‖₊} ≤ ENNReal.ofReal δ := by
intro n
have := mul_meas_ge_le_pow_snorm' μ one_ne_zero ENNReal.one_ne_top
- ((@stronglyMeasurable_condexp _ _ _ _ _ (ℱ n) _ μ g).mono (hℱ n)).aestronglyMeasurable C
+ ((stronglyMeasurable_condexp (m := ℱ n) (μ := μ) (f := g)).mono (hℱ n)).aestronglyMeasurable C
rw [ENNReal.one_toReal, ENNReal.rpow_one, ENNReal.rpow_one, mul_comm, ←
ENNReal.le_div_iff_mul_le (Or.inl (ENNReal.coe_ne_zero.2 hCpos.ne.symm))
(Or.inl ENNReal.coe_lt_top.ne)] at this
@@ -244,7 +244,7 @@ theorem condexp_stronglyMeasurable_simpleFunc_mul (hm : m ≤ m0) (f : @SimpleFu
@SimpleFunc.coe_const _ _ m, @SimpleFunc.coe_zero _ _ m, Set.piecewise_eq_indicator]
rw [this, this]
refine' (condexp_indicator (hg.smul c) hs).trans _
- filter_upwards [@condexp_smul α ℝ ℝ _ _ _ _ _ m m0 μ c g] with x hx
+ filter_upwards [condexp_smul (m := m) (m0 := m0) c g] with x hx
classical simp_rw [Set.indicator_apply, hx]
· have h_add := @SimpleFunc.coe_add _ _ m _ g₁ g₂
calc
MulZeroClass.
in mul_zero
/zero_mul
(#6682)
Search&replace MulZeroClass.mul_zero
-> mul_zero
, MulZeroClass.zero_mul
-> zero_mul
.
These were introduced by Mathport, as the full name of mul_zero
is actually MulZeroClass.mul_zero
(it's exported with the short name).
@@ -98,7 +98,7 @@ theorem integral_abs_condexp_le (f : α → ℝ) : ∫ x, |(μ[f|m]) x| ∂μ
by_cases hfint : Integrable f μ
swap
· simp only [condexp_undef hfint, Pi.zero_apply, abs_zero, integral_const, Algebra.id.smul_eq_mul,
- MulZeroClass.mul_zero]
+ mul_zero]
exact integral_nonneg fun x => abs_nonneg _
rw [integral_eq_lintegral_of_nonneg_ae, integral_eq_lintegral_of_nonneg_ae]
· rw [ENNReal.toReal_le_toReal] <;> simp_rw [← Real.norm_eq_abs, ofReal_norm_eq_coe_nnnorm]
@@ -123,7 +123,7 @@ theorem set_integral_abs_condexp_le {s : Set α} (hs : MeasurableSet[m] s) (f :
by_cases hfint : Integrable f μ
swap
· simp only [condexp_undef hfint, Pi.zero_apply, abs_zero, integral_const, Algebra.id.smul_eq_mul,
- MulZeroClass.mul_zero]
+ mul_zero]
exact integral_nonneg fun x => abs_nonneg _
have : ∫ x in s, |(μ[f|m]) x| ∂μ = ∫ x, |(μ[s.indicator f|m]) x| ∂μ := by
rw [← integral_indicator]
@@ -235,7 +235,7 @@ theorem condexp_stronglyMeasurable_simpleFunc_mul (hm : m ≤ m0) (f : @SimpleFu
ext1 x
by_cases hx : x ∈ s
· simp only [hx, Pi.mul_apply, Set.indicator_of_mem, Pi.smul_apply, Algebra.id.smul_eq_mul]; rfl
- · simp only [hx, Pi.mul_apply, Set.indicator_of_not_mem, not_false_iff, MulZeroClass.zero_mul]
+ · simp only [hx, Pi.mul_apply, Set.indicator_of_not_mem, not_false_iff, zero_mul]
apply @SimpleFunc.induction _ _ m _ (fun f => _)
(fun c s hs => ?_) (fun g₁ g₂ _ h_eq₁ h_eq₂ => ?_) f
· -- Porting note: if not classical, `DecidablePred fun x ↦ x ∈ s` cannot be synthesised
@@ -319,9 +319,9 @@ theorem condexp_stronglyMeasurable_mul_of_bound₀ (hm : m ≤ m0) [IsFiniteMeas
/-- Pull-out property of the conditional expectation. -/
theorem condexp_stronglyMeasurable_mul {f g : α → ℝ} (hf : StronglyMeasurable[m] f)
(hfg : Integrable (f * g) μ) (hg : Integrable g μ) : μ[f * g|m] =ᵐ[μ] f * μ[g|m] := by
- by_cases hm : m ≤ m0; swap; · simp_rw [condexp_of_not_le hm]; rw [MulZeroClass.mul_zero]
+ by_cases hm : m ≤ m0; swap; · simp_rw [condexp_of_not_le hm]; rw [mul_zero]
by_cases hμm : SigmaFinite (μ.trim hm)
- swap; · simp_rw [condexp_of_not_sigmaFinite hm hμm]; rw [MulZeroClass.mul_zero]
+ swap; · simp_rw [condexp_of_not_sigmaFinite hm hμm]; rw [mul_zero]
haveI : SigmaFinite (μ.trim hm) := hμm
obtain ⟨sets, sets_prop, h_univ⟩ := hf.exists_spanning_measurableSet_norm_le hm μ
simp_rw [forall_and] at sets_prop
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -35,7 +35,7 @@ open scoped NNReal ENNReal Topology BigOperators MeasureTheory
namespace MeasureTheory
-variable {α : Type _} {m m0 : MeasurableSpace α} {μ : Measure α}
+variable {α : Type*} {m m0 : MeasurableSpace α} {μ : Measure α}
theorem rnDeriv_ae_eq_condexp {hm : m ≤ m0} [hμm : SigmaFinite (μ.trim hm)] {f : α → ℝ}
(hf : Integrable f μ) :
@@ -183,7 +183,7 @@ theorem ae_bdd_condexp_of_ae_bdd {R : ℝ≥0} {f : α → ℝ} (hbdd : ∀ᵐ x
/-- Given an integrable function `g`, the conditional expectations of `g` with respect to
a sequence of sub-σ-algebras is uniformly integrable. -/
-theorem Integrable.uniformIntegrable_condexp {ι : Type _} [IsFiniteMeasure μ] {g : α → ℝ}
+theorem Integrable.uniformIntegrable_condexp {ι : Type*} [IsFiniteMeasure μ] {g : α → ℝ}
(hint : Integrable g μ) {ℱ : ι → MeasurableSpace α} (hℱ : ∀ i, ℱ i ≤ m0) :
UniformIntegrable (fun i => μ[g|ℱ i]) 1 μ := by
have hmeas : ∀ n, ∀ C, MeasurableSet {x | C ≤ ‖(μ[g|ℱ n]) x‖₊} := fun n C =>
@@ -2,16 +2,13 @@
Copyright (c) 2022 Rémy Degenne. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Rémy Degenne, Kexing Ying
-
-! This file was ported from Lean 3 source module measure_theory.function.conditional_expectation.real
-! leanprover-community/mathlib commit b2ff9a3d7a15fd5b0f060b135421d6a89a999c2f
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.MeasureTheory.Function.ConditionalExpectation.Indicator
import Mathlib.MeasureTheory.Function.UniformIntegrable
import Mathlib.MeasureTheory.Decomposition.RadonNikodym
+#align_import measure_theory.function.conditional_expectation.real from "leanprover-community/mathlib"@"b2ff9a3d7a15fd5b0f060b135421d6a89a999c2f"
+
/-!
# Conditional expectation of real-valued functions
@@ -184,7 +184,7 @@ theorem ae_bdd_condexp_of_ae_bdd {R : ℝ≥0} {f : α → ℝ} (hbdd : ∀ᵐ x
· exact hbdd
#align measure_theory.ae_bdd_condexp_of_ae_bdd MeasureTheory.ae_bdd_condexp_of_ae_bdd
-/-- Given a integrable function `g`, the conditional expectations of `g` with respect to
+/-- Given an integrable function `g`, the conditional expectations of `g` with respect to
a sequence of sub-σ-algebras is uniformly integrable. -/
theorem Integrable.uniformIntegrable_condexp {ι : Type _} [IsFiniteMeasure μ] {g : α → ℝ}
(hint : Integrable g μ) {ℱ : ι → MeasurableSpace α} (hℱ : ∀ i, ℱ i ≤ m0) :
The unported dependencies are
algebra.order.module
init.core
linear_algebra.free_module.finite.rank
algebra.order.monoid.cancel.defs
algebra.abs
algebra.group_power.lemmas
init.data.list.basic
linear_algebra.free_module.rank
algebra.order.monoid.cancel.basic
init.data.list.default
topology.subset_properties
init.logic
The following 1 dependencies have changed in mathlib3 since they were ported, which may complicate porting this file