Theorem: ProbabilityTheory.kernel.singularPart_eq_zero_iff_measure_eq_zero
File: Mathlib/Probability/Kernel/RadonNikodym.lean

tactic: have h_eq_add := rnDeriv_add_singularPart κ η
state_before: α : Type u_1
γ : Type u_2
mα : MeasurableSpace α
mγ : MeasurableSpace γ
κ✝ η✝ : ↥(kernel α γ)
hαγ : MeasurableSpace.CountableOrCountablyGenerated α γ
κ η : ↥(kernel α γ)
inst✝¹ : IsFiniteKernel κ
inst✝ : IsFiniteKernel η
a : α
⊢ (singularPart κ η) a = 0 ↔ (κ a) (mutuallySingularSetSlice κ η a) = 0
state_after: α : Type u_1
γ : Type u_2
mα : MeasurableSpace α
mγ : MeasurableSpace γ
κ✝ η✝ : ↥(kernel α γ)
hαγ : MeasurableSpace.CountableOrCountablyGenerated α γ
κ η : ↥(kernel α γ)
inst✝¹ : IsFiniteKernel κ
inst✝ : IsFiniteKernel η
a : α
h_eq_add : withDensity η (rnDeriv κ η) + singularPart κ η = κ
⊢ (singularPart κ η) a = 0 ↔ (κ a) (mutuallySingularSetSlice κ η a) = 0

tactic: simp_rw [ext_iff, Measure.ext_iff] at h_eq_add
state_before: α : Type u_1
γ : Type u_2
mα : MeasurableSpace α
mγ : MeasurableSpace γ
κ✝ η✝ : ↥(kernel α γ)
hαγ : MeasurableSpace.CountableOrCountablyGenerated α γ
κ η : ↥(kernel α γ)
inst✝¹ : IsFiniteKernel κ
inst✝ : IsFiniteKernel η
a : α
h_eq_add : withDensity η (rnDeriv κ η) + singularPart κ η = κ
⊢ (singularPart κ η) a = 0 ↔ (κ a) (mutuallySingularSetSlice κ η a) = 0
state_after: α : Type u_1
γ : Type u_2
mα : MeasurableSpace α
mγ : MeasurableSpace γ
κ✝ η✝ : ↥(kernel α γ)
hαγ : MeasurableSpace.CountableOrCountablyGenerated α γ
κ η : ↥(kernel α γ)
inst✝¹ : IsFiniteKernel κ
inst✝ : IsFiniteKernel η
a : α
h_eq_add : ∀ (a : α) (s : Set γ), MeasurableSet s → ((withDensity η (rnDeriv κ η) + singularPart κ η) a) s = (κ a) s
⊢ (singularPart κ η) a = 0 ↔ (κ a) (mutuallySingularSetSlice κ η a) = 0

tactic: specialize h_eq_add a (mutuallySingularSetSlice κ η a)
  (measurableSet_mutuallySingularSetSlice κ η a)
state_before: α : Type u_1
γ : Type u_2
mα : MeasurableSpace α
mγ : MeasurableSpace γ
κ✝ η✝ : ↥(kernel α γ)
hαγ : MeasurableSpace.CountableOrCountablyGenerated α γ
κ η : ↥(kernel α γ)
inst✝¹ : IsFiniteKernel κ
inst✝ : IsFiniteKernel η
a : α
h_eq_add : ∀ (a : α) (s : Set γ), MeasurableSet s → ((withDensity η (rnDeriv κ η) + singularPart κ η) a) s = (κ a) s
⊢ (singularPart κ η) a = 0 ↔ (κ a) (mutuallySingularSetSlice κ η a) = 0
state_after: α : Type u_1
γ : Type u_2
mα : MeasurableSpace α
mγ : MeasurableSpace γ
κ✝ η✝ : ↥(kernel α γ)
hαγ : MeasurableSpace.CountableOrCountablyGenerated α γ
κ η : ↥(kernel α γ)
inst✝¹ : IsFiniteKernel κ
inst✝ : IsFiniteKernel η
a : α
h_eq_add :
  ((withDensity η (rnDeriv κ η) + singularPart κ η) a) (mutuallySingularSetSlice κ η a) =
    (κ a) (mutuallySingularSetSlice κ η a)
