Theorem: VitaliFamily.ae_tendsto_rnDeriv
File: Mathlib/MeasureTheory/Covering/Differentiation.lean

tactic: let t := μ.withDensity (ρ.rnDeriv μ)
state_before: α : Type u_1
inst✝⁵ : MetricSpace α
m0 : MeasurableSpace α
μ : MeasureTheory.Measure α
v : VitaliFamily μ
E : Type ?u.5900434
inst✝⁴ : NormedAddCommGroup E
inst✝³ : SecondCountableTopology α
inst✝² : BorelSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
ρ : MeasureTheory.Measure α
inst✝ : IsLocallyFiniteMeasure ρ
⊢ ∀ᵐ (x : α) ∂μ, Tendsto (fun a => ↑↑ρ a / ↑↑μ a) (filterAt v x) (𝓝 (rnDeriv ρ μ x))

tactic: have eq_add : ρ = ρ.singularPart μ + t := haveLebesgueDecomposition_add _ _
state_before: α : Type u_1
inst✝⁵ : MetricSpace α
m0 : MeasurableSpace α
μ : MeasureTheory.Measure α
v : VitaliFamily μ
E : Type ?u.5900434
inst✝⁴ : NormedAddCommGroup E
inst✝³ : SecondCountableTopology α
inst✝² : BorelSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
ρ : MeasureTheory.Measure α
inst✝ : IsLocallyFiniteMeasure ρ
t : MeasureTheory.Measure α := withDensity μ (rnDeriv ρ μ)
⊢ ∀ᵐ (x : α) ∂μ, Tendsto (fun a => ↑↑ρ a / ↑↑μ a) (filterAt v x) (𝓝 (rnDeriv ρ μ x))

tactic: have A : ∀ᵐ x ∂μ, Tendsto (fun a => ρ.singularPart μ a / μ a) (v.filterAt x) (𝓝 0) :=
  v.ae_eventually_measure_zero_of_singular (mutuallySingular_singularPart ρ μ)
state_before: α : Type u_1
inst✝⁵ : MetricSpace α
m0 : MeasurableSpace α
μ : MeasureTheory.Measure α
v : VitaliFamily μ
E : Type ?u.5900434
inst✝⁴ : NormedAddCommGroup E
inst✝³ : SecondCountableTopology α
inst✝² : BorelSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
ρ : MeasureTheory.Measure α
inst✝ : IsLocallyFiniteMeasure ρ
t : MeasureTheory.Measure α := withDensity μ (rnDeriv ρ μ)
eq_add : ρ = singularPart ρ μ + t
⊢ ∀ᵐ (x : α) ∂μ, Tendsto (fun a => ↑↑ρ a / ↑↑μ a) (filterAt v x) (𝓝 (rnDeriv ρ μ x))

tactic: have B : ∀ᵐ x ∂μ, t.rnDeriv μ x = ρ.rnDeriv μ x :=
  rnDeriv_withDensity μ (measurable_rnDeriv ρ μ)
state_before: α : Type u_1
inst✝⁵ : MetricSpace α
m0 : MeasurableSpace α
μ : MeasureTheory.Measure α
v : VitaliFamily μ
E : Type ?u.5900434
inst✝⁴ : NormedAddCommGroup E
inst✝³ : SecondCountableTopology α
inst✝² : BorelSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
ρ : MeasureTheory.Measure α
inst✝ : IsLocallyFiniteMeasure ρ
t : MeasureTheory.Measure α := withDensity μ (rnDeriv ρ μ)
eq_add : ρ = singularPart ρ μ + t
A : ∀ᵐ (x : α) ∂μ, Tendsto (fun a => ↑↑(singularPart ρ μ) a / ↑↑μ a) (filterAt v x) (𝓝 0)
⊢ ∀ᵐ (x : α) ∂μ, Tendsto (fun a => ↑↑ρ a / ↑↑μ a) (filterAt v x) (𝓝 (rnDeriv ρ μ x))

tactic: have C : ∀ᵐ x ∂μ, Tendsto (fun a => t a / μ a) (v.filterAt x) (𝓝 (t.rnDeriv μ x)) :=
  v.ae_tendsto_rnDeriv_of_absolutelyContinuous (withDensity_absolutelyContinuous _ _)
