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

tactic: cases isEmpty_or_nonempty α
state_before: α : Type u_1
mα : MeasurableSpace α
inst✝¹ : SemilatticeSup α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
⊢ Tendsto (fun x => ↑↑μ (Iic x)) atTop (𝓝 (↑↑μ univ))

tactic: have h_mono : Monotone fun x => μ (Iic x) := fun i j hij => measure_mono (Iic_subset_Iic.mpr hij)
state_before: case inr
α : Type u_1
mα : MeasurableSpace α
inst✝¹ : SemilatticeSup α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
h✝ : Nonempty α
⊢ Tendsto (fun x => ↑↑μ (Iic x)) atTop (𝓝 (↑↑μ univ))

tactic: convert tendsto_atTop_iSup h_mono
state_before: case inr
α : Type u_1
mα : MeasurableSpace α
inst✝¹ : SemilatticeSup α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
h✝ : Nonempty α
h_mono : Monotone fun x => ↑↑μ (Iic x)
⊢ Tendsto (fun x => ↑↑μ (Iic x)) atTop (𝓝 (↑↑μ univ))

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✝ : IsCountablyGenerated atTop
μ : Measure α
h✝ : Nonempty α
h_mono : Monotone fun x => ↑↑μ (Iic x)
⊢ ↑↑μ univ = ⨆ (i : α), ↑↑μ (Iic i)

tactic: have h_univ : (univ : Set α) = ⋃ n, Iic (xs n) := by
  ext1 x
  simp only [mem_univ, mem_iUnion, mem_Iic, true_iff_iff]
  obtain ⟨n, hn⟩ := tendsto_atTop_atTop.mp hxs_tendsto x
  exact ⟨n, hn n le_rfl⟩
state_before: case h.e'_5.h.e'_3.intro.intro
α : Type u_1
mα : MeasurableSpace α
inst✝¹ : SemilatticeSup α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
h✝ : Nonempty α
h_mono : Monotone fun x => ↑↑μ (Iic x)
xs : ℕ → α
hxs_mono : Monotone xs
hxs_tendsto : Tendsto xs atTop atTop
⊢ ↑↑μ univ = ⨆ (i : α), ↑↑μ (Iic i)

tactic: rw [h_univ, 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✝ : IsCountablyGenerated atTop
μ : Measure α
h✝ : Nonempty α
h_mono : Monotone fun x => ↑↑μ (Iic x)
xs : ℕ → α
hxs_mono : Monotone xs
hxs_tendsto : Tendsto xs atTop atTop
h_univ : univ = ⋃ (n : ℕ), Iic (xs n)
⊢ ↑↑μ univ = ⨆ (i : α), ↑↑μ (Iic i)

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

tactic: have h1 : ∀ x : α, Iic x = ∅ := fun x => Subsingleton.elim _ _
state_before: case inl
α : Type u_1
mα : MeasurableSpace α
inst✝¹ : SemilatticeSup α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
h✝ : IsEmpty α
⊢ Tendsto (fun x => ↑↑μ (Iic x)) atTop (𝓝 (↑↑μ univ))

tactic: have h2 : (univ : Set α) = ∅ := Subsingleton.elim _ _
state_before: case inl
α : Type u_1
mα : MeasurableSpace α
inst✝¹ : SemilatticeSup α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
h✝ : IsEmpty α
h1 : ∀ (x : α), Iic x = ∅
⊢ Tendsto (fun x => ↑↑μ (Iic x)) atTop (𝓝 (↑↑μ univ))

tactic: simp_rw [h1, h2]
state_before: case inl
α : Type u_1
mα : MeasurableSpace α
inst✝¹ : SemilatticeSup α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
h✝ : IsEmpty α
h1 : ∀ (x : α), Iic x = ∅
h2 : univ = ∅
⊢ Tendsto (fun x => ↑↑μ (Iic x)) atTop (𝓝 (↑↑μ univ))

tactic: exact tendsto_const_nhds
state_before: case inl
α : Type u_1
mα : MeasurableSpace α
inst✝¹ : SemilatticeSup α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
h✝ : IsEmpty α
h1 : ∀ (x : α), Iic x = ∅
h2 : univ = ∅
⊢ Tendsto (fun x => ↑↑μ ∅) atTop (𝓝 (↑↑μ ∅))

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

tactic: simp only [mem_univ, mem_iUnion, mem_Iic, true_iff_iff]
state_before: case h
α : Type u_1
mα : MeasurableSpace α
inst✝¹ : SemilatticeSup α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
h✝ : Nonempty α
h_mono : Monotone fun x => ↑↑μ (Iic x)
xs : ℕ → α
hxs_mono : Monotone xs
hxs_tendsto : Tendsto xs atTop atTop
x : α
⊢ x ∈ univ ↔ x ∈ ⋃ (n : ℕ), Iic (xs n)

tactic: obtain ⟨n, hn⟩ := tendsto_atTop_atTop.mp hxs_tendsto x
state_before: case h
α : Type u_1
mα : MeasurableSpace α
inst✝¹ : SemilatticeSup α
inst✝ : IsCountablyGenerated atTop
μ : Measure α
h✝ : Nonempty α
h_mono : Monotone fun x => ↑↑μ (Iic x)
xs : ℕ → α
hxs_mono : Monotone xs
hxs_tendsto : Tendsto xs atTop atTop
x : α
⊢ ∃ i, x ≤ xs i

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