Theorem: MeasureTheory.tendsto_measure_biUnion_Ici_zero_of_pairwise_disjoint
File: Mathlib/MeasureTheory/Measure/Typeclasses.lean

tactic: have decr : Antitone fun n ↦ ⋃ i ≥ n, Es i :=
  fun n m hnm ↦ biUnion_mono (fun _ hi ↦ le_trans hnm hi) (fun _ _ ↦ subset_rfl)
state_before: α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
μ✝ ν ν₁ ν₂ : Measure α
s t : Set α
X : Type u_5
inst✝¹ : MeasurableSpace X
μ : Measure X
inst✝ : IsFiniteMeasure μ
Es : ℕ → Set X
Es_mble : ∀ (i : ℕ), MeasurableSet (Es i)
Es_disj : Pairwise fun n m => Disjoint (Es n) (Es m)
⊢ Tendsto (⇑μ ∘ fun n => ⋃ i, ⋃ (_ : i ≥ n), Es i) atTop (𝓝 0)
state_after: α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
μ✝ ν ν₁ ν₂ : Measure α
s t : Set α
X : Type u_5
inst✝¹ : MeasurableSpace X
μ : Measure X
inst✝ : IsFiniteMeasure μ
Es : ℕ → Set X
Es_mble : ∀ (i : ℕ), MeasurableSet (Es i)
Es_disj : Pairwise fun n m => Disjoint (Es n) (Es m)
decr : Antitone fun n => ⋃ i, ⋃ (_ : i ≥ n), Es i
⊢ Tendsto (⇑μ ∘ fun n => ⋃ i, ⋃ (_ : i ≥ n), Es i) atTop (𝓝 0)

tactic: have nothing : ⋂ n, ⋃ i ≥ n, Es i = ∅ := by
  apply subset_antisymm _ (empty_subset _)
  intro x hx
  simp only [ge_iff_le, mem_iInter, mem_iUnion, exists_prop] at hx
  obtain ⟨j, _, x_in_Es_j⟩ := hx 0
  obtain ⟨k, k_gt_j, x_in_Es_k⟩ := hx (j+1)
  have oops := (Es_disj (Nat.ne_of_lt k_gt_j)).ne_of_mem x_in_Es_j x_in_Es_k
  contradiction
state_before: α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
μ✝ ν ν₁ ν₂ : Measure α
s t : Set α
X : Type u_5
inst✝¹ : MeasurableSpace X
μ : Measure X
inst✝ : IsFiniteMeasure μ
Es : ℕ → Set X
Es_mble : ∀ (i : ℕ), MeasurableSet (Es i)
Es_disj : Pairwise fun n m => Disjoint (Es n) (Es m)
decr : Antitone fun n => ⋃ i, ⋃ (_ : i ≥ n), Es i
⊢ Tendsto (⇑μ ∘ fun n => ⋃ i, ⋃ (_ : i ≥ n), Es i) atTop (𝓝 0)
state_after: α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
μ✝ ν ν₁ ν₂ : Measure α
s t : Set α
X : Type u_5
inst✝¹ : MeasurableSpace X
μ : Measure X
inst✝ : IsFiniteMeasure μ
Es : ℕ → Set X
Es_mble : ∀ (i : ℕ), MeasurableSet (Es i)
Es_disj : Pairwise fun n m => Disjoint (Es n) (Es m)
decr : Antitone fun n => ⋃ i, ⋃ (_ : i ≥ n), Es i
nothing : ⋂ n, ⋃ i, ⋃ (_ : i ≥ n), Es i = ∅
⊢ Tendsto (⇑μ ∘ fun n => ⋃ i, ⋃ (_ : i ≥ n), Es i) atTop (𝓝 0)

tactic: have key :=
  tendsto_measure_iInter (μ := μ) (fun n ↦ by measurability) decr ⟨0, measure_ne_top _ _⟩
