Theorem: MeasureTheory.measure_limsup_eq_zero
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: set t : ℕ → Set α := fun n => toMeasurable μ (s n)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
s : ℕ → Set α
hs : ∑' (i : ℕ), μ (s i) ≠ ⊤
⊢ μ (limsup s atTop) = 0
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
hs : ∑' (i : ℕ), μ (s i) ≠ ⊤
t : ℕ → Set α := fun n => toMeasurable μ (s n)
⊢ μ (limsup s atTop) = 0

tactic: have ht : (∑' i, μ (t i)) ≠ ∞ := by simpa only [t, measure_toMeasurable] using hs
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
hs : ∑' (i : ℕ), μ (s i) ≠ ⊤
t : ℕ → Set α := fun n => toMeasurable μ (s n)
⊢ μ (limsup s atTop) = 0
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
hs : ∑' (i : ℕ), μ (s i) ≠ ⊤
t : ℕ → Set α := fun n => toMeasurable μ (s n)
ht : ∑' (i : ℕ), μ (t i) ≠ ⊤
⊢ μ (limsup s atTop) = 0

tactic: suffices μ (limsup t atTop) = 0 by
  have A : s ≤ t := fun n => subset_toMeasurable μ (s n)
  exact measure_mono_null (limsup_le_limsup (eventually_of_forall (Pi.le_def.mp A))) this
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
hs : ∑' (i : ℕ), μ (s i) ≠ ⊤
t : ℕ → Set α := fun n => toMeasurable μ (s n)
ht : ∑' (i : ℕ), μ (t i) ≠ ⊤
⊢ μ (limsup s atTop) = 0
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
hs : ∑' (i : ℕ), μ (s i) ≠ ⊤
t : ℕ → Set α := fun n => toMeasurable μ (s n)
ht : ∑' (i : ℕ), μ (t i) ≠ ⊤
⊢ μ (limsup t atTop) = 0

tactic: simp only [limsup_eq_iInf_iSup_of_nat', Set.iInf_eq_iInter, Set.iSup_eq_iUnion, ←
  nonpos_iff_eq_zero]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
hs : ∑' (i : ℕ), μ (s i) ≠ ⊤
t : ℕ → Set α := fun n => toMeasurable μ (s n)
ht : ∑' (i : ℕ), μ (t i) ≠ ⊤
⊢ μ (limsup t atTop) = 0
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
hs : ∑' (i : ℕ), μ (s i) ≠ ⊤
t : ℕ → Set α := fun n => toMeasurable μ (s n)
ht : ∑' (i : ℕ), μ (t i) ≠ ⊤
⊢ μ (⋂ n, ⋃ i, t (i + n)) ≤ 0

tactic: refine
  le_of_tendsto_of_tendsto'
    (tendsto_measure_iInter
      (fun i => MeasurableSet.iUnion fun b => measurableSet_toMeasurable _ _) ?_
      ⟨0, ne_top_of_le_ne_top ht (measure_iUnion_le t)⟩)
    (ENNReal.tendsto_sum_nat_add (μ ∘ t) ht) fun n => measure_iUnion_le _
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
hs : ∑' (i : ℕ), μ (s i) ≠ ⊤
t : ℕ → Set α := fun n => toMeasurable μ (s n)
ht : ∑' (i : ℕ), μ (t i) ≠ ⊤
⊢ μ (⋂ n, ⋃ i, t (i + n)) ≤ 0
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
hs : ∑' (i : ℕ), μ (s i) ≠ ⊤
t : ℕ → Set α := fun n => toMeasurable μ (s n)
ht : ∑' (i : ℕ), μ (t i) ≠ ⊤
⊢ Antitone fun n => ⋃ i, t (i + n)

tactic: intro n m hnm x
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
hs : ∑' (i : ℕ), μ (s i) ≠ ⊤
t : ℕ → Set α := fun n => toMeasurable μ (s n)
ht : ∑' (i : ℕ), μ (t i) ≠ ⊤
⊢ Antitone fun n => ⋃ i, t (i + n)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m✝ : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
hs : ∑' (i : ℕ), μ (s i) ≠ ⊤
t : ℕ → Set α := fun n => toMeasurable μ (s n)
ht : ∑' (i : ℕ), μ (t i) ≠ ⊤
n m : ℕ
hnm : n ≤ m
x : α
⊢ x ∈ (fun n => ⋃ i, t (i + n)) m → x ∈ (fun n => ⋃ i, t (i + n)) n

tactic: simp only [Set.mem_iUnion]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m✝ : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
hs : ∑' (i : ℕ), μ (s i) ≠ ⊤
t : ℕ → Set α := fun n => toMeasurable μ (s n)
ht : ∑' (i : ℕ), μ (t i) ≠ ⊤
n m : ℕ
hnm : n ≤ m
x : α
⊢ x ∈ (fun n => ⋃ i, t (i + n)) m → x ∈ (fun n => ⋃ i, t (i + n)) n
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m✝ : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
hs : ∑' (i : ℕ), μ (s i) ≠ ⊤
t : ℕ → Set α := fun n => toMeasurable μ (s n)
ht : ∑' (i : ℕ), μ (t i) ≠ ⊤
n m : ℕ
hnm : n ≤ m
x : α
⊢ (∃ i, x ∈ t (i + m)) → ∃ i, x ∈ t (i + n)

tactic: exact fun ⟨i, hi⟩ => ⟨i + (m - n), by simpa only [add_assoc, tsub_add_cancel_of_le hnm] using hi⟩
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m✝ : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
hs : ∑' (i : ℕ), μ (s i) ≠ ⊤
t : ℕ → Set α := fun n => toMeasurable μ (s n)
ht : ∑' (i : ℕ), μ (t i) ≠ ⊤
n m : ℕ
hnm : n ≤ m
x : α
⊢ (∃ i, x ∈ t (i + m)) → ∃ i, x ∈ t (i + n)
state_after: no goals

tactic: simpa only [t, measure_toMeasurable] using hs
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
hs : ∑' (i : ℕ), μ (s i) ≠ ⊤
t : ℕ → Set α := fun n => toMeasurable μ (s n)
⊢ ∑' (i : ℕ), μ (t i) ≠ ⊤
state_after: no goals

tactic: have A : s ≤ t := fun n => subset_toMeasurable μ (s n)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
hs : ∑' (i : ℕ), μ (s i) ≠ ⊤
t : ℕ → Set α := fun n => toMeasurable μ (s n)
ht : ∑' (i : ℕ), μ (t i) ≠ ⊤
this : μ (limsup t atTop) = 0
⊢ μ (limsup s atTop) = 0
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
hs : ∑' (i : ℕ), μ (s i) ≠ ⊤
t : ℕ → Set α := fun n => toMeasurable μ (s n)
ht : ∑' (i : ℕ), μ (t i) ≠ ⊤
this : μ (limsup t atTop) = 0
A : s ≤ t
⊢ μ (limsup s atTop) = 0

tactic: exact measure_mono_null (limsup_le_limsup (eventually_of_forall (Pi.le_def.mp A))) this
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
hs : ∑' (i : ℕ), μ (s i) ≠ ⊤
t : ℕ → Set α := fun n => toMeasurable μ (s n)
ht : ∑' (i : ℕ), μ (t i) ≠ ⊤
this : μ (limsup t atTop) = 0
A : s ≤ t
⊢ μ (limsup s atTop) = 0
state_after: no goals

tactic: simpa only [add_assoc, tsub_add_cancel_of_le hnm] using hi
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m✝ : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
s : ℕ → Set α
hs : ∑' (i : ℕ), μ (s i) ≠ ⊤
t : ℕ → Set α := fun n => toMeasurable μ (s n)
ht : ∑' (i : ℕ), μ (t i) ≠ ⊤
n m : ℕ
hnm : n ≤ m
x : α
x✝ : ∃ i, x ∈ t (i + m)
i : ℕ
hi : x ∈ t (i + m)
⊢ x ∈ t (i + (m - n) + n)
state_after: no goals