Theorem: exists_Icc_mem_subset_of_mem_nhdsWithin_Ici
File: Mathlib/Topology/Order/Basic.lean

tactic: rcases (em (IsMax a)).imp_right not_isMax_iff.mp with (ha | ha)
state_before: α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a : α
s : Set α
hs : s ∈ 𝓝[Ici a] a
⊢ ∃ b, a ≤ b ∧ Icc a b ∈ 𝓝[Ici a] a ∧ Icc a b ⊆ s

tactic: use a
state_before: case inl
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a : α
s : Set α
hs : s ∈ 𝓝[Ici a] a
ha : IsMax a
⊢ ∃ b, a ≤ b ∧ Icc a b ∈ 𝓝[Ici a] a ∧ Icc a b ⊆ s

tactic: simpa [ha.Ici_eq] using hs
state_before: case inl
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a : α
s : Set α
hs : s ∈ 𝓝[Ici a] a
ha : IsMax a
⊢ a ≤ a ∧ Icc a a ∈ 𝓝[Ici a] a ∧ Icc a a ⊆ s

tactic: rcases(nhdsWithin_Ici_basis' ha).mem_iff.mp hs with ⟨b, hab, hbs⟩
state_before: case inr
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a : α
s : Set α
hs : s ∈ 𝓝[Ici a] a
ha : ∃ b, a < b
⊢ ∃ b, a ≤ b ∧ Icc a b ∈ 𝓝[Ici a] a ∧ Icc a b ⊆ s

tactic: rcases eq_empty_or_nonempty (Ioo a b) with (H | ⟨c, hac, hcb⟩)
state_before: case inr.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a : α
s : Set α
hs : s ∈ 𝓝[Ici a] a
ha : ∃ b, a < b
b : α
hab : a < b
hbs : Ico a b ⊆ s
⊢ ∃ b, a ≤ b ∧ Icc a b ∈ 𝓝[Ici a] a ∧ Icc a b ⊆ s

tactic: have : Ico a b = Icc a a := by rw [← Icc_union_Ioo_eq_Ico le_rfl hab, H, union_empty]
state_before: case inr.intro.intro.inl
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a : α
s : Set α
hs : s ∈ 𝓝[Ici a] a
ha : ∃ b, a < b
b : α
hab : a < b
hbs : Ico a b ⊆ s
H : Ioo a b = ∅
⊢ ∃ b, a ≤ b ∧ Icc a b ∈ 𝓝[Ici a] a ∧ Icc a b ⊆ s

tactic: exact ⟨a, le_rfl, this ▸ ⟨Ico_mem_nhdsWithin_Ici' hab, hbs⟩⟩
state_before: case inr.intro.intro.inl
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a : α
s : Set α
hs : s ∈ 𝓝[Ici a] a
ha : ∃ b, a < b
b : α
hab : a < b
hbs : Ico a b ⊆ s
H : Ioo a b = ∅
this : Ico a b = Icc a a
⊢ ∃ b, a ≤ b ∧ Icc a b ∈ 𝓝[Ici a] a ∧ Icc a b ⊆ s

tactic: rw [← Icc_union_Ioo_eq_Ico le_rfl hab, H, union_empty]
state_before: α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a : α
s : Set α
hs : s ∈ 𝓝[Ici a] a
ha : ∃ b, a < b
b : α
hab : a < b
hbs : Ico a b ⊆ s
H : Ioo a b = ∅
⊢ Ico a b = Icc a a

tactic: refine' ⟨c, hac.le, Icc_mem_nhdsWithin_Ici' hac, _⟩
state_before: case inr.intro.intro.inr.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a : α
s : Set α
hs : s ∈ 𝓝[Ici a] a
ha : ∃ b, a < b
b : α
hab : a < b
hbs : Ico a b ⊆ s
c : α
hac : a < c
hcb : c < b
⊢ ∃ b, a ≤ b ∧ Icc a b ∈ 𝓝[Ici a] a ∧ Icc a b ⊆ s

tactic: exact (Icc_subset_Ico_right hcb).trans hbs
state_before: case inr.intro.intro.inr.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a : α
s : Set α
hs : s ∈ 𝓝[Ici a] a
ha : ∃ b, a < b
b : α
hab : a < b
hbs : Ico a b ⊆ s
c : α
hac : a < c
hcb : c < b
⊢ Icc a c ⊆ s