Theorem: MeasureTheory.withDensity_ofReal_mutuallySingular
File: Mathlib/MeasureTheory/Measure/WithDensity.lean

tactic: set S : Set α := { x | f x < 0 }
state_before: α : Type u_1
m0 : MeasurableSpace α
μ : Measure α
f : α → ℝ
hf : Measurable f
⊢ (μ.withDensity fun x => ENNReal.ofReal (f x)) ⟂ₘ μ.withDensity fun x => ENNReal.ofReal (-f x)
state_after: α : Type u_1
m0 : MeasurableSpace α
μ : Measure α
f : α → ℝ
hf : Measurable f
S : Set α := {x | f x < 0}
⊢ (μ.withDensity fun x => ENNReal.ofReal (f x)) ⟂ₘ μ.withDensity fun x => ENNReal.ofReal (-f x)

tactic: have hS : MeasurableSet S := measurableSet_lt hf measurable_const
state_before: α : Type u_1
m0 : MeasurableSpace α
μ : Measure α
f : α → ℝ
hf : Measurable f
S : Set α := {x | f x < 0}
⊢ (μ.withDensity fun x => ENNReal.ofReal (f x)) ⟂ₘ μ.withDensity fun x => ENNReal.ofReal (-f x)
state_after: α : Type u_1
m0 : MeasurableSpace α
μ : Measure α
f : α → ℝ
hf : Measurable f
S : Set α := {x | f x < 0}
hS : MeasurableSet S
⊢ (μ.withDensity fun x => ENNReal.ofReal (f x)) ⟂ₘ μ.withDensity fun x => ENNReal.ofReal (-f x)

tactic: refine ⟨S, hS, ?_, ?_⟩
state_before: α : Type u_1
m0 : MeasurableSpace α
μ : Measure α
f : α → ℝ
hf : Measurable f
S : Set α := {x | f x < 0}
hS : MeasurableSet S
⊢ (μ.withDensity fun x => ENNReal.ofReal (f x)) ⟂ₘ μ.withDensity fun x => ENNReal.ofReal (-f x)
state_after: case refine_1
α : Type u_1
m0 : MeasurableSpace α
μ : Measure α
f : α → ℝ
hf : Measurable f
S : Set α := {x | f x < 0}
hS : MeasurableSet S
⊢ (μ.withDensity fun x => ENNReal.ofReal (f x)) S = 0

case refine_2
α : Type u_1
m0 : MeasurableSpace α
μ : Measure α
f : α → ℝ
hf : Measurable f
S : Set α := {x | f x < 0}
hS : MeasurableSet S
⊢ (μ.withDensity fun x => ENNReal.ofReal (-f x)) Sᶜ = 0

tactic: rw [withDensity_apply _ hS, lintegral_eq_zero_iff hf.ennreal_ofReal, EventuallyEq]
state_before: case refine_1
α : Type u_1
m0 : MeasurableSpace α
μ : Measure α
f : α → ℝ
hf : Measurable f
S : Set α := {x | f x < 0}
hS : MeasurableSet S
⊢ (μ.withDensity fun x => ENNReal.ofReal (f x)) S = 0
state_after: case refine_1
α : Type u_1
m0 : MeasurableSpace α
μ : Measure α
f : α → ℝ
hf : Measurable f
S : Set α := {x | f x < 0}
hS : MeasurableSet S
⊢ ∀ᵐ (x : α) ∂μ.restrict S, ENNReal.ofReal (f x) = 0 x

tactic: exact (ae_restrict_mem hS).mono fun x hx => ENNReal.ofReal_eq_zero.2 (le_of_lt hx)
state_before: case refine_1
α : Type u_1
m0 : MeasurableSpace α
μ : Measure α
f : α → ℝ
hf : Measurable f
S : Set α := {x | f x < 0}
hS : MeasurableSet S
⊢ ∀ᵐ (x : α) ∂μ.restrict S, ENNReal.ofReal (f x) = 0 x
state_after: no goals

tactic: rw [withDensity_apply _ hS.compl, lintegral_eq_zero_iff hf.neg.ennreal_ofReal, EventuallyEq]
state_before: case refine_2
α : Type u_1
m0 : MeasurableSpace α
μ : Measure α
f : α → ℝ
hf : Measurable f
S : Set α := {x | f x < 0}
hS : MeasurableSet S
⊢ (μ.withDensity fun x => ENNReal.ofReal (-f x)) Sᶜ = 0
state_after: case refine_2
α : Type u_1
m0 : MeasurableSpace α
μ : Measure α
f : α → ℝ
hf : Measurable f
S : Set α := {x | f x < 0}
hS : MeasurableSet S
⊢ ∀ᵐ (x : α) ∂μ.restrict Sᶜ, ENNReal.ofReal (-f x) = 0 x

tactic: exact
  (ae_restrict_mem hS.compl).mono fun x hx =>
    ENNReal.ofReal_eq_zero.2 (not_lt.1 <| mt neg_pos.1 hx)
state_before: case refine_2
α : Type u_1
m0 : MeasurableSpace α
μ : Measure α
f : α → ℝ
hf : Measurable f
S : Set α := {x | f x < 0}
hS : MeasurableSet S
⊢ ∀ᵐ (x : α) ∂μ.restrict Sᶜ, ENNReal.ofReal (-f x) = 0 x
state_after: no goals