Theorem: _private.Mathlib.MeasureTheory.Decomposition.SignedHahn.0.MeasureTheory.SignedMeasure.exists_subset_restrict_nonpos'
File: Mathlib/MeasureTheory/Decomposition/SignedHahn.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝³ : MeasurableSpace α
M : Type u_3
inst✝² : AddCommMonoid M
inst✝¹ : TopologicalSpace M
inst✝ : OrderedAddCommMonoid M
s : SignedMeasure α
i j : Set α
hi₁ : MeasurableSet i
hi₂ : ↑s i < 0
hn :
  ¬∀ (n : ℕ),
      ¬restrict s (i \ ⋃ l, ⋃ (_ : l < n), MeasureTheory.SignedMeasure.restrictNonposSeq s i l) ≤
          restrict 0 (i \ ⋃ l, ⋃ (_ : l < n), MeasureTheory.SignedMeasure.restrictNonposSeq s i l)
⊢ ∃ j, MeasurableSet j ∧ j ⊆ i ∧ restrict s j ≤ restrict 0 j ∧ ↑s j < 0
state_after: case pos
α : Type u_1
β : Type u_2
inst✝³ : MeasurableSpace α
M : Type u_3
inst✝² : AddCommMonoid M
inst✝¹ : TopologicalSpace M
inst✝ : OrderedAddCommMonoid M
s : SignedMeasure α
i j : Set α
hi₁ : MeasurableSet i
hi₂ : ↑s i < 0
hn :
  ¬∀ (n : ℕ),
      ¬restrict s (i \ ⋃ l, ⋃ (_ : l < n), MeasureTheory.SignedMeasure.restrictNonposSeq s i l) ≤
          restrict 0 (i \ ⋃ l, ⋃ (_ : l < n), MeasureTheory.SignedMeasure.restrictNonposSeq s i l)
h : restrict s i ≤ restrict 0 i
⊢ ∃ j, MeasurableSet j ∧ j ⊆ i ∧ restrict s j ≤ restrict 0 j ∧ ↑s j < 0

case neg
α : Type u_1
β : Type u_2
inst✝³ : MeasurableSpace α
M : Type u_3
inst✝² : AddCommMonoid M
inst✝¹ : TopologicalSpace M
inst✝ : OrderedAddCommMonoid M
s : SignedMeasure α
i j : Set α
hi₁ : MeasurableSet i
hi₂ : ↑s i < 0
hn :
  ¬∀ (n : ℕ),
      ¬restrict s (i \ ⋃ l, ⋃ (_ : l < n), MeasureTheory.SignedMeasure.restrictNonposSeq s i l) ≤
          restrict 0 (i \ ⋃ l, ⋃ (_ : l < n), MeasureTheory.SignedMeasure.restrictNonposSeq s i l)
h : ¬restrict s i ≤ restrict 0 i
⊢ ∃ j, MeasurableSet j ∧ j ⊆ i ∧ restrict s j ≤ restrict 0 j ∧ ↑s j < 0
tactic: by_cases h : s ≤[i] 0
state_before: case neg
α : Type u_1
β : Type u_2
inst✝³ : MeasurableSpace α
M : Type u_3
inst✝² : AddCommMonoid M
inst✝¹ : TopologicalSpace M
inst✝ : OrderedAddCommMonoid M
s : SignedMeasure α
i j : Set α
hi₁ : MeasurableSet i
hi₂ : ↑s i < 0
hn :
  ¬∀ (n : ℕ),
      ¬restrict s (i \ ⋃ l, ⋃ (_ : l < n), MeasureTheory.SignedMeasure.restrictNonposSeq s i l) ≤
          restrict 0 (i \ ⋃ l, ⋃ (_ : l < n), MeasureTheory.SignedMeasure.restrictNonposSeq s i l)
h : ¬restrict s i ≤ restrict 0 i
⊢ ∃ j, MeasurableSet j ∧ j ⊆ i ∧ restrict s j ≤ restrict 0 j ∧ ↑s j < 0
state_after: case neg
α : Type u_1
β : Type u_2
inst✝³ : MeasurableSpace α
M : Type u_3
inst✝² : AddCommMonoid M
inst✝¹ : TopologicalSpace M
inst✝ : OrderedAddCommMonoid M
s : SignedMeasure α
i j : Set α
hi₁ : MeasurableSet i
hi₂ : ↑s i < 0
h : ¬restrict s i ≤ restrict 0 i
hn :
  ∃ n,
    restrict s (i \ ⋃ l, ⋃ (_ : l < n), MeasureTheory.SignedMeasure.restrictNonposSeq s i l) ≤
      restrict 0 (i \ ⋃ l, ⋃ (_ : l < n), MeasureTheory.SignedMeasure.restrictNonposSeq s i l)