state_before: α : Type u_1
inst✝⁵ : MetricSpace α
m0 : MeasurableSpace α
μ : MeasureTheory.Measure α
v : VitaliFamily μ
E : Type ?u.5900434
inst✝⁴ : NormedAddCommGroup E
inst✝³ : SecondCountableTopology α
inst✝² : BorelSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
ρ : MeasureTheory.Measure α
inst✝ : IsLocallyFiniteMeasure ρ
t : MeasureTheory.Measure α := withDensity μ (rnDeriv ρ μ)
eq_add : ρ = singularPart ρ μ + t
A : ∀ᵐ (x : α) ∂μ, Tendsto (fun a => ↑↑(singularPart ρ μ) a / ↑↑μ a) (filterAt v x) (𝓝 0)
B : ∀ᵐ (x : α) ∂μ, rnDeriv t μ x = rnDeriv ρ μ x
⊢ ∀ᵐ (x : α) ∂μ, Tendsto (fun a => ↑↑ρ a / ↑↑μ a) (filterAt v x) (𝓝 (rnDeriv ρ μ x))

tactic: filter_upwards [A, B, C] with _ Ax Bx Cx
state_before: α : Type u_1
inst✝⁵ : MetricSpace α
m0 : MeasurableSpace α
μ : MeasureTheory.Measure α
v : VitaliFamily μ
E : Type ?u.5900434
inst✝⁴ : NormedAddCommGroup E
inst✝³ : SecondCountableTopology α
inst✝² : BorelSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
ρ : MeasureTheory.Measure α
inst✝ : IsLocallyFiniteMeasure ρ
t : MeasureTheory.Measure α := withDensity μ (rnDeriv ρ μ)
eq_add : ρ = singularPart ρ μ + t
A : ∀ᵐ (x : α) ∂μ, Tendsto (fun a => ↑↑(singularPart ρ μ) a / ↑↑μ a) (filterAt v x) (𝓝 0)
B : ∀ᵐ (x : α) ∂μ, rnDeriv t μ x = rnDeriv ρ μ x
C : ∀ᵐ (x : α) ∂μ, Tendsto (fun a => ↑↑t a / ↑↑μ a) (filterAt v x) (𝓝 (rnDeriv t μ x))
⊢ ∀ᵐ (x : α) ∂μ, Tendsto (fun a => ↑↑ρ a / ↑↑μ a) (filterAt v x) (𝓝 (rnDeriv ρ μ x))

tactic: convert Ax.add Cx using 1
state_before: case h
α : Type u_1
inst✝⁵ : MetricSpace α
m0 : MeasurableSpace α
μ : MeasureTheory.Measure α
v : VitaliFamily μ
E : Type ?u.5900434
inst✝⁴ : NormedAddCommGroup E
inst✝³ : SecondCountableTopology α
inst✝² : BorelSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
ρ : MeasureTheory.Measure α
inst✝ : IsLocallyFiniteMeasure ρ
t : MeasureTheory.Measure α := withDensity μ (rnDeriv ρ μ)
eq_add : ρ = singularPart ρ μ + t
A : ∀ᵐ (x : α) ∂μ, Tendsto (fun a => ↑↑(singularPart ρ μ) a / ↑↑μ a) (filterAt v x) (𝓝 0)
B : ∀ᵐ (x : α) ∂μ, rnDeriv t μ x = rnDeriv ρ μ x
C : ∀ᵐ (x : α) ∂μ, Tendsto (fun a => ↑↑t a / ↑↑μ a) (filterAt v x) (𝓝 (rnDeriv t μ x))
a✝ : α
Ax : Tendsto (fun a => ↑↑(singularPart ρ μ) a / ↑↑μ a) (filterAt v a✝) (𝓝 0)
Bx : rnDeriv (withDensity μ (rnDeriv ρ μ)) μ a✝ = rnDeriv ρ μ a✝
Cx :
  Tendsto (fun a => ↑↑(withDensity μ (rnDeriv ρ μ)) a / ↑↑μ a) (filterAt v a✝)
    (𝓝 (rnDeriv (withDensity μ (rnDeriv ρ μ)) μ a✝))