state_before: α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
μ✝ ν ν₁ ν₂ : Measure α
s t : Set α
X : Type u_5
inst✝¹ : MeasurableSpace X
μ : Measure X
inst✝ : IsFiniteMeasure μ
Es : ℕ → Set X
Es_mble : ∀ (i : ℕ), MeasurableSet (Es i)
Es_disj : Pairwise fun n m => Disjoint (Es n) (Es m)
decr : Antitone fun n => ⋃ i, ⋃ (_ : i ≥ n), Es i
nothing : ⋂ n, ⋃ i, ⋃ (_ : i ≥ n), Es i = ∅
⊢ Tendsto (⇑μ ∘ fun n => ⋃ i, ⋃ (_ : i ≥ n), Es i) atTop (𝓝 0)
state_after: α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
μ✝ ν ν₁ ν₂ : Measure α
s t : Set α
X : Type u_5
inst✝¹ : MeasurableSpace X
μ : Measure X
inst✝ : IsFiniteMeasure μ
Es : ℕ → Set X
Es_mble : ∀ (i : ℕ), MeasurableSet (Es i)
Es_disj : Pairwise fun n m => Disjoint (Es n) (Es m)
decr : Antitone fun n => ⋃ i, ⋃ (_ : i ≥ n), Es i
nothing : ⋂ n, ⋃ i, ⋃ (_ : i ≥ n), Es i = ∅
key : Tendsto (⇑μ ∘ fun n => ⋃ i, ⋃ (_ : i ≥ n), Es i) atTop (𝓝 (μ (⋂ n, ⋃ i, ⋃ (_ : i ≥ n), Es i)))
⊢ Tendsto (⇑μ ∘ fun n => ⋃ i, ⋃ (_ : i ≥ n), Es i) atTop (𝓝 0)

tactic: simp only [ge_iff_le, nothing, measure_empty] at key
state_before: α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
μ✝ ν ν₁ ν₂ : Measure α
s t : Set α
X : Type u_5
inst✝¹ : MeasurableSpace X
μ : Measure X
inst✝ : IsFiniteMeasure μ
Es : ℕ → Set X
Es_mble : ∀ (i : ℕ), MeasurableSet (Es i)
Es_disj : Pairwise fun n m => Disjoint (Es n) (Es m)
decr : Antitone fun n => ⋃ i, ⋃ (_ : i ≥ n), Es i
nothing : ⋂ n, ⋃ i, ⋃ (_ : i ≥ n), Es i = ∅
key : Tendsto (⇑μ ∘ fun n => ⋃ i, ⋃ (_ : i ≥ n), Es i) atTop (𝓝 (μ (⋂ n, ⋃ i, ⋃ (_ : i ≥ n), Es i)))
⊢ Tendsto (⇑μ ∘ fun n => ⋃ i, ⋃ (_ : i ≥ n), Es i) atTop (𝓝 0)
state_after: α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
μ✝ ν ν₁ ν₂ : Measure α
s t : Set α
X : Type u_5
inst✝¹ : MeasurableSpace X
μ : Measure X
inst✝ : IsFiniteMeasure μ
Es : ℕ → Set X
Es_mble : ∀ (i : ℕ), MeasurableSet (Es i)
Es_disj : Pairwise fun n m => Disjoint (Es n) (Es m)
decr : Antitone fun n => ⋃ i, ⋃ (_ : i ≥ n), Es i
nothing : ⋂ n, ⋃ i, ⋃ (_ : i ≥ n), Es i = ∅
key : Tendsto (⇑μ ∘ fun n => ⋃ i, ⋃ (_ : n ≤ i), Es i) atTop (𝓝 0)
⊢ Tendsto (⇑μ ∘ fun n => ⋃ i, ⋃ (_ : i ≥ n), Es i) atTop (𝓝 0)

