Theorem: MeasureTheory.IsStoppingTime.measurableSpace_le'
File: Mathlib/Probability/Process/Stopping.lean

tactic: intro s hs
state_before: Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝² : Preorder ι
f : Filtration ι m
τ π : Ω → ι
inst✝¹ : atTop.IsCountablyGenerated
inst✝ : atTop.NeBot
hτ : IsStoppingTime f τ
⊢ hτ.measurableSpace ≤ m
state_after: Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝² : Preorder ι
f : Filtration ι m
τ π : Ω → ι
inst✝¹ : atTop.IsCountablyGenerated
inst✝ : atTop.NeBot
hτ : IsStoppingTime f τ
s : Set Ω
hs : MeasurableSet s
⊢ MeasurableSet s

tactic: change ∀ i, MeasurableSet[f i] (s ∩ {ω | τ ω ≤ i}) at hs
state_before: Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝² : Preorder ι
f : Filtration ι m
τ π : Ω → ι
inst✝¹ : atTop.IsCountablyGenerated
inst✝ : atTop.NeBot
hτ : IsStoppingTime f τ
s : Set Ω
hs : MeasurableSet s
⊢ MeasurableSet s
state_after: Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝² : Preorder ι
f : Filtration ι m
τ π : Ω → ι
inst✝¹ : atTop.IsCountablyGenerated
inst✝ : atTop.NeBot
hτ : IsStoppingTime f τ
s : Set Ω
hs : ∀ (i : ι), MeasurableSet (s ∩ {ω | τ ω ≤ i})
⊢ MeasurableSet s

tactic: obtain ⟨seq : ℕ → ι, h_seq_tendsto⟩ := (atTop : Filter ι).exists_seq_tendsto
state_before: Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝² : Preorder ι
f : Filtration ι m
τ π : Ω → ι
inst✝¹ : atTop.IsCountablyGenerated
inst✝ : atTop.NeBot
hτ : IsStoppingTime f τ
s : Set Ω
hs : ∀ (i : ι), MeasurableSet (s ∩ {ω | τ ω ≤ i})
⊢ MeasurableSet s
state_after: case intro
Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝² : Preorder ι
f : Filtration ι m
τ π : Ω → ι
inst✝¹ : atTop.IsCountablyGenerated
inst✝ : atTop.NeBot
hτ : IsStoppingTime f τ
s : Set Ω
hs : ∀ (i : ι), MeasurableSet (s ∩ {ω | τ ω ≤ i})
seq : ℕ → ι
h_seq_tendsto : Tendsto seq atTop atTop
⊢ MeasurableSet s

tactic: rw [(_ : s = ⋃ n, s ∩ {ω | τ ω ≤ seq n})]
state_before: case intro
Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝² : Preorder ι
f : Filtration ι m
τ π : Ω → ι
inst✝¹ : atTop.IsCountablyGenerated
inst✝ : atTop.NeBot
hτ : IsStoppingTime f τ
s : Set Ω
hs : ∀ (i : ι), MeasurableSet (s ∩ {ω | τ ω ≤ i})
seq : ℕ → ι
h_seq_tendsto : Tendsto seq atTop atTop
⊢ MeasurableSet s
state_after: case intro
Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝² : Preorder ι
f : Filtration ι m
τ π : Ω → ι
inst✝¹ : atTop.IsCountablyGenerated
inst✝ : atTop.NeBot
hτ : IsStoppingTime f τ
s : Set Ω
hs : ∀ (i : ι), MeasurableSet (s ∩ {ω | τ ω ≤ i})
seq : ℕ → ι
h_seq_tendsto : Tendsto seq atTop atTop
⊢ MeasurableSet (⋃ n, s ∩ {ω | τ ω ≤ seq n})

Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝² : Preorder ι
f : Filtration ι m
τ π : Ω → ι
inst✝¹ : atTop.IsCountablyGenerated
inst✝ : atTop.NeBot
hτ : IsStoppingTime f τ
s : Set Ω
hs : ∀ (i : ι), MeasurableSet (s ∩ {ω | τ ω ≤ i})
seq : ℕ → ι
h_seq_tendsto : Tendsto seq atTop atTop
⊢ s = ⋃ n, s ∩ {ω | τ ω ≤ seq n}

tactic: exact MeasurableSet.iUnion fun i => f.le (seq i) _ (hs (seq i))
state_before: case intro
Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝² : Preorder ι
f : Filtration ι m
τ π : Ω → ι
inst✝¹ : atTop.IsCountablyGenerated
inst✝ : atTop.NeBot
hτ : IsStoppingTime f τ
s : Set Ω
hs : ∀ (i : ι), MeasurableSet (s ∩ {ω | τ ω ≤ i})
seq : ℕ → ι
h_seq_tendsto : Tendsto seq atTop atTop
⊢ MeasurableSet (⋃ n, s ∩ {ω | τ ω ≤ seq n})
state_after: no goals