⊢ Tendsto (fun a => ↑↑ρ a / ↑↑μ a) (filterAt v a✝) (𝓝 (rnDeriv ρ μ a✝))

tactic: ext1 a
state_before: case h.e'_3
α : Type u_1
inst✝⁵ : MetricSpace α
m0 : MeasurableSpace α
μ : MeasureTheory.Measure α
v : VitaliFamily μ
E : Type ?u.5900434
inst✝⁴ : NormedAddCommGroup E
inst✝³ : SecondCountableTopology α
inst✝² : BorelSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
ρ : MeasureTheory.Measure α
inst✝ : IsLocallyFiniteMeasure ρ
t : MeasureTheory.Measure α := withDensity μ (rnDeriv ρ μ)
eq_add : ρ = singularPart ρ μ + t
A : ∀ᵐ (x : α) ∂μ, Tendsto (fun a => ↑↑(singularPart ρ μ) a / ↑↑μ a) (filterAt v x) (𝓝 0)
B : ∀ᵐ (x : α) ∂μ, rnDeriv t μ x = rnDeriv ρ μ x
C : ∀ᵐ (x : α) ∂μ, Tendsto (fun a => ↑↑t a / ↑↑μ a) (filterAt v x) (𝓝 (rnDeriv t μ x))
a✝ : α
Ax : Tendsto (fun a => ↑↑(singularPart ρ μ) a / ↑↑μ a) (filterAt v a✝) (𝓝 0)
Bx : rnDeriv (withDensity μ (rnDeriv ρ μ)) μ a✝ = rnDeriv ρ μ a✝
Cx :
  Tendsto (fun a => ↑↑(withDensity μ (rnDeriv ρ μ)) a / ↑↑μ a) (filterAt v a✝)
    (𝓝 (rnDeriv (withDensity μ (rnDeriv ρ μ)) μ a✝))
⊢ (fun a => ↑↑ρ a / ↑↑μ a) = fun x => ↑↑(singularPart ρ μ) x / ↑↑μ x + ↑↑(withDensity μ (rnDeriv ρ μ)) x / ↑↑μ x

tactic: conv_lhs => rw [eq_add]
state_before: case h.e'_3.h
α : Type u_1
inst✝⁵ : MetricSpace α
m0 : MeasurableSpace α
μ : MeasureTheory.Measure α
v : VitaliFamily μ
E : Type ?u.5900434
inst✝⁴ : NormedAddCommGroup E
inst✝³ : SecondCountableTopology α
inst✝² : BorelSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
ρ : MeasureTheory.Measure α
inst✝ : IsLocallyFiniteMeasure ρ
t : MeasureTheory.Measure α := withDensity μ (rnDeriv ρ μ)
eq_add : ρ = singularPart ρ μ + t
A : ∀ᵐ (x : α) ∂μ, Tendsto (fun a => ↑↑(singularPart ρ μ) a / ↑↑μ a) (filterAt v x) (𝓝 0)
B : ∀ᵐ (x : α) ∂μ, rnDeriv t μ x = rnDeriv ρ μ x
C : ∀ᵐ (x : α) ∂μ, Tendsto (fun a => ↑↑t a / ↑↑μ a) (filterAt v x) (𝓝 (rnDeriv t μ x))
a✝ : α
Ax : Tendsto (fun a => ↑↑(singularPart ρ μ) a / ↑↑μ a) (filterAt v a✝) (𝓝 0)
Bx : rnDeriv (withDensity μ (rnDeriv ρ μ)) μ a✝ = rnDeriv ρ μ a✝
Cx :
  Tendsto (fun a => ↑↑(withDensity μ (rnDeriv ρ μ)) a / ↑↑μ a) (filterAt v a✝)
    (𝓝 (rnDeriv (withDensity μ (rnDeriv ρ μ)) μ a✝))
