Theorem: MeasureTheory.condexp_stronglyMeasurable_mul₀
File: Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean

Proof steps:
state_before: α : Type u_1
m m0 : MeasurableSpace α
μ : Measure α
f g : α → ℝ
hf : AEStronglyMeasurable' m f μ
hfg : Integrable (f * g) μ
hg : Integrable g μ
⊢ μ[f * g|m] =ᶠ[ae μ] f * μ[g|m]
state_after: α : Type u_1
m m0 : MeasurableSpace α
μ : Measure α
f g : α → ℝ
hf : AEStronglyMeasurable' m f μ
hfg : Integrable (f * g) μ
hg : Integrable g μ
this : μ[f * g|m] =ᶠ[ae μ] μ[AEStronglyMeasurable'.mk f hf * g|m]
⊢ μ[f * g|m] =ᶠ[ae μ] f * μ[g|m]
tactic: have : μ[f * g|m] =ᵐ[μ] μ[hf.mk f * g|m] :=
    condexp_congr_ae (hf.ae_eq_mk.mul EventuallyEq.rfl)
state_before: α : Type u_1
m m0 : MeasurableSpace α
μ : Measure α
f g : α → ℝ
hf : AEStronglyMeasurable' m f μ
hfg : Integrable (f * g) μ
hg : Integrable g μ
this : μ[f * g|m] =ᶠ[ae μ] μ[AEStronglyMeasurable'.mk f hf * g|m]
⊢ μ[f * g|m] =ᶠ[ae μ] f * μ[g|m]
state_after: α : Type u_1
m m0 : MeasurableSpace α
μ : Measure α
f g : α → ℝ
hf : AEStronglyMeasurable' m f μ
hfg : Integrable (f * g) μ
hg : Integrable g μ
this : μ[f * g|m] =ᶠ[ae μ] μ[AEStronglyMeasurable'.mk f hf * g|m]
⊢ μ[AEStronglyMeasurable'.mk f hf * g|m] =ᶠ[ae μ] f * μ[g|m]
tactic: refine this.trans ?_
state_before: α : Type u_1
m m0 : MeasurableSpace α
μ : Measure α
f g : α → ℝ
hf : AEStronglyMeasurable' m f μ
hfg : Integrable (f * g) μ
hg : Integrable g μ
this : μ[f * g|m] =ᶠ[ae μ] μ[AEStronglyMeasurable'.mk f hf * g|m]
⊢ μ[AEStronglyMeasurable'.mk f hf * g|m] =ᶠ[ae μ] f * μ[g|m]
state_after: α : Type u_1
m m0 : MeasurableSpace α
μ : Measure α
f g : α → ℝ
hf : AEStronglyMeasurable' m f μ
hfg : Integrable (f * g) μ
hg : Integrable g μ
this✝ : μ[f * g|m] =ᶠ[ae μ] μ[AEStronglyMeasurable'.mk f hf * g|m]
this : f * μ[g|m] =ᶠ[ae μ] AEStronglyMeasurable'.mk f hf * μ[g|m]
⊢ μ[AEStronglyMeasurable'.mk f hf * g|m] =ᶠ[ae μ] f * μ[g|m]
tactic: have : f * μ[g|m] =ᵐ[μ] hf.mk f * μ[g|m] := hf.ae_eq_mk.mul EventuallyEq.rfl
state_before: α : Type u_1
m m0 : MeasurableSpace α
μ : Measure α
f g : α → ℝ
hf : AEStronglyMeasurable' m f μ
hfg : Integrable (f * g) μ
hg : Integrable g μ
this✝ : μ[f * g|m] =ᶠ[ae μ] μ[AEStronglyMeasurable'.mk f hf * g|m]
this : f * μ[g|m] =ᶠ[ae μ] AEStronglyMeasurable'.mk f hf * μ[g|m]
⊢ μ[AEStronglyMeasurable'.mk f hf * g|m] =ᶠ[ae μ] f * μ[g|m]
state_after: α : Type u_1
m m0 : MeasurableSpace α
μ : Measure α
f g : α → ℝ
hf : AEStronglyMeasurable' m f μ
hfg : Integrable (f * g) μ
hg : Integrable g μ
this✝ : μ[f * g|m] =ᶠ[ae μ] μ[AEStronglyMeasurable'.mk f hf * g|m]
this : f * μ[g|m] =ᶠ[ae μ] AEStronglyMeasurable'.mk f hf * μ[g|m]
⊢ Integrable (AEStronglyMeasurable'.mk f hf * g) μ
tactic: refine (condexp_stronglyMeasurable_mul hf.stronglyMeasurable_mk ?_ hg).trans this.symm
state_before: α : Type u_1
m m0 : MeasurableSpace α
μ : Measure α
f g : α → ℝ
hf : AEStronglyMeasurable' m f μ
hfg : Integrable (f * g) μ
hg : Integrable g μ
this✝ : μ[f * g|m] =ᶠ[ae μ] μ[AEStronglyMeasurable'.mk f hf * g|m]
this : f * μ[g|m] =ᶠ[ae μ] AEStronglyMeasurable'.mk f hf * μ[g|m]
⊢ Integrable (AEStronglyMeasurable'.mk f hf * g) μ
state_after: α : Type u_1
m m0 : MeasurableSpace α
μ : Measure α
f g : α → ℝ
hf : AEStronglyMeasurable' m f μ
hfg : Integrable (f * g) μ
hg : Integrable g μ
this✝ : μ[f * g|m] =ᶠ[ae μ] μ[AEStronglyMeasurable'.mk f hf * g|m]
this : f * μ[g|m] =ᶠ[ae μ] AEStronglyMeasurable'.mk f hf * μ[g|m]
⊢ f * g =ᶠ[ae μ] AEStronglyMeasurable'.mk f hf * g
tactic: refine (integrable_congr ?_).mp hfg
state_before: α : Type u_1
m m0 : MeasurableSpace α
μ : Measure α
f g : α → ℝ
hf : AEStronglyMeasurable' m f μ
hfg : Integrable (f * g) μ
hg : Integrable g μ
this✝ : μ[f * g|m] =ᶠ[ae μ] μ[AEStronglyMeasurable'.mk f hf * g|m]
this : f * μ[g|m] =ᶠ[ae μ] AEStronglyMeasurable'.mk f hf * μ[g|m]
⊢ f * g =ᶠ[ae μ] AEStronglyMeasurable'.mk f hf * g
state_after: no goals
tactic: exact hf.ae_eq_mk.mul EventuallyEq.rfl