Theorem: MeasureTheory.withDensity_densitytoFinite
File: Mathlib/MeasureTheory/Measure/WithDensityFinite.lean

Proof steps:
state_before: α : Type u_1
mα : MeasurableSpace α
μ✝ μ : Measure α
inst✝ : SFinite μ
⊢ μ.toFinite.withDensity μ.densityToFinite = μ
state_after: α : Type u_1
mα : MeasurableSpace α
μ✝ μ : Measure α
inst✝ : SFinite μ
this :
  (μ.toFinite.withDensity fun a => ∑' (n : ℕ), (sFiniteSeq μ n).rnDeriv μ.toFinite a) =
    μ.toFinite.withDensity (∑' (n : ℕ), (sFiniteSeq μ n).rnDeriv μ.toFinite)
⊢ μ.toFinite.withDensity μ.densityToFinite = μ
tactic: have : (μ.toFinite.withDensity fun a ↦ ∑' n, (sFiniteSeq μ n).rnDeriv μ.toFinite a)
      = μ.toFinite.withDensity (∑' n, (sFiniteSeq μ n).rnDeriv μ.toFinite) := by
    congr with a
    rw [ENNReal.tsum_apply]
state_before: α : Type u_1
mα : MeasurableSpace α
μ✝ μ : Measure α
inst✝ : SFinite μ
this :
  (μ.toFinite.withDensity fun a => ∑' (n : ℕ), (sFiniteSeq μ n).rnDeriv μ.toFinite a) =
    μ.toFinite.withDensity (∑' (n : ℕ), (sFiniteSeq μ n).rnDeriv μ.toFinite)
⊢ μ.toFinite.withDensity μ.densityToFinite = μ
state_after: α : Type u_1
mα : MeasurableSpace α
μ✝ μ : Measure α
inst✝ : SFinite μ
this :
  (μ.toFinite.withDensity fun a => ∑' (n : ℕ), (sFiniteSeq μ n).rnDeriv μ.toFinite a) =
    μ.toFinite.withDensity (∑' (n : ℕ), (sFiniteSeq μ n).rnDeriv μ.toFinite)
⊢ (Measure.sum fun n => μ.toFinite.withDensity ((sFiniteSeq μ n).rnDeriv μ.toFinite)) = μ
tactic: rw [densityToFinite_def, this, withDensity_tsum (fun i ↦ Measure.measurable_rnDeriv _ _)]
state_before: α : Type u_1
mα : MeasurableSpace α
μ✝ μ : Measure α
inst✝ : SFinite μ
this :
  (μ.toFinite.withDensity fun a => ∑' (n : ℕ), (sFiniteSeq μ n).rnDeriv μ.toFinite a) =
    μ.toFinite.withDensity (∑' (n : ℕ), (sFiniteSeq μ n).rnDeriv μ.toFinite)
⊢ (Measure.sum fun n => μ.toFinite.withDensity ((sFiniteSeq μ n).rnDeriv μ.toFinite)) = μ
state_after: α : Type u_1
mα : MeasurableSpace α
μ✝ μ : Measure α
inst✝ : SFinite μ
this :
  (μ.toFinite.withDensity fun a => ∑' (n : ℕ), (sFiniteSeq μ n).rnDeriv μ.toFinite a) =
    μ.toFinite.withDensity (∑' (n : ℕ), (sFiniteSeq μ n).rnDeriv μ.toFinite)
⊢ (Measure.sum fun n => μ.toFinite.withDensity ((sFiniteSeq μ n).rnDeriv μ.toFinite)) = Measure.sum (sFiniteSeq μ)
tactic: conv_rhs => rw [← sum_sFiniteSeq μ]
state_before: α : Type u_1
mα : MeasurableSpace α
μ✝ μ : Measure α
inst✝ : SFinite μ
this :
  (μ.toFinite.withDensity fun a => ∑' (n : ℕ), (sFiniteSeq μ n).rnDeriv μ.toFinite a) =
    μ.toFinite.withDensity (∑' (n : ℕ), (sFiniteSeq μ n).rnDeriv μ.toFinite)
⊢ (Measure.sum fun n => μ.toFinite.withDensity ((sFiniteSeq μ n).rnDeriv μ.toFinite)) = Measure.sum (sFiniteSeq μ)
state_after: case e_f.h.h
α : Type u_1
mα : MeasurableSpace α
μ✝ μ : Measure α
inst✝ : SFinite μ
this :
  (μ.toFinite.withDensity fun a => ∑' (n : ℕ), (sFiniteSeq μ n).rnDeriv μ.toFinite a) =
    μ.toFinite.withDensity (∑' (n : ℕ), (sFiniteSeq μ n).rnDeriv μ.toFinite)
n : ℕ
s✝ : Set α
a✝ : MeasurableSet s✝
⊢ (μ.toFinite.withDensity ((sFiniteSeq μ n).rnDeriv μ.toFinite)) s✝ = (sFiniteSeq μ n) s✝
tactic: congr with n
state_before: case e_f.h.h
α : Type u_1
mα : MeasurableSpace α
μ✝ μ : Measure α
inst✝ : SFinite μ
this :
  (μ.toFinite.withDensity fun a => ∑' (n : ℕ), (sFiniteSeq μ n).rnDeriv μ.toFinite a) =
    μ.toFinite.withDensity (∑' (n : ℕ), (sFiniteSeq μ n).rnDeriv μ.toFinite)
n : ℕ
s✝ : Set α
a✝ : MeasurableSet s✝
⊢ (μ.toFinite.withDensity ((sFiniteSeq μ n).rnDeriv μ.toFinite)) s✝ = (sFiniteSeq μ n) s✝
state_after: case e_f.h.h.h
α : Type u_1
mα : MeasurableSpace α
μ✝ μ : Measure α
inst✝ : SFinite μ
this :
  (μ.toFinite.withDensity fun a => ∑' (n : ℕ), (sFiniteSeq μ n).rnDeriv μ.toFinite a) =
    μ.toFinite.withDensity (∑' (n : ℕ), (sFiniteSeq μ n).rnDeriv μ.toFinite)
n : ℕ
s✝ : Set α
a✝ : MeasurableSet s✝
⊢ sFiniteSeq μ n ≪ μ.toFinite
tactic: rw [Measure.withDensity_rnDeriv_eq]
state_before: case e_f.h.h.h
α : Type u_1
mα : MeasurableSpace α
μ✝ μ : Measure α
inst✝ : SFinite μ
this :
  (μ.toFinite.withDensity fun a => ∑' (n : ℕ), (sFiniteSeq μ n).rnDeriv μ.toFinite a) =
    μ.toFinite.withDensity (∑' (n : ℕ), (sFiniteSeq μ n).rnDeriv μ.toFinite)
n : ℕ
s✝ : Set α
a✝ : MeasurableSet s✝
⊢ sFiniteSeq μ n ≪ μ.toFinite
state_after: no goals
tactic: exact sFiniteSeq_absolutelyContinuous_toFinite μ n