-- Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean
theorem condExp_stronglyMeasurable_mul_of_bound (hm : m ≤ m0) [IsFiniteMeasure μ] {f g : α → ℝ}
    (hf : StronglyMeasurable[m] f) (hg : Integrable g μ) (c : ℝ) (hf_bound : ∀ᵐ x ∂μ, ‖f x‖ ≤ c) :
    μ[f * g|m] =ᵐ[μ] f * μ[g|m]

Proof state:
case pos
α : Type u_1
m m0 : MeasurableSpace α
μ : Measure α
hm : m ≤ m0
inst✝ : IsFiniteMeasure μ
f g : α → ℝ
hf : StronglyMeasurable f
hg : Integrable g μ
c : ℝ
hf_bound : ∀ᵐ (x : α) ∂μ, ‖f x‖ ≤ c
fs : ℕ → SimpleFunc α ℝ := hf.approxBounded c
hfs_tendsto : ∀ᵐ (x : α) ∂μ, Tendsto (fun x_1 => (fs x_1) x) atTop (𝓝 (f x))
hμ : μ = 0
⊢ μ[f * g|m] =ᶠ[ae μ] f * μ[g|m]

Tactic:
simp only [hμ, ae_zero]

Result:
case pos
α : Type u_1
m m0 : MeasurableSpace α
μ : Measure α
hm : m ≤ m0
inst✝ : IsFiniteMeasure μ
f g : α → ℝ
hf : StronglyMeasurable f
hg : Integrable g μ
c : ℝ
hf_bound : ∀ᵐ (x : α) ∂μ, ‖f x‖ ≤ c
fs : ℕ → SimpleFunc α ℝ := hf.approxBounded c
hfs_tendsto : ∀ᵐ (x : α) ∂μ, Tendsto (fun x_1 => (fs x_1) x) atTop (𝓝 (f x))
hμ : μ = 0
⊢ 0[f * g|m] =ᶠ[⊥] f * 0[g|m]

Proof state:
case neg
α : Type u_1
m m0 : MeasurableSpace α
μ : Measure α
hm : m ≤ m0
inst✝ : IsFiniteMeasure μ
f g : α → ℝ
hf : StronglyMeasurable f
hg : Integrable g μ
c : ℝ
hf_bound : ∀ᵐ (x : α) ∂μ, ‖f x‖ ≤ c
fs : ℕ → SimpleFunc α ℝ := hf.approxBounded c
hfs_tendsto : ∀ᵐ (x : α) ∂μ, Tendsto (fun x_1 => (fs x_1) x) atTop (𝓝 (f x))
hμ : ¬μ = 0
⊢ μ[f * g|m] =ᶠ[ae μ] f * μ[g|m]

Tactic:
have : (ae μ).NeBot := ae_neBot.2 hμ

Result:
case neg
α : Type u_1
m m0 : MeasurableSpace α
μ : Measure α
hm : m ≤ m0
inst✝ : IsFiniteMeasure μ
f g : α → ℝ
hf : StronglyMeasurable f
hg : Integrable g μ
c : ℝ
hf_bound : ∀ᵐ (x : α) ∂μ, ‖f x‖ ≤ c
fs : ℕ → SimpleFunc α ℝ := hf.approxBounded c
hfs_tendsto : ∀ᵐ (x : α) ∂μ, Tendsto (fun x_1 => (fs x_1) x) atTop (𝓝 (f x))
hμ : ¬μ = 0
this : (ae μ).NeBot
⊢ μ[f * g|m] =ᶠ[ae μ] f * μ[g|m]

Proof state:
case neg.refine_9
α : Type u_1
m m0 : MeasurableSpace α
μ : Measure α
hm : m ≤ m0
inst✝ : IsFiniteMeasure μ
f g : α → ℝ
hf : StronglyMeasurable f
hg : Integrable g μ
c : ℝ
hf_bound : ∀ᵐ (x : α) ∂μ, ‖f x‖ ≤ c
fs : ℕ → SimpleFunc α ℝ := hf.approxBounded c
hfs_tendsto : ∀ᵐ (x : α) ∂μ, Tendsto (fun x_1 => (fs x_1) x) atTop (𝓝 (f x))
hμ : ¬μ = 0
this✝ : (ae μ).NeBot
hc : 0 ≤ c
hfs_bound : ∀ (n : ℕ) (x : α), ‖(fs n) x‖ ≤ c
this : μ[f * μ[g|m]|m] = f * μ[g|m]
n : ℕ
⊢ ⇑(fs n) * μ[g|m] =ᶠ[ae μ] μ[fun x => (⇑(fs n) * μ[g|m]) x|m]

Tactic:
rw [condExp_of_stronglyMeasurable hm
  ((SimpleFunc.stronglyMeasurable _).mul stronglyMeasurable_condExp) _]

Result:
α : Type u_1
m m0 : MeasurableSpace α
μ : Measure α
hm : m ≤ m0
inst✝ : IsFiniteMeasure μ
f g : α → ℝ
hf : StronglyMeasurable f
hg : Integrable g μ
c : ℝ
hf_bound : ∀ᵐ (x : α) ∂μ, ‖f x‖ ≤ c
fs : ℕ → SimpleFunc α ℝ := hf.approxBounded c
hfs_tendsto : ∀ᵐ (x : α) ∂μ, Tendsto (fun x_1 => (fs x_1) x) atTop (𝓝 (f x))
hμ : ¬μ = 0
this✝ : (ae μ).NeBot
hc : 0 ≤ c
hfs_bound : ∀ (n : ℕ) (x : α), ‖(fs n) x‖ ≤ c
this : μ[f * μ[g|m]|m] = f * μ[g|m]
n : ℕ
⊢ Integrable (⇑(fs n) * μ[g|m]) μ

Proof state:
case neg.refine_6
α : Type u_1
m m0 : MeasurableSpace α
μ : Measure α
hm : m ≤ m0
inst✝ : IsFiniteMeasure μ
f g : α → ℝ
hf : StronglyMeasurable f
hg : Integrable g μ
c : ℝ
hf_bound : ∀ᵐ (x : α) ∂μ, ‖f x‖ ≤ c
fs : ℕ → SimpleFunc α ℝ := hf.approxBounded c
hfs_tendsto : ∀ᵐ (x : α) ∂μ, Tendsto (fun x_1 => (fs x_1) x) atTop (𝓝 (f x))
hμ : ¬μ = 0
this✝ : (ae μ).NeBot
hc : 0 ≤ c
hfs_bound : ∀ (n : ℕ) (x : α), ‖(fs n) x‖ ≤ c
this : μ[f * μ[g|m]|m] = f * μ[g|m]
⊢ Integrable (fun x => c * ‖(μ[g|m]) x‖) μ

Tactic:
fun_prop

Result:
no goals