Theorem: MeasureTheory.SignedMeasure.singularPart_mutuallySingular
File: Mathlib/MeasureTheory/Decomposition/Lebesgue.lean

tactic: by_cases hl : s.HaveLebesgueDecomposition μ
state_before: α : Type u_1
β : Type ?u.300315
m : MeasurableSpace α
μ✝ ν : Measure α
s : SignedMeasure α
μ : Measure α
⊢ Measure.singularPart (toJordanDecomposition s).posPart μ ⟂ₘ Measure.singularPart (toJordanDecomposition s).negPart μ

tactic: haveI := hl
state_before: case pos
α : Type u_1
β : Type ?u.300315
m : MeasurableSpace α
μ✝ ν : Measure α
s : SignedMeasure α
μ : Measure α
hl : HaveLebesgueDecomposition s μ
⊢ Measure.singularPart (toJordanDecomposition s).posPart μ ⟂ₘ Measure.singularPart (toJordanDecomposition s).negPart μ

tactic: obtain ⟨i, hi, hpos, hneg⟩ := s.toJordanDecomposition.mutuallySingular
state_before: case pos
α : Type u_1
β : Type ?u.300315
m : MeasurableSpace α
μ✝ ν : Measure α
s : SignedMeasure α
μ : Measure α
hl this : HaveLebesgueDecomposition s μ
⊢ Measure.singularPart (toJordanDecomposition s).posPart μ ⟂ₘ Measure.singularPart (toJordanDecomposition s).negPart μ

tactic: rw [s.toJordanDecomposition.posPart.haveLebesgueDecomposition_add μ] at hpos
state_before: case pos.intro.intro.intro
α : Type u_1
β : Type ?u.300315
m : MeasurableSpace α
μ✝ ν : Measure α
s : SignedMeasure α
μ : Measure α
hl this : HaveLebesgueDecomposition s μ
i : Set α
hi : MeasurableSet i
hpos : ↑↑(toJordanDecomposition s).posPart i = 0
hneg : ↑↑(toJordanDecomposition s).negPart (iᶜ) = 0
⊢ Measure.singularPart (toJordanDecomposition s).posPart μ ⟂ₘ Measure.singularPart (toJordanDecomposition s).negPart μ

tactic: rw [s.toJordanDecomposition.negPart.haveLebesgueDecomposition_add μ] at hneg
state_before: case pos.intro.intro.intro
α : Type u_1
β : Type ?u.300315
m : MeasurableSpace α
μ✝ ν : Measure α
s : SignedMeasure α
μ : Measure α
hl this : HaveLebesgueDecomposition s μ
i : Set α
hi : MeasurableSet i
hpos :
  ↑↑(Measure.singularPart (toJordanDecomposition s).posPart μ +
            withDensity μ (rnDeriv (toJordanDecomposition s).posPart μ))
      i =
    0
hneg : ↑↑(toJordanDecomposition s).negPart (iᶜ) = 0
⊢ Measure.singularPart (toJordanDecomposition s).posPart μ ⟂ₘ Measure.singularPart (toJordanDecomposition s).negPart μ

tactic: rw [add_apply, add_eq_zero_iff] at hpos hneg
state_before: case pos.intro.intro.intro
α : Type u_1
β : Type ?u.300315
m : MeasurableSpace α
μ✝ ν : Measure α
s : SignedMeasure α
μ : Measure α
hl this : HaveLebesgueDecomposition s μ
i : Set α
hi : MeasurableSet i
hpos :
  ↑↑(Measure.singularPart (toJordanDecomposition s).posPart μ +
            withDensity μ (rnDeriv (toJordanDecomposition s).posPart μ))
      i =
    0
hneg :
  ↑↑(Measure.singularPart (toJordanDecomposition s).negPart μ +
            withDensity μ (rnDeriv (toJordanDecomposition s).negPart μ))
      (iᶜ) =
    0
⊢ Measure.singularPart (toJordanDecomposition s).posPart μ ⟂ₘ Measure.singularPart (toJordanDecomposition s).negPart μ

