Theorem: MeasureTheory.OuterMeasure.iUnion_nat_of_monotone_of_tsum_ne_top
File: Mathlib/MeasureTheory/Measure/OuterMeasure.lean

tactic: refine' m.iUnion_of_tendsto_zero atTop _
state_before: α : Type u_1
β : Type ?u.15791
R : Type ?u.15794
R' : Type ?u.15797
ms : Set (OuterMeasure α)
m✝ m : OuterMeasure α
s : ℕ → Set α
h_mono : ∀ (n : ℕ), s n ⊆ s (n + 1)
h0 : (∑' (k : ℕ), ↑m (s (k + 1) \ s k)) ≠ ⊤
inst✝ : (i : ℕ) → DecidablePred fun x => x ∈ s i
⊢ ↑m (⋃ (n : ℕ), s n) = ⨆ (n : ℕ), ↑m (s n)

tactic: refine' tendsto_nhds_bot_mono' (ENNReal.tendsto_sum_nat_add _ h0) fun n => _
state_before: α : Type u_1
β : Type ?u.15791
R : Type ?u.15794
R' : Type ?u.15797
ms : Set (OuterMeasure α)
m✝ m : OuterMeasure α
s : ℕ → Set α
h_mono : ∀ (n : ℕ), s n ⊆ s (n + 1)
h0 : (∑' (k : ℕ), ↑m (s (k + 1) \ s k)) ≠ ⊤
inst✝ : (i : ℕ) → DecidablePred fun x => x ∈ s i
⊢ Tendsto (fun k => ↑m ((⋃ (n : ℕ), s n) \ s k)) atTop (𝓝 0)

tactic: refine' (m.mono _).trans (m.iUnion _)
state_before: α : Type u_1
β : Type ?u.15791
R : Type ?u.15794
R' : Type ?u.15797
ms : Set (OuterMeasure α)
m✝ m : OuterMeasure α
s : ℕ → Set α
h_mono : ∀ (n : ℕ), s n ⊆ s (n + 1)
h0 : (∑' (k : ℕ), ↑m (s (k + 1) \ s k)) ≠ ⊤
inst✝ : (i : ℕ) → DecidablePred fun x => x ∈ s i
n : ℕ
⊢ ↑m ((⋃ (n : ℕ), s n) \ s n) ≤ ∑' (k : ℕ), ↑m (s (k + n + 1) \ s (k + n))

tactic: have h' : Monotone s := @monotone_nat_of_le_succ (Set α) _ _ h_mono
state_before: α : Type u_1
β : Type ?u.15791
R : Type ?u.15794
R' : Type ?u.15797
ms : Set (OuterMeasure α)
m✝ m : OuterMeasure α
s : ℕ → Set α
h_mono : ∀ (n : ℕ), s n ⊆ s (n + 1)
h0 : (∑' (k : ℕ), ↑m (s (k + 1) \ s k)) ≠ ⊤
inst✝ : (i : ℕ) → DecidablePred fun x => x ∈ s i
n : ℕ
⊢ (⋃ (n : ℕ), s n) \ s n ⊆ ⋃ (i : ℕ), s (i + n + 1) \ s (i + n)

tactic: simp only [diff_subset_iff, iUnion_subset_iff]
state_before: α : Type u_1
β : Type ?u.15791
R : Type ?u.15794
R' : Type ?u.15797
ms : Set (OuterMeasure α)
m✝ m : OuterMeasure α
s : ℕ → Set α
h_mono : ∀ (n : ℕ), s n ⊆ s (n + 1)
h0 : (∑' (k : ℕ), ↑m (s (k + 1) \ s k)) ≠ ⊤
inst✝ : (i : ℕ) → DecidablePred fun x => x ∈ s i
n : ℕ
h' : Monotone s
⊢ (⋃ (n : ℕ), s n) \ s n ⊆ ⋃ (i : ℕ), s (i + n + 1) \ s (i + n)

tactic: intro i x hx
state_before: α : Type u_1
β : Type ?u.15791
R : Type ?u.15794
R' : Type ?u.15797
ms : Set (OuterMeasure α)
m✝ m : OuterMeasure α
s : ℕ → Set α
h_mono : ∀ (n : ℕ), s n ⊆ s (n + 1)
h0 : (∑' (k : ℕ), ↑m (s (k + 1) \ s k)) ≠ ⊤
inst✝ : (i : ℕ) → DecidablePred fun x => x ∈ s i
n : ℕ
h' : Monotone s
⊢ ∀ (i : ℕ), s i ⊆ s n ∪ ⋃ (i : ℕ), s (i + n + 1) \ s (i + n)

tactic: have : ∃i, x ∈ s i := by exists i
state_before: α : Type u_1
β : Type ?u.15791
R : Type ?u.15794
R' : Type ?u.15797
ms : Set (OuterMeasure α)
m✝ m : OuterMeasure α
s : ℕ → Set α
h_mono : ∀ (n : ℕ), s n ⊆ s (n + 1)
h0 : (∑' (k : ℕ), ↑m (s (k + 1) \ s k)) ≠ ⊤
inst✝ : (i : ℕ) → DecidablePred fun x => x ∈ s i
n : ℕ
h' : Monotone s
i : ℕ
x : α
hx : x ∈ s i
⊢ x ∈ s n ∪ ⋃ (i : ℕ), s (i + n + 1) \ s (i + n)

tactic: rcases Nat.findX this with ⟨j, hj, hlt⟩
state_before: α : Type u_1
β : Type ?u.15791
R : Type ?u.15794
R' : Type ?u.15797
ms : Set (OuterMeasure α)
m✝ m : OuterMeasure α
s : ℕ → Set α
h_mono : ∀ (n : ℕ), s n ⊆ s (n + 1)
h0 : (∑' (k : ℕ), ↑m (s (k + 1) \ s k)) ≠ ⊤
inst✝ : (i : ℕ) → DecidablePred fun x => x ∈ s i
n : ℕ
h' : Monotone s
i : ℕ
x : α
hx : x ∈ s i
this : ∃ i, x ∈ s i
⊢ x ∈ s n ∪ ⋃ (i : ℕ), s (i + n + 1) \ s (i + n)

tactic: clear hx i
state_before: case mk.intro
α : Type u_1
β : Type ?u.15791
R : Type ?u.15794
R' : Type ?u.15797
ms : Set (OuterMeasure α)
m✝ m : OuterMeasure α
s : ℕ → Set α
h_mono : ∀ (n : ℕ), s n ⊆ s (n + 1)
h0 : (∑' (k : ℕ), ↑m (s (k + 1) \ s k)) ≠ ⊤
inst✝ : (i : ℕ) → DecidablePred fun x => x ∈ s i
n : ℕ
h' : Monotone s
i : ℕ
x : α
hx : x ∈ s i
this : ∃ i, x ∈ s i
j : ℕ
hj : x ∈ s j
hlt : ∀ (m : ℕ), m < j → ¬x ∈ s m
⊢ x ∈ s n ∪ ⋃ (i : ℕ), s (i + n + 1) \ s (i + n)

tactic: cases' le_or_lt j n with hjn hnj
state_before: case mk.intro
α : Type u_1
β : Type ?u.15791
R : Type ?u.15794
R' : Type ?u.15797
ms : Set (OuterMeasure α)
m✝ m : OuterMeasure α
s : ℕ → Set α
h_mono : ∀ (n : ℕ), s n ⊆ s (n + 1)
h0 : (∑' (k : ℕ), ↑m (s (k + 1) \ s k)) ≠ ⊤
inst✝ : (i : ℕ) → DecidablePred fun x => x ∈ s i
n : ℕ
h' : Monotone s
x : α
this : ∃ i, x ∈ s i
j : ℕ
hj : x ∈ s j
hlt : ∀ (m : ℕ), m < j → ¬x ∈ s m
⊢ x ∈ s n ∪ ⋃ (i : ℕ), s (i + n + 1) \ s (i + n)

tactic: have : j - (n + 1) + n + 1 = j := by rw [add_assoc, tsub_add_cancel_of_le hnj.nat_succ_le]
state_before: case mk.intro.inr
α : Type u_1
β : Type ?u.15791
R : Type ?u.15794
R' : Type ?u.15797
ms : Set (OuterMeasure α)
m✝ m : OuterMeasure α
s : ℕ → Set α
h_mono : ∀ (n : ℕ), s n ⊆ s (n + 1)
h0 : (∑' (k : ℕ), ↑m (s (k + 1) \ s k)) ≠ ⊤
inst✝ : (i : ℕ) → DecidablePred fun x => x ∈ s i
n : ℕ
h' : Monotone s
x : α
this : ∃ i, x ∈ s i
j : ℕ
hj : x ∈ s j
hlt : ∀ (m : ℕ), m < j → ¬x ∈ s m
hnj : n < j
⊢ x ∈ s n ∪ ⋃ (i : ℕ), s (i + n + 1) \ s (i + n)

tactic: refine' Or.inr (mem_iUnion.2 ⟨j - (n + 1), _, hlt _ _⟩)
state_before: case mk.intro.inr
α : Type u_1
β : Type ?u.15791
R : Type ?u.15794
R' : Type ?u.15797
ms : Set (OuterMeasure α)
m✝ m : OuterMeasure α
s : ℕ → Set α
h_mono : ∀ (n : ℕ), s n ⊆ s (n + 1)
h0 : (∑' (k : ℕ), ↑m (s (k + 1) \ s k)) ≠ ⊤
inst✝ : (i : ℕ) → DecidablePred fun x => x ∈ s i
n : ℕ
h' : Monotone s
x : α
this✝ : ∃ i, x ∈ s i
j : ℕ
hj : x ∈ s j
hlt : ∀ (m : ℕ), m < j → ¬x ∈ s m
hnj : n < j
this : j - (n + 1) + n + 1 = j
⊢ x ∈ s n ∪ ⋃ (i : ℕ), s (i + n + 1) \ s (i + n)

tactic: exists i
state_before: α : Type u_1
β : Type ?u.15791
R : Type ?u.15794
R' : Type ?u.15797
ms : Set (OuterMeasure α)
m✝ m : OuterMeasure α
s : ℕ → Set α
h_mono : ∀ (n : ℕ), s n ⊆ s (n + 1)
h0 : (∑' (k : ℕ), ↑m (s (k + 1) \ s k)) ≠ ⊤
inst✝ : (i : ℕ) → DecidablePred fun x => x ∈ s i
n : ℕ
h' : Monotone s
i : ℕ
x : α
hx : x ∈ s i
⊢ ∃ i, x ∈ s i

tactic: exact Or.inl (h' hjn hj)
state_before: case mk.intro.inl
α : Type u_1
β : Type ?u.15791
R : Type ?u.15794
R' : Type ?u.15797
ms : Set (OuterMeasure α)
m✝ m : OuterMeasure α
s : ℕ → Set α
h_mono : ∀ (n : ℕ), s n ⊆ s (n + 1)
h0 : (∑' (k : ℕ), ↑m (s (k + 1) \ s k)) ≠ ⊤
inst✝ : (i : ℕ) → DecidablePred fun x => x ∈ s i
n : ℕ
h' : Monotone s
x : α
this : ∃ i, x ∈ s i
j : ℕ
hj : x ∈ s j
hlt : ∀ (m : ℕ), m < j → ¬x ∈ s m
hjn : j ≤ n
⊢ x ∈ s n ∪ ⋃ (i : ℕ), s (i + n + 1) \ s (i + n)

tactic: rw [add_assoc, tsub_add_cancel_of_le hnj.nat_succ_le]
state_before: α : Type u_1
β : Type ?u.15791
R : Type ?u.15794
R' : Type ?u.15797
ms : Set (OuterMeasure α)
m✝ m : OuterMeasure α
s : ℕ → Set α
h_mono : ∀ (n : ℕ), s n ⊆ s (n + 1)
h0 : (∑' (k : ℕ), ↑m (s (k + 1) \ s k)) ≠ ⊤
inst✝ : (i : ℕ) → DecidablePred fun x => x ∈ s i
n : ℕ
h' : Monotone s
x : α
this : ∃ i, x ∈ s i
j : ℕ
hj : x ∈ s j
hlt : ∀ (m : ℕ), m < j → ¬x ∈ s m
hnj : n < j
⊢ j - (n + 1) + n + 1 = j

tactic: rwa [this]
state_before: case mk.intro.inr.refine'_1
α : Type u_1
β : Type ?u.15791
R : Type ?u.15794
R' : Type ?u.15797
ms : Set (OuterMeasure α)
m✝ m : OuterMeasure α
s : ℕ → Set α
h_mono : ∀ (n : ℕ), s n ⊆ s (n + 1)
h0 : (∑' (k : ℕ), ↑m (s (k + 1) \ s k)) ≠ ⊤
inst✝ : (i : ℕ) → DecidablePred fun x => x ∈ s i
n : ℕ
h' : Monotone s
x : α
this✝ : ∃ i, x ∈ s i
j : ℕ
hj : x ∈ s j
hlt : ∀ (m : ℕ), m < j → ¬x ∈ s m
hnj : n < j
this : j - (n + 1) + n + 1 = j
⊢ x ∈ s (j - (n + 1) + n + 1)

tactic: rw [← Nat.succ_le_iff, Nat.succ_eq_add_one, this]
state_before: case mk.intro.inr.refine'_2
α : Type u_1
β : Type ?u.15791
R : Type ?u.15794
R' : Type ?u.15797
ms : Set (OuterMeasure α)
m✝ m : OuterMeasure α
s : ℕ → Set α
h_mono : ∀ (n : ℕ), s n ⊆ s (n + 1)
h0 : (∑' (k : ℕ), ↑m (s (k + 1) \ s k)) ≠ ⊤
inst✝ : (i : ℕ) → DecidablePred fun x => x ∈ s i
n : ℕ
h' : Monotone s
x : α
this✝ : ∃ i, x ∈ s i
j : ℕ
hj : x ∈ s j
hlt : ∀ (m : ℕ), m < j → ¬x ∈ s m
hnj : n < j
this : j - (n + 1) + n + 1 = j
⊢ j - (n + 1) + n < j