a : Set α
⊢ ↑↑ρ a / ↑↑μ a = ↑↑(singularPart ρ μ) a / ↑↑μ a + ↑↑(withDensity μ (rnDeriv ρ μ)) a / ↑↑μ a

tactic: simp only [Pi.add_apply, coe_add, ENNReal.add_div]
state_before: case h.e'_3.h
α : Type u_1
inst✝⁵ : MetricSpace α
m0 : MeasurableSpace α
μ : MeasureTheory.Measure α
v : VitaliFamily μ
E : Type ?u.5900434
inst✝⁴ : NormedAddCommGroup E
inst✝³ : SecondCountableTopology α
inst✝² : BorelSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
ρ : MeasureTheory.Measure α
inst✝ : IsLocallyFiniteMeasure ρ
t : MeasureTheory.Measure α := withDensity μ (rnDeriv ρ μ)
eq_add : ρ = singularPart ρ μ + t
A : ∀ᵐ (x : α) ∂μ, Tendsto (fun a => ↑↑(singularPart ρ μ) a / ↑↑μ a) (filterAt v x) (𝓝 0)
B : ∀ᵐ (x : α) ∂μ, rnDeriv t μ x = rnDeriv ρ μ x
C : ∀ᵐ (x : α) ∂μ, Tendsto (fun a => ↑↑t a / ↑↑μ a) (filterAt v x) (𝓝 (rnDeriv t μ x))
a✝ : α
Ax : Tendsto (fun a => ↑↑(singularPart ρ μ) a / ↑↑μ a) (filterAt v a✝) (𝓝 0)
Bx : rnDeriv (withDensity μ (rnDeriv ρ μ)) μ a✝ = rnDeriv ρ μ a✝
Cx :
  Tendsto (fun a => ↑↑(withDensity μ (rnDeriv ρ μ)) a / ↑↑μ a) (filterAt v a✝)
    (𝓝 (rnDeriv (withDensity μ (rnDeriv ρ μ)) μ a✝))
a : Set α
⊢ ↑↑(singularPart ρ μ + t) a / ↑↑μ a = ↑↑(singularPart ρ μ) a / ↑↑μ a + ↑↑(withDensity μ (rnDeriv ρ μ)) a / ↑↑μ a

tactic: simp only [Bx, zero_add]
state_before: case h.e'_5
α : Type u_1
inst✝⁵ : MetricSpace α
m0 : MeasurableSpace α
μ : MeasureTheory.Measure α
v : VitaliFamily μ
E : Type ?u.5900434
inst✝⁴ : NormedAddCommGroup E
inst✝³ : SecondCountableTopology α
inst✝² : BorelSpace α
inst✝¹ : IsLocallyFiniteMeasure μ
ρ : MeasureTheory.Measure α
inst✝ : IsLocallyFiniteMeasure ρ
t : MeasureTheory.Measure α := withDensity μ (rnDeriv ρ μ)
eq_add : ρ = singularPart ρ μ + t
A : ∀ᵐ (x : α) ∂μ, Tendsto (fun a => ↑↑(singularPart ρ μ) a / ↑↑μ a) (filterAt v x) (𝓝 0)
B : ∀ᵐ (x : α) ∂μ, rnDeriv t μ x = rnDeriv ρ μ x
C : ∀ᵐ (x : α) ∂μ, Tendsto (fun a => ↑↑t a / ↑↑μ a) (filterAt v x) (𝓝 (rnDeriv t μ x))
a✝ : α
Ax : Tendsto (fun a => ↑↑(singularPart ρ μ) a / ↑↑μ a) (filterAt v a✝) (𝓝 0)
Bx : rnDeriv (withDensity μ (rnDeriv ρ μ)) μ a✝ = rnDeriv ρ μ a✝
Cx :
  Tendsto (fun a => ↑↑(withDensity μ (rnDeriv ρ μ)) a / ↑↑μ a) (filterAt v a✝)
    (𝓝 (rnDeriv (withDensity μ (rnDeriv ρ μ)) μ a✝))
⊢ 𝓝 (rnDeriv ρ μ a✝) = 𝓝 (0 + rnDeriv (withDensity μ (rnDeriv ρ μ)) μ a✝)