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

Proof steps:
state_before: α : Type u_1
m m0 : MeasurableSpace α
μ : Measure α
hm : m ≤ m0
inst✝ : IsFiniteMeasure μ
f g : α → ℝ
hf : AEStronglyMeasurable' m f μ
hg : Integrable g μ
c : ℝ
hf_bound : ∀ᵐ (x : α) ∂μ, ‖f x‖ ≤ c
⊢ μ[f * g|m] =ᶠ[ae μ] f * μ[g|m]
state_after: α : Type u_1
m m0 : MeasurableSpace α
μ : Measure α
hm : m ≤ m0
inst✝ : IsFiniteMeasure μ
f g : α → ℝ
hf : AEStronglyMeasurable' m f μ
hg : Integrable g μ
c : ℝ
hf_bound : ∀ᵐ (x : α) ∂μ, ‖f x‖ ≤ c
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 (EventuallyEq.mul hf.ae_eq_mk EventuallyEq.rfl)
state_before: α : Type u_1
m m0 : MeasurableSpace α
μ : Measure α
hm : m ≤ m0
inst✝ : IsFiniteMeasure μ
f g : α → ℝ
hf : AEStronglyMeasurable' m f μ
hg : Integrable g μ
c : ℝ
hf_bound : ∀ᵐ (x : α) ∂μ, ‖f x‖ ≤ c
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 α
hm : m ≤ m0
inst✝ : IsFiniteMeasure μ
f g : α → ℝ
hf : AEStronglyMeasurable' m f μ
hg : Integrable g μ
c : ℝ
hf_bound : ∀ᵐ (x : α) ∂μ, ‖f x‖ ≤ c
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 α
hm : m ≤ m0
inst✝ : IsFiniteMeasure μ
f g : α → ℝ
hf : AEStronglyMeasurable' m f μ
hg : Integrable g μ
c : ℝ
hf_bound : ∀ᵐ (x : α) ∂μ, ‖f x‖ ≤ c
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 α
hm : m ≤ m0
inst✝ : IsFiniteMeasure μ
f g : α → ℝ
hf : AEStronglyMeasurable' m f μ
hg : Integrable g μ
c : ℝ
hf_bound : ∀ᵐ (x : α) ∂μ, ‖f x‖ ≤ c
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] := EventuallyEq.mul hf.ae_eq_mk EventuallyEq.rfl
state_before: α : Type u_1
m m0 : MeasurableSpace α
μ : Measure α
hm : m ≤ m0
inst✝ : IsFiniteMeasure μ
f g : α → ℝ
hf : AEStronglyMeasurable' m f μ
hg : Integrable g μ
c : ℝ
hf_bound : ∀ᵐ (x : α) ∂μ, ‖f x‖ ≤ c
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 α
hm : m ≤ m0
inst✝ : IsFiniteMeasure μ
f g : α → ℝ
hf : AEStronglyMeasurable' m f μ
hg : Integrable g μ
c : ℝ
hf_bound : ∀ᵐ (x : α) ∂μ, ‖f x‖ ≤ c
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 μ] AEStronglyMeasurable'.mk f hf * μ[g|m]
tactic: refine EventuallyEq.trans ?_ this.symm
state_before: α : Type u_1
m m0 : MeasurableSpace α
μ : Measure α
hm : m ≤ m0
inst✝ : IsFiniteMeasure μ
f g : α → ℝ
hf : AEStronglyMeasurable' m f μ
hg : Integrable g μ
c : ℝ
hf_bound : ∀ᵐ (x : α) ∂μ, ‖f x‖ ≤ c
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 μ] AEStronglyMeasurable'.mk f hf * μ[g|m]
state_after: α : Type u_1
m m0 : MeasurableSpace α
μ : Measure α
hm : m ≤ m0
inst✝ : IsFiniteMeasure μ
f g : α → ℝ
hf : AEStronglyMeasurable' m f μ
hg : Integrable g μ
c : ℝ
hf_bound : ∀ᵐ (x : α) ∂μ, ‖f x‖ ≤ c
this✝ : μ[f * g|m] =ᶠ[ae μ] μ[AEStronglyMeasurable'.mk f hf * g|m]
this : f * μ[g|m] =ᶠ[ae μ] AEStronglyMeasurable'.mk f hf * μ[g|m]
⊢ ∀ᵐ (x : α) ∂μ, ‖AEStronglyMeasurable'.mk f hf x‖ ≤ c
tactic: refine condexp_stronglyMeasurable_mul_of_bound hm hf.stronglyMeasurable_mk hg c ?_
state_before: α : Type u_1
m m0 : MeasurableSpace α
μ : Measure α
hm : m ≤ m0
inst✝ : IsFiniteMeasure μ
f g : α → ℝ
hf : AEStronglyMeasurable' m f μ
hg : Integrable g μ
c : ℝ
hf_bound : ∀ᵐ (x : α) ∂μ, ‖f x‖ ≤ c
this✝ : μ[f * g|m] =ᶠ[ae μ] μ[AEStronglyMeasurable'.mk f hf * g|m]
this : f * μ[g|m] =ᶠ[ae μ] AEStronglyMeasurable'.mk f hf * μ[g|m]
⊢ ∀ᵐ (x : α) ∂μ, ‖AEStronglyMeasurable'.mk f hf x‖ ≤ c
state_after: case h
α : Type u_1
m m0 : MeasurableSpace α
μ : Measure α
hm : m ≤ m0
inst✝ : IsFiniteMeasure μ
f g : α → ℝ
hf : AEStronglyMeasurable' m f μ
hg : Integrable g μ
c : ℝ
hf_bound : ∀ᵐ (x : α) ∂μ, ‖f x‖ ≤ c
this✝ : μ[f * g|m] =ᶠ[ae μ] μ[AEStronglyMeasurable'.mk f hf * g|m]
this : f * μ[g|m] =ᶠ[ae μ] AEStronglyMeasurable'.mk f hf * μ[g|m]
x : α
hxc : ‖f x‖ ≤ c
hx_eq : f x = AEStronglyMeasurable'.mk f hf x
⊢ ‖AEStronglyMeasurable'.mk f hf x‖ ≤ c
tactic: filter_upwards [hf_bound, hf.ae_eq_mk] with x hxc hx_eq
state_before: case h
α : Type u_1
m m0 : MeasurableSpace α
μ : Measure α
hm : m ≤ m0
inst✝ : IsFiniteMeasure μ
f g : α → ℝ
hf : AEStronglyMeasurable' m f μ
hg : Integrable g μ
c : ℝ
hf_bound : ∀ᵐ (x : α) ∂μ, ‖f x‖ ≤ c
this✝ : μ[f * g|m] =ᶠ[ae μ] μ[AEStronglyMeasurable'.mk f hf * g|m]
this : f * μ[g|m] =ᶠ[ae μ] AEStronglyMeasurable'.mk f hf * μ[g|m]
x : α
hxc : ‖f x‖ ≤ c
hx_eq : f x = AEStronglyMeasurable'.mk f hf x
⊢ ‖AEStronglyMeasurable'.mk f hf x‖ ≤ c
state_after: no goals
tactic: rwa [← hx_eq]