Theorem: MeasureTheory.SignedMeasure.measure_of_restrictNonposSeq
File: Mathlib/MeasureTheory/Decomposition/SignedHahn.lean

tactic: cases n with
| zero =>
  rw [restrictNonposSeq]; rw [← @Set.diff_empty _ i] at hi₂
  rcases someExistsOneDivLT_spec hi₂ with ⟨_, _, h⟩
  exact lt_trans Nat.one_div_pos_of_nat h
| succ n =>
  rw [restrictNonposSeq_succ]
  have h₁ : ¬s ≤[i \ ⋃ (k : ℕ) (_ : k ≤ n), restrictNonposSeq s i k] 0 := by
    refine' mt (restrict_le_zero_subset _ _ (by simp [Nat.lt_succ_iff]; rfl)) hn
    convert measurable_of_not_restrict_le_zero _ hn using 3
    exact funext fun x => by rw [Nat.lt_succ_iff]
  rcases someExistsOneDivLT_spec h₁ with ⟨_, _, h⟩
  exact lt_trans Nat.one_div_pos_of_nat h
state_before: α : Type u_1
β : Type ?u.21389
inst✝³ : MeasurableSpace α
M : Type ?u.21395
inst✝² : AddCommMonoid M
inst✝¹ : TopologicalSpace M
inst✝ : OrderedAddCommMonoid M
s : SignedMeasure α
i j : Set α
hi₂ : ¬restrict s i ≤ restrict 0 i
n : ℕ
hn :
  ¬restrict s (i \ ⋃ (k : ℕ) (_ : k < n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k) ≤
      restrict 0 (i \ ⋃ (k : ℕ) (_ : k < n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k)
⊢ 0 < ↑s (MeasureTheory.SignedMeasure.restrictNonposSeq s i n)

tactic: rw [restrictNonposSeq]
state_before: case zero
α : Type u_1
β : Type ?u.21389
inst✝³ : MeasurableSpace α
M : Type ?u.21395
inst✝² : AddCommMonoid M
inst✝¹ : TopologicalSpace M
inst✝ : OrderedAddCommMonoid M
s : SignedMeasure α
i j : Set α
hi₂ : ¬restrict s i ≤ restrict 0 i
hn :
  ¬restrict s (i \ ⋃ (k : ℕ) (_ : k < Nat.zero), MeasureTheory.SignedMeasure.restrictNonposSeq s i k) ≤
      restrict 0 (i \ ⋃ (k : ℕ) (_ : k < Nat.zero), MeasureTheory.SignedMeasure.restrictNonposSeq s i k)
⊢ 0 < ↑s (MeasureTheory.SignedMeasure.restrictNonposSeq s i Nat.zero)

tactic: rw [← @Set.diff_empty _ i] at hi₂
state_before: case zero
α : Type u_1
β : Type ?u.21389
inst✝³ : MeasurableSpace α
M : Type ?u.21395
inst✝² : AddCommMonoid M
inst✝¹ : TopologicalSpace M
inst✝ : OrderedAddCommMonoid M
s : SignedMeasure α
i j : Set α
hi₂ : ¬restrict s i ≤ restrict 0 i
hn :
  ¬restrict s (i \ ⋃ (k : ℕ) (_ : k < Nat.zero), MeasureTheory.SignedMeasure.restrictNonposSeq s i k) ≤
      restrict 0 (i \ ⋃ (k : ℕ) (_ : k < Nat.zero), MeasureTheory.SignedMeasure.restrictNonposSeq s i k)
⊢ 0 < ↑s (MeasureTheory.SignedMeasure.someExistsOneDivLT s (i \ ∅))

tactic: rcases someExistsOneDivLT_spec hi₂ with ⟨_, _, h⟩
state_before: case zero
α : Type u_1
β : Type ?u.21389
inst✝³ : MeasurableSpace α
M : Type ?u.21395
inst✝² : AddCommMonoid M
inst✝¹ : TopologicalSpace M
inst✝ : OrderedAddCommMonoid M
s : SignedMeasure α
i j : Set α
hi₂ : ¬restrict s (i \ ∅) ≤ restrict 0 (i \ ∅)
hn :
  ¬restrict s (i \ ⋃ (k : ℕ) (_ : k < Nat.zero), MeasureTheory.SignedMeasure.restrictNonposSeq s i k) ≤
      restrict 0 (i \ ⋃ (k : ℕ) (_ : k < Nat.zero), MeasureTheory.SignedMeasure.restrictNonposSeq s i k)
⊢ 0 < ↑s (MeasureTheory.SignedMeasure.someExistsOneDivLT s (i \ ∅))

tactic: exact lt_trans Nat.one_div_pos_of_nat h
state_before: case zero.intro.intro
α : Type u_1
β : Type ?u.21389
inst✝³ : MeasurableSpace α
M : Type ?u.21395
inst✝² : AddCommMonoid M
inst✝¹ : TopologicalSpace M
inst✝ : OrderedAddCommMonoid M
s : SignedMeasure α
i j : Set α
hi₂ : ¬restrict s (i \ ∅) ≤ restrict 0 (i \ ∅)
hn :
  ¬restrict s (i \ ⋃ (k : ℕ) (_ : k < Nat.zero), MeasureTheory.SignedMeasure.restrictNonposSeq s i k) ≤
      restrict 0 (i \ ⋃ (k : ℕ) (_ : k < Nat.zero), MeasureTheory.SignedMeasure.restrictNonposSeq s i k)
left✝¹ : MeasureTheory.SignedMeasure.someExistsOneDivLT s (i \ ∅) ⊆ i \ ∅
left✝ : MeasurableSet (MeasureTheory.SignedMeasure.someExistsOneDivLT s (i \ ∅))
h :
  1 / (↑(MeasureTheory.SignedMeasure.findExistsOneDivLT s (i \ ∅)) + 1) <
    ↑s (MeasureTheory.SignedMeasure.someExistsOneDivLT s (i \ ∅))
⊢ 0 < ↑s (MeasureTheory.SignedMeasure.someExistsOneDivLT s (i \ ∅))

tactic: rw [restrictNonposSeq_succ]
state_before: case succ
α : Type u_1
β : Type ?u.21389
inst✝³ : MeasurableSpace α
M : Type ?u.21395
inst✝² : AddCommMonoid M
inst✝¹ : TopologicalSpace M
inst✝ : OrderedAddCommMonoid M
s : SignedMeasure α
i j : Set α
hi₂ : ¬restrict s i ≤ restrict 0 i
n : ℕ
hn :
  ¬restrict s (i \ ⋃ (k : ℕ) (_ : k < Nat.succ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k) ≤
      restrict 0 (i \ ⋃ (k : ℕ) (_ : k < Nat.succ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k)
⊢ 0 < ↑s (MeasureTheory.SignedMeasure.restrictNonposSeq s i (Nat.succ n))

tactic: have h₁ : ¬s ≤[i \ ⋃ (k : ℕ) (_ : k ≤ n), restrictNonposSeq s i k] 0 := by
  refine' mt (restrict_le_zero_subset _ _ (by simp [Nat.lt_succ_iff]; rfl)) hn
  convert measurable_of_not_restrict_le_zero _ hn using 3
  exact funext fun x => by rw [Nat.lt_succ_iff]
state_before: case succ
α : Type u_1
β : Type ?u.21389
inst✝³ : MeasurableSpace α
M : Type ?u.21395
inst✝² : AddCommMonoid M
inst✝¹ : TopologicalSpace M
inst✝ : OrderedAddCommMonoid M
s : SignedMeasure α
i j : Set α
hi₂ : ¬restrict s i ≤ restrict 0 i
n : ℕ
hn :
  ¬restrict s (i \ ⋃ (k : ℕ) (_ : k < Nat.succ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k) ≤
      restrict 0 (i \ ⋃ (k : ℕ) (_ : k < Nat.succ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k)
⊢ 0 <
    ↑s
      (MeasureTheory.SignedMeasure.someExistsOneDivLT s
        (i \ ⋃ (k : ℕ) (_ : k ≤ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k))

tactic: rcases someExistsOneDivLT_spec h₁ with ⟨_, _, h⟩
state_before: case succ
α : Type u_1
β : Type ?u.21389
inst✝³ : MeasurableSpace α
M : Type ?u.21395
inst✝² : AddCommMonoid M
inst✝¹ : TopologicalSpace M
inst✝ : OrderedAddCommMonoid M
s : SignedMeasure α
i j : Set α
hi₂ : ¬restrict s i ≤ restrict 0 i
n : ℕ
hn :
  ¬restrict s (i \ ⋃ (k : ℕ) (_ : k < Nat.succ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k) ≤
      restrict 0 (i \ ⋃ (k : ℕ) (_ : k < Nat.succ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k)
h₁ :
  ¬restrict s (i \ ⋃ (k : ℕ) (_ : k ≤ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k) ≤
      restrict 0 (i \ ⋃ (k : ℕ) (_ : k ≤ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k)
⊢ 0 <
    ↑s
      (MeasureTheory.SignedMeasure.someExistsOneDivLT s
        (i \ ⋃ (k : ℕ) (_ : k ≤ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k))

tactic: exact lt_trans Nat.one_div_pos_of_nat h
state_before: case succ.intro.intro
α : Type u_1
β : Type ?u.21389
inst✝³ : MeasurableSpace α
M : Type ?u.21395
inst✝² : AddCommMonoid M
inst✝¹ : TopologicalSpace M
inst✝ : OrderedAddCommMonoid M
s : SignedMeasure α
i j : Set α
hi₂ : ¬restrict s i ≤ restrict 0 i
n : ℕ
hn :
  ¬restrict s (i \ ⋃ (k : ℕ) (_ : k < Nat.succ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k) ≤
      restrict 0 (i \ ⋃ (k : ℕ) (_ : k < Nat.succ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k)
h₁ :
  ¬restrict s (i \ ⋃ (k : ℕ) (_ : k ≤ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k) ≤
      restrict 0 (i \ ⋃ (k : ℕ) (_ : k ≤ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k)
left✝¹ :
  MeasureTheory.SignedMeasure.someExistsOneDivLT s
      (i \ ⋃ (k : ℕ) (_ : k ≤ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k) ⊆
    i \ ⋃ (k : ℕ) (_ : k ≤ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k
left✝ :
  MeasurableSet
    (MeasureTheory.SignedMeasure.someExistsOneDivLT s
      (i \ ⋃ (k : ℕ) (_ : k ≤ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k))
h :
  1 /
      (↑(MeasureTheory.SignedMeasure.findExistsOneDivLT s
            (i \ ⋃ (k : ℕ) (_ : k ≤ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k)) +
        1) <
    ↑s
      (MeasureTheory.SignedMeasure.someExistsOneDivLT s
        (i \ ⋃ (k : ℕ) (_ : k ≤ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k))
⊢ 0 <
    ↑s
      (MeasureTheory.SignedMeasure.someExistsOneDivLT s
        (i \ ⋃ (k : ℕ) (_ : k ≤ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k))

tactic: refine' mt (restrict_le_zero_subset _ _ (by simp [Nat.lt_succ_iff]; rfl)) hn
state_before: α : Type u_1
β : Type ?u.21389
inst✝³ : MeasurableSpace α
M : Type ?u.21395
inst✝² : AddCommMonoid M
inst✝¹ : TopologicalSpace M
inst✝ : OrderedAddCommMonoid M
s : SignedMeasure α
i j : Set α
hi₂ : ¬restrict s i ≤ restrict 0 i
n : ℕ
hn :
  ¬restrict s (i \ ⋃ (k : ℕ) (_ : k < Nat.succ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k) ≤
      restrict 0 (i \ ⋃ (k : ℕ) (_ : k < Nat.succ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k)
⊢ ¬restrict s (i \ ⋃ (k : ℕ) (_ : k ≤ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k) ≤
      restrict 0 (i \ ⋃ (k : ℕ) (_ : k ≤ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k)

tactic: convert measurable_of_not_restrict_le_zero _ hn using 3
state_before: α : Type u_1
β : Type ?u.21389
inst✝³ : MeasurableSpace α
M : Type ?u.21395
inst✝² : AddCommMonoid M
inst✝¹ : TopologicalSpace M
inst✝ : OrderedAddCommMonoid M
s : SignedMeasure α
i j : Set α
hi₂ : ¬restrict s i ≤ restrict 0 i
n : ℕ
hn :
  ¬restrict s (i \ ⋃ (k : ℕ) (_ : k < Nat.succ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k) ≤
      restrict 0 (i \ ⋃ (k : ℕ) (_ : k < Nat.succ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k)
⊢ MeasurableSet (i \ ⋃ (k : ℕ) (_ : k ≤ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k)

tactic: exact funext fun x => by rw [Nat.lt_succ_iff]
state_before: case h.e'_3.h.e'_4.h.e'_3
α : Type u_1
β : Type ?u.21389
inst✝³ : MeasurableSpace α
M : Type ?u.21395
inst✝² : AddCommMonoid M
inst✝¹ : TopologicalSpace M
inst✝ : OrderedAddCommMonoid M
s : SignedMeasure α
i j : Set α
hi₂ : ¬restrict s i ≤ restrict 0 i
n : ℕ
hn :
  ¬restrict s (i \ ⋃ (k : ℕ) (_ : k < Nat.succ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k) ≤
      restrict 0 (i \ ⋃ (k : ℕ) (_ : k < Nat.succ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k)
⊢ (fun k => ⋃ (_ : k ≤ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k) = fun k =>
    ⋃ (_ : k < Nat.succ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k

tactic: simp [Nat.lt_succ_iff]
state_before: α : Type u_1
β : Type ?u.21389
inst✝³ : MeasurableSpace α
M : Type ?u.21395
inst✝² : AddCommMonoid M
inst✝¹ : TopologicalSpace M
inst✝ : OrderedAddCommMonoid M
s : SignedMeasure α
i j : Set α
hi₂ : ¬restrict s i ≤ restrict 0 i
n : ℕ
hn :
  ¬restrict s (i \ ⋃ (k : ℕ) (_ : k < Nat.succ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k) ≤
      restrict 0 (i \ ⋃ (k : ℕ) (_ : k < Nat.succ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k)
⊢ (i \ ⋃ (k : ℕ) (_ : k < Nat.succ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k) ⊆
    i \ ⋃ (k : ℕ) (_ : k ≤ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k

tactic: rfl
state_before: α : Type u_1
β : Type ?u.21389
inst✝³ : MeasurableSpace α
M : Type ?u.21395
inst✝² : AddCommMonoid M
inst✝¹ : TopologicalSpace M
inst✝ : OrderedAddCommMonoid M
s : SignedMeasure α
i j : Set α
hi₂ : ¬restrict s i ≤ restrict 0 i
n : ℕ
hn :
  ¬restrict s (i \ ⋃ (k : ℕ) (_ : k < Nat.succ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k) ≤
      restrict 0 (i \ ⋃ (k : ℕ) (_ : k < Nat.succ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k)
⊢ (i \ ⋃ (k : ℕ) (_ : k ≤ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k) ⊆
    i \ ⋃ (k : ℕ) (_ : k ≤ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k

tactic: rw [Nat.lt_succ_iff]
state_before: α : Type u_1
β : Type ?u.21389
inst✝³ : MeasurableSpace α
M : Type ?u.21395
inst✝² : AddCommMonoid M
inst✝¹ : TopologicalSpace M
inst✝ : OrderedAddCommMonoid M
s : SignedMeasure α
i j : Set α
hi₂ : ¬restrict s i ≤ restrict 0 i
n : ℕ
hn :
  ¬restrict s (i \ ⋃ (k : ℕ) (_ : k < Nat.succ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k) ≤
      restrict 0 (i \ ⋃ (k : ℕ) (_ : k < Nat.succ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i k)
x : ℕ
⊢ (⋃ (_ : x ≤ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i x) =
    ⋃ (_ : x < Nat.succ n), MeasureTheory.SignedMeasure.restrictNonposSeq s i x