tactic: convert key
state_before: α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
μ✝ ν ν₁ ν₂ : Measure α
s t : Set α
X : Type u_5
inst✝¹ : MeasurableSpace X
μ : Measure X
inst✝ : IsFiniteMeasure μ
Es : ℕ → Set X
Es_mble : ∀ (i : ℕ), MeasurableSet (Es i)
Es_disj : Pairwise fun n m => Disjoint (Es n) (Es m)
decr : Antitone fun n => ⋃ i, ⋃ (_ : i ≥ n), Es i
nothing : ⋂ n, ⋃ i, ⋃ (_ : i ≥ n), Es i = ∅
key : Tendsto (⇑μ ∘ fun n => ⋃ i, ⋃ (_ : n ≤ i), Es i) atTop (𝓝 0)
⊢ Tendsto (⇑μ ∘ fun n => ⋃ i, ⋃ (_ : i ≥ n), Es i) atTop (𝓝 0)
state_after: no goals

tactic: apply subset_antisymm _ (empty_subset _)
state_before: α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
μ✝ ν ν₁ ν₂ : Measure α
s t : Set α
X : Type u_5
inst✝¹ : MeasurableSpace X
μ : Measure X
inst✝ : IsFiniteMeasure μ
Es : ℕ → Set X
Es_mble : ∀ (i : ℕ), MeasurableSet (Es i)
Es_disj : Pairwise fun n m => Disjoint (Es n) (Es m)
decr : Antitone fun n => ⋃ i, ⋃ (_ : i ≥ n), Es i
⊢ ⋂ n, ⋃ i, ⋃ (_ : i ≥ n), Es i = ∅
state_after: α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
μ✝ ν ν₁ ν₂ : Measure α
s t : Set α
X : Type u_5
inst✝¹ : MeasurableSpace X
μ : Measure X
inst✝ : IsFiniteMeasure μ
Es : ℕ → Set X
Es_mble : ∀ (i : ℕ), MeasurableSet (Es i)
Es_disj : Pairwise fun n m => Disjoint (Es n) (Es m)
decr : Antitone fun n => ⋃ i, ⋃ (_ : i ≥ n), Es i
⊢ ⋂ n, ⋃ i, ⋃ (_ : i ≥ n), Es i ⊆ ∅

tactic: intro x hx
state_before: α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
μ✝ ν ν₁ ν₂ : Measure α
s t : Set α
X : Type u_5
inst✝¹ : MeasurableSpace X
μ : Measure X
inst✝ : IsFiniteMeasure μ
Es : ℕ → Set X
Es_mble : ∀ (i : ℕ), MeasurableSet (Es i)
Es_disj : Pairwise fun n m => Disjoint (Es n) (Es m)
decr : Antitone fun n => ⋃ i, ⋃ (_ : i ≥ n), Es i
⊢ ⋂ n, ⋃ i, ⋃ (_ : i ≥ n), Es i ⊆ ∅
state_after: α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
μ✝ ν ν₁ ν₂ : Measure α
s t : Set α
X : Type u_5
inst✝¹ : MeasurableSpace X
μ : Measure X
inst✝ : IsFiniteMeasure μ
Es : ℕ → Set X
Es_mble : ∀ (i : ℕ), MeasurableSet (Es i)
Es_disj : Pairwise fun n m => Disjoint (Es n) (Es m)
decr : Antitone fun n => ⋃ i, ⋃ (_ : i ≥ n), Es i
x : X
hx : x ∈ ⋂ n, ⋃ i, ⋃ (_ : i ≥ n), Es i
⊢ x ∈ ∅