⊢ ∃ j, MeasurableSet j ∧ j ⊆ i ∧ restrict s j ≤ restrict 0 j ∧ ↑s j < 0
tactic: push_neg at hn
state_before: case neg
α : Type u_1
β : Type u_2
inst✝³ : MeasurableSpace α
M : Type u_3
inst✝² : AddCommMonoid M
inst✝¹ : TopologicalSpace M
inst✝ : OrderedAddCommMonoid M
s : SignedMeasure α
i j : Set α
hi₁ : MeasurableSet i
hi₂ : ↑s i < 0
h : ¬restrict s i ≤ restrict 0 i
hn :
  ∃ n,
    restrict s (i \ ⋃ l, ⋃ (_ : l < n), MeasureTheory.SignedMeasure.restrictNonposSeq s i l) ≤
      restrict 0 (i \ ⋃ l, ⋃ (_ : l < n), MeasureTheory.SignedMeasure.restrictNonposSeq s i l)
⊢ ∃ j, MeasurableSet j ∧ j ⊆ i ∧ restrict s j ≤ restrict 0 j ∧ ↑s j < 0
state_after: case neg
α : Type u_1
β : Type u_2
inst✝³ : MeasurableSpace α
M : Type u_3
inst✝² : AddCommMonoid M
inst✝¹ : TopologicalSpace M
inst✝ : OrderedAddCommMonoid M
s : SignedMeasure α
i j : Set α
hi₁ : MeasurableSet i
hi₂ : ↑s i < 0
h : ¬restrict s i ≤ restrict 0 i
hn :
  ∃ n,
    restrict s (i \ ⋃ l, ⋃ (_ : l < n), MeasureTheory.SignedMeasure.restrictNonposSeq s i l) ≤
      restrict 0 (i \ ⋃ l, ⋃ (_ : l < n), MeasureTheory.SignedMeasure.restrictNonposSeq s i l)
k : ℕ := Nat.find hn
⊢ ∃ j, MeasurableSet j ∧ j ⊆ i ∧ restrict s j ≤ restrict 0 j ∧ ↑s j < 0
tactic: set k := Nat.find hn
state_before: case neg
α : Type u_1
β : Type u_2
inst✝³ : MeasurableSpace α
M : Type u_3
inst✝² : AddCommMonoid M
inst✝¹ : TopologicalSpace M
inst✝ : OrderedAddCommMonoid M
s : SignedMeasure α
i j : Set α
hi₁ : MeasurableSet i
hi₂ : ↑s i < 0
h : ¬restrict s i ≤ restrict 0 i
hn :
  ∃ n,
    restrict s (i \ ⋃ l, ⋃ (_ : l < n), MeasureTheory.SignedMeasure.restrictNonposSeq s i l) ≤
      restrict 0 (i \ ⋃ l, ⋃ (_ : l < n), MeasureTheory.SignedMeasure.restrictNonposSeq s i l)
k : ℕ := Nat.find hn
⊢ ∃ j, MeasurableSet j ∧ j ⊆ i ∧ restrict s j ≤ restrict 0 j ∧ ↑s j < 0
state_after: case neg
α : Type u_1
β : Type u_2
inst✝³ : MeasurableSpace α
M : Type u_3
inst✝² : AddCommMonoid M
inst✝¹ : TopologicalSpace M
inst✝ : OrderedAddCommMonoid M
s : SignedMeasure α
i j : Set α
hi₁ : MeasurableSet i
hi₂ : ↑s i < 0
h : ¬restrict s i ≤ restrict 0 i
hn :
  ∃ n,
    restrict s (i \ ⋃ l, ⋃ (_ : l < n), MeasureTheory.SignedMeasure.restrictNonposSeq s i l) ≤
      restrict 0 (i \ ⋃ l, ⋃ (_ : l < n), MeasureTheory.SignedMeasure.restrictNonposSeq s i l)
k : ℕ := Nat.find hn
hk₂ :
  restrict s (i \ ⋃ l, ⋃ (_ : l < k), MeasureTheory.SignedMeasure.restrictNonposSeq s i l) ≤
    restrict 0 (i \ ⋃ l, ⋃ (_ : l < k), MeasureTheory.SignedMeasure.restrictNonposSeq s i l)
