Theorem: MeasureTheory.SignedMeasure.haveLebesgueDecomposition_mk'
File: Mathlib/MeasureTheory/Decomposition/Lebesgue.lean

tactic: have htμ' := htμ
state_before: α : Type u_1
β : Type ?u.456531
m : MeasurableSpace α
μ✝ ν : Measure α
s t : SignedMeasure α
μ : Measure α
f : α → ℝ
hf : Measurable f
hfi : Integrable f
htμ : t ⟂ᵥ toENNRealVectorMeasure μ
hadd : s = t + withDensityᵥ μ f
⊢ HaveLebesgueDecomposition s μ

tactic: rw [mutuallySingular_ennreal_iff] at htμ
state_before: α : Type u_1
β : Type ?u.456531
m : MeasurableSpace α
μ✝ ν : Measure α
s t : SignedMeasure α
μ : Measure α
f : α → ℝ
hf : Measurable f
hfi : Integrable f
htμ : t ⟂ᵥ toENNRealVectorMeasure μ
hadd : s = t + withDensityᵥ μ f
htμ' : t ⟂ᵥ toENNRealVectorMeasure μ
⊢ HaveLebesgueDecomposition s μ

tactic: change _ ⟂ₘ VectorMeasure.equivMeasure.toFun (VectorMeasure.equivMeasure.invFun μ) at htμ
state_before: α : Type u_1
β : Type ?u.456531
m : MeasurableSpace α
μ✝ ν : Measure α
s t : SignedMeasure α
μ : Measure α
f : α → ℝ
hf : Measurable f
hfi : Integrable f
htμ : totalVariation t ⟂ₘ VectorMeasure.ennrealToMeasure (toENNRealVectorMeasure μ)
hadd : s = t + withDensityᵥ μ f
htμ' : t ⟂ᵥ toENNRealVectorMeasure μ
⊢ HaveLebesgueDecomposition s μ

tactic: rw [VectorMeasure.equivMeasure.right_inv, totalVariation_mutuallySingular_iff] at htμ
state_before: α : Type u_1
β : Type ?u.456531
m : MeasurableSpace α
μ✝ ν : Measure α
s t : SignedMeasure α
μ : Measure α
f : α → ℝ
hf : Measurable f
hfi : Integrable f
hadd : s = t + withDensityᵥ μ f
htμ' : t ⟂ᵥ toENNRealVectorMeasure μ
htμ : totalVariation t ⟂ₘ Equiv.toFun VectorMeasure.equivMeasure (Equiv.invFun VectorMeasure.equivMeasure μ)
⊢ HaveLebesgueDecomposition s μ