tactic: exact ⟨i, hi, hpos.1, hneg.1⟩
state_before: case pos.intro.intro.intro
α : Type u_1
β : Type ?u.300315
m : MeasurableSpace α
μ✝ ν : Measure α
s : SignedMeasure α
μ : Measure α
hl this : HaveLebesgueDecomposition s μ
i : Set α
hi : MeasurableSet i
hpos :
  ↑↑(Measure.singularPart (toJordanDecomposition s).posPart μ) i = 0 ∧
    ↑↑(withDensity μ (rnDeriv (toJordanDecomposition s).posPart μ)) i = 0
hneg :
  ↑↑(Measure.singularPart (toJordanDecomposition s).negPart μ) (iᶜ) = 0 ∧
    ↑↑(withDensity μ (rnDeriv (toJordanDecomposition s).negPart μ)) (iᶜ) = 0
⊢ Measure.singularPart (toJordanDecomposition s).posPart μ ⟂ₘ Measure.singularPart (toJordanDecomposition s).negPart μ

tactic: rw [not_haveLebesgueDecomposition_iff] at hl
state_before: case neg
α : Type u_1
β : Type ?u.300315
m : MeasurableSpace α
μ✝ ν : Measure α
s : SignedMeasure α
μ : Measure α
hl : ¬HaveLebesgueDecomposition s μ
⊢ Measure.singularPart (toJordanDecomposition s).posPart μ ⟂ₘ Measure.singularPart (toJordanDecomposition s).negPart μ

tactic: cases' hl with hp hn
state_before: case neg
α : Type u_1
β : Type ?u.300315
m : MeasurableSpace α
μ✝ ν : Measure α
s : SignedMeasure α
μ : Measure α
hl :
  ¬Measure.HaveLebesgueDecomposition (toJordanDecomposition s).posPart μ ∨
    ¬Measure.HaveLebesgueDecomposition (toJordanDecomposition s).negPart μ
⊢ Measure.singularPart (toJordanDecomposition s).posPart μ ⟂ₘ Measure.singularPart (toJordanDecomposition s).negPart μ

tactic: rw [Measure.singularPart, dif_neg hp]
state_before: case neg.inl
α : Type u_1
β : Type ?u.300315
m : MeasurableSpace α
μ✝ ν : Measure α
s : SignedMeasure α
μ : Measure α
hp : ¬Measure.HaveLebesgueDecomposition (toJordanDecomposition s).posPart μ
⊢ Measure.singularPart (toJordanDecomposition s).posPart μ ⟂ₘ Measure.singularPart (toJordanDecomposition s).negPart μ

tactic: exact MutuallySingular.zero_left
state_before: case neg.inl
α : Type u_1
β : Type ?u.300315
m : MeasurableSpace α
μ✝ ν : Measure α
s : SignedMeasure α
μ : Measure α
hp : ¬Measure.HaveLebesgueDecomposition (toJordanDecomposition s).posPart μ
⊢ 0 ⟂ₘ Measure.singularPart (toJordanDecomposition s).negPart μ

tactic: rw [Measure.singularPart, Measure.singularPart, dif_neg hn]
state_before: case neg.inr
α : Type u_1
β : Type ?u.300315
m : MeasurableSpace α
μ✝ ν : Measure α
s : SignedMeasure α
μ : Measure α
hn : ¬Measure.HaveLebesgueDecomposition (toJordanDecomposition s).negPart μ
⊢ Measure.singularPart (toJordanDecomposition s).posPart μ ⟂ₘ Measure.singularPart (toJordanDecomposition s).negPart μ

tactic: exact MutuallySingular.zero_right
state_before: case neg.inr
α : Type u_1
β : Type ?u.300315
m : MeasurableSpace α
μ✝ ν : Measure α
s : SignedMeasure α
μ : Measure α
hn : ¬Measure.HaveLebesgueDecomposition (toJordanDecomposition s).negPart μ
⊢ (if h : Measure.HaveLebesgueDecomposition (toJordanDecomposition s).posPart μ then
      (Classical.choose
          (_ :
            ∃ p, Measurable p.snd ∧ p.fst ⟂ₘ μ ∧ (toJordanDecomposition s).posPart = p.fst + withDensity μ p.snd)).fst
    else 0) ⟂ₘ
    0