Theorem: MeasureTheory.Measure.rnDeriv_withDensity_left
File: Mathlib/MeasureTheory/Decomposition/RadonNikodym.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝¹ ν✝¹ μ✝ ν✝ : Measure α
f : α → ℝ≥0∞
μ ν : Measure α
inst✝¹ : SigmaFinite μ
inst✝ : SigmaFinite ν
hfν : AEMeasurable f ν
hf_ne_top : ∀ᵐ (x : α) ∂μ, f x ≠ ⊤
⊢ (μ.withDensity f).rnDeriv ν =ᶠ[ae ν] fun x => f x * μ.rnDeriv ν x
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝¹ ν✝¹ μ✝ ν✝ : Measure α
f : α → ℝ≥0∞
μ ν : Measure α
inst✝¹ : SigmaFinite μ
inst✝ : SigmaFinite ν
hfν : AEMeasurable f ν
hf_ne_top : ∀ᵐ (x : α) ∂μ, f x ≠ ⊤
μ' : Measure α := ν.withDensity (μ.rnDeriv ν)
⊢ (μ.withDensity f).rnDeriv ν =ᶠ[ae ν] fun x => f x * μ.rnDeriv ν x
tactic: let μ' := ν.withDensity (μ.rnDeriv ν)
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝¹ ν✝¹ μ✝ ν✝ : Measure α
f : α → ℝ≥0∞
μ ν : Measure α
inst✝¹ : SigmaFinite μ
inst✝ : SigmaFinite ν
hfν : AEMeasurable f ν
hf_ne_top : ∀ᵐ (x : α) ∂μ, f x ≠ ⊤
μ' : Measure α := ν.withDensity (μ.rnDeriv ν)
⊢ (μ.withDensity f).rnDeriv ν =ᶠ[ae ν] fun x => f x * μ.rnDeriv ν x
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝¹ ν✝¹ μ✝ ν✝ : Measure α
f : α → ℝ≥0∞
μ ν : Measure α
inst✝¹ : SigmaFinite μ
inst✝ : SigmaFinite ν
hfν : AEMeasurable f ν
hf_ne_top : ∀ᵐ (x : α) ∂μ, f x ≠ ⊤
μ' : Measure α := ν.withDensity (μ.rnDeriv ν)
hμ'ν : μ' ≪ ν
⊢ (μ.withDensity f).rnDeriv ν =ᶠ[ae ν] fun x => f x * μ.rnDeriv ν x
tactic: have hμ'ν : μ' ≪ ν := withDensity_absolutelyContinuous _ _
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝¹ ν✝¹ μ✝ ν✝ : Measure α
f : α → ℝ≥0∞
μ ν : Measure α
inst✝¹ : SigmaFinite μ
inst✝ : SigmaFinite ν
hfν : AEMeasurable f ν
hf_ne_top : ∀ᵐ (x : α) ∂μ, f x ≠ ⊤
μ' : Measure α := ν.withDensity (μ.rnDeriv ν)
hμ'ν : μ' ≪ ν
⊢ (μ.withDensity f).rnDeriv ν =ᶠ[ae ν] fun x => f x * μ.rnDeriv ν x
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝¹ ν✝¹ μ✝ ν✝ : Measure α
f : α → ℝ≥0∞
μ ν : Measure α
inst✝¹ : SigmaFinite μ
inst✝ : SigmaFinite ν
hfν : AEMeasurable f ν
hf_ne_top : ∀ᵐ (x : α) ∂μ, f x ≠ ⊤
μ' : Measure α := ν.withDensity (μ.rnDeriv ν)
hμ'ν : μ' ≪ ν
h : (μ'.withDensity f).rnDeriv ν =ᶠ[ae ν] fun x => f x * μ'.rnDeriv ν x
⊢ (μ.withDensity f).rnDeriv ν =ᶠ[ae ν] fun x => f x * μ.rnDeriv ν x
tactic: have h := rnDeriv_withDensity_left_of_absolutelyContinuous hμ'ν hfν
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝¹ ν✝¹ μ✝ ν✝ : Measure α
f : α → ℝ≥0∞
μ ν : Measure α
inst✝¹ : SigmaFinite μ
inst✝ : SigmaFinite ν
hfν : AEMeasurable f ν
hf_ne_top : ∀ᵐ (x : α) ∂μ, f x ≠ ⊤
μ' : Measure α := ν.withDensity (μ.rnDeriv ν)
hμ'ν : μ' ≪ ν
h : (μ'.withDensity f).rnDeriv ν =ᶠ[ae ν] fun x => f x * μ'.rnDeriv ν x
⊢ (μ.withDensity f).rnDeriv ν =ᶠ[ae ν] fun x => f x * μ.rnDeriv ν x
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝¹ ν✝¹ μ✝ ν✝ : Measure α
f : α → ℝ≥0∞
μ ν : Measure α
inst✝¹ : SigmaFinite μ
inst✝ : SigmaFinite ν
hfν : AEMeasurable f ν
hf_ne_top : ∀ᵐ (x : α) ∂μ, f x ≠ ⊤
μ' : Measure α := ν.withDensity (μ.rnDeriv ν)
hμ'ν : μ' ≪ ν
h : (μ'.withDensity f).rnDeriv ν =ᶠ[ae ν] fun x => f x * μ'.rnDeriv ν x
h1 : μ'.rnDeriv ν =ᶠ[ae ν] μ.rnDeriv ν
⊢ (μ.withDensity f).rnDeriv ν =ᶠ[ae ν] fun x => f x * μ.rnDeriv ν x
tactic: have h1 : μ'.rnDeriv ν =ᵐ[ν] μ.rnDeriv ν :=
    Measure.rnDeriv_withDensity _ (Measure.measurable_rnDeriv _ _)
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝¹ ν✝¹ μ✝ ν✝ : Measure α
f : α → ℝ≥0∞
μ ν : Measure α
inst✝¹ : SigmaFinite μ
inst✝ : SigmaFinite ν
hfν : AEMeasurable f ν
hf_ne_top : ∀ᵐ (x : α) ∂μ, f x ≠ ⊤
μ' : Measure α := ν.withDensity (μ.rnDeriv ν)
hμ'ν : μ' ≪ ν
h : (μ'.withDensity f).rnDeriv ν =ᶠ[ae ν] fun x => f x * μ'.rnDeriv ν x
h1 : μ'.rnDeriv ν =ᶠ[ae ν] μ.rnDeriv ν
⊢ (μ.withDensity f).rnDeriv ν =ᶠ[ae ν] fun x => f x * μ.rnDeriv ν x
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝¹ ν✝¹ μ✝ ν✝ : Measure α
f : α → ℝ≥0∞
μ ν : Measure α
inst✝¹ : SigmaFinite μ
inst✝ : SigmaFinite ν
hfν : AEMeasurable f ν
hf_ne_top : ∀ᵐ (x : α) ∂μ, f x ≠ ⊤
μ' : Measure α := ν.withDensity (μ.rnDeriv ν)
hμ'ν : μ' ≪ ν
h : (μ'.withDensity f).rnDeriv ν =ᶠ[ae ν] fun x => f x * μ'.rnDeriv ν x
h1 : μ'.rnDeriv ν =ᶠ[ae ν] μ.rnDeriv ν
h2 : (μ'.withDensity f).rnDeriv ν =ᶠ[ae ν] (μ.withDensity f).rnDeriv ν
⊢ (μ.withDensity f).rnDeriv ν =ᶠ[ae ν] fun x => f x * μ.rnDeriv ν x
tactic: have h2 : (μ'.withDensity f).rnDeriv ν =ᵐ[ν] (μ.withDensity f).rnDeriv ν := by
    exact rnDeriv_withDensity_withDensity_rnDeriv_left μ ν hf_ne_top
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝¹ ν✝¹ μ✝ ν✝ : Measure α
f : α → ℝ≥0∞
μ ν : Measure α
inst✝¹ : SigmaFinite μ
inst✝ : SigmaFinite ν
hfν : AEMeasurable f ν
hf_ne_top : ∀ᵐ (x : α) ∂μ, f x ≠ ⊤
μ' : Measure α := ν.withDensity (μ.rnDeriv ν)
hμ'ν : μ' ≪ ν
h : (μ'.withDensity f).rnDeriv ν =ᶠ[ae ν] fun x => f x * μ'.rnDeriv ν x
h1 : μ'.rnDeriv ν =ᶠ[ae ν] μ.rnDeriv ν
h2 : (μ'.withDensity f).rnDeriv ν =ᶠ[ae ν] (μ.withDensity f).rnDeriv ν
⊢ (μ.withDensity f).rnDeriv ν =ᶠ[ae ν] fun x => f x * μ.rnDeriv ν x
state_after: case h
α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝¹ ν✝¹ μ✝ ν✝ : Measure α
f : α → ℝ≥0∞
μ ν : Measure α
inst✝¹ : SigmaFinite μ
inst✝ : SigmaFinite ν
hfν : AEMeasurable f ν
hf_ne_top : ∀ᵐ (x : α) ∂μ, f x ≠ ⊤
μ' : Measure α := ν.withDensity (μ.rnDeriv ν)
hμ'ν : μ' ≪ ν
h : (μ'.withDensity f).rnDeriv ν =ᶠ[ae ν] fun x => f x * μ'.rnDeriv ν x
h1 : μ'.rnDeriv ν =ᶠ[ae ν] μ.rnDeriv ν
h2 : (μ'.withDensity f).rnDeriv ν =ᶠ[ae ν] (μ.withDensity f).rnDeriv ν
x : α
hx : (μ'.withDensity f).rnDeriv ν x = f x * μ'.rnDeriv ν x
hx1 : μ'.rnDeriv ν x = μ.rnDeriv ν x
hx2 : (μ'.withDensity f).rnDeriv ν x = (μ.withDensity f).rnDeriv ν x
⊢ (μ.withDensity f).rnDeriv ν x = f x * μ.rnDeriv ν x
tactic: filter_upwards [h, h1, h2] with x hx hx1 hx2
state_before: case h
α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝¹ ν✝¹ μ✝ ν✝ : Measure α
f : α → ℝ≥0∞
μ ν : Measure α
inst✝¹ : SigmaFinite μ
inst✝ : SigmaFinite ν
hfν : AEMeasurable f ν
hf_ne_top : ∀ᵐ (x : α) ∂μ, f x ≠ ⊤
μ' : Measure α := ν.withDensity (μ.rnDeriv ν)
hμ'ν : μ' ≪ ν
h : (μ'.withDensity f).rnDeriv ν =ᶠ[ae ν] fun x => f x * μ'.rnDeriv ν x
h1 : μ'.rnDeriv ν =ᶠ[ae ν] μ.rnDeriv ν
h2 : (μ'.withDensity f).rnDeriv ν =ᶠ[ae ν] (μ.withDensity f).rnDeriv ν
x : α
hx : (μ'.withDensity f).rnDeriv ν x = f x * μ'.rnDeriv ν x
hx1 : μ'.rnDeriv ν x = μ.rnDeriv ν x
hx2 : (μ'.withDensity f).rnDeriv ν x = (μ.withDensity f).rnDeriv ν x
⊢ (μ.withDensity f).rnDeriv ν x = f x * μ.rnDeriv ν x
state_after: no goals
tactic: rw [← hx2, hx, hx1]