⊢ ∃ j, MeasurableSet j ∧ j ⊆ i ∧ restrict s j ≤ restrict 0 j ∧ ↑s j < 0
tactic: have hk₂ : s ≤[i \ ⋃ l < k, restrictNonposSeq s i l] 0 := Nat.find_spec hn
state_before: case neg
α : Type u_1
β : Type u_2
inst✝³ : MeasurableSpace α
M : Type u_3
inst✝² : AddCommMonoid M
inst✝¹ : TopologicalSpace M
inst✝ : OrderedAddCommMonoid M
s : SignedMeasure α
i j : Set α
hi₁ : MeasurableSet i
hi₂ : ↑s i < 0
h : ¬restrict s i ≤ restrict 0 i
hn :
  ∃ n,
    restrict s (i \ ⋃ l, ⋃ (_ : l < n), MeasureTheory.SignedMeasure.restrictNonposSeq s i l) ≤
      restrict 0 (i \ ⋃ l, ⋃ (_ : l < n), MeasureTheory.SignedMeasure.restrictNonposSeq s i l)
k : ℕ := Nat.find hn
hk₂ :
  restrict s (i \ ⋃ l, ⋃ (_ : l < k), MeasureTheory.SignedMeasure.restrictNonposSeq s i l) ≤
    restrict 0 (i \ ⋃ l, ⋃ (_ : l < k), MeasureTheory.SignedMeasure.restrictNonposSeq s i l)
⊢ ∃ j, MeasurableSet j ∧ j ⊆ i ∧ restrict s j ≤ restrict 0 j ∧ ↑s j < 0
state_after: case neg
α : Type u_1
β : Type u_2
inst✝³ : MeasurableSpace α
M : Type u_3
inst✝² : AddCommMonoid M
inst✝¹ : TopologicalSpace M
inst✝ : OrderedAddCommMonoid M
s : SignedMeasure α
i j : Set α
hi₁ : MeasurableSet i
hi₂ : ↑s i < 0
h : ¬restrict s i ≤ restrict 0 i
hn :
  ∃ n,
    restrict s (i \ ⋃ l, ⋃ (_ : l < n), MeasureTheory.SignedMeasure.restrictNonposSeq s i l) ≤
      restrict 0 (i \ ⋃ l, ⋃ (_ : l < n), MeasureTheory.SignedMeasure.restrictNonposSeq s i l)
k : ℕ := Nat.find hn
hk₂ :
  restrict s (i \ ⋃ l, ⋃ (_ : l < k), MeasureTheory.SignedMeasure.restrictNonposSeq s i l) ≤
    restrict 0 (i \ ⋃ l, ⋃ (_ : l < k), MeasureTheory.SignedMeasure.restrictNonposSeq s i l)
hmeas : MeasurableSet (⋃ l, ⋃ (_ : l < k), MeasureTheory.SignedMeasure.restrictNonposSeq s i l)
⊢ ∃ j, MeasurableSet j ∧ j ⊆ i ∧ restrict s j ≤ restrict 0 j ∧ ↑s j < 0
tactic: have hmeas : MeasurableSet (⋃ (l : ℕ) (_ : l < k), restrictNonposSeq s i l) :=
    MeasurableSet.iUnion fun _ => MeasurableSet.iUnion fun _ => restrictNonposSeq_measurableSet _
state_before: case neg
α : Type u_1
β : Type u_2
inst✝³ : MeasurableSpace α
M : Type u_3
inst✝² : AddCommMonoid M
inst✝¹ : TopologicalSpace M
inst✝ : OrderedAddCommMonoid M
s : SignedMeasure α
i j : Set α
hi₁ : MeasurableSet i
hi₂ : ↑s i < 0
h : ¬restrict s i ≤ restrict 0 i
hn :
  ∃ n,
    restrict s (i \ ⋃ l, ⋃ (_ : l < n), MeasureTheory.SignedMeasure.restrictNonposSeq s i l) ≤
      restrict 0 (i \ ⋃ l, ⋃ (_ : l < n), MeasureTheory.SignedMeasure.restrictNonposSeq s i l)
k : ℕ := Nat.find hn
hk₂ :
  restrict s (i \ ⋃ l, ⋃ (_ : l < k), MeasureTheory.SignedMeasure.restrictNonposSeq s i l) ≤
    restrict 0 (i \ ⋃ l, ⋃ (_ : l < k), MeasureTheory.SignedMeasure.restrictNonposSeq s i l)