⊢ (singularPart κ η) a = 0 ↔ (κ a) (mutuallySingularSetSlice κ η a) = 0

tactic: simp only [coeFn_add, Pi.add_apply, Measure.coe_add,
  withDensity_rnDeriv_mutuallySingularSetSlice κ η, zero_add] at h_eq_add
state_before: α : Type u_1
γ : Type u_2
mα : MeasurableSpace α
mγ : MeasurableSpace γ
κ✝ η✝ : ↥(kernel α γ)
hαγ : MeasurableSpace.CountableOrCountablyGenerated α γ
κ η : ↥(kernel α γ)
inst✝¹ : IsFiniteKernel κ
inst✝ : IsFiniteKernel η
a : α
h_eq_add :
  ((withDensity η (rnDeriv κ η) + singularPart κ η) a) (mutuallySingularSetSlice κ η a) =
    (κ a) (mutuallySingularSetSlice κ η a)
⊢ (singularPart κ η) a = 0 ↔ (κ a) (mutuallySingularSetSlice κ η a) = 0
state_after: α : Type u_1
γ : Type u_2
mα : MeasurableSpace α
mγ : MeasurableSpace γ
κ✝ η✝ : ↥(kernel α γ)
hαγ : MeasurableSpace.CountableOrCountablyGenerated α γ
κ η : ↥(kernel α γ)
inst✝¹ : IsFiniteKernel κ
inst✝ : IsFiniteKernel η
a : α
h_eq_add : ((singularPart κ η) a) (mutuallySingularSetSlice κ η a) = (κ a) (mutuallySingularSetSlice κ η a)
⊢ (singularPart κ η) a = 0 ↔ (κ a) (mutuallySingularSetSlice κ η a) = 0

tactic: rw [← h_eq_add]
state_before: α : Type u_1
γ : Type u_2
mα : MeasurableSpace α
mγ : MeasurableSpace γ
κ✝ η✝ : ↥(kernel α γ)
hαγ : MeasurableSpace.CountableOrCountablyGenerated α γ
κ η : ↥(kernel α γ)
inst✝¹ : IsFiniteKernel κ
inst✝ : IsFiniteKernel η
a : α
h_eq_add : ((singularPart κ η) a) (mutuallySingularSetSlice κ η a) = (κ a) (mutuallySingularSetSlice κ η a)
⊢ (singularPart κ η) a = 0 ↔ (κ a) (mutuallySingularSetSlice κ η a) = 0
state_after: α : Type u_1
γ : Type u_2
mα : MeasurableSpace α
mγ : MeasurableSpace γ
κ✝ η✝ : ↥(kernel α γ)
hαγ : MeasurableSpace.CountableOrCountablyGenerated α γ
κ η : ↥(kernel α γ)
inst✝¹ : IsFiniteKernel κ
inst✝ : IsFiniteKernel η
a : α
h_eq_add : ((singularPart κ η) a) (mutuallySingularSetSlice κ η a) = (κ a) (mutuallySingularSetSlice κ η a)
⊢ (singularPart κ η) a = 0 ↔ ((singularPart κ η) a) (mutuallySingularSetSlice κ η a) = 0

tactic: exact singularPart_eq_zero_iff_apply_eq_zero κ η a
state_before: α : Type u_1
γ : Type u_2
mα : MeasurableSpace α
mγ : MeasurableSpace γ
κ✝ η✝ : ↥(kernel α γ)
hαγ : MeasurableSpace.CountableOrCountablyGenerated α γ
κ η : ↥(kernel α γ)
inst✝¹ : IsFiniteKernel κ
inst✝ : IsFiniteKernel η
a : α
h_eq_add : ((singularPart κ η) a) (mutuallySingularSetSlice κ η a) = (κ a) (mutuallySingularSetSlice κ η a)
⊢ (singularPart κ η) a = 0 ↔ ((singularPart κ η) a) (mutuallySingularSetSlice κ η a) = 0
state_after: no goals