Theorem: MeasureTheory.SignedMeasure.toJordanDecomposition_spec
File: Mathlib/MeasureTheory/Decomposition/Jordan.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝² : MeasurableSpace α
s✝ : SignedMeasure α
μ ν : Measure α
inst✝¹ : IsFiniteMeasure μ
inst✝ : IsFiniteMeasure ν
s : SignedMeasure α
⊢ ∃ i,
    ∃ (hi₁ : MeasurableSet i) (hi₂ : VectorMeasure.restrict 0 i ≤ VectorMeasure.restrict s i) (hi₃ :
      VectorMeasure.restrict s iᶜ ≤ VectorMeasure.restrict 0 iᶜ),
      s.toJordanDecomposition.posPart = s.toMeasureOfZeroLE i hi₁ hi₂ ∧
        s.toJordanDecomposition.negPart = s.toMeasureOfLEZero iᶜ ⋯ hi₃
state_after: α : Type u_1
β : Type u_2
inst✝² : MeasurableSpace α
s✝ : SignedMeasure α
μ ν : Measure α
inst✝¹ : IsFiniteMeasure μ
inst✝ : IsFiniteMeasure ν
s : SignedMeasure α
i : Set α := ⋯.choose
⊢ ∃ i,
    ∃ (hi₁ : MeasurableSet i) (hi₂ : VectorMeasure.restrict 0 i ≤ VectorMeasure.restrict s i) (hi₃ :
      VectorMeasure.restrict s iᶜ ≤ VectorMeasure.restrict 0 iᶜ),
      s.toJordanDecomposition.posPart = s.toMeasureOfZeroLE i hi₁ hi₂ ∧
        s.toJordanDecomposition.negPart = s.toMeasureOfLEZero iᶜ ⋯ hi₃
tactic: set i := s.exists_compl_positive_negative.choose
state_before: α : Type u_1
β : Type u_2
inst✝² : MeasurableSpace α
s✝ : SignedMeasure α
μ ν : Measure α
inst✝¹ : IsFiniteMeasure μ
inst✝ : IsFiniteMeasure ν
s : SignedMeasure α
i : Set α := ⋯.choose
⊢ ∃ i,
    ∃ (hi₁ : MeasurableSet i) (hi₂ : VectorMeasure.restrict 0 i ≤ VectorMeasure.restrict s i) (hi₃ :
      VectorMeasure.restrict s iᶜ ≤ VectorMeasure.restrict 0 iᶜ),
      s.toJordanDecomposition.posPart = s.toMeasureOfZeroLE i hi₁ hi₂ ∧
        s.toJordanDecomposition.negPart = s.toMeasureOfLEZero iᶜ ⋯ hi₃
state_after: case intro.intro
α : Type u_1
β : Type u_2
inst✝² : MeasurableSpace α
s✝ : SignedMeasure α
μ ν : Measure α
inst✝¹ : IsFiniteMeasure μ
inst✝ : IsFiniteMeasure ν
s : SignedMeasure α
i : Set α := ⋯.choose
hi₁ : MeasurableSet ⋯.choose
hi₂ : VectorMeasure.restrict 0 ⋯.choose ≤ VectorMeasure.restrict s ⋯.choose
hi₃ : VectorMeasure.restrict s ⋯.chooseᶜ ≤ VectorMeasure.restrict 0 ⋯.chooseᶜ
⊢ ∃ i,
    ∃ (hi₁ : MeasurableSet i) (hi₂ : VectorMeasure.restrict 0 i ≤ VectorMeasure.restrict s i) (hi₃ :
      VectorMeasure.restrict s iᶜ ≤ VectorMeasure.restrict 0 iᶜ),
      s.toJordanDecomposition.posPart = s.toMeasureOfZeroLE i hi₁ hi₂ ∧
        s.toJordanDecomposition.negPart = s.toMeasureOfLEZero iᶜ ⋯ hi₃
tactic: obtain ⟨hi₁, hi₂, hi₃⟩ := s.exists_compl_positive_negative.choose_spec
state_before: case intro.intro
α : Type u_1
β : Type u_2
inst✝² : MeasurableSpace α
s✝ : SignedMeasure α
μ ν : Measure α
inst✝¹ : IsFiniteMeasure μ
inst✝ : IsFiniteMeasure ν
s : SignedMeasure α
i : Set α := ⋯.choose
hi₁ : MeasurableSet ⋯.choose
hi₂ : VectorMeasure.restrict 0 ⋯.choose ≤ VectorMeasure.restrict s ⋯.choose
hi₃ : VectorMeasure.restrict s ⋯.chooseᶜ ≤ VectorMeasure.restrict 0 ⋯.chooseᶜ
⊢ ∃ i,
    ∃ (hi₁ : MeasurableSet i) (hi₂ : VectorMeasure.restrict 0 i ≤ VectorMeasure.restrict s i) (hi₃ :
      VectorMeasure.restrict s iᶜ ≤ VectorMeasure.restrict 0 iᶜ),
      s.toJordanDecomposition.posPart = s.toMeasureOfZeroLE i hi₁ hi₂ ∧
        s.toJordanDecomposition.negPart = s.toMeasureOfLEZero iᶜ ⋯ hi₃
state_after: no goals
tactic: exact ⟨i, hi₁, hi₂, hi₃, rfl, rfl⟩