Full source
/-- The following statements are equivalent:
0. `s` is a neighborhood of `a` within `(a, +β)`;
1. `s` is a neighborhood of `a` within `(a, b]`;
2. `s` is a neighborhood of `a` within `(a, b)`;
3. `s` includes `(a, u)` for some `u β (a, b]`;
4. `s` includes `(a, u)` for some `u > a`.
-/
theorem TFAE_mem_nhdsGT {a b : Ξ±} (hab : a < b) (s : Set Ξ±) :
TFAE [s β π[>] a,
s β π[Ioc a b] a,
s β π[Ioo a b] a,
β u β Ioc a b, Ioo a u β s,
β u β Ioi a, Ioo a u β s] := by
tfae_have 1 β 2 := by
rw [nhdsWithin_Ioc_eq_nhdsGT hab]
tfae_have 1 β 3 := by
rw [nhdsWithin_Ioo_eq_nhdsGT hab]
tfae_have 4 β 5 := fun β¨u, umem, huβ© => β¨u, umem.1, huβ©
tfae_have 5 β 1
| β¨u, hau, huβ© => mem_of_superset (Ioo_mem_nhdsGT hau) hu
tfae_have 1 β 4
| h => by
rcases mem_nhdsWithin_iff_exists_mem_nhds_inter.1 h with β¨v, va, hvβ©
rcases exists_Ico_subset_of_mem_nhds' va hab with β¨u, au, huβ©
exact β¨u, au, fun x hx => hv β¨hu β¨le_of_lt hx.1, hx.2β©, hx.1β©β©
tfae_finish