tactic: simp only [ge_iff_le, mem_iInter, mem_iUnion, exists_prop] at hx
state_before: α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
μ✝ ν ν₁ ν₂ : Measure α
s t : Set α
X : Type u_5
inst✝¹ : MeasurableSpace X
μ : Measure X
inst✝ : IsFiniteMeasure μ
Es : ℕ → Set X
Es_mble : ∀ (i : ℕ), MeasurableSet (Es i)
Es_disj : Pairwise fun n m => Disjoint (Es n) (Es m)
decr : Antitone fun n => ⋃ i, ⋃ (_ : i ≥ n), Es i
x : X
hx : x ∈ ⋂ n, ⋃ i, ⋃ (_ : i ≥ n), Es i
⊢ x ∈ ∅
state_after: α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
μ✝ ν ν₁ ν₂ : Measure α
s t : Set α
X : Type u_5
inst✝¹ : MeasurableSpace X
μ : Measure X
inst✝ : IsFiniteMeasure μ
Es : ℕ → Set X
Es_mble : ∀ (i : ℕ), MeasurableSet (Es i)
Es_disj : Pairwise fun n m => Disjoint (Es n) (Es m)
decr : Antitone fun n => ⋃ i, ⋃ (_ : i ≥ n), Es i
x : X
hx : ∀ (i : ℕ), ∃ i_1, i ≤ i_1 ∧ x ∈ Es i_1
⊢ x ∈ ∅

tactic: obtain ⟨j, _, x_in_Es_j⟩ := hx 0
state_before: α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
μ✝ ν ν₁ ν₂ : Measure α
s t : Set α
X : Type u_5
inst✝¹ : MeasurableSpace X
μ : Measure X
inst✝ : IsFiniteMeasure μ
Es : ℕ → Set X
Es_mble : ∀ (i : ℕ), MeasurableSet (Es i)
Es_disj : Pairwise fun n m => Disjoint (Es n) (Es m)
decr : Antitone fun n => ⋃ i, ⋃ (_ : i ≥ n), Es i
x : X
hx : ∀ (i : ℕ), ∃ i_1, i ≤ i_1 ∧ x ∈ Es i_1
⊢ x ∈ ∅
state_after: case intro.intro
α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
μ✝ ν ν₁ ν₂ : Measure α
s t : Set α
X : Type u_5
inst✝¹ : MeasurableSpace X
μ : Measure X
inst✝ : IsFiniteMeasure μ
Es : ℕ → Set X
Es_mble : ∀ (i : ℕ), MeasurableSet (Es i)
Es_disj : Pairwise fun n m => Disjoint (Es n) (Es m)
decr : Antitone fun n => ⋃ i, ⋃ (_ : i ≥ n), Es i
x : X
hx : ∀ (i : ℕ), ∃ i_1, i ≤ i_1 ∧ x ∈ Es i_1
j : ℕ
left✝ : 0 ≤ j
x_in_Es_j : x ∈ Es j
⊢ x ∈ ∅

tactic: obtain ⟨k, k_gt_j, x_in_Es_k⟩ := hx (j+1)
state_before: case intro.intro
α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
μ✝ ν ν₁ ν₂ : Measure α
s t : Set α
X : Type u_5
inst✝¹ : MeasurableSpace X
μ : Measure X
inst✝ : IsFiniteMeasure μ
Es : ℕ → Set X
Es_mble : ∀ (i : ℕ), MeasurableSet (Es i)
Es_disj : Pairwise fun n m => Disjoint (Es n) (Es m)
decr : Antitone fun n => ⋃ i, ⋃ (_ : i ≥ n), Es i
x : X
hx : ∀ (i : ℕ), ∃ i_1, i ≤ i_1 ∧ x ∈ Es i_1
j : ℕ
left✝ : 0 ≤ j
x_in_Es_j : x ∈ Es j
⊢ x ∈ ∅
state_after: case intro.intro.intro.intro
α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
μ✝ ν ν₁ ν₂ : Measure α
s t : Set α
X : Type u_5
inst✝¹ : MeasurableSpace X
μ : Measure X
inst✝ : IsFiniteMeasure μ
Es : ℕ → Set X
Es_mble : ∀ (i : ℕ), MeasurableSet (Es i)
Es_disj : Pairwise fun n m => Disjoint (Es n) (Es m)
decr : Antitone fun n => ⋃ i, ⋃ (_ : i ≥ n), Es i
x : X
hx : ∀ (i : ℕ), ∃ i_1, i ≤ i_1 ∧ x ∈ Es i_1
j : ℕ
left✝ : 0 ≤ j
x_in_Es_j : x ∈ Es j
k : ℕ
k_gt_j : j + 1 ≤ k
x_in_Es_k : x ∈ Es k
⊢ x ∈ ∅