tactic: ext ω
state_before: Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝² : Preorder ι
f : Filtration ι m
τ π : Ω → ι
inst✝¹ : atTop.IsCountablyGenerated
inst✝ : atTop.NeBot
hτ : IsStoppingTime f τ
s : Set Ω
hs : ∀ (i : ι), MeasurableSet (s ∩ {ω | τ ω ≤ i})
seq : ℕ → ι
h_seq_tendsto : Tendsto seq atTop atTop
⊢ s = ⋃ n, s ∩ {ω | τ ω ≤ seq n}
state_after: case h
Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝² : Preorder ι
f : Filtration ι m
τ π : Ω → ι
inst✝¹ : atTop.IsCountablyGenerated
inst✝ : atTop.NeBot
hτ : IsStoppingTime f τ
s : Set Ω
hs : ∀ (i : ι), MeasurableSet (s ∩ {ω | τ ω ≤ i})
seq : ℕ → ι
h_seq_tendsto : Tendsto seq atTop atTop
ω : Ω
⊢ ω ∈ s ↔ ω ∈ ⋃ n, s ∩ {ω | τ ω ≤ seq n}

tactic: constructor <;> rw [Set.mem_iUnion]
state_before: case h
Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝² : Preorder ι
f : Filtration ι m
τ π : Ω → ι
inst✝¹ : atTop.IsCountablyGenerated
inst✝ : atTop.NeBot
hτ : IsStoppingTime f τ
s : Set Ω
hs : ∀ (i : ι), MeasurableSet (s ∩ {ω | τ ω ≤ i})
seq : ℕ → ι
h_seq_tendsto : Tendsto seq atTop atTop
ω : Ω
⊢ ω ∈ s ↔ ω ∈ ⋃ n, s ∩ {ω | τ ω ≤ seq n}
state_after: case h.mp
Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝² : Preorder ι
f : Filtration ι m
τ π : Ω → ι
inst✝¹ : atTop.IsCountablyGenerated
inst✝ : atTop.NeBot
hτ : IsStoppingTime f τ
s : Set Ω
hs : ∀ (i : ι), MeasurableSet (s ∩ {ω | τ ω ≤ i})
seq : ℕ → ι
h_seq_tendsto : Tendsto seq atTop atTop
ω : Ω
⊢ ω ∈ s → ∃ i, ω ∈ s ∩ {ω | τ ω ≤ seq i}

case h.mpr
Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝² : Preorder ι
f : Filtration ι m
τ π : Ω → ι
inst✝¹ : atTop.IsCountablyGenerated
inst✝ : atTop.NeBot
hτ : IsStoppingTime f τ
s : Set Ω
hs : ∀ (i : ι), MeasurableSet (s ∩ {ω | τ ω ≤ i})
seq : ℕ → ι
h_seq_tendsto : Tendsto seq atTop atTop
ω : Ω
⊢ (∃ i, ω ∈ s ∩ {ω | τ ω ≤ seq i}) → ω ∈ s

tactic: intro hx
state_before: case h.mp
Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝² : Preorder ι
f : Filtration ι m
τ π : Ω → ι
inst✝¹ : atTop.IsCountablyGenerated
inst✝ : atTop.NeBot
hτ : IsStoppingTime f τ
s : Set Ω
hs : ∀ (i : ι), MeasurableSet (s ∩ {ω | τ ω ≤ i})
seq : ℕ → ι
h_seq_tendsto : Tendsto seq atTop atTop
ω : Ω
⊢ ω ∈ s → ∃ i, ω ∈ s ∩ {ω | τ ω ≤ seq i}
state_after: case h.mp
Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝² : Preorder ι
f : Filtration ι m
τ π : Ω → ι
inst✝¹ : atTop.IsCountablyGenerated
inst✝ : atTop.NeBot
hτ : IsStoppingTime f τ
s : Set Ω
hs : ∀ (i : ι), MeasurableSet (s ∩ {ω | τ ω ≤ i})
seq : ℕ → ι
h_seq_tendsto : Tendsto seq atTop atTop
ω : Ω
hx : ω ∈ s
⊢ ∃ i, ω ∈ s ∩ {ω | τ ω ≤ seq i}