hmeas : MeasurableSet (⋃ l, ⋃ (_ : l < k), MeasureTheory.SignedMeasure.restrictNonposSeq s i l)
⊢ ∃ j, MeasurableSet j ∧ j ⊆ i ∧ restrict s j ≤ restrict 0 j ∧ ↑s j < 0
state_after: case neg
α : Type u_1
β : Type u_2
inst✝³ : MeasurableSpace α
M : Type u_3
inst✝² : AddCommMonoid M
inst✝¹ : TopologicalSpace M
inst✝ : OrderedAddCommMonoid M
s : SignedMeasure α
i j : Set α
hi₁ : MeasurableSet i
hi₂ : ↑s i < 0
h : ¬restrict s i ≤ restrict 0 i
hn :
  ∃ n,
    restrict s (i \ ⋃ l, ⋃ (_ : l < n), MeasureTheory.SignedMeasure.restrictNonposSeq s i l) ≤
      restrict 0 (i \ ⋃ l, ⋃ (_ : l < n), MeasureTheory.SignedMeasure.restrictNonposSeq s i l)
k : ℕ := Nat.find hn
hk₂ :
  restrict s (i \ ⋃ l, ⋃ (_ : l < k), MeasureTheory.SignedMeasure.restrictNonposSeq s i l) ≤
    restrict 0 (i \ ⋃ l, ⋃ (_ : l < k), MeasureTheory.SignedMeasure.restrictNonposSeq s i l)
hmeas : MeasurableSet (⋃ l, ⋃ (_ : l < k), MeasureTheory.SignedMeasure.restrictNonposSeq s i l)
⊢ ↑s (i \ ⋃ l, ⋃ (_ : l < k), MeasureTheory.SignedMeasure.restrictNonposSeq s i l) < 0
tactic: refine ⟨i \ ⋃ l < k, restrictNonposSeq s i l, hi₁.diff hmeas, Set.diff_subset, hk₂, ?_⟩
state_before: case neg
α : Type u_1
β : Type u_2
inst✝³ : MeasurableSpace α
M : Type u_3
inst✝² : AddCommMonoid M
inst✝¹ : TopologicalSpace M
inst✝ : OrderedAddCommMonoid M
s : SignedMeasure α
i j : Set α
hi₁ : MeasurableSet i
hi₂ : ↑s i < 0
h : ¬restrict s i ≤ restrict 0 i
hn :
  ∃ n,
    restrict s (i \ ⋃ l, ⋃ (_ : l < n), MeasureTheory.SignedMeasure.restrictNonposSeq s i l) ≤
      restrict 0 (i \ ⋃ l, ⋃ (_ : l < n), MeasureTheory.SignedMeasure.restrictNonposSeq s i l)
k : ℕ := Nat.find hn
hk₂ :
  restrict s (i \ ⋃ l, ⋃ (_ : l < k), MeasureTheory.SignedMeasure.restrictNonposSeq s i l) ≤
    restrict 0 (i \ ⋃ l, ⋃ (_ : l < k), MeasureTheory.SignedMeasure.restrictNonposSeq s i l)
hmeas : MeasurableSet (⋃ l, ⋃ (_ : l < k), MeasureTheory.SignedMeasure.restrictNonposSeq s i l)
⊢ ↑s (i \ ⋃ l, ⋃ (_ : l < k), MeasureTheory.SignedMeasure.restrictNonposSeq s i l) < 0
state_after: case neg
α : Type u_1
β : Type u_2
inst✝³ : MeasurableSpace α
M : Type u_3
inst✝² : AddCommMonoid M
inst✝¹ : TopologicalSpace M
inst✝ : OrderedAddCommMonoid M
s : SignedMeasure α
i j : Set α
hi₁ : MeasurableSet i
hi₂ : ↑s i < 0
h : ¬restrict s i ≤ restrict 0 i
hn :
  ∃ n,
    restrict s (i \ ⋃ l, ⋃ (_ : l < n), MeasureTheory.SignedMeasure.restrictNonposSeq s i l) ≤
      restrict 0 (i \ ⋃ l, ⋃ (_ : l < n), MeasureTheory.SignedMeasure.restrictNonposSeq s i l)
k : ℕ := Nat.find hn
hk₂ :
  restrict s (i \ ⋃ l, ⋃ (_ : l < k), MeasureTheory.SignedMeasure.restrictNonposSeq s i l) ≤
    restrict 0 (i \ ⋃ l, ⋃ (_ : l < k), MeasureTheory.SignedMeasure.restrictNonposSeq s i l)
hmeas : MeasurableSet (⋃ l, ⋃ (_ : l < k), MeasureTheory.SignedMeasure.restrictNonposSeq s i l)
⊢ ↑s i - ∑' (i_1 : ℕ), ↑s (⋃ (_ : i_1 < k), MeasureTheory.SignedMeasure.restrictNonposSeq s i i_1) < 0