tactic: refine'
  { posPart := by
      use ⟨t.toJordanDecomposition.posPart, fun x => ENNReal.ofReal (f x)⟩
      refine' ⟨hf.ennreal_ofReal, htμ.1, _⟩
      rw [toJordanDecomposition_eq_of_eq_add_withDensity hf hfi htμ' hadd]
    negPart := by
      use ⟨t.toJordanDecomposition.negPart, fun x => ENNReal.ofReal (-f x)⟩
      refine' ⟨hf.neg.ennreal_ofReal, htμ.2, _⟩
      rw [toJordanDecomposition_eq_of_eq_add_withDensity hf hfi htμ' hadd] }
state_before: α : Type u_1
β : Type ?u.456531
m : MeasurableSpace α
μ✝ ν : Measure α
s t : SignedMeasure α
μ : Measure α
f : α → ℝ
hf : Measurable f
hfi : Integrable f
hadd : s = t + withDensityᵥ μ f
htμ' : t ⟂ᵥ toENNRealVectorMeasure μ
htμ : (toJordanDecomposition t).posPart ⟂ₘ μ ∧ (toJordanDecomposition t).negPart ⟂ₘ μ
⊢ HaveLebesgueDecomposition s μ

tactic: use ⟨t.toJordanDecomposition.posPart, fun x => ENNReal.ofReal (f x)⟩
state_before: α : Type u_1
β : Type ?u.456531
m : MeasurableSpace α
μ✝ ν : Measure α
s t : SignedMeasure α
μ : Measure α
f : α → ℝ
hf : Measurable f
hfi : Integrable f
hadd : s = t + withDensityᵥ μ f
htμ' : t ⟂ᵥ toENNRealVectorMeasure μ
htμ : (toJordanDecomposition t).posPart ⟂ₘ μ ∧ (toJordanDecomposition t).negPart ⟂ₘ μ
⊢ Measure.HaveLebesgueDecomposition (toJordanDecomposition s).posPart μ

tactic: refine' ⟨hf.ennreal_ofReal, htμ.1, _⟩
state_before: α : Type u_1
β : Type ?u.456531
m : MeasurableSpace α
μ✝ ν : Measure α
s t : SignedMeasure α
μ : Measure α
f : α → ℝ
hf : Measurable f
hfi : Integrable f
hadd : s = t + withDensityᵥ μ f
htμ' : t ⟂ᵥ toENNRealVectorMeasure μ
htμ : (toJordanDecomposition t).posPart ⟂ₘ μ ∧ (toJordanDecomposition t).negPart ⟂ₘ μ
⊢ Measurable ((toJordanDecomposition t).posPart, fun x => ENNReal.ofReal (f x)).snd ∧
    ((toJordanDecomposition t).posPart, fun x => ENNReal.ofReal (f x)).fst ⟂ₘ μ ∧
      (toJordanDecomposition s).posPart =
        ((toJordanDecomposition t).posPart, fun x => ENNReal.ofReal (f x)).fst +
          withDensity μ ((toJordanDecomposition t).posPart, fun x => ENNReal.ofReal (f x)).snd

tactic: rw [toJordanDecomposition_eq_of_eq_add_withDensity hf hfi htμ' hadd]
state_before: α : Type u_1
β : Type ?u.456531
m : MeasurableSpace α
μ✝ ν : Measure α
s t : SignedMeasure α
μ : Measure α
f : α → ℝ
hf : Measurable f
hfi : Integrable f
hadd : s = t + withDensityᵥ μ f
htμ' : t ⟂ᵥ toENNRealVectorMeasure μ
htμ : (toJordanDecomposition t).posPart ⟂ₘ μ ∧ (toJordanDecomposition t).negPart ⟂ₘ μ
⊢ (toJordanDecomposition s).posPart =
    ((toJordanDecomposition t).posPart, fun x => ENNReal.ofReal (f x)).fst +
      withDensity μ ((toJordanDecomposition t).posPart, fun x => ENNReal.ofReal (f x)).snd

tactic: use ⟨t.toJordanDecomposition.negPart, fun x => ENNReal.ofReal (-f x)⟩
state_before: α : Type u_1
β : Type ?u.456531
m : MeasurableSpace α
μ✝ ν : Measure α
s t : SignedMeasure α
μ : Measure α
f : α → ℝ
hf : Measurable f
hfi : Integrable f
hadd : s = t + withDensityᵥ μ f
htμ' : t ⟂ᵥ toENNRealVectorMeasure μ
htμ : (toJordanDecomposition t).posPart ⟂ₘ μ ∧ (toJordanDecomposition t).negPart ⟂ₘ μ
⊢ Measure.HaveLebesgueDecomposition (toJordanDecomposition s).negPart μ

tactic: refine' ⟨hf.neg.ennreal_ofReal, htμ.2, _⟩
state_before: α : Type u_1
β : Type ?u.456531
m : MeasurableSpace α
μ✝ ν : Measure α
s t : SignedMeasure α
μ : Measure α
f : α → ℝ
hf : Measurable f
hfi : Integrable f
hadd : s = t + withDensityᵥ μ f
htμ' : t ⟂ᵥ toENNRealVectorMeasure μ
htμ : (toJordanDecomposition t).posPart ⟂ₘ μ ∧ (toJordanDecomposition t).negPart ⟂ₘ μ
⊢ Measurable ((toJordanDecomposition t).negPart, fun x => ENNReal.ofReal (-f x)).snd ∧
    ((toJordanDecomposition t).negPart, fun x => ENNReal.ofReal (-f x)).fst ⟂ₘ μ ∧
      (toJordanDecomposition s).negPart =
        ((toJordanDecomposition t).negPart, fun x => ENNReal.ofReal (-f x)).fst +
          withDensity μ ((toJordanDecomposition t).negPart, fun x => ENNReal.ofReal (-f x)).snd

tactic: rw [toJordanDecomposition_eq_of_eq_add_withDensity hf hfi htμ' hadd]
state_before: α : Type u_1
β : Type ?u.456531
m : MeasurableSpace α
μ✝ ν : Measure α
s t : SignedMeasure α
μ : Measure α
f : α → ℝ
hf : Measurable f
hfi : Integrable f
hadd : s = t + withDensityᵥ μ f
htμ' : t ⟂ᵥ toENNRealVectorMeasure μ
htμ : (toJordanDecomposition t).posPart ⟂ₘ μ ∧ (toJordanDecomposition t).negPart ⟂ₘ μ
⊢ (toJordanDecomposition s).negPart =
    ((toJordanDecomposition t).negPart, fun x => ENNReal.ofReal (-f x)).fst +
      withDensity μ ((toJordanDecomposition t).negPart, fun x => ENNReal.ofReal (-f x)).snd