Theorem: Antitone.tendsto_indicator
File: Mathlib/Order/Filter/IndicatorFunction.lean

tactic: by_cases h : ∃ i, a ∉ s i
state_before: α : Type u_3
β : Type u_2
M : Type ?u.4482
E : Type ?u.4485
ι : Type u_1
inst✝¹ : Preorder ι
inst✝ : Zero β
s : ι → Set α
hs : Antitone s
f : α → β
a : α
⊢ Tendsto (fun i => indicator (s i) f a) atTop (pure (indicator (⋂ (i : ι), s i) f a))

tactic: rcases h with ⟨i, hi⟩
state_before: case pos
α : Type u_3
β : Type u_2
M : Type ?u.4482
E : Type ?u.4485
ι : Type u_1
inst✝¹ : Preorder ι
inst✝ : Zero β
s : ι → Set α
hs : Antitone s
f : α → β
a : α
h : ∃ i, ¬a ∈ s i
⊢ Tendsto (fun i => indicator (s i) f a) atTop (pure (indicator (⋂ (i : ι), s i) f a))

tactic: refine' tendsto_pure.2 ((eventually_ge_atTop i).mono fun n hn => _)
state_before: case pos.intro
α : Type u_3
β : Type u_2
M : Type ?u.4482
E : Type ?u.4485
ι : Type u_1
inst✝¹ : Preorder ι
inst✝ : Zero β
s : ι → Set α
hs : Antitone s
f : α → β
a : α
i : ι
hi : ¬a ∈ s i
⊢ Tendsto (fun i => indicator (s i) f a) atTop (pure (indicator (⋂ (i : ι), s i) f a))

tactic: rw [indicator_of_not_mem _ _, indicator_of_not_mem _ _]
state_before: case pos.intro
α : Type u_3
β : Type u_2
M : Type ?u.4482
E : Type ?u.4485
ι : Type u_1
inst✝¹ : Preorder ι
inst✝ : Zero β
s : ι → Set α
hs : Antitone s
f : α → β
a : α
i : ι
hi : ¬a ∈ s i
n : ι
hn : i ≤ n
⊢ indicator (s n) f a = indicator (⋂ (i : ι), s i) f a

tactic: simp only [mem_iInter, not_forall]
state_before: α : Type u_3
β : Type u_2
M : Type ?u.4482
E : Type ?u.4485
ι : Type u_1
inst✝¹ : Preorder ι
inst✝ : Zero β
s : ι → Set α
hs : Antitone s
f : α → β
a : α
i : ι
hi : ¬a ∈ s i
n : ι
hn : i ≤ n
⊢ ¬a ∈ ⋂ (i : ι), s i

tactic: exact ⟨i, hi⟩
state_before: α : Type u_3
β : Type u_2
M : Type ?u.4482
E : Type ?u.4485
ι : Type u_1
inst✝¹ : Preorder ι
inst✝ : Zero β
s : ι → Set α
hs : Antitone s
f : α → β
a : α
i : ι
hi : ¬a ∈ s i
n : ι
hn : i ≤ n
⊢ ∃ x, ¬a ∈ s x

tactic: intro h
state_before: α : Type u_3
β : Type u_2
M : Type ?u.4482
E : Type ?u.4485
ι : Type u_1
inst✝¹ : Preorder ι
inst✝ : Zero β
s : ι → Set α
hs : Antitone s
f : α → β
a : α
i : ι
hi : ¬a ∈ s i
n : ι
hn : i ≤ n
⊢ ¬a ∈ s n

tactic: have := hs hn h
state_before: α : Type u_3
β : Type u_2
M : Type ?u.4482
E : Type ?u.4485
ι : Type u_1
inst✝¹ : Preorder ι
inst✝ : Zero β
s : ι → Set α
hs : Antitone s
f : α → β
a : α
i : ι
hi : ¬a ∈ s i
n : ι
hn : i ≤ n
h : a ∈ s n
⊢ False

tactic: contradiction
state_before: α : Type u_3
β : Type u_2
M : Type ?u.4482
E : Type ?u.4485
ι : Type u_1
inst✝¹ : Preorder ι
inst✝ : Zero β
s : ι → Set α
hs : Antitone s
f : α → β
a : α
i : ι
hi : ¬a ∈ s i
n : ι
hn : i ≤ n
h : a ∈ s n
this : a ∈ s i
⊢ False

tactic: push_neg  at h
state_before: case neg
α : Type u_3
β : Type u_2
M : Type ?u.4482
E : Type ?u.4485
ι : Type u_1
inst✝¹ : Preorder ι
inst✝ : Zero β
s : ι → Set α
hs : Antitone s
f : α → β
a : α
h : ¬∃ i, ¬a ∈ s i
⊢ Tendsto (fun i => indicator (s i) f a) atTop (pure (indicator (⋂ (i : ι), s i) f a))

tactic: simp only [indicator_of_mem, h, mem_iInter.2 h, tendsto_const_pure]
state_before: case neg
α : Type u_3
β : Type u_2
M : Type ?u.4482
E : Type ?u.4485
ι : Type u_1
inst✝¹ : Preorder ι
inst✝ : Zero β
s : ι → Set α
hs : Antitone s
f : α → β
a : α
h : ∀ (i : ι), a ∈ s i
⊢ Tendsto (fun i => indicator (s i) f a) atTop (pure (indicator (⋂ (i : ι), s i) f a))