case neg.hf₁
α : Type u_1
β : Type u_2
inst✝³ : MeasurableSpace α
M : Type u_3
inst✝² : AddCommMonoid M
inst✝¹ : TopologicalSpace M
inst✝ : OrderedAddCommMonoid M
s : SignedMeasure α
i j : Set α
hi₁ : MeasurableSet i
hi₂ : ↑s i < 0
h : ¬restrict s i ≤ restrict 0 i
hn :
  ∃ n,
    restrict s (i \ ⋃ l, ⋃ (_ : l < n), MeasureTheory.SignedMeasure.restrictNonposSeq s i l) ≤
      restrict 0 (i \ ⋃ l, ⋃ (_ : l < n), MeasureTheory.SignedMeasure.restrictNonposSeq s i l)
k : ℕ := Nat.find hn
hk₂ :
  restrict s (i \ ⋃ l, ⋃ (_ : l < k), MeasureTheory.SignedMeasure.restrictNonposSeq s i l) ≤
    restrict 0 (i \ ⋃ l, ⋃ (_ : l < k), MeasureTheory.SignedMeasure.restrictNonposSeq s i l)
hmeas : MeasurableSet (⋃ l, ⋃ (_ : l < k), MeasureTheory.SignedMeasure.restrictNonposSeq s i l)
⊢ ∀ (i_1 : ℕ), MeasurableSet (⋃ (_ : i_1 < k), MeasureTheory.SignedMeasure.restrictNonposSeq s i i_1)

case neg.hf₂
α : Type u_1
β : Type u_2
inst✝³ : MeasurableSpace α
M : Type u_3
inst✝² : AddCommMonoid M
inst✝¹ : TopologicalSpace M
inst✝ : OrderedAddCommMonoid M
s : SignedMeasure α
i j : Set α
hi₁ : MeasurableSet i
hi₂ : ↑s i < 0
h : ¬restrict s i ≤ restrict 0 i
hn :
  ∃ n,
    restrict s (i \ ⋃ l, ⋃ (_ : l < n), MeasureTheory.SignedMeasure.restrictNonposSeq s i l) ≤
      restrict 0 (i \ ⋃ l, ⋃ (_ : l < n), MeasureTheory.SignedMeasure.restrictNonposSeq s i l)
k : ℕ := Nat.find hn
hk₂ :
  restrict s (i \ ⋃ l, ⋃ (_ : l < k), MeasureTheory.SignedMeasure.restrictNonposSeq s i l) ≤
    restrict 0 (i \ ⋃ l, ⋃ (_ : l < k), MeasureTheory.SignedMeasure.restrictNonposSeq s i l)
hmeas : MeasurableSet (⋃ l, ⋃ (_ : l < k), MeasureTheory.SignedMeasure.restrictNonposSeq s i l)
⊢ Pairwise (Disjoint on fun l => ⋃ (_ : l < k), MeasureTheory.SignedMeasure.restrictNonposSeq s i l)

case neg
α : Type u_1
β : Type u_2
inst✝³ : MeasurableSpace α
M : Type u_3
inst✝² : AddCommMonoid M
inst✝¹ : TopologicalSpace M
inst✝ : OrderedAddCommMonoid M
s : SignedMeasure α
i j : Set α
hi₁ : MeasurableSet i
hi₂ : ↑s i < 0
h : ¬restrict s i ≤ restrict 0 i
hn :
  ∃ n,
    restrict s (i \ ⋃ l, ⋃ (_ : l < n), MeasureTheory.SignedMeasure.restrictNonposSeq s i l) ≤
      restrict 0 (i \ ⋃ l, ⋃ (_ : l < n), MeasureTheory.SignedMeasure.restrictNonposSeq s i l)
k : ℕ := Nat.find hn
hk₂ :
  restrict s (i \ ⋃ l, ⋃ (_ : l < k), MeasureTheory.SignedMeasure.restrictNonposSeq s i l) ≤
    restrict 0 (i \ ⋃ l, ⋃ (_ : l < k), MeasureTheory.SignedMeasure.restrictNonposSeq s i l)
hmeas : MeasurableSet (⋃ l, ⋃ (_ : l < k), MeasureTheory.SignedMeasure.restrictNonposSeq s i l)
⊢ ⋃ l, ⋃ (_ : l < k), MeasureTheory.SignedMeasure.restrictNonposSeq s i l ⊆ i
tactic: rw [of_diff hmeas hi₁, s.of_disjoint_iUnion_nat]