tactic: suffices ∃ i, τ ω ≤ seq i from ⟨this.choose, hx, this.choose_spec⟩
state_before: case h.mp
Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝² : Preorder ι
f : Filtration ι m
τ π : Ω → ι
inst✝¹ : atTop.IsCountablyGenerated
inst✝ : atTop.NeBot
hτ : IsStoppingTime f τ
s : Set Ω
hs : ∀ (i : ι), MeasurableSet (s ∩ {ω | τ ω ≤ i})
seq : ℕ → ι
h_seq_tendsto : Tendsto seq atTop atTop
ω : Ω
hx : ω ∈ s
⊢ ∃ i, ω ∈ s ∩ {ω | τ ω ≤ seq i}
state_after: case h.mp
Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝² : Preorder ι
f : Filtration ι m
τ π : Ω → ι
inst✝¹ : atTop.IsCountablyGenerated
inst✝ : atTop.NeBot
hτ : IsStoppingTime f τ
s : Set Ω
hs : ∀ (i : ι), MeasurableSet (s ∩ {ω | τ ω ≤ i})
seq : ℕ → ι
h_seq_tendsto : Tendsto seq atTop atTop
ω : Ω
hx : ω ∈ s
⊢ ∃ i, τ ω ≤ seq i

tactic: rw [tendsto_atTop] at h_seq_tendsto
state_before: case h.mp
Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝² : Preorder ι
f : Filtration ι m
τ π : Ω → ι
inst✝¹ : atTop.IsCountablyGenerated
inst✝ : atTop.NeBot
hτ : IsStoppingTime f τ
s : Set Ω
hs : ∀ (i : ι), MeasurableSet (s ∩ {ω | τ ω ≤ i})
seq : ℕ → ι
h_seq_tendsto : Tendsto seq atTop atTop
ω : Ω
hx : ω ∈ s
⊢ ∃ i, τ ω ≤ seq i
state_after: case h.mp
Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝² : Preorder ι
f : Filtration ι m
τ π : Ω → ι
inst✝¹ : atTop.IsCountablyGenerated
inst✝ : atTop.NeBot
hτ : IsStoppingTime f τ
s : Set Ω
hs : ∀ (i : ι), MeasurableSet (s ∩ {ω | τ ω ≤ i})
seq : ℕ → ι
h_seq_tendsto : ∀ (b : ι), ∀ᶠ (a : ℕ) in atTop, b ≤ seq a
ω : Ω
hx : ω ∈ s
⊢ ∃ i, τ ω ≤ seq i

tactic: exact (h_seq_tendsto (τ ω)).exists
state_before: case h.mp
Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝² : Preorder ι
f : Filtration ι m
τ π : Ω → ι
inst✝¹ : atTop.IsCountablyGenerated
inst✝ : atTop.NeBot
hτ : IsStoppingTime f τ
s : Set Ω
hs : ∀ (i : ι), MeasurableSet (s ∩ {ω | τ ω ≤ i})
seq : ℕ → ι
h_seq_tendsto : ∀ (b : ι), ∀ᶠ (a : ℕ) in atTop, b ≤ seq a
ω : Ω
hx : ω ∈ s
⊢ ∃ i, τ ω ≤ seq i
state_after: no goals

tactic: rintro ⟨_, hx, _⟩
state_before: case h.mpr
Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝² : Preorder ι
f : Filtration ι m
τ π : Ω → ι
inst✝¹ : atTop.IsCountablyGenerated
inst✝ : atTop.NeBot
hτ : IsStoppingTime f τ
s : Set Ω
hs : ∀ (i : ι), MeasurableSet (s ∩ {ω | τ ω ≤ i})
seq : ℕ → ι
h_seq_tendsto : Tendsto seq atTop atTop
ω : Ω
⊢ (∃ i, ω ∈ s ∩ {ω | τ ω ≤ seq i}) → ω ∈ s
state_after: case h.mpr.intro.intro
Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝² : Preorder ι
f : Filtration ι m
τ π : Ω → ι
inst✝¹ : atTop.IsCountablyGenerated
inst✝ : atTop.NeBot
hτ : IsStoppingTime f τ
s : Set Ω
hs : ∀ (i : ι), MeasurableSet (s ∩ {ω | τ ω ≤ i})
seq : ℕ → ι
h_seq_tendsto : Tendsto seq atTop atTop
ω : Ω
w✝ : ℕ
hx : ω ∈ s
right✝ : ω ∈ {ω | τ ω ≤ seq w✝}
⊢ ω ∈ s

tactic: exact hx
state_before: case h.mpr.intro.intro
Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝² : Preorder ι
f : Filtration ι m
τ π : Ω → ι
inst✝¹ : atTop.IsCountablyGenerated
inst✝ : atTop.NeBot
hτ : IsStoppingTime f τ
s : Set Ω
hs : ∀ (i : ι), MeasurableSet (s ∩ {ω | τ ω ≤ i})
seq : ℕ → ι
h_seq_tendsto : Tendsto seq atTop atTop
ω : Ω
w✝ : ℕ
hx : ω ∈ s
right✝ : ω ∈ {ω | τ ω ≤ seq w✝}
⊢ ω ∈ s
state_after: no goals