tactic: have oops := (Es_disj (Nat.ne_of_lt k_gt_j)).ne_of_mem x_in_Es_j x_in_Es_k
state_before: case intro.intro.intro.intro
α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
μ✝ ν ν₁ ν₂ : Measure α
s t : Set α
X : Type u_5
inst✝¹ : MeasurableSpace X
μ : Measure X
inst✝ : IsFiniteMeasure μ
Es : ℕ → Set X
Es_mble : ∀ (i : ℕ), MeasurableSet (Es i)
Es_disj : Pairwise fun n m => Disjoint (Es n) (Es m)
decr : Antitone fun n => ⋃ i, ⋃ (_ : i ≥ n), Es i
x : X
hx : ∀ (i : ℕ), ∃ i_1, i ≤ i_1 ∧ x ∈ Es i_1
j : ℕ
left✝ : 0 ≤ j
x_in_Es_j : x ∈ Es j
k : ℕ
k_gt_j : j + 1 ≤ k
x_in_Es_k : x ∈ Es k
⊢ x ∈ ∅
state_after: case intro.intro.intro.intro
α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
μ✝ ν ν₁ ν₂ : Measure α
s t : Set α
X : Type u_5
inst✝¹ : MeasurableSpace X
μ : Measure X
inst✝ : IsFiniteMeasure μ
Es : ℕ → Set X
Es_mble : ∀ (i : ℕ), MeasurableSet (Es i)
Es_disj : Pairwise fun n m => Disjoint (Es n) (Es m)
decr : Antitone fun n => ⋃ i, ⋃ (_ : i ≥ n), Es i
x : X
hx : ∀ (i : ℕ), ∃ i_1, i ≤ i_1 ∧ x ∈ Es i_1
j : ℕ
left✝ : 0 ≤ j
x_in_Es_j : x ∈ Es j
k : ℕ
k_gt_j : j + 1 ≤ k
x_in_Es_k : x ∈ Es k
oops : x ≠ x
⊢ x ∈ ∅

tactic: contradiction
state_before: case intro.intro.intro.intro
α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
μ✝ ν ν₁ ν₂ : Measure α
s t : Set α
X : Type u_5
inst✝¹ : MeasurableSpace X
μ : Measure X
inst✝ : IsFiniteMeasure μ
Es : ℕ → Set X
Es_mble : ∀ (i : ℕ), MeasurableSet (Es i)
Es_disj : Pairwise fun n m => Disjoint (Es n) (Es m)
decr : Antitone fun n => ⋃ i, ⋃ (_ : i ≥ n), Es i
x : X
hx : ∀ (i : ℕ), ∃ i_1, i ≤ i_1 ∧ x ∈ Es i_1
j : ℕ
left✝ : 0 ≤ j
x_in_Es_j : x ∈ Es j
k : ℕ
k_gt_j : j + 1 ≤ k
x_in_Es_k : x ∈ Es k
oops : x ≠ x
⊢ x ∈ ∅
state_after: no goals

tactic: measurability
state_before: α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
μ✝ ν ν₁ ν₂ : Measure α
s t : Set α
X : Type u_5
inst✝¹ : MeasurableSpace X
μ : Measure X
inst✝ : IsFiniteMeasure μ
Es : ℕ → Set X
Es_mble : ∀ (i : ℕ), MeasurableSet (Es i)
Es_disj : Pairwise fun n m => Disjoint (Es n) (Es m)
decr : Antitone fun n => ⋃ i, ⋃ (_ : i ≥ n), Es i
nothing : ⋂ n, ⋃ i, ⋃ (_ : i ≥ n), Es i = ∅
n : ℕ
⊢ MeasurableSet (⋃ i, ⋃ (_ : i ≥ n), Es i)
state_after: no goals