Theorem: MeasureTheory.tendsto_measure_Ico_atTop
File: Mathlib/MeasureTheory/Measure/Stieltjes.lean

tactic: haveI : Nonempty α := ⟨a⟩
state_before: α : Type u_1
mα : MeasurableSpace α
inst✝² : SemilatticeSup α
inst✝¹ : NoMaxOrder α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
a : α
⊢ Tendsto (fun x => ↑↑μ (Ico a x)) atTop (𝓝 (↑↑μ (Ici a)))

tactic: have h_mono : Monotone fun x => μ (Ico a x) := fun i j hij =>
  measure_mono (Ico_subset_Ico_right hij)
state_before: α : Type u_1
mα : MeasurableSpace α
inst✝² : SemilatticeSup α
inst✝¹ : NoMaxOrder α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
a : α
this : Nonempty α
⊢ Tendsto (fun x => ↑↑μ (Ico a x)) atTop (𝓝 (↑↑μ (Ici a)))

tactic: convert tendsto_atTop_iSup h_mono
state_before: α : Type u_1
mα : MeasurableSpace α
inst✝² : SemilatticeSup α
inst✝¹ : NoMaxOrder α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
a : α
this : Nonempty α
h_mono : Monotone fun x => ↑↑μ (Ico a x)
⊢ Tendsto (fun x => ↑↑μ (Ico a x)) atTop (𝓝 (↑↑μ (Ici a)))

tactic: obtain ⟨xs, hxs_mono, hxs_tendsto⟩ := exists_seq_monotone_tendsto_atTop_atTop α
state_before: case h.e'_5.h.e'_3
α : Type u_1
mα : MeasurableSpace α
inst✝² : SemilatticeSup α
inst✝¹ : NoMaxOrder α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
a : α
this : Nonempty α
h_mono : Monotone fun x => ↑↑μ (Ico a x)
⊢ ↑↑μ (Ici a) = ⨆ (i : α), ↑↑μ (Ico a i)

tactic: have h_Ici : Ici a = ⋃ n, Ico a (xs n) := by
  ext1 x
  simp only [mem_Ici, mem_iUnion, mem_Ico, exists_and_left, iff_self_and]
  intro
  obtain ⟨y, hxy⟩ := NoMaxOrder.exists_gt x
  obtain ⟨n, hn⟩ := tendsto_atTop_atTop.mp hxs_tendsto y
  exact ⟨n, hxy.trans_le (hn n le_rfl)⟩
state_before: case h.e'_5.h.e'_3.intro.intro
α : Type u_1
mα : MeasurableSpace α
inst✝² : SemilatticeSup α
inst✝¹ : NoMaxOrder α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
a : α
this : Nonempty α
h_mono : Monotone fun x => ↑↑μ (Ico a x)
xs : ℕ → α
hxs_mono : Monotone xs
hxs_tendsto : Tendsto xs atTop atTop
⊢ ↑↑μ (Ici a) = ⨆ (i : α), ↑↑μ (Ico a i)

tactic: rw [h_Ici, measure_iUnion_eq_iSup, iSup_eq_iSup_subseq_of_monotone h_mono hxs_tendsto]
state_before: case h.e'_5.h.e'_3.intro.intro
α : Type u_1
mα : MeasurableSpace α
inst✝² : SemilatticeSup α
inst✝¹ : NoMaxOrder α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
a : α
this : Nonempty α
h_mono : Monotone fun x => ↑↑μ (Ico a x)
xs : ℕ → α
hxs_mono : Monotone xs
hxs_tendsto : Tendsto xs atTop atTop
h_Ici : Ici a = ⋃ (n : ℕ), Ico a (xs n)
⊢ ↑↑μ (Ici a) = ⨆ (i : α), ↑↑μ (Ico a i)

tactic: exact Monotone.directed_le fun i j hij => Ico_subset_Ico_right (hxs_mono hij)
state_before: case h.e'_5.h.e'_3.intro.intro
α : Type u_1
mα : MeasurableSpace α
inst✝² : SemilatticeSup α
inst✝¹ : NoMaxOrder α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
a : α
this : Nonempty α
h_mono : Monotone fun x => ↑↑μ (Ico a x)
xs : ℕ → α
hxs_mono : Monotone xs
hxs_tendsto : Tendsto xs atTop atTop
h_Ici : Ici a = ⋃ (n : ℕ), Ico a (xs n)
⊢ Directed (fun x x_1 => x ⊆ x_1) fun n => Ico a (xs n)

tactic: ext1 x
state_before: α : Type u_1
mα : MeasurableSpace α
inst✝² : SemilatticeSup α
inst✝¹ : NoMaxOrder α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
a : α
this : Nonempty α
h_mono : Monotone fun x => ↑↑μ (Ico a x)
xs : ℕ → α
hxs_mono : Monotone xs
hxs_tendsto : Tendsto xs atTop atTop
⊢ Ici a = ⋃ (n : ℕ), Ico a (xs n)

tactic: simp only [mem_Ici, mem_iUnion, mem_Ico, exists_and_left, iff_self_and]
state_before: case h
α : Type u_1
mα : MeasurableSpace α
inst✝² : SemilatticeSup α
inst✝¹ : NoMaxOrder α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
a : α
this : Nonempty α
h_mono : Monotone fun x => ↑↑μ (Ico a x)
xs : ℕ → α
hxs_mono : Monotone xs
hxs_tendsto : Tendsto xs atTop atTop
x : α
⊢ x ∈ Ici a ↔ x ∈ ⋃ (n : ℕ), Ico a (xs n)

tactic: intro
state_before: case h
α : Type u_1
mα : MeasurableSpace α
inst✝² : SemilatticeSup α
inst✝¹ : NoMaxOrder α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
a : α
this : Nonempty α
h_mono : Monotone fun x => ↑↑μ (Ico a x)
xs : ℕ → α
hxs_mono : Monotone xs
hxs_tendsto : Tendsto xs atTop atTop
x : α
⊢ a ≤ x → ∃ x_1, x < xs x_1

tactic: obtain ⟨y, hxy⟩ := NoMaxOrder.exists_gt x
state_before: case h
α : Type u_1
mα : MeasurableSpace α
inst✝² : SemilatticeSup α
inst✝¹ : NoMaxOrder α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
a : α
this : Nonempty α
h_mono : Monotone fun x => ↑↑μ (Ico a x)
xs : ℕ → α
hxs_mono : Monotone xs
hxs_tendsto : Tendsto xs atTop atTop
x : α
a✝ : a ≤ x
⊢ ∃ x_1, x < xs x_1

tactic: obtain ⟨n, hn⟩ := tendsto_atTop_atTop.mp hxs_tendsto y
state_before: case h.intro
α : Type u_1
mα : MeasurableSpace α
inst✝² : SemilatticeSup α
inst✝¹ : NoMaxOrder α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
a : α
this : Nonempty α
h_mono : Monotone fun x => ↑↑μ (Ico a x)
xs : ℕ → α
hxs_mono : Monotone xs
hxs_tendsto : Tendsto xs atTop atTop
x : α
a✝ : a ≤ x
y : α
hxy : x < y
⊢ ∃ x_1, x < xs x_1

tactic: exact ⟨n, hxy.trans_le (hn n le_rfl)⟩
state_before: case h.intro.intro
α : Type u_1
mα : MeasurableSpace α
inst✝² : SemilatticeSup α
inst✝¹ : NoMaxOrder α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
a : α
this : Nonempty α
h_mono : Monotone fun x => ↑↑μ (Ico a x)
xs : ℕ → α
hxs_mono : Monotone xs
hxs_tendsto : Tendsto xs atTop atTop
x : α
a✝ : a ≤ x
y : α
hxy : x < y
n : ℕ
hn : ∀ (a : ℕ), n ≤ a → y ≤ xs a
⊢ ∃ x_1, x < xs x_1