[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝¹ : TopologicalSpace α
inst✝ : PartialOrder α
t : OrderClosedTopology α
⊢ IsClosed (diagonal α)
[PROOFSTEP]
simpa only [diagonal, le_antisymm_iff] using t.isClosed_le'.inter (isClosed_le continuous_snd continuous_fst)
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderClosedTopology α
inst✝ : TopologicalSpace β
f g : β → α
hf : Continuous f
hg : Continuous g
⊢ IsOpen {b | f b < g b}
[PROOFSTEP]
simpa only [lt_iff_not_le] using (isClosed_le hg hf).isOpen_compl
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderClosedTopology α
a b : α
⊢ Ioo a b ⊆ closure (interior (Ioo a b))
[PROOFSTEP]
simp only [interior_Ioo, subset_closure]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderClosedTopology α
a✝ b✝ : α
inst✝ : TopologicalSpace γ
a b c : α
H : b ∈ Ico a c
⊢ Iio c ∩ Ioi b ⊆ Ioo a c
[PROOFSTEP]
rw [inter_comm, Ioi_inter_Iio]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderClosedTopology α
a✝ b✝ : α
inst✝ : TopologicalSpace γ
a b c : α
H : b ∈ Ico a c
⊢ Ioo b c ⊆ Ioo a c
[PROOFSTEP]
exact Ioo_subset_Ioo_left H.1
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderClosedTopology α
a✝ b✝ : α
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace β
a b : α
f : α → β
h : a < b
⊢ ContinuousWithinAt f (Ioc a b) a ↔ ContinuousWithinAt f (Ioi a) a
[PROOFSTEP]
simp only [ContinuousWithinAt, nhdsWithin_Ioc_eq_nhdsWithin_Ioi h]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderClosedTopology α
a✝ b✝ : α
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace β
a b : α
f : α → β
h : a < b
⊢ ContinuousWithinAt f (Ioo a b) a ↔ ContinuousWithinAt f (Ioi a) a
[PROOFSTEP]
simp only [ContinuousWithinAt, nhdsWithin_Ioo_eq_nhdsWithin_Ioi h]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderClosedTopology α
a✝ b✝ : α
inst✝ : TopologicalSpace γ
a b c : α
H : b ∈ Ioc a c
⊢ Ioo a c ∈ 𝓝[Iio b] b
[PROOFSTEP]
simpa only [dual_Ioo] using Ioo_mem_nhdsWithin_Ioi (show toDual b ∈ Ico (toDual c) (toDual a) from H.symm)
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderClosedTopology α
a✝ b✝ : α
inst✝ : TopologicalSpace γ
a b : α
h : a < b
⊢ 𝓝[Ico a b] b = 𝓝[Iio b] b
[PROOFSTEP]
simpa only [dual_Ioc] using nhdsWithin_Ioc_eq_nhdsWithin_Ioi h.dual
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderClosedTopology α
a✝ b✝ : α
inst✝ : TopologicalSpace γ
a b : α
h : a < b
⊢ 𝓝[Ioo a b] b = 𝓝[Iio b] b
[PROOFSTEP]
simpa only [dual_Ioo] using nhdsWithin_Ioo_eq_nhdsWithin_Ioi h.dual
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderClosedTopology α
a✝ b✝ : α
inst✝ : TopologicalSpace γ
a b : α
f : α → γ
h : a < b
⊢ ContinuousWithinAt f (Ico a b) b ↔ ContinuousWithinAt f (Iio b) b
[PROOFSTEP]
simp only [ContinuousWithinAt, nhdsWithin_Ico_eq_nhdsWithin_Iio h]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderClosedTopology α
a✝ b✝ : α
inst✝ : TopologicalSpace γ
a b : α
f : α → γ
h : a < b
⊢ ContinuousWithinAt f (Ioo a b) b ↔ ContinuousWithinAt f (Iio b) b
[PROOFSTEP]
simp only [ContinuousWithinAt, nhdsWithin_Ioo_eq_nhdsWithin_Iio h]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderClosedTopology α
a✝ b✝ : α
inst✝ : TopologicalSpace γ
a b c : α
H : b ∈ Ico a c
⊢ Iio c ∩ Ici b ⊆ Ico a c
[PROOFSTEP]
simp only [inter_comm, Ici_inter_Iio, Ico_subset_Ico_left H.1]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderClosedTopology α
a✝ b✝ : α
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace β
a b : α
f : α → β
h : a < b
⊢ ContinuousWithinAt f (Icc a b) a ↔ ContinuousWithinAt f (Ici a) a
[PROOFSTEP]
simp only [ContinuousWithinAt, nhdsWithin_Icc_eq_nhdsWithin_Ici h]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderClosedTopology α
a✝ b✝ : α
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace β
a b : α
f : α → β
h : a < b
⊢ ContinuousWithinAt f (Ico a b) a ↔ ContinuousWithinAt f (Ici a) a
[PROOFSTEP]
simp only [ContinuousWithinAt, nhdsWithin_Ico_eq_nhdsWithin_Ici h]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderClosedTopology α
a✝ b✝ : α
inst✝ : TopologicalSpace γ
a b c : α
H : b ∈ Ioc a c
⊢ Ioc a c ∈ 𝓝[Iic b] b
[PROOFSTEP]
simpa only [dual_Ico] using Ico_mem_nhdsWithin_Ici (show toDual b ∈ Ico (toDual c) (toDual a) from H.symm)
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderClosedTopology α
a✝ b✝ : α
inst✝ : TopologicalSpace γ
a b : α
h : a < b
⊢ 𝓝[Icc a b] b = 𝓝[Iic b] b
[PROOFSTEP]
simpa only [dual_Icc] using nhdsWithin_Icc_eq_nhdsWithin_Ici h.dual
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderClosedTopology α
a✝ b✝ : α
inst✝ : TopologicalSpace γ
a b : α
h : a < b
⊢ 𝓝[Ioc a b] b = 𝓝[Iic b] b
[PROOFSTEP]
simpa only [dual_Ico] using nhdsWithin_Ico_eq_nhdsWithin_Ici h.dual
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderClosedTopology α
a✝ b✝ : α
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace β
a b : α
f : α → β
h : a < b
⊢ ContinuousWithinAt f (Icc a b) b ↔ ContinuousWithinAt f (Iic b) b
[PROOFSTEP]
simp only [ContinuousWithinAt, nhdsWithin_Icc_eq_nhdsWithin_Iic h]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderClosedTopology α
a✝ b✝ : α
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace β
a b : α
f : α → β
h : a < b
⊢ ContinuousWithinAt f (Ioc a b) b ↔ ContinuousWithinAt f (Iic b) b
[PROOFSTEP]
simp only [ContinuousWithinAt, nhdsWithin_Ioc_eq_nhdsWithin_Iic h]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderClosedTopology α
f g : β → α
inst✝ : TopologicalSpace β
hf : Continuous f
hg : Continuous g
⊢ frontier {b | f b ≤ g b} ⊆ {b | f b = g b}
[PROOFSTEP]
rw [frontier_eq_closure_inter_closure, closure_le_eq hf hg]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderClosedTopology α
f g : β → α
inst✝ : TopologicalSpace β
hf : Continuous f
hg : Continuous g
⊢ {b | f b ≤ g b} ∩ closure {b | f b ≤ g b}ᶜ ⊆ {b | f b = g b}
[PROOFSTEP]
rintro b ⟨hb₁, hb₂⟩
[GOAL]
case intro
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderClosedTopology α
f g : β → α
inst✝ : TopologicalSpace β
hf : Continuous f
hg : Continuous g
b : β
hb₁ : b ∈ {b | f b ≤ g b}
hb₂ : b ∈ closure {b | f b ≤ g b}ᶜ
⊢ b ∈ {b | f b = g b}
[PROOFSTEP]
refine' le_antisymm hb₁ (closure_lt_subset_le hg hf _)
[GOAL]
case intro
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderClosedTopology α
f g : β → α
inst✝ : TopologicalSpace β
hf : Continuous f
hg : Continuous g
b : β
hb₁ : b ∈ {b | f b ≤ g b}
hb₂ : b ∈ closure {b | f b ≤ g b}ᶜ
⊢ b ∈ closure {b | g b < f b}
[PROOFSTEP]
convert hb₂ using 2
[GOAL]
case h.e'_5.h.e'_3
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderClosedTopology α
f g : β → α
inst✝ : TopologicalSpace β
hf : Continuous f
hg : Continuous g
b : β
hb₁ : b ∈ {b | f b ≤ g b}
hb₂ : b ∈ closure {b | f b ≤ g b}ᶜ
⊢ {b | g b < f b} = {b | f b ≤ g b}ᶜ
[PROOFSTEP]
simp only [not_le.symm]
[GOAL]
case h.e'_5.h.e'_3
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderClosedTopology α
f g : β → α
inst✝ : TopologicalSpace β
hf : Continuous f
hg : Continuous g
b : β
hb₁ : b ∈ {b | f b ≤ g b}
hb₂ : b ∈ closure {b | f b ≤ g b}ᶜ
⊢ {b | ¬f b ≤ g b} = {b | f b ≤ g b}ᶜ
[PROOFSTEP]
rfl
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderClosedTopology α
f g : β → α
inst✝ : TopologicalSpace β
hf : Continuous f
hg : Continuous g
⊢ frontier {b | f b < g b} ⊆ {b | f b = g b}
[PROOFSTEP]
simpa only [← not_lt, ← compl_setOf, frontier_compl, eq_comm] using frontier_le_subset_eq hg hf
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁵ : TopologicalSpace α
inst✝⁴ : LinearOrder α
inst✝³ : OrderClosedTopology α
f g : β → α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : (x : β) → Decidable (f x ≤ g x)
f' g' : β → γ
hf : Continuous f
hg : Continuous g
hf' : ContinuousOn f' {x | f x ≤ g x}
hg' : ContinuousOn g' {x | g x ≤ f x}
hfg : ∀ (x : β), f x = g x → f' x = g' x
⊢ Continuous fun x => if f x ≤ g x then f' x else g' x
[PROOFSTEP]
refine' continuous_if (fun a ha => hfg _ (frontier_le_subset_eq hf hg ha)) _ (hg'.mono _)
[GOAL]
case refine'_1
α : Type u
β : Type v
γ : Type w
inst✝⁵ : TopologicalSpace α
inst✝⁴ : LinearOrder α
inst✝³ : OrderClosedTopology α
f g : β → α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : (x : β) → Decidable (f x ≤ g x)
f' g' : β → γ
hf : Continuous f
hg : Continuous g
hf' : ContinuousOn f' {x | f x ≤ g x}
hg' : ContinuousOn g' {x | g x ≤ f x}
hfg : ∀ (x : β), f x = g x → f' x = g' x
⊢ ContinuousOn (fun x => f' x) (closure {x | f x ≤ g x})
[PROOFSTEP]
rwa [(isClosed_le hf hg).closure_eq]
[GOAL]
case refine'_2
α : Type u
β : Type v
γ : Type w
inst✝⁵ : TopologicalSpace α
inst✝⁴ : LinearOrder α
inst✝³ : OrderClosedTopology α
f g : β → α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : (x : β) → Decidable (f x ≤ g x)
f' g' : β → γ
hf : Continuous f
hg : Continuous g
hf' : ContinuousOn f' {x | f x ≤ g x}
hg' : ContinuousOn g' {x | g x ≤ f x}
hfg : ∀ (x : β), f x = g x → f' x = g' x
⊢ closure {x | ¬f x ≤ g x} ⊆ {x | g x ≤ f x}
[PROOFSTEP]
simp only [not_le]
[GOAL]
case refine'_2
α : Type u
β : Type v
γ : Type w
inst✝⁵ : TopologicalSpace α
inst✝⁴ : LinearOrder α
inst✝³ : OrderClosedTopology α
f g : β → α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : (x : β) → Decidable (f x ≤ g x)
f' g' : β → γ
hf : Continuous f
hg : Continuous g
hf' : ContinuousOn f' {x | f x ≤ g x}
hg' : ContinuousOn g' {x | g x ≤ f x}
hfg : ∀ (x : β), f x = g x → f' x = g' x
⊢ closure {x | g x < f x} ⊆ {x | g x ≤ f x}
[PROOFSTEP]
exact closure_lt_subset_le hg hf
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderClosedTopology α
f g : β → α
inst✝ : TopologicalSpace β
hf : Continuous f
hg : Continuous g
⊢ Continuous fun b => min (f b) (g b)
[PROOFSTEP]
simp only [min_def]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderClosedTopology α
f g : β → α
inst✝ : TopologicalSpace β
hf : Continuous f
hg : Continuous g
⊢ Continuous fun b => if f b ≤ g b then f b else g b
[PROOFSTEP]
exact hf.if_le hg hf hg fun x => id
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderClosedTopology α
f g : β → α
l : Filter β
a : α
h : Tendsto f l (𝓝 a)
⊢ Tendsto (fun i => max a (f i)) l (𝓝 a)
[PROOFSTEP]
convert ((continuous_max.comp (@Continuous.Prod.mk α α _ _ a)).tendsto a).comp h
[GOAL]
case h.e'_5.h.e'_3
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderClosedTopology α
f g : β → α
l : Filter β
a : α
h : Tendsto f l (𝓝 a)
⊢ a = ((fun p => max p.fst p.snd) ∘ fun b => (a, b)) a
[PROOFSTEP]
simp
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderClosedTopology α
f g : β → α
l : Filter β
a : α
h : Tendsto f l (𝓝 a)
⊢ Tendsto (fun i => max (f i) a) l (𝓝 a)
[PROOFSTEP]
simp_rw [max_comm _ a]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderClosedTopology α
f g : β → α
l : Filter β
a : α
h : Tendsto f l (𝓝 a)
⊢ Tendsto (fun i => max a (f i)) l (𝓝 a)
[PROOFSTEP]
exact h.max_right
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderClosedTopology α
f g : β → α
l : Filter β
a : α
h : Tendsto f l (𝓝[Ioi a] a)
⊢ Tendsto (fun i => max a (f i)) l (𝓝[Ioi a] a)
[PROOFSTEP]
obtain ⟨h₁ : Tendsto f l (𝓝 a), h₂ : ∀ᶠ i in l, f i ∈ Ioi a⟩ := tendsto_nhdsWithin_iff.mp h
[GOAL]
case intro
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderClosedTopology α
f g : β → α
l : Filter β
a : α
h : Tendsto f l (𝓝[Ioi a] a)
h₁ : Tendsto f l (𝓝 a)
h₂ : ∀ᶠ (i : β) in l, f i ∈ Ioi a
⊢ Tendsto (fun i => max a (f i)) l (𝓝[Ioi a] a)
[PROOFSTEP]
exact tendsto_nhdsWithin_iff.mpr ⟨h₁.max_right, h₂.mono fun i hi => lt_max_of_lt_right hi⟩
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderClosedTopology α
f g : β → α
l : Filter β
a : α
h : Tendsto f l (𝓝[Ioi a] a)
⊢ Tendsto (fun i => max (f i) a) l (𝓝[Ioi a] a)
[PROOFSTEP]
simp_rw [max_comm _ a]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderClosedTopology α
f g : β → α
l : Filter β
a : α
h : Tendsto f l (𝓝[Ioi a] a)
⊢ Tendsto (fun i => max a (f i)) l (𝓝[Ioi a] a)
[PROOFSTEP]
exact Filter.tendsto_nhds_max_right h
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderClosedTopology α
f g : β → α
s : Set α
hs : Dense s
hbot : ∀ (x : α), IsBot x → x ∈ s
x : α
⊢ ∃ y, y ∈ s ∧ y ≤ x
[PROOFSTEP]
by_cases hx : IsBot x
[GOAL]
case pos
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderClosedTopology α
f g : β → α
s : Set α
hs : Dense s
hbot : ∀ (x : α), IsBot x → x ∈ s
x : α
hx : IsBot x
⊢ ∃ y, y ∈ s ∧ y ≤ x
[PROOFSTEP]
exact ⟨x, hbot x hx, le_rfl⟩
[GOAL]
case neg
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderClosedTopology α
f g : β → α
s : Set α
hs : Dense s
hbot : ∀ (x : α), IsBot x → x ∈ s
x : α
hx : ¬IsBot x
⊢ ∃ y, y ∈ s ∧ y ≤ x
[PROOFSTEP]
simp only [IsBot, not_forall, not_le] at hx
[GOAL]
case neg
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderClosedTopology α
f g : β → α
s : Set α
hs : Dense s
hbot : ∀ (x : α), IsBot x → x ∈ s
x : α
hx : ∃ x_1, x_1 < x
⊢ ∃ y, y ∈ s ∧ y ≤ x
[PROOFSTEP]
rcases hs.exists_mem_open isOpen_Iio hx with ⟨y, hys, hy : y < x⟩
[GOAL]
case neg.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderClosedTopology α
f g : β → α
s : Set α
hs : Dense s
hbot : ∀ (x : α), IsBot x → x ∈ s
x : α
hx : ∃ x_1, x_1 < x
y : α
hys : y ∈ s
hy : y < x
⊢ ∃ y, y ∈ s ∧ y ≤ x
[PROOFSTEP]
exact ⟨y, hys, hy.le⟩
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderClosedTopology α
f g : β → α
inst✝ : DenselyOrdered α
s : Set α
hs : Dense s
x : α
⊢ Ioi x = ⋃ (y : α) (_ : y ∈ s ∩ Ioi x), Ioi y
[PROOFSTEP]
refine Subset.antisymm (fun z hz ↦ ?_) (iUnion₂_subset fun y hy ↦ Ioi_subset_Ioi (le_of_lt hy.2))
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderClosedTopology α
f g : β → α
inst✝ : DenselyOrdered α
s : Set α
hs : Dense s
x z : α
hz : z ∈ Ioi x
⊢ z ∈ ⋃ (y : α) (_ : y ∈ s ∩ Ioi x), Ioi y
[PROOFSTEP]
rcases hs.exists_between hz with ⟨y, hys, hxy, hyz⟩
[GOAL]
case intro.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderClosedTopology α
f g : β → α
inst✝ : DenselyOrdered α
s : Set α
hs : Dense s
x z : α
hz : z ∈ Ioi x
y : α
hys : y ∈ s
hxy : x < y
hyz : y < z
⊢ z ∈ ⋃ (y : α) (_ : y ∈ s ∩ Ioi x), Ioi y
[PROOFSTEP]
exact mem_iUnion₂.2 ⟨y, ⟨hys, hxy⟩, hyz⟩
[GOAL]
α✝ : Type u
β : Type v
γ : Type w
ι : Type u_1
α : ι → Type u_2
inst✝² : (i : ι) → Preorder (α i)
inst✝¹ : (i : ι) → TopologicalSpace (α i)
inst✝ : ∀ (i : ι), OrderClosedTopology (α i)
⊢ OrderClosedTopology ((i : ι) → α i)
[PROOFSTEP]
constructor
[GOAL]
case isClosed_le'
α✝ : Type u
β : Type v
γ : Type w
ι : Type u_1
α : ι → Type u_2
inst✝² : (i : ι) → Preorder (α i)
inst✝¹ : (i : ι) → TopologicalSpace (α i)
inst✝ : ∀ (i : ι), OrderClosedTopology (α i)
⊢ IsClosed {p | p.fst ≤ p.snd}
[PROOFSTEP]
simp only [Pi.le_def, setOf_forall]
[GOAL]
case isClosed_le'
α✝ : Type u
β : Type v
γ : Type w
ι : Type u_1
α : ι → Type u_2
inst✝² : (i : ι) → Preorder (α i)
inst✝¹ : (i : ι) → TopologicalSpace (α i)
inst✝ : ∀ (i : ι), OrderClosedTopology (α i)
⊢ IsClosed (⋂ (i : ι), {x | Prod.fst x i ≤ Prod.snd x i})
[PROOFSTEP]
exact isClosed_iInter fun i => isClosed_le (continuous_apply i).fst' (continuous_apply i).snd'
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝¹ : TopologicalSpace α
inst✝ : Preorder α
t : OrderTopology α
⊢ instTopologicalSpaceOrderDual = generateFrom {s | ∃ a, s = Ioi a ∨ s = Iio a}
[PROOFSTEP]
convert OrderTopology.topology_eq_generate_intervals (α := α) using 6
[GOAL]
case h.e'_3.h.h.e'_2.h.h.e'_2.h.h.h.e'_2.h.h.a
α : Type u
β : Type v
γ : Type w
inst✝¹ : TopologicalSpace α
inst✝ : Preorder α
t : OrderTopology α
e_1✝² : TopologicalSpace αᵒᵈ = TopologicalSpace α
e_1✝¹ : αᵒᵈ = α
e_1✝ : Set αᵒᵈ = Set α
x✝¹ : Set αᵒᵈ
x✝ : αᵒᵈ
⊢ x✝¹ = Ioi x✝ ∨ x✝¹ = Iio x✝ ↔ x✝¹ = Ioi x✝ ∨ x✝¹ = Iio x✝
[PROOFSTEP]
apply or_comm
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝¹ : TopologicalSpace α
inst✝ : Preorder α
t : OrderTopology α
s : Set α
⊢ IsOpen s ↔ GenerateOpen {s | ∃ a, s = Ioi a ∨ s = Iio a} s
[PROOFSTEP]
rw [t.topology_eq_generate_intervals]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝¹ : TopologicalSpace α
inst✝ : Preorder α
t : OrderTopology α
s : Set α
⊢ IsOpen s ↔ GenerateOpen {s | ∃ a, s = Ioi a ∨ s = Iio a} s
[PROOFSTEP]
rfl
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝¹ : TopologicalSpace α
inst✝ : Preorder α
t : OrderTopology α
a : α
⊢ 𝓝 a = (⨅ (b : α) (_ : b ∈ Iio a), 𝓟 (Ioi b)) ⊓ ⨅ (b : α) (_ : b ∈ Ioi a), 𝓟 (Iio b)
[PROOFSTEP]
rw [t.topology_eq_generate_intervals, nhds_generateFrom]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝¹ : TopologicalSpace α
inst✝ : Preorder α
t : OrderTopology α
a : α
⊢ ⨅ (s : Set α) (_ : s ∈ {s | a ∈ s ∧ s ∈ {s | ∃ a, s = Ioi a ∨ s = Iio a}}), 𝓟 s =
    (⨅ (b : α) (_ : b ∈ Iio a), 𝓟 (Ioi b)) ⊓ ⨅ (b : α) (_ : b ∈ Ioi a), 𝓟 (Iio b)
[PROOFSTEP]
simp_rw [mem_setOf_eq, @and_comm (a ∈ _), exists_or, or_and_right, iInf_or, iInf_and, iInf_exists, iInf_inf_eq,
  iInf_comm (ι := Set α), iInf_iInf_eq_left, mem_Ioi, mem_Iio]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝¹ : TopologicalSpace α
inst✝ : Preorder α
t : OrderTopology α
f : β → α
a : α
x : Filter β
⊢ Tendsto f x (𝓝 a) ↔ (∀ (a' : α), a' < a → ∀ᶠ (b : β) in x, a' < f b) ∧ ∀ (a' : α), a' > a → ∀ᶠ (b : β) in x, f b < a'
[PROOFSTEP]
simp only [nhds_eq_order a, tendsto_inf, tendsto_iInf, tendsto_principal]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝¹ : TopologicalSpace α
inst✝ : Preorder α
t : OrderTopology α
f : β → α
a : α
x : Filter β
⊢ ((∀ (i : α), i ∈ Iio a → ∀ᶠ (a : β) in x, f a ∈ Ioi i) ∧ ∀ (i : α), i ∈ Ioi a → ∀ᶠ (a : β) in x, f a ∈ Iio i) ↔
    (∀ (a' : α), a' < a → ∀ᶠ (b : β) in x, a' < f b) ∧ ∀ (a' : α), a' > a → ∀ᶠ (b : β) in x, f b < a'
[PROOFSTEP]
rfl
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝¹ : TopologicalSpace α
inst✝ : Preorder α
t : OrderTopology α
a : α
⊢ TendstoIxxClass Icc (𝓝 a) (𝓝 a)
[PROOFSTEP]
simp only [nhds_eq_order, iInf_subtype']
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝¹ : TopologicalSpace α
inst✝ : Preorder α
t : OrderTopology α
a : α
⊢ TendstoIxxClass Icc ((⨅ (x : { i // i ∈ Iio a }), 𝓟 (Ioi ↑x)) ⊓ ⨅ (x : { i // i ∈ Ioi a }), 𝓟 (Iio ↑x))
    ((⨅ (x : { i // i ∈ Iio a }), 𝓟 (Ioi ↑x)) ⊓ ⨅ (x : { i // i ∈ Ioi a }), 𝓟 (Iio ↑x))
[PROOFSTEP]
refine ((hasBasis_iInf_principal_finite _).inf (hasBasis_iInf_principal_finite _)).tendstoIxxClass fun s _ => ?_
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝¹ : TopologicalSpace α
inst✝ : Preorder α
t : OrderTopology α
a : α
s : Set { i // i ∈ Iio a } × Set { i // i ∈ Ioi a }
x✝ : Set.Finite s.fst ∧ Set.Finite s.snd
⊢ ∀ (x : α),
    x ∈ (⋂ (i : { i // i ∈ Iio a }) (_ : i ∈ s.fst), Ioi ↑i) ∩ ⋂ (i : { i // i ∈ Ioi a }) (_ : i ∈ s.snd), Iio ↑i →
      ∀ (y : α),
        y ∈ (⋂ (i : { i // i ∈ Iio a }) (_ : i ∈ s.fst), Ioi ↑i) ∩ ⋂ (i : { i // i ∈ Ioi a }) (_ : i ∈ s.snd), Iio ↑i →
          Icc x y ⊆
            (⋂ (i : { i // i ∈ Iio a }) (_ : i ∈ s.fst), Ioi ↑i) ∩ ⋂ (i : { i // i ∈ Ioi a }) (_ : i ∈ s.snd), Iio ↑i
[PROOFSTEP]
refine' ((ordConnected_biInter _).inter (ordConnected_biInter _)).out
[GOAL]
case refine'_1
α : Type u
β : Type v
γ : Type w
inst✝¹ : TopologicalSpace α
inst✝ : Preorder α
t : OrderTopology α
a : α
s : Set { i // i ∈ Iio a } × Set { i // i ∈ Ioi a }
x✝ : Set.Finite s.fst ∧ Set.Finite s.snd
⊢ ∀ (i : { i // i ∈ Iio a }), i ∈ s.fst → OrdConnected (Ioi ↑i)
[PROOFSTEP]
intro _ _
[GOAL]
case refine'_2
α : Type u
β : Type v
γ : Type w
inst✝¹ : TopologicalSpace α
inst✝ : Preorder α
t : OrderTopology α
a : α
s : Set { i // i ∈ Iio a } × Set { i // i ∈ Ioi a }
x✝ : Set.Finite s.fst ∧ Set.Finite s.snd
⊢ ∀ (i : { i // i ∈ Ioi a }), i ∈ s.snd → OrdConnected (Iio ↑i)
[PROOFSTEP]
intro _ _
[GOAL]
case refine'_1
α : Type u
β : Type v
γ : Type w
inst✝¹ : TopologicalSpace α
inst✝ : Preorder α
t : OrderTopology α
a : α
s : Set { i // i ∈ Iio a } × Set { i // i ∈ Ioi a }
x✝ : Set.Finite s.fst ∧ Set.Finite s.snd
i✝ : { i // i ∈ Iio a }
hi✝ : i✝ ∈ s.fst
⊢ OrdConnected (Ioi ↑i✝)
case refine'_2
α : Type u
β : Type v
γ : Type w
inst✝¹ : TopologicalSpace α
inst✝ : Preorder α
t : OrderTopology α
a : α
s : Set { i // i ∈ Iio a } × Set { i // i ∈ Ioi a }
x✝ : Set.Finite s.fst ∧ Set.Finite s.snd
i✝ : { i // i ∈ Ioi a }
hi✝ : i✝ ∈ s.snd
⊢ OrdConnected (Iio ↑i✝)
[PROOFSTEP]
exacts [ordConnected_Ioi, ordConnected_Iio]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝¹ : TopologicalSpace α
inst✝ : Preorder α
t : OrderTopology α
a : α
hu : ∃ u, a < u
hl : ∃ l, l < a
⊢ 𝓝 a = ⨅ (l : α) (_ : l < a) (u : α) (_ : a < u), 𝓟 (Ioo l u)
[PROOFSTEP]
simp only [nhds_eq_order, ← inf_biInf, ← biInf_inf, *, ← inf_principal, ← Ioi_inter_Iio]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝¹ : TopologicalSpace α
inst✝ : Preorder α
t : OrderTopology α
a : α
hu : ∃ u, a < u
hl : ∃ l, l < a
⊢ (⨅ (b : α) (_ : b ∈ Iio a), 𝓟 (Ioi b)) ⊓ ⨅ (b : α) (_ : b ∈ Ioi a), 𝓟 (Iio b) =
    (⨅ (i : α) (_ : i < a), 𝓟 (Ioi i)) ⊓ ⨅ (i : α) (_ : a < i), 𝓟 (Iio i)
[PROOFSTEP]
rfl
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝¹ : TopologicalSpace α
inst✝ : Preorder α
t : OrderTopology α
f : β → α
a : α
x : Filter β
hu : ∃ u, a < u
hl : ∃ l, l < a
h : ∀ (l u : α), l < a → a < u → ∀ᶠ (b : β) in x, l < f b ∧ f b < u
⊢ Tendsto f x (𝓝 a)
[PROOFSTEP]
simp only [nhds_order_unbounded hu hl, tendsto_iInf, tendsto_principal]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝¹ : TopologicalSpace α
inst✝ : Preorder α
t : OrderTopology α
f : β → α
a : α
x : Filter β
hu : ∃ u, a < u
hl : ∃ l, l < a
h : ∀ (l u : α), l < a → a < u → ∀ᶠ (b : β) in x, l < f b ∧ f b < u
⊢ ∀ (i : α), i < a → ∀ (i_2 : α), a < i_2 → ∀ᶠ (a : β) in x, f a ∈ Ioo i i_2
[PROOFSTEP]
exact fun l hl u => h l u hl
[GOAL]
α✝ : Type u
β : Type v
γ : Type w
ι : Type u_1
α : ι → Type u_2
inst✝² : (i : ι) → Preorder (α i)
inst✝¹ : (i : ι) → TopologicalSpace (α i)
inst✝ : ∀ (i : ι), OrderTopology (α i)
f : (i : ι) → α i
⊢ TendstoIxxClass Icc (𝓝 f) (𝓝 f)
[PROOFSTEP]
constructor
[GOAL]
case tendsto_Ixx
α✝ : Type u
β : Type v
γ : Type w
ι : Type u_1
α : ι → Type u_2
inst✝² : (i : ι) → Preorder (α i)
inst✝¹ : (i : ι) → TopologicalSpace (α i)
inst✝ : ∀ (i : ι), OrderTopology (α i)
f : (i : ι) → α i
⊢ Tendsto (fun p => Icc p.fst p.snd) (𝓝 f ×ˢ 𝓝 f) (smallSets (𝓝 f))
[PROOFSTEP]
conv in (𝓝 f).smallSets => rw [nhds_pi, Filter.pi]
[GOAL]
α✝ : Type u
β : Type v
γ : Type w
ι : Type u_1
α : ι → Type u_2
inst✝² : (i : ι) → Preorder (α i)
inst✝¹ : (i : ι) → TopologicalSpace (α i)
inst✝ : ∀ (i : ι), OrderTopology (α i)
f : (i : ι) → α i
| smallSets (𝓝 f)
[PROOFSTEP]
rw [nhds_pi, Filter.pi]
[GOAL]
α✝ : Type u
β : Type v
γ : Type w
ι : Type u_1
α : ι → Type u_2
inst✝² : (i : ι) → Preorder (α i)
inst✝¹ : (i : ι) → TopologicalSpace (α i)
inst✝ : ∀ (i : ι), OrderTopology (α i)
f : (i : ι) → α i
| smallSets (𝓝 f)
[PROOFSTEP]
rw [nhds_pi, Filter.pi]
[GOAL]
α✝ : Type u
β : Type v
γ : Type w
ι : Type u_1
α : ι → Type u_2
inst✝² : (i : ι) → Preorder (α i)
inst✝¹ : (i : ι) → TopologicalSpace (α i)
inst✝ : ∀ (i : ι), OrderTopology (α i)
f : (i : ι) → α i
| smallSets (𝓝 f)
[PROOFSTEP]
rw [nhds_pi, Filter.pi]
[GOAL]
case tendsto_Ixx
α✝ : Type u
β : Type v
γ : Type w
ι : Type u_1
α : ι → Type u_2
inst✝² : (i : ι) → Preorder (α i)
inst✝¹ : (i : ι) → TopologicalSpace (α i)
inst✝ : ∀ (i : ι), OrderTopology (α i)
f : (i : ι) → α i
⊢ Tendsto (fun p => Icc p.fst p.snd) (𝓝 f ×ˢ 𝓝 f) (smallSets (⨅ (i : ι), comap (eval i) (𝓝 (f i))))
[PROOFSTEP]
simp only [smallSets_iInf, smallSets_comap, tendsto_iInf, tendsto_lift', (· ∘ ·), mem_powerset_iff]
[GOAL]
case tendsto_Ixx
α✝ : Type u
β : Type v
γ : Type w
ι : Type u_1
α : ι → Type u_2
inst✝² : (i : ι) → Preorder (α i)
inst✝¹ : (i : ι) → TopologicalSpace (α i)
inst✝ : ∀ (i : ι), OrderTopology (α i)
f : (i : ι) → α i
⊢ ∀ (i : ι) (s : Set (α i)),
    s ∈ 𝓝 (f i) → ∀ᶠ (a : ((i : ι) → α i) × ((i : ι) → α i)) in 𝓝 f ×ˢ 𝓝 f, Icc a.fst a.snd ⊆ eval i ⁻¹' s
[PROOFSTEP]
intro i s hs
[GOAL]
case tendsto_Ixx
α✝ : Type u
β : Type v
γ : Type w
ι : Type u_1
α : ι → Type u_2
inst✝² : (i : ι) → Preorder (α i)
inst✝¹ : (i : ι) → TopologicalSpace (α i)
inst✝ : ∀ (i : ι), OrderTopology (α i)
f : (i : ι) → α i
i : ι
s : Set (α i)
hs : s ∈ 𝓝 (f i)
⊢ ∀ᶠ (a : ((i : ι) → α i) × ((i : ι) → α i)) in 𝓝 f ×ˢ 𝓝 f, Icc a.fst a.snd ⊆ eval i ⁻¹' s
[PROOFSTEP]
have : Tendsto (fun g : ∀ i, α i => g i) (𝓝 f) (𝓝 (f i)) := (continuous_apply i).tendsto f
[GOAL]
case tendsto_Ixx
α✝ : Type u
β : Type v
γ : Type w
ι : Type u_1
α : ι → Type u_2
inst✝² : (i : ι) → Preorder (α i)
inst✝¹ : (i : ι) → TopologicalSpace (α i)
inst✝ : ∀ (i : ι), OrderTopology (α i)
f : (i : ι) → α i
i : ι
s : Set (α i)
hs : s ∈ 𝓝 (f i)
this : Tendsto (fun g => g i) (𝓝 f) (𝓝 (f i))
⊢ ∀ᶠ (a : ((i : ι) → α i) × ((i : ι) → α i)) in 𝓝 f ×ˢ 𝓝 f, Icc a.fst a.snd ⊆ eval i ⁻¹' s
[PROOFSTEP]
refine' (tendsto_lift'.1 ((this.comp tendsto_fst).Icc (this.comp tendsto_snd)) s hs).mono _
[GOAL]
case tendsto_Ixx
α✝ : Type u
β : Type v
γ : Type w
ι : Type u_1
α : ι → Type u_2
inst✝² : (i : ι) → Preorder (α i)
inst✝¹ : (i : ι) → TopologicalSpace (α i)
inst✝ : ∀ (i : ι), OrderTopology (α i)
f : (i : ι) → α i
i : ι
s : Set (α i)
hs : s ∈ 𝓝 (f i)
this : Tendsto (fun g => g i) (𝓝 f) (𝓝 (f i))
⊢ ∀ (x : ((i : ι) → α i) × ((i : ι) → α i)),
    Icc (((fun g => g i) ∘ Prod.fst) x) (((fun g => g i) ∘ Prod.snd) x) ∈ 𝒫 s → Icc x.fst x.snd ⊆ eval i ⁻¹' s
[PROOFSTEP]
exact fun p hp g hg => hp ⟨hg.1 _, hg.2 _⟩
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : Preorder α
inst✝² : Preorder β
inst✝¹ : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
hf : ∀ {x y : α}, f x < f y ↔ x < y
⊢ induced f inst✝¹ ≤ Preorder.topology α
[PROOFSTEP]
let _ := Preorder.topology α
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : Preorder α
inst✝² : Preorder β
inst✝¹ : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
hf : ∀ {x y : α}, f x < f y ↔ x < y
x✝ : TopologicalSpace α := Preorder.topology α
⊢ induced f inst✝¹ ≤ Preorder.topology α
[PROOFSTEP]
have : OrderTopology α := ⟨rfl⟩
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : Preorder α
inst✝² : Preorder β
inst✝¹ : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
hf : ∀ {x y : α}, f x < f y ↔ x < y
x✝ : TopologicalSpace α := Preorder.topology α
this : OrderTopology α
⊢ induced f inst✝¹ ≤ Preorder.topology α
[PROOFSTEP]
refine le_of_nhds_le_nhds fun x => ?_
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : Preorder α
inst✝² : Preorder β
inst✝¹ : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
hf : ∀ {x y : α}, f x < f y ↔ x < y
x✝ : TopologicalSpace α := Preorder.topology α
this : OrderTopology α
x : α
⊢ 𝓝 x ≤ 𝓝 x
[PROOFSTEP]
simp only [nhds_eq_order, nhds_induced, comap_inf, comap_iInf, comap_principal, Ioi, Iio, ← hf]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : Preorder α
inst✝² : Preorder β
inst✝¹ : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
hf : ∀ {x y : α}, f x < f y ↔ x < y
x✝ : TopologicalSpace α := Preorder.topology α
this : OrderTopology α
x : α
⊢ (⨅ (i : β) (_ : i ∈ {x_1 | x_1 < f x}), 𝓟 (f ⁻¹' {x | i < x})) ⊓
      ⨅ (i : β) (_ : i ∈ {x_1 | f x < x_1}), 𝓟 (f ⁻¹' {x | x < i}) ≤
    (⨅ (b : α) (_ : b ∈ {x_1 | f x_1 < f x}), 𝓟 {x | f b < f x}) ⊓
      ⨅ (b : α) (_ : b ∈ {x_1 | f x < f x_1}), 𝓟 {x | f x < f b}
[PROOFSTEP]
refine inf_le_inf (le_iInf₂ fun a ha => ?_) (le_iInf₂ fun a ha => ?_)
[GOAL]
case refine_1
α : Type u
β : Type v
γ : Type w
inst✝³ : Preorder α
inst✝² : Preorder β
inst✝¹ : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
hf : ∀ {x y : α}, f x < f y ↔ x < y
x✝ : TopologicalSpace α := Preorder.topology α
this : OrderTopology α
x a : α
ha : a ∈ {x_1 | f x_1 < f x}
⊢ ⨅ (i : β) (_ : i ∈ {x_1 | x_1 < f x}), 𝓟 (f ⁻¹' {x | i < x}) ≤ 𝓟 {x | f a < f x}
case refine_2
α : Type u
β : Type v
γ : Type w
inst✝³ : Preorder α
inst✝² : Preorder β
inst✝¹ : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
hf : ∀ {x y : α}, f x < f y ↔ x < y
x✝ : TopologicalSpace α := Preorder.topology α
this : OrderTopology α
x a : α
ha : a ∈ {x_1 | f x < f x_1}
⊢ ⨅ (i : β) (_ : i ∈ {x_1 | f x < x_1}), 𝓟 (f ⁻¹' {x | x < i}) ≤ 𝓟 {x | f x < f a}
[PROOFSTEP]
exacts [iInf₂_le (f a) ha, iInf₂_le (f a) ha]
  -- porting note: new lemma
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : Preorder α
inst✝² : Preorder β
inst✝¹ : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
hf : ∀ {x y : α}, f x < f y ↔ x < y
H₁ : ∀ {a : α} {b : β} {x : α}, b < f a → ¬b < f x → ∃ y, y < a ∧ b ≤ f y
H₂ : ∀ {a : α} {b : β} {x : α}, f a < b → ¬f x < b → ∃ y, a < y ∧ f y ≤ b
⊢ induced f inst✝¹ = Preorder.topology α
[PROOFSTEP]
let _ := Preorder.topology α
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : Preorder α
inst✝² : Preorder β
inst✝¹ : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
hf : ∀ {x y : α}, f x < f y ↔ x < y
H₁ : ∀ {a : α} {b : β} {x : α}, b < f a → ¬b < f x → ∃ y, y < a ∧ b ≤ f y
H₂ : ∀ {a : α} {b : β} {x : α}, f a < b → ¬f x < b → ∃ y, a < y ∧ f y ≤ b
x✝ : TopologicalSpace α := Preorder.topology α
⊢ induced f inst✝¹ = Preorder.topology α
[PROOFSTEP]
have : OrderTopology α := ⟨rfl⟩
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : Preorder α
inst✝² : Preorder β
inst✝¹ : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
hf : ∀ {x y : α}, f x < f y ↔ x < y
H₁ : ∀ {a : α} {b : β} {x : α}, b < f a → ¬b < f x → ∃ y, y < a ∧ b ≤ f y
H₂ : ∀ {a : α} {b : β} {x : α}, f a < b → ¬f x < b → ∃ y, a < y ∧ f y ≤ b
x✝ : TopologicalSpace α := Preorder.topology α
this : OrderTopology α
⊢ induced f inst✝¹ = Preorder.topology α
[PROOFSTEP]
refine le_antisymm (induced_topology_le_preorder hf) ?_
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : Preorder α
inst✝² : Preorder β
inst✝¹ : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
hf : ∀ {x y : α}, f x < f y ↔ x < y
H₁ : ∀ {a : α} {b : β} {x : α}, b < f a → ¬b < f x → ∃ y, y < a ∧ b ≤ f y
H₂ : ∀ {a : α} {b : β} {x : α}, f a < b → ¬f x < b → ∃ y, a < y ∧ f y ≤ b
x✝ : TopologicalSpace α := Preorder.topology α
this : OrderTopology α
⊢ Preorder.topology α ≤ induced f inst✝¹
[PROOFSTEP]
refine le_of_nhds_le_nhds fun a => ?_
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : Preorder α
inst✝² : Preorder β
inst✝¹ : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
hf : ∀ {x y : α}, f x < f y ↔ x < y
H₁ : ∀ {a : α} {b : β} {x : α}, b < f a → ¬b < f x → ∃ y, y < a ∧ b ≤ f y
H₂ : ∀ {a : α} {b : β} {x : α}, f a < b → ¬f x < b → ∃ y, a < y ∧ f y ≤ b
x✝ : TopologicalSpace α := Preorder.topology α
this : OrderTopology α
a : α
⊢ 𝓝 a ≤ 𝓝 a
[PROOFSTEP]
simp only [nhds_eq_order, nhds_induced, comap_inf, comap_iInf, comap_principal]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : Preorder α
inst✝² : Preorder β
inst✝¹ : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
hf : ∀ {x y : α}, f x < f y ↔ x < y
H₁ : ∀ {a : α} {b : β} {x : α}, b < f a → ¬b < f x → ∃ y, y < a ∧ b ≤ f y
H₂ : ∀ {a : α} {b : β} {x : α}, f a < b → ¬f x < b → ∃ y, a < y ∧ f y ≤ b
x✝ : TopologicalSpace α := Preorder.topology α
this : OrderTopology α
a : α
⊢ (⨅ (b : α) (_ : b ∈ Iio a), 𝓟 (Ioi b)) ⊓ ⨅ (b : α) (_ : b ∈ Ioi a), 𝓟 (Iio b) ≤
    (⨅ (i : β) (_ : i ∈ Iio (f a)), 𝓟 (f ⁻¹' Ioi i)) ⊓ ⨅ (i : β) (_ : i ∈ Ioi (f a)), 𝓟 (f ⁻¹' Iio i)
[PROOFSTEP]
refine inf_le_inf (le_iInf₂ fun b hb => ?_) (le_iInf₂ fun b hb => ?_)
[GOAL]
case refine_1
α : Type u
β : Type v
γ : Type w
inst✝³ : Preorder α
inst✝² : Preorder β
inst✝¹ : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
hf : ∀ {x y : α}, f x < f y ↔ x < y
H₁ : ∀ {a : α} {b : β} {x : α}, b < f a → ¬b < f x → ∃ y, y < a ∧ b ≤ f y
H₂ : ∀ {a : α} {b : β} {x : α}, f a < b → ¬f x < b → ∃ y, a < y ∧ f y ≤ b
x✝ : TopologicalSpace α := Preorder.topology α
this : OrderTopology α
a : α
b : β
hb : b ∈ Iio (f a)
⊢ ⨅ (b : α) (_ : b ∈ Iio a), 𝓟 (Ioi b) ≤ 𝓟 (f ⁻¹' Ioi b)
[PROOFSTEP]
rcases em (∃ x, ¬(b < f x)) with (⟨x, hx⟩ | hb)
[GOAL]
case refine_1.inl.intro
α : Type u
β : Type v
γ : Type w
inst✝³ : Preorder α
inst✝² : Preorder β
inst✝¹ : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
hf : ∀ {x y : α}, f x < f y ↔ x < y
H₁ : ∀ {a : α} {b : β} {x : α}, b < f a → ¬b < f x → ∃ y, y < a ∧ b ≤ f y
H₂ : ∀ {a : α} {b : β} {x : α}, f a < b → ¬f x < b → ∃ y, a < y ∧ f y ≤ b
x✝ : TopologicalSpace α := Preorder.topology α
this : OrderTopology α
a : α
b : β
hb : b ∈ Iio (f a)
x : α
hx : ¬b < f x
⊢ ⨅ (b : α) (_ : b ∈ Iio a), 𝓟 (Ioi b) ≤ 𝓟 (f ⁻¹' Ioi b)
[PROOFSTEP]
rcases H₁ hb hx with ⟨y, hya, hyb⟩
[GOAL]
case refine_1.inl.intro.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝³ : Preorder α
inst✝² : Preorder β
inst✝¹ : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
hf : ∀ {x y : α}, f x < f y ↔ x < y
H₁ : ∀ {a : α} {b : β} {x : α}, b < f a → ¬b < f x → ∃ y, y < a ∧ b ≤ f y
H₂ : ∀ {a : α} {b : β} {x : α}, f a < b → ¬f x < b → ∃ y, a < y ∧ f y ≤ b
x✝ : TopologicalSpace α := Preorder.topology α
this : OrderTopology α
a : α
b : β
hb : b ∈ Iio (f a)
x : α
hx : ¬b < f x
y : α
hya : y < a
hyb : b ≤ f y
⊢ ⨅ (b : α) (_ : b ∈ Iio a), 𝓟 (Ioi b) ≤ 𝓟 (f ⁻¹' Ioi b)
[PROOFSTEP]
exact iInf₂_le_of_le y hya (principal_mono.2 fun z hz => hyb.trans_lt (hf.2 hz))
[GOAL]
case refine_1.inr
α : Type u
β : Type v
γ : Type w
inst✝³ : Preorder α
inst✝² : Preorder β
inst✝¹ : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
hf : ∀ {x y : α}, f x < f y ↔ x < y
H₁ : ∀ {a : α} {b : β} {x : α}, b < f a → ¬b < f x → ∃ y, y < a ∧ b ≤ f y
H₂ : ∀ {a : α} {b : β} {x : α}, f a < b → ¬f x < b → ∃ y, a < y ∧ f y ≤ b
x✝ : TopologicalSpace α := Preorder.topology α
this : OrderTopology α
a : α
b : β
hb✝ : b ∈ Iio (f a)
hb : ¬∃ x, ¬b < f x
⊢ ⨅ (b : α) (_ : b ∈ Iio a), 𝓟 (Ioi b) ≤ 𝓟 (f ⁻¹' Ioi b)
[PROOFSTEP]
push_neg at hb
[GOAL]
case refine_1.inr
α : Type u
β : Type v
γ : Type w
inst✝³ : Preorder α
inst✝² : Preorder β
inst✝¹ : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
hf : ∀ {x y : α}, f x < f y ↔ x < y
H₁ : ∀ {a : α} {b : β} {x : α}, b < f a → ¬b < f x → ∃ y, y < a ∧ b ≤ f y
H₂ : ∀ {a : α} {b : β} {x : α}, f a < b → ¬f x < b → ∃ y, a < y ∧ f y ≤ b
x✝ : TopologicalSpace α := Preorder.topology α
this : OrderTopology α
a : α
b : β
hb✝ : b ∈ Iio (f a)
hb : ∀ (x : α), b < f x
⊢ ⨅ (b : α) (_ : b ∈ Iio a), 𝓟 (Ioi b) ≤ 𝓟 (f ⁻¹' Ioi b)
[PROOFSTEP]
exact le_principal_iff.2 (univ_mem' hb)
[GOAL]
case refine_2
α : Type u
β : Type v
γ : Type w
inst✝³ : Preorder α
inst✝² : Preorder β
inst✝¹ : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
hf : ∀ {x y : α}, f x < f y ↔ x < y
H₁ : ∀ {a : α} {b : β} {x : α}, b < f a → ¬b < f x → ∃ y, y < a ∧ b ≤ f y
H₂ : ∀ {a : α} {b : β} {x : α}, f a < b → ¬f x < b → ∃ y, a < y ∧ f y ≤ b
x✝ : TopologicalSpace α := Preorder.topology α
this : OrderTopology α
a : α
b : β
hb : b ∈ Ioi (f a)
⊢ ⨅ (b : α) (_ : b ∈ Ioi a), 𝓟 (Iio b) ≤ 𝓟 (f ⁻¹' Iio b)
[PROOFSTEP]
rcases em (∃ x, ¬(f x < b)) with (⟨x, hx⟩ | hb)
[GOAL]
case refine_2.inl.intro
α : Type u
β : Type v
γ : Type w
inst✝³ : Preorder α
inst✝² : Preorder β
inst✝¹ : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
hf : ∀ {x y : α}, f x < f y ↔ x < y
H₁ : ∀ {a : α} {b : β} {x : α}, b < f a → ¬b < f x → ∃ y, y < a ∧ b ≤ f y
H₂ : ∀ {a : α} {b : β} {x : α}, f a < b → ¬f x < b → ∃ y, a < y ∧ f y ≤ b
x✝ : TopologicalSpace α := Preorder.topology α
this : OrderTopology α
a : α
b : β
hb : b ∈ Ioi (f a)
x : α
hx : ¬f x < b
⊢ ⨅ (b : α) (_ : b ∈ Ioi a), 𝓟 (Iio b) ≤ 𝓟 (f ⁻¹' Iio b)
[PROOFSTEP]
rcases H₂ hb hx with ⟨y, hya, hyb⟩
[GOAL]
case refine_2.inl.intro.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝³ : Preorder α
inst✝² : Preorder β
inst✝¹ : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
hf : ∀ {x y : α}, f x < f y ↔ x < y
H₁ : ∀ {a : α} {b : β} {x : α}, b < f a → ¬b < f x → ∃ y, y < a ∧ b ≤ f y
H₂ : ∀ {a : α} {b : β} {x : α}, f a < b → ¬f x < b → ∃ y, a < y ∧ f y ≤ b
x✝ : TopologicalSpace α := Preorder.topology α
this : OrderTopology α
a : α
b : β
hb : b ∈ Ioi (f a)
x : α
hx : ¬f x < b
y : α
hya : a < y
hyb : f y ≤ b
⊢ ⨅ (b : α) (_ : b ∈ Ioi a), 𝓟 (Iio b) ≤ 𝓟 (f ⁻¹' Iio b)
[PROOFSTEP]
exact iInf₂_le_of_le y hya (principal_mono.2 fun z hz => (hf.2 hz).trans_le hyb)
[GOAL]
case refine_2.inr
α : Type u
β : Type v
γ : Type w
inst✝³ : Preorder α
inst✝² : Preorder β
inst✝¹ : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
hf : ∀ {x y : α}, f x < f y ↔ x < y
H₁ : ∀ {a : α} {b : β} {x : α}, b < f a → ¬b < f x → ∃ y, y < a ∧ b ≤ f y
H₂ : ∀ {a : α} {b : β} {x : α}, f a < b → ¬f x < b → ∃ y, a < y ∧ f y ≤ b
x✝ : TopologicalSpace α := Preorder.topology α
this : OrderTopology α
a : α
b : β
hb✝ : b ∈ Ioi (f a)
hb : ¬∃ x, ¬f x < b
⊢ ⨅ (b : α) (_ : b ∈ Ioi a), 𝓟 (Iio b) ≤ 𝓟 (f ⁻¹' Iio b)
[PROOFSTEP]
push_neg at hb
[GOAL]
case refine_2.inr
α : Type u
β : Type v
γ : Type w
inst✝³ : Preorder α
inst✝² : Preorder β
inst✝¹ : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
hf : ∀ {x y : α}, f x < f y ↔ x < y
H₁ : ∀ {a : α} {b : β} {x : α}, b < f a → ¬b < f x → ∃ y, y < a ∧ b ≤ f y
H₂ : ∀ {a : α} {b : β} {x : α}, f a < b → ¬f x < b → ∃ y, a < y ∧ f y ≤ b
x✝ : TopologicalSpace α := Preorder.topology α
this : OrderTopology α
a : α
b : β
hb✝ : b ∈ Ioi (f a)
hb : ∀ (x : α), f x < b
⊢ ⨅ (b : α) (_ : b ∈ Ioi a), 𝓟 (Iio b) ≤ 𝓟 (f ⁻¹' Iio b)
[PROOFSTEP]
exact le_principal_iff.2 (univ_mem' hb)
[GOAL]
α✝ : Type u
β✝ : Type v
γ : Type w
α : Type u_1
β : Type u_2
inst✝² : LinearOrder α
inst✝¹ : LinearOrder β
t : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
hf : StrictMono f
hc : OrdConnected (range f)
⊢ induced f t = Preorder.topology α
[PROOFSTEP]
refine induced_topology_eq_preorder hf.lt_iff_lt (fun h₁ h₂ => ?_) fun h₁ h₂ => ?_
[GOAL]
case refine_1
α✝ : Type u
β✝ : Type v
γ : Type w
α : Type u_1
β : Type u_2
inst✝² : LinearOrder α
inst✝¹ : LinearOrder β
t : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
hf : StrictMono f
hc : OrdConnected (range f)
a✝ : α
b✝ : β
x✝ : α
h₁ : b✝ < f a✝
h₂ : ¬b✝ < f x✝
⊢ ∃ y, y < a✝ ∧ b✝ ≤ f y
[PROOFSTEP]
rcases hc.out (mem_range_self _) (mem_range_self _) ⟨not_lt.1 h₂, h₁.le⟩ with ⟨y, rfl⟩
[GOAL]
case refine_1.intro
α✝ : Type u
β✝ : Type v
γ : Type w
α : Type u_1
β : Type u_2
inst✝² : LinearOrder α
inst✝¹ : LinearOrder β
t : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
hf : StrictMono f
hc : OrdConnected (range f)
a✝ x✝ y : α
h₁ : f y < f a✝
h₂ : ¬f y < f x✝
⊢ ∃ y_1, y_1 < a✝ ∧ f y ≤ f y_1
[PROOFSTEP]
exact ⟨y, hf.lt_iff_lt.1 h₁, le_rfl⟩
[GOAL]
case refine_2
α✝ : Type u
β✝ : Type v
γ : Type w
α : Type u_1
β : Type u_2
inst✝² : LinearOrder α
inst✝¹ : LinearOrder β
t : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
hf : StrictMono f
hc : OrdConnected (range f)
a✝ : α
b✝ : β
x✝ : α
h₁ : f a✝ < b✝
h₂ : ¬f x✝ < b✝
⊢ ∃ y, a✝ < y ∧ f y ≤ b✝
[PROOFSTEP]
rcases hc.out (mem_range_self _) (mem_range_self _) ⟨h₁.le, not_lt.1 h₂⟩ with ⟨y, rfl⟩
[GOAL]
case refine_2.intro
α✝ : Type u
β✝ : Type v
γ : Type w
α : Type u_1
β : Type u_2
inst✝² : LinearOrder α
inst✝¹ : LinearOrder β
t : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
hf : StrictMono f
hc : OrdConnected (range f)
a✝ x✝ y : α
h₁ : f a✝ < f y
h₂ : ¬f x✝ < f y
⊢ ∃ y_1, a✝ < y_1 ∧ f y_1 ≤ f y
[PROOFSTEP]
exact ⟨y, hf.lt_iff_lt.1 h₁, le_rfl⟩
[GOAL]
α✝ : Type u
β : Type v
γ : Type w
α : Type u
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
t : Set α
ht : OrdConnected t
⊢ OrdConnected (range Subtype.val)
[PROOFSTEP]
rwa [← @Subtype.range_val _ t] at ht
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : Preorder α
inst✝ : OrderTopology α
a : α
⊢ 𝓝[Ici a] a = (⨅ (u : α) (_ : a < u), 𝓟 (Iio u)) ⊓ 𝓟 (Ici a)
[PROOFSTEP]
rw [nhdsWithin, nhds_eq_order]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : Preorder α
inst✝ : OrderTopology α
a : α
⊢ ((⨅ (b : α) (_ : b ∈ Iio a), 𝓟 (Ioi b)) ⊓ ⨅ (b : α) (_ : b ∈ Ioi a), 𝓟 (Iio b)) ⊓ 𝓟 (Ici a) =
    (⨅ (u : α) (_ : a < u), 𝓟 (Iio u)) ⊓ 𝓟 (Ici a)
[PROOFSTEP]
refine' le_antisymm (inf_le_inf_right _ inf_le_right) (le_inf (le_inf _ inf_le_left) inf_le_right)
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : Preorder α
inst✝ : OrderTopology α
a : α
⊢ (⨅ (u : α) (_ : a < u), 𝓟 (Iio u)) ⊓ 𝓟 (Ici a) ≤ ⨅ (b : α) (_ : b ∈ Iio a), 𝓟 (Ioi b)
[PROOFSTEP]
exact inf_le_right.trans (le_iInf₂ fun l hl => principal_mono.2 <| Ici_subset_Ioi.2 hl)
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : Preorder α
inst✝ : OrderTopology α
a : α
ha : ∃ u, a < u
⊢ 𝓝[Ici a] a = ⨅ (u : α) (_ : a < u), 𝓟 (Ico a u)
[PROOFSTEP]
simp only [nhdsWithin_Ici_eq'', biInf_inf ha, inf_principal, Iio_inter_Ici]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : Preorder α
inst✝ : OrderTopology α
a : α
ha : ∃ l, l < a
⊢ 𝓝[Iic a] a = ⨅ (l : α) (_ : l < a), 𝓟 (Ioc l a)
[PROOFSTEP]
simp only [nhdsWithin_Iic_eq'', biInf_inf ha, inf_principal, Ioi_inter_Iic]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a : α
ha : ∃ l, l < a
⊢ HasBasis (𝓝[Iic a] a) (fun l => l < a) fun l => Ioc l a
[PROOFSTEP]
convert nhdsWithin_Ici_basis' (α := αᵒᵈ) ha using 2
[GOAL]
case h.e'_5.h.h
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a : α
ha : ∃ l, l < a
e_1✝ : α = αᵒᵈ
x✝ : α
⊢ Ioc x✝ a = Ico a x✝
[PROOFSTEP]
exact dual_Ico.symm
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : Preorder α
inst✝¹ : OrderTop α
inst✝ : OrderTopology α
⊢ 𝓝 ⊤ = ⨅ (l : α) (_ : l < ⊤), 𝓟 (Ioi l)
[PROOFSTEP]
simp [nhds_eq_order (⊤ : α)]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : Preorder α
inst✝¹ : OrderBot α
inst✝ : OrderTopology α
⊢ 𝓝 ⊥ = ⨅ (l : α) (_ : ⊥ < l), 𝓟 (Iio l)
[PROOFSTEP]
simp [nhds_eq_order (⊥ : α)]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderTop α
inst✝¹ : OrderTopology α
inst✝ : Nontrivial α
⊢ HasBasis (𝓝 ⊤) (fun a => a < ⊤) fun a => Ioi a
[PROOFSTEP]
have : ∃ x : α, x < ⊤ := (exists_ne ⊤).imp fun x hx => hx.lt_top
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderTop α
inst✝¹ : OrderTopology α
inst✝ : Nontrivial α
this : ∃ x, x < ⊤
⊢ HasBasis (𝓝 ⊤) (fun a => a < ⊤) fun a => Ioi a
[PROOFSTEP]
simpa only [Iic_top, nhdsWithin_univ, Ioc_top] using nhdsWithin_Iic_basis' this
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace β
inst✝² : Preorder β
inst✝¹ : OrderTop β
inst✝ : OrderTopology β
l : Filter α
f g : α → β
hf : Tendsto f l (𝓝 ⊤)
hg : f ≤ᶠ[l] g
⊢ Tendsto g l (𝓝 ⊤)
[PROOFSTEP]
simp only [nhds_top_order, tendsto_iInf, tendsto_principal] at hf ⊢
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace β
inst✝² : Preorder β
inst✝¹ : OrderTop β
inst✝ : OrderTopology β
l : Filter α
f g : α → β
hg : f ≤ᶠ[l] g
hf : ∀ (i : β), i < ⊤ → ∀ᶠ (a : α) in l, f a ∈ Ioi i
⊢ ∀ (i : β), i < ⊤ → ∀ᶠ (a : α) in l, g a ∈ Ioi i
[PROOFSTEP]
intro x hx
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace β
inst✝² : Preorder β
inst✝¹ : OrderTop β
inst✝ : OrderTopology β
l : Filter α
f g : α → β
hg : f ≤ᶠ[l] g
hf : ∀ (i : β), i < ⊤ → ∀ᶠ (a : α) in l, f a ∈ Ioi i
x : β
hx : x < ⊤
⊢ ∀ᶠ (a : α) in l, g a ∈ Ioi x
[PROOFSTEP]
filter_upwards [hf x hx, hg] with _ using lt_of_lt_of_le
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a : α
s : Set α
hs : s ∈ 𝓝 a
u : α
hu : a < u
⊢ ∃ u', u' ∈ Ioc a u ∧ Ico a u' ⊆ s
[PROOFSTEP]
simpa only [OrderDual.exists, exists_prop, dual_Ico, dual_Ioc] using
  exists_Ioc_subset_of_mem_nhds' (show ofDual ⁻¹' s ∈ 𝓝 (toDual a) from hs) hu.dual
[GOAL]
α : 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
[PROOFSTEP]
rcases(em (IsMax a)).imp_right not_isMax_iff.mp with (ha | ha)
[GOAL]
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
[PROOFSTEP]
use a
[GOAL]
case h
α : 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
[PROOFSTEP]
simpa [ha.Ici_eq] using hs
[GOAL]
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
[PROOFSTEP]
rcases(nhdsWithin_Ici_basis' ha).mem_iff.mp hs with ⟨b, hab, hbs⟩
[GOAL]
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
[PROOFSTEP]
rcases eq_empty_or_nonempty (Ioo a b) with (H | ⟨c, hac, hcb⟩)
[GOAL]
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
[PROOFSTEP]
have : Ico a b = Icc a a := by rw [← Icc_union_Ioo_eq_Ico le_rfl hab, H, union_empty]
[GOAL]
α : 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
[PROOFSTEP]
rw [← Icc_union_Ioo_eq_Ico le_rfl hab, H, union_empty]
[GOAL]
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
[PROOFSTEP]
exact ⟨a, le_rfl, this ▸ ⟨Ico_mem_nhdsWithin_Ici' hab, hbs⟩⟩
[GOAL]
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
[PROOFSTEP]
refine' ⟨c, hac.le, Icc_mem_nhdsWithin_Ici' hac, _⟩
[GOAL]
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
[PROOFSTEP]
exact (Icc_subset_Ico_right hcb).trans hbs
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a : α
s : Set α
hs : s ∈ 𝓝[Iic a] a
⊢ ∃ b, b ≤ a ∧ Icc b a ∈ 𝓝[Iic a] a ∧ Icc b a ⊆ s
[PROOFSTEP]
simpa only [dual_Icc, toDual.surjective.exists] using
  exists_Icc_mem_subset_of_mem_nhdsWithin_Ici (α := αᵒᵈ) (a := toDual a) hs
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a : α
s : Set α
hs : s ∈ 𝓝 a
⊢ ∃ b c, a ∈ Icc b c ∧ Icc b c ∈ 𝓝 a ∧ Icc b c ⊆ s
[PROOFSTEP]
rcases exists_Icc_mem_subset_of_mem_nhdsWithin_Iic (nhdsWithin_le_nhds hs) with ⟨b, hba, hb_nhds, hbs⟩
[GOAL]
case intro.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a : α
s : Set α
hs : s ∈ 𝓝 a
b : α
hba : b ≤ a
hb_nhds : Icc b a ∈ 𝓝[Iic a] a
hbs : Icc b a ⊆ s
⊢ ∃ b c, a ∈ Icc b c ∧ Icc b c ∈ 𝓝 a ∧ Icc b c ⊆ s
[PROOFSTEP]
rcases exists_Icc_mem_subset_of_mem_nhdsWithin_Ici (nhdsWithin_le_nhds hs) with ⟨c, hac, hc_nhds, hcs⟩
[GOAL]
case intro.intro.intro.intro.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a : α
s : Set α
hs : s ∈ 𝓝 a
b : α
hba : b ≤ a
hb_nhds : Icc b a ∈ 𝓝[Iic a] a
hbs : Icc b a ⊆ s
c : α
hac : a ≤ c
hc_nhds : Icc a c ∈ 𝓝[Ici a] a
hcs : Icc a c ⊆ s
⊢ ∃ b c, a ∈ Icc b c ∧ Icc b c ∈ 𝓝 a ∧ Icc b c ⊆ s
[PROOFSTEP]
refine' ⟨b, c, ⟨hba, hac⟩, _⟩
[GOAL]
case intro.intro.intro.intro.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a : α
s : Set α
hs : s ∈ 𝓝 a
b : α
hba : b ≤ a
hb_nhds : Icc b a ∈ 𝓝[Iic a] a
hbs : Icc b a ⊆ s
c : α
hac : a ≤ c
hc_nhds : Icc a c ∈ 𝓝[Ici a] a
hcs : Icc a c ⊆ s
⊢ Icc b c ∈ 𝓝 a ∧ Icc b c ⊆ s
[PROOFSTEP]
rw [← Icc_union_Icc_eq_Icc hba hac, ← nhds_left_sup_nhds_right]
[GOAL]
case intro.intro.intro.intro.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a : α
s : Set α
hs : s ∈ 𝓝 a
b : α
hba : b ≤ a
hb_nhds : Icc b a ∈ 𝓝[Iic a] a
hbs : Icc b a ⊆ s
c : α
hac : a ≤ c
hc_nhds : Icc a c ∈ 𝓝[Ici a] a
hcs : Icc a c ⊆ s
⊢ Icc b a ∪ Icc a c ∈ 𝓝[Iic a] a ⊔ 𝓝[Ici a] a ∧ Icc b a ∪ Icc a c ⊆ s
[PROOFSTEP]
exact ⟨union_mem_sup hb_nhds hc_nhds, union_subset hbs hcs⟩
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : Nontrivial α
s : Set α
hs : IsOpen s
h : Set.Nonempty s
⊢ ∃ a b, a < b ∧ Ioo a b ⊆ s
[PROOFSTEP]
obtain ⟨x, hx⟩ : ∃ x, x ∈ s := h
[GOAL]
case intro
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : Nontrivial α
s : Set α
hs : IsOpen s
x : α
hx : x ∈ s
⊢ ∃ a b, a < b ∧ Ioo a b ⊆ s
[PROOFSTEP]
obtain ⟨y, hy⟩ : ∃ y, y ≠ x := exists_ne x
[GOAL]
case intro.intro
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : Nontrivial α
s : Set α
hs : IsOpen s
x : α
hx : x ∈ s
y : α
hy : y ≠ x
⊢ ∃ a b, a < b ∧ Ioo a b ⊆ s
[PROOFSTEP]
rcases lt_trichotomy x y with (H | rfl | H)
[GOAL]
case intro.intro.inl
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : Nontrivial α
s : Set α
hs : IsOpen s
x : α
hx : x ∈ s
y : α
hy : y ≠ x
H : x < y
⊢ ∃ a b, a < b ∧ Ioo a b ⊆ s
[PROOFSTEP]
obtain ⟨u, xu, hu⟩ : ∃ u, x < u ∧ Ico x u ⊆ s := exists_Ico_subset_of_mem_nhds (hs.mem_nhds hx) ⟨y, H⟩
[GOAL]
case intro.intro.inl.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : Nontrivial α
s : Set α
hs : IsOpen s
x : α
hx : x ∈ s
y : α
hy : y ≠ x
H : x < y
u : α
xu : x < u
hu : Ico x u ⊆ s
⊢ ∃ a b, a < b ∧ Ioo a b ⊆ s
[PROOFSTEP]
exact ⟨x, u, xu, Ioo_subset_Ico_self.trans hu⟩
[GOAL]
case intro.intro.inr.inl
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : Nontrivial α
s : Set α
hs : IsOpen s
x : α
hx : x ∈ s
hy : x ≠ x
⊢ ∃ a b, a < b ∧ Ioo a b ⊆ s
[PROOFSTEP]
exact (hy rfl).elim
[GOAL]
case intro.intro.inr.inr
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : Nontrivial α
s : Set α
hs : IsOpen s
x : α
hx : x ∈ s
y : α
hy : y ≠ x
H : y < x
⊢ ∃ a b, a < b ∧ Ioo a b ⊆ s
[PROOFSTEP]
obtain ⟨l, lx, hl⟩ : ∃ l, l < x ∧ Ioc l x ⊆ s := exists_Ioc_subset_of_mem_nhds (hs.mem_nhds hx) ⟨y, H⟩
[GOAL]
case intro.intro.inr.inr.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : Nontrivial α
s : Set α
hs : IsOpen s
x : α
hx : x ∈ s
y : α
hy : y ≠ x
H : y < x
l : α
lx : l < x
hl : Ioc l x ⊆ s
⊢ ∃ a b, a < b ∧ Ioo a b ⊆ s
[PROOFSTEP]
exact ⟨l, x, lx, Ioo_subset_Ioc_self.trans hl⟩
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : Nontrivial α
s : Set α
h : ∀ ⦃a b : α⦄, a < b → ∃ c, c ∈ s ∧ a < c ∧ c < b
⊢ Dense s
[PROOFSTEP]
refine dense_iff_inter_open.2 fun U U_open U_nonempty => ?_
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : Nontrivial α
s : Set α
h : ∀ ⦃a b : α⦄, a < b → ∃ c, c ∈ s ∧ a < c ∧ c < b
U : Set α
U_open : IsOpen U
U_nonempty : Set.Nonempty U
⊢ Set.Nonempty (U ∩ s)
[PROOFSTEP]
obtain ⟨a, b, hab, H⟩ : ∃ a b : α, a < b ∧ Ioo a b ⊆ U := U_open.exists_Ioo_subset U_nonempty
[GOAL]
case intro.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : Nontrivial α
s : Set α
h : ∀ ⦃a b : α⦄, a < b → ∃ c, c ∈ s ∧ a < c ∧ c < b
U : Set α
U_open : IsOpen U
U_nonempty : Set.Nonempty U
a b : α
hab : a < b
H : Ioo a b ⊆ U
⊢ Set.Nonempty (U ∩ s)
[PROOFSTEP]
obtain ⟨x, xs, hx⟩ : ∃ x ∈ s, a < x ∧ x < b := h hab
[GOAL]
case intro.intro.intro.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : Nontrivial α
s : Set α
h : ∀ ⦃a b : α⦄, a < b → ∃ c, c ∈ s ∧ a < c ∧ c < b
U : Set α
U_open : IsOpen U
U_nonempty : Set.Nonempty U
a b : α
hab : a < b
H : Ioo a b ⊆ U
x : α
xs : x ∈ s
hx : a < x ∧ x < b
⊢ Set.Nonempty (U ∩ s)
[PROOFSTEP]
exact ⟨x, ⟨H hx, xs⟩⟩
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a : α
s : Set α
hl : ∃ l, l < a
hu : ∃ u, a < u
⊢ s ∈ 𝓝 a ↔ ∃ l u, a ∈ Ioo l u ∧ Ioo l u ⊆ s
[PROOFSTEP]
constructor
[GOAL]
case mp
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a : α
s : Set α
hl : ∃ l, l < a
hu : ∃ u, a < u
⊢ s ∈ 𝓝 a → ∃ l u, a ∈ Ioo l u ∧ Ioo l u ⊆ s
[PROOFSTEP]
intro h
[GOAL]
case mp
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a : α
s : Set α
hl : ∃ l, l < a
hu : ∃ u, a < u
h : s ∈ 𝓝 a
⊢ ∃ l u, a ∈ Ioo l u ∧ Ioo l u ⊆ s
[PROOFSTEP]
rcases exists_Ico_subset_of_mem_nhds h hu with ⟨u, au, hu⟩
[GOAL]
case mp.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a : α
s : Set α
hl : ∃ l, l < a
hu✝ : ∃ u, a < u
h : s ∈ 𝓝 a
u : α
au : a < u
hu : Ico a u ⊆ s
⊢ ∃ l u, a ∈ Ioo l u ∧ Ioo l u ⊆ s
[PROOFSTEP]
rcases exists_Ioc_subset_of_mem_nhds h hl with ⟨l, la, hl⟩
[GOAL]
case mp.intro.intro.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a : α
s : Set α
hl✝ : ∃ l, l < a
hu✝ : ∃ u, a < u
h : s ∈ 𝓝 a
u : α
au : a < u
hu : Ico a u ⊆ s
l : α
la : l < a
hl : Ioc l a ⊆ s
⊢ ∃ l u, a ∈ Ioo l u ∧ Ioo l u ⊆ s
[PROOFSTEP]
exact ⟨l, u, ⟨la, au⟩, Ioc_union_Ico_eq_Ioo la au ▸ union_subset hl hu⟩
[GOAL]
case mpr
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a : α
s : Set α
hl : ∃ l, l < a
hu : ∃ u, a < u
⊢ (∃ l u, a ∈ Ioo l u ∧ Ioo l u ⊆ s) → s ∈ 𝓝 a
[PROOFSTEP]
rintro ⟨l, u, ha, h⟩
[GOAL]
case mpr.intro.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a : α
s : Set α
hl : ∃ l, l < a
hu : ∃ u, a < u
l u : α
ha : a ∈ Ioo l u
h : Ioo l u ⊆ s
⊢ s ∈ 𝓝 a
[PROOFSTEP]
apply mem_of_superset (Ioo_mem_nhds ha.1 ha.2) h
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a : α
hl : ∃ l, l < a
hu : ∃ u, a < u
s : Set α
⊢ (∃ l u, a ∈ Ioo l u ∧ Ioo l u ⊆ s) ↔ ∃ i, (i.fst < a ∧ a < i.snd) ∧ Ioo i.fst i.snd ⊆ s
[PROOFSTEP]
simp
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
s : Set α
hs : Dense s
⊢ inst✝³ = generateFrom (Ioi '' s ∪ Iio '' s)
[PROOFSTEP]
refine (OrderTopology.topology_eq_generate_intervals (α := α)).trans ?_
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
s : Set α
hs : Dense s
⊢ generateFrom {s | ∃ a, s = Ioi a ∨ s = Iio a} = generateFrom (Ioi '' s ∪ Iio '' s)
[PROOFSTEP]
refine le_antisymm (generateFrom_anti ?_) (le_generateFrom ?_)
[GOAL]
case refine_1
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
s : Set α
hs : Dense s
⊢ Ioi '' s ∪ Iio '' s ⊆ {s | ∃ a, s = Ioi a ∨ s = Iio a}
[PROOFSTEP]
simp only [union_subset_iff, image_subset_iff]
[GOAL]
case refine_1
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
s : Set α
hs : Dense s
⊢ s ⊆ Ioi ⁻¹' {s | ∃ a, s = Ioi a ∨ s = Iio a} ∧ s ⊆ Iio ⁻¹' {s | ∃ a, s = Ioi a ∨ s = Iio a}
[PROOFSTEP]
exact ⟨fun a _ ↦ ⟨a, .inl rfl⟩, fun a _ ↦ ⟨a, .inr rfl⟩⟩
[GOAL]
case refine_2
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
s : Set α
hs : Dense s
⊢ ∀ (s_1 : Set α), s_1 ∈ {s | ∃ a, s = Ioi a ∨ s = Iio a} → IsOpen s_1
[PROOFSTEP]
rintro _ ⟨a, rfl | rfl⟩
[GOAL]
case refine_2.intro.inl
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
s : Set α
hs : Dense s
a : α
⊢ IsOpen (Ioi a)
[PROOFSTEP]
rw [hs.Ioi_eq_biUnion]
[GOAL]
case refine_2.intro.inl
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
s : Set α
hs : Dense s
a : α
⊢ IsOpen (⋃ (y : α) (_ : y ∈ s ∩ Ioi a), Ioi y)
[PROOFSTEP]
let _ := generateFrom (Ioi '' s ∪ Iio '' s)
[GOAL]
case refine_2.intro.inl
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
s : Set α
hs : Dense s
a : α
x✝ : TopologicalSpace α := generateFrom (Ioi '' s ∪ Iio '' s)
⊢ IsOpen (⋃ (y : α) (_ : y ∈ s ∩ Ioi a), Ioi y)
[PROOFSTEP]
exact isOpen_iUnion fun x ↦ isOpen_iUnion fun h ↦ .basic _ <| .inl <| mem_image_of_mem _ h.1
[GOAL]
case refine_2.intro.inr
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
s : Set α
hs : Dense s
a : α
⊢ IsOpen (Iio a)
[PROOFSTEP]
rw [hs.Iio_eq_biUnion]
[GOAL]
case refine_2.intro.inr
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
s : Set α
hs : Dense s
a : α
⊢ IsOpen (⋃ (y : α) (_ : y ∈ s ∩ Iio a), Iio y)
[PROOFSTEP]
let _ := generateFrom (Ioi '' s ∪ Iio '' s)
[GOAL]
case refine_2.intro.inr
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
s : Set α
hs : Dense s
a : α
x✝ : TopologicalSpace α := generateFrom (Ioi '' s ∪ Iio '' s)
⊢ IsOpen (⋃ (y : α) (_ : y ∈ s ∩ Iio a), Iio y)
[PROOFSTEP]
exact isOpen_iUnion fun x ↦ isOpen_iUnion fun h ↦ .basic _ <| .inr <| mem_image_of_mem _ h.1
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : DenselyOrdered α
inst✝ : SeparableSpace α
⊢ SecondCountableTopology α
[PROOFSTEP]
rcases exists_countable_dense α with ⟨s, hc, hd⟩
[GOAL]
case intro.intro
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : DenselyOrdered α
inst✝ : SeparableSpace α
s : Set α
hc : Set.Countable s
hd : Dense s
⊢ SecondCountableTopology α
[PROOFSTEP]
refine ⟨⟨_, ?_, hd.topology_eq_generateFrom⟩⟩
[GOAL]
case intro.intro
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : DenselyOrdered α
inst✝ : SeparableSpace α
s : Set α
hc : Set.Countable s
hd : Dense s
⊢ Set.Countable (Ioi '' s ∪ Iio '' s)
[PROOFSTEP]
exact (hc.image _).union (hc.image _)
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
⊢ Set.Countable {x | ∃ y, x ⋖ y}
[PROOFSTEP]
nontriviality α
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
✝ : Nontrivial α
⊢ Set.Countable {x | ∃ y, x ⋖ y}
[PROOFSTEP]
let s := {x : α | ∃ y, x ⋖ y}
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
✝ : Nontrivial α
s : Set α := {x | ∃ y, x ⋖ y}
⊢ Set.Countable {x | ∃ y, x ⋖ y}
[PROOFSTEP]
have : ∀ x ∈ s, ∃ y, x ⋖ y := fun x => id
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
✝ : Nontrivial α
s : Set α := {x | ∃ y, x ⋖ y}
this : ∀ (x : α), x ∈ s → ∃ y, x ⋖ y
⊢ Set.Countable {x | ∃ y, x ⋖ y}
[PROOFSTEP]
choose! y hy using this
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
✝ : Nontrivial α
s : Set α := {x | ∃ y, x ⋖ y}
y : α → α
hy : ∀ (x : α), x ∈ s → x ⋖ y x
⊢ Set.Countable {x | ∃ y, x ⋖ y}
[PROOFSTEP]
have Hy : ∀ x z, x ∈ s → z < y x → z ≤ x := fun x z hx => (hy x hx).le_of_lt
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
✝ : Nontrivial α
s : Set α := {x | ∃ y, x ⋖ y}
y : α → α
hy : ∀ (x : α), x ∈ s → x ⋖ y x
Hy : ∀ (x z : α), x ∈ s → z < y x → z ≤ x
⊢ Set.Countable {x | ∃ y, x ⋖ y}
[PROOFSTEP]
suffices H : ∀ a : Set α, IsOpen a → Set.Countable {x | x ∈ s ∧ x ∈ a ∧ y x ∉ a}
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
✝ : Nontrivial α
s : Set α := {x | ∃ y, x ⋖ y}
y : α → α
hy : ∀ (x : α), x ∈ s → x ⋖ y x
Hy : ∀ (x z : α), x ∈ s → z < y x → z ≤ x
H : ∀ (a : Set α), IsOpen a → Set.Countable {x | x ∈ s ∧ x ∈ a ∧ ¬y x ∈ a}
⊢ Set.Countable {x | ∃ y, x ⋖ y}
[PROOFSTEP]
have : s ⊆ ⋃ a ∈ countableBasis α, {x | x ∈ s ∧ x ∈ a ∧ y x ∉ a} := fun x hx =>
  by
  rcases(isBasis_countableBasis α).exists_mem_of_ne (hy x hx).ne with ⟨a, ab, xa, ya⟩
  exact mem_iUnion₂.2 ⟨a, ab, hx, xa, ya⟩
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
✝ : Nontrivial α
s : Set α := {x | ∃ y, x ⋖ y}
y : α → α
hy : ∀ (x : α), x ∈ s → x ⋖ y x
Hy : ∀ (x z : α), x ∈ s → z < y x → z ≤ x
H : ∀ (a : Set α), IsOpen a → Set.Countable {x | x ∈ s ∧ x ∈ a ∧ ¬y x ∈ a}
x : α
hx : x ∈ s
⊢ x ∈ ⋃ (a : Set α) (_ : a ∈ countableBasis α), {x | x ∈ s ∧ x ∈ a ∧ ¬y x ∈ a}
[PROOFSTEP]
rcases(isBasis_countableBasis α).exists_mem_of_ne (hy x hx).ne with ⟨a, ab, xa, ya⟩
[GOAL]
case intro.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
✝ : Nontrivial α
s : Set α := {x | ∃ y, x ⋖ y}
y : α → α
hy : ∀ (x : α), x ∈ s → x ⋖ y x
Hy : ∀ (x z : α), x ∈ s → z < y x → z ≤ x
H : ∀ (a : Set α), IsOpen a → Set.Countable {x | x ∈ s ∧ x ∈ a ∧ ¬y x ∈ a}
x : α
hx : x ∈ s
a : Set α
ab : a ∈ countableBasis α
xa : x ∈ a
ya : ¬y x ∈ a
⊢ x ∈ ⋃ (a : Set α) (_ : a ∈ countableBasis α), {x | x ∈ s ∧ x ∈ a ∧ ¬y x ∈ a}
[PROOFSTEP]
exact mem_iUnion₂.2 ⟨a, ab, hx, xa, ya⟩
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
✝ : Nontrivial α
s : Set α := {x | ∃ y, x ⋖ y}
y : α → α
hy : ∀ (x : α), x ∈ s → x ⋖ y x
Hy : ∀ (x z : α), x ∈ s → z < y x → z ≤ x
H : ∀ (a : Set α), IsOpen a → Set.Countable {x | x ∈ s ∧ x ∈ a ∧ ¬y x ∈ a}
this : s ⊆ ⋃ (a : Set α) (_ : a ∈ countableBasis α), {x | x ∈ s ∧ x ∈ a ∧ ¬y x ∈ a}
⊢ Set.Countable {x | ∃ y, x ⋖ y}
[PROOFSTEP]
refine Set.Countable.mono this ?_
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
✝ : Nontrivial α
s : Set α := {x | ∃ y, x ⋖ y}
y : α → α
hy : ∀ (x : α), x ∈ s → x ⋖ y x
Hy : ∀ (x z : α), x ∈ s → z < y x → z ≤ x
H : ∀ (a : Set α), IsOpen a → Set.Countable {x | x ∈ s ∧ x ∈ a ∧ ¬y x ∈ a}
this : s ⊆ ⋃ (a : Set α) (_ : a ∈ countableBasis α), {x | x ∈ s ∧ x ∈ a ∧ ¬y x ∈ a}
⊢ Set.Countable (⋃ (a : Set α) (_ : a ∈ countableBasis α), {x | x ∈ s ∧ x ∈ a ∧ ¬y x ∈ a})
[PROOFSTEP]
refine' Countable.biUnion (countable_countableBasis α) fun a ha => H _ _
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
✝ : Nontrivial α
s : Set α := {x | ∃ y, x ⋖ y}
y : α → α
hy : ∀ (x : α), x ∈ s → x ⋖ y x
Hy : ∀ (x z : α), x ∈ s → z < y x → z ≤ x
H : ∀ (a : Set α), IsOpen a → Set.Countable {x | x ∈ s ∧ x ∈ a ∧ ¬y x ∈ a}
this : s ⊆ ⋃ (a : Set α) (_ : a ∈ countableBasis α), {x | x ∈ s ∧ x ∈ a ∧ ¬y x ∈ a}
a : Set α
ha : a ∈ countableBasis α
⊢ IsOpen a
[PROOFSTEP]
exact isOpen_of_mem_countableBasis ha
[GOAL]
case H
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
✝ : Nontrivial α
s : Set α := {x | ∃ y, x ⋖ y}
y : α → α
hy : ∀ (x : α), x ∈ s → x ⋖ y x
Hy : ∀ (x z : α), x ∈ s → z < y x → z ≤ x
⊢ ∀ (a : Set α), IsOpen a → Set.Countable {x | x ∈ s ∧ x ∈ a ∧ ¬y x ∈ a}
[PROOFSTEP]
intro a ha
[GOAL]
case H
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
✝ : Nontrivial α
s : Set α := {x | ∃ y, x ⋖ y}
y : α → α
hy : ∀ (x : α), x ∈ s → x ⋖ y x
Hy : ∀ (x z : α), x ∈ s → z < y x → z ≤ x
a : Set α
ha : IsOpen a
⊢ Set.Countable {x | x ∈ s ∧ x ∈ a ∧ ¬y x ∈ a}
[PROOFSTEP]
suffices H : Set.Countable {x | (x ∈ s ∧ x ∈ a ∧ y x ∉ a) ∧ ¬IsBot x}
[GOAL]
case H
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
✝ : Nontrivial α
s : Set α := {x | ∃ y, x ⋖ y}
y : α → α
hy : ∀ (x : α), x ∈ s → x ⋖ y x
Hy : ∀ (x z : α), x ∈ s → z < y x → z ≤ x
a : Set α
ha : IsOpen a
H : Set.Countable {x | (x ∈ s ∧ x ∈ a ∧ ¬y x ∈ a) ∧ ¬IsBot x}
⊢ Set.Countable {x | x ∈ s ∧ x ∈ a ∧ ¬y x ∈ a}
[PROOFSTEP]
exact H.of_diff (subsingleton_isBot α).countable
[GOAL]
case H
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
✝ : Nontrivial α
s : Set α := {x | ∃ y, x ⋖ y}
y : α → α
hy : ∀ (x : α), x ∈ s → x ⋖ y x
Hy : ∀ (x z : α), x ∈ s → z < y x → z ≤ x
a : Set α
ha : IsOpen a
⊢ Set.Countable {x | (x ∈ s ∧ x ∈ a ∧ ¬y x ∈ a) ∧ ¬IsBot x}
[PROOFSTEP]
simp only [and_assoc]
[GOAL]
case H
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
✝ : Nontrivial α
s : Set α := {x | ∃ y, x ⋖ y}
y : α → α
hy : ∀ (x : α), x ∈ s → x ⋖ y x
Hy : ∀ (x z : α), x ∈ s → z < y x → z ≤ x
a : Set α
ha : IsOpen a
⊢ Set.Countable {x | x ∈ {x | ∃ y, x ⋖ y} ∧ x ∈ a ∧ ¬y x ∈ a ∧ ¬IsBot x}
[PROOFSTEP]
let t := {x | x ∈ s ∧ x ∈ a ∧ y x ∉ a ∧ ¬IsBot x}
[GOAL]
case H
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
✝ : Nontrivial α
s : Set α := {x | ∃ y, x ⋖ y}
y : α → α
hy : ∀ (x : α), x ∈ s → x ⋖ y x
Hy : ∀ (x z : α), x ∈ s → z < y x → z ≤ x
a : Set α
ha : IsOpen a
t : Set α := {x | x ∈ s ∧ x ∈ a ∧ ¬y x ∈ a ∧ ¬IsBot x}
⊢ Set.Countable {x | x ∈ {x | ∃ y, x ⋖ y} ∧ x ∈ a ∧ ¬y x ∈ a ∧ ¬IsBot x}
[PROOFSTEP]
have : ∀ x ∈ t, ∃ z < x, Ioc z x ⊆ a := by
  intro x hx
  apply exists_Ioc_subset_of_mem_nhds (ha.mem_nhds hx.2.1)
  simpa only [IsBot, not_forall, not_le] using hx.right.right.right
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
✝ : Nontrivial α
s : Set α := {x | ∃ y, x ⋖ y}
y : α → α
hy : ∀ (x : α), x ∈ s → x ⋖ y x
Hy : ∀ (x z : α), x ∈ s → z < y x → z ≤ x
a : Set α
ha : IsOpen a
t : Set α := {x | x ∈ s ∧ x ∈ a ∧ ¬y x ∈ a ∧ ¬IsBot x}
⊢ ∀ (x : α), x ∈ t → ∃ z, z < x ∧ Ioc z x ⊆ a
[PROOFSTEP]
intro x hx
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
✝ : Nontrivial α
s : Set α := {x | ∃ y, x ⋖ y}
y : α → α
hy : ∀ (x : α), x ∈ s → x ⋖ y x
Hy : ∀ (x z : α), x ∈ s → z < y x → z ≤ x
a : Set α
ha : IsOpen a
t : Set α := {x | x ∈ s ∧ x ∈ a ∧ ¬y x ∈ a ∧ ¬IsBot x}
x : α
hx : x ∈ t
⊢ ∃ z, z < x ∧ Ioc z x ⊆ a
[PROOFSTEP]
apply exists_Ioc_subset_of_mem_nhds (ha.mem_nhds hx.2.1)
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
✝ : Nontrivial α
s : Set α := {x | ∃ y, x ⋖ y}
y : α → α
hy : ∀ (x : α), x ∈ s → x ⋖ y x
Hy : ∀ (x z : α), x ∈ s → z < y x → z ≤ x
a : Set α
ha : IsOpen a
t : Set α := {x | x ∈ s ∧ x ∈ a ∧ ¬y x ∈ a ∧ ¬IsBot x}
x : α
hx : x ∈ t
⊢ ∃ l, l < x
[PROOFSTEP]
simpa only [IsBot, not_forall, not_le] using hx.right.right.right
[GOAL]
case H
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
✝ : Nontrivial α
s : Set α := {x | ∃ y, x ⋖ y}
y : α → α
hy : ∀ (x : α), x ∈ s → x ⋖ y x
Hy : ∀ (x z : α), x ∈ s → z < y x → z ≤ x
a : Set α
ha : IsOpen a
t : Set α := {x | x ∈ s ∧ x ∈ a ∧ ¬y x ∈ a ∧ ¬IsBot x}
this : ∀ (x : α), x ∈ t → ∃ z, z < x ∧ Ioc z x ⊆ a
⊢ Set.Countable {x | x ∈ {x | ∃ y, x ⋖ y} ∧ x ∈ a ∧ ¬y x ∈ a ∧ ¬IsBot x}
[PROOFSTEP]
choose! z hz h'z using this
[GOAL]
case H
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
✝ : Nontrivial α
s : Set α := {x | ∃ y, x ⋖ y}
y : α → α
hy : ∀ (x : α), x ∈ s → x ⋖ y x
Hy : ∀ (x z : α), x ∈ s → z < y x → z ≤ x
a : Set α
ha : IsOpen a
t : Set α := {x | x ∈ s ∧ x ∈ a ∧ ¬y x ∈ a ∧ ¬IsBot x}
z : α → α
hz : ∀ (x : α), x ∈ t → z x < x
h'z : ∀ (x : α), x ∈ t → Ioc (z x) x ⊆ a
⊢ Set.Countable {x | x ∈ {x | ∃ y, x ⋖ y} ∧ x ∈ a ∧ ¬y x ∈ a ∧ ¬IsBot x}
[PROOFSTEP]
have : PairwiseDisjoint t fun x => Ioc (z x) x := fun x xt x' x't hxx' =>
  by
  rcases hxx'.lt_or_lt with (h' | h')
  · refine' disjoint_left.2 fun u ux ux' => xt.2.2.1 _
    refine' h'z x' x't ⟨ux'.1.trans_le (ux.2.trans (hy x xt.1).le), _⟩
    by_contra' H
    exact lt_irrefl _ ((Hy _ _ xt.1 H).trans_lt h')
  · refine' disjoint_left.2 fun u ux ux' => x't.2.2.1 _
    refine' h'z x xt ⟨ux.1.trans_le (ux'.2.trans (hy x' x't.1).le), _⟩
    by_contra' H
    exact lt_irrefl _ ((Hy _ _ x't.1 H).trans_lt h')
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
✝ : Nontrivial α
s : Set α := {x | ∃ y, x ⋖ y}
y : α → α
hy : ∀ (x : α), x ∈ s → x ⋖ y x
Hy : ∀ (x z : α), x ∈ s → z < y x → z ≤ x
a : Set α
ha : IsOpen a
t : Set α := {x | x ∈ s ∧ x ∈ a ∧ ¬y x ∈ a ∧ ¬IsBot x}
z : α → α
hz : ∀ (x : α), x ∈ t → z x < x
h'z : ∀ (x : α), x ∈ t → Ioc (z x) x ⊆ a
x : α
xt : x ∈ t
x' : α
x't : x' ∈ t
hxx' : x ≠ x'
⊢ (Disjoint on fun x => Ioc (z x) x) x x'
[PROOFSTEP]
rcases hxx'.lt_or_lt with (h' | h')
[GOAL]
case inl
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
✝ : Nontrivial α
s : Set α := {x | ∃ y, x ⋖ y}
y : α → α
hy : ∀ (x : α), x ∈ s → x ⋖ y x
Hy : ∀ (x z : α), x ∈ s → z < y x → z ≤ x
a : Set α
ha : IsOpen a
t : Set α := {x | x ∈ s ∧ x ∈ a ∧ ¬y x ∈ a ∧ ¬IsBot x}
z : α → α
hz : ∀ (x : α), x ∈ t → z x < x
h'z : ∀ (x : α), x ∈ t → Ioc (z x) x ⊆ a
x : α
xt : x ∈ t
x' : α
x't : x' ∈ t
hxx' : x ≠ x'
h' : x < x'
⊢ (Disjoint on fun x => Ioc (z x) x) x x'
[PROOFSTEP]
refine' disjoint_left.2 fun u ux ux' => xt.2.2.1 _
[GOAL]
case inl
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
✝ : Nontrivial α
s : Set α := {x | ∃ y, x ⋖ y}
y : α → α
hy : ∀ (x : α), x ∈ s → x ⋖ y x
Hy : ∀ (x z : α), x ∈ s → z < y x → z ≤ x
a : Set α
ha : IsOpen a
t : Set α := {x | x ∈ s ∧ x ∈ a ∧ ¬y x ∈ a ∧ ¬IsBot x}
z : α → α
hz : ∀ (x : α), x ∈ t → z x < x
h'z : ∀ (x : α), x ∈ t → Ioc (z x) x ⊆ a
x : α
xt : x ∈ t
x' : α
x't : x' ∈ t
hxx' : x ≠ x'
h' : x < x'
u : α
ux : u ∈ (fun x => Ioc (z x) x) x
ux' : u ∈ (fun x => Ioc (z x) x) x'
⊢ y x ∈ a
[PROOFSTEP]
refine' h'z x' x't ⟨ux'.1.trans_le (ux.2.trans (hy x xt.1).le), _⟩
[GOAL]
case inl
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
✝ : Nontrivial α
s : Set α := {x | ∃ y, x ⋖ y}
y : α → α
hy : ∀ (x : α), x ∈ s → x ⋖ y x
Hy : ∀ (x z : α), x ∈ s → z < y x → z ≤ x
a : Set α
ha : IsOpen a
t : Set α := {x | x ∈ s ∧ x ∈ a ∧ ¬y x ∈ a ∧ ¬IsBot x}
z : α → α
hz : ∀ (x : α), x ∈ t → z x < x
h'z : ∀ (x : α), x ∈ t → Ioc (z x) x ⊆ a
x : α
xt : x ∈ t
x' : α
x't : x' ∈ t
hxx' : x ≠ x'
h' : x < x'
u : α
ux : u ∈ (fun x => Ioc (z x) x) x
ux' : u ∈ (fun x => Ioc (z x) x) x'
⊢ y x ≤ x'
[PROOFSTEP]
by_contra' H
[GOAL]
case inl
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
✝ : Nontrivial α
s : Set α := {x | ∃ y, x ⋖ y}
y : α → α
hy : ∀ (x : α), x ∈ s → x ⋖ y x
Hy : ∀ (x z : α), x ∈ s → z < y x → z ≤ x
a : Set α
ha : IsOpen a
t : Set α := {x | x ∈ s ∧ x ∈ a ∧ ¬y x ∈ a ∧ ¬IsBot x}
z : α → α
hz : ∀ (x : α), x ∈ t → z x < x
h'z : ∀ (x : α), x ∈ t → Ioc (z x) x ⊆ a
x : α
xt : x ∈ t
x' : α
x't : x' ∈ t
hxx' : x ≠ x'
h' : x < x'
u : α
ux : u ∈ (fun x => Ioc (z x) x) x
ux' : u ∈ (fun x => Ioc (z x) x) x'
H : x' < y x
⊢ False
[PROOFSTEP]
exact lt_irrefl _ ((Hy _ _ xt.1 H).trans_lt h')
[GOAL]
case inr
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
✝ : Nontrivial α
s : Set α := {x | ∃ y, x ⋖ y}
y : α → α
hy : ∀ (x : α), x ∈ s → x ⋖ y x
Hy : ∀ (x z : α), x ∈ s → z < y x → z ≤ x
a : Set α
ha : IsOpen a
t : Set α := {x | x ∈ s ∧ x ∈ a ∧ ¬y x ∈ a ∧ ¬IsBot x}
z : α → α
hz : ∀ (x : α), x ∈ t → z x < x
h'z : ∀ (x : α), x ∈ t → Ioc (z x) x ⊆ a
x : α
xt : x ∈ t
x' : α
x't : x' ∈ t
hxx' : x ≠ x'
h' : x' < x
⊢ (Disjoint on fun x => Ioc (z x) x) x x'
[PROOFSTEP]
refine' disjoint_left.2 fun u ux ux' => x't.2.2.1 _
[GOAL]
case inr
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
✝ : Nontrivial α
s : Set α := {x | ∃ y, x ⋖ y}
y : α → α
hy : ∀ (x : α), x ∈ s → x ⋖ y x
Hy : ∀ (x z : α), x ∈ s → z < y x → z ≤ x
a : Set α
ha : IsOpen a
t : Set α := {x | x ∈ s ∧ x ∈ a ∧ ¬y x ∈ a ∧ ¬IsBot x}
z : α → α
hz : ∀ (x : α), x ∈ t → z x < x
h'z : ∀ (x : α), x ∈ t → Ioc (z x) x ⊆ a
x : α
xt : x ∈ t
x' : α
x't : x' ∈ t
hxx' : x ≠ x'
h' : x' < x
u : α
ux : u ∈ (fun x => Ioc (z x) x) x
ux' : u ∈ (fun x => Ioc (z x) x) x'
⊢ y x' ∈ a
[PROOFSTEP]
refine' h'z x xt ⟨ux.1.trans_le (ux'.2.trans (hy x' x't.1).le), _⟩
[GOAL]
case inr
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
✝ : Nontrivial α
s : Set α := {x | ∃ y, x ⋖ y}
y : α → α
hy : ∀ (x : α), x ∈ s → x ⋖ y x
Hy : ∀ (x z : α), x ∈ s → z < y x → z ≤ x
a : Set α
ha : IsOpen a
t : Set α := {x | x ∈ s ∧ x ∈ a ∧ ¬y x ∈ a ∧ ¬IsBot x}
z : α → α
hz : ∀ (x : α), x ∈ t → z x < x
h'z : ∀ (x : α), x ∈ t → Ioc (z x) x ⊆ a
x : α
xt : x ∈ t
x' : α
x't : x' ∈ t
hxx' : x ≠ x'
h' : x' < x
u : α
ux : u ∈ (fun x => Ioc (z x) x) x
ux' : u ∈ (fun x => Ioc (z x) x) x'
⊢ y x' ≤ x
[PROOFSTEP]
by_contra' H
[GOAL]
case inr
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
✝ : Nontrivial α
s : Set α := {x | ∃ y, x ⋖ y}
y : α → α
hy : ∀ (x : α), x ∈ s → x ⋖ y x
Hy : ∀ (x z : α), x ∈ s → z < y x → z ≤ x
a : Set α
ha : IsOpen a
t : Set α := {x | x ∈ s ∧ x ∈ a ∧ ¬y x ∈ a ∧ ¬IsBot x}
z : α → α
hz : ∀ (x : α), x ∈ t → z x < x
h'z : ∀ (x : α), x ∈ t → Ioc (z x) x ⊆ a
x : α
xt : x ∈ t
x' : α
x't : x' ∈ t
hxx' : x ≠ x'
h' : x' < x
u : α
ux : u ∈ (fun x => Ioc (z x) x) x
ux' : u ∈ (fun x => Ioc (z x) x) x'
H : x < y x'
⊢ False
[PROOFSTEP]
exact lt_irrefl _ ((Hy _ _ x't.1 H).trans_lt h')
[GOAL]
case H
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
✝ : Nontrivial α
s : Set α := {x | ∃ y, x ⋖ y}
y : α → α
hy : ∀ (x : α), x ∈ s → x ⋖ y x
Hy : ∀ (x z : α), x ∈ s → z < y x → z ≤ x
a : Set α
ha : IsOpen a
t : Set α := {x | x ∈ s ∧ x ∈ a ∧ ¬y x ∈ a ∧ ¬IsBot x}
z : α → α
hz : ∀ (x : α), x ∈ t → z x < x
h'z : ∀ (x : α), x ∈ t → Ioc (z x) x ⊆ a
this : PairwiseDisjoint t fun x => Ioc (z x) x
⊢ Set.Countable {x | x ∈ {x | ∃ y, x ⋖ y} ∧ x ∈ a ∧ ¬y x ∈ a ∧ ¬IsBot x}
[PROOFSTEP]
refine' this.countable_of_isOpen (fun x hx => _) fun x hx => ⟨x, hz x hx, le_rfl⟩
[GOAL]
case H
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
✝ : Nontrivial α
s : Set α := {x | ∃ y, x ⋖ y}
y : α → α
hy : ∀ (x : α), x ∈ s → x ⋖ y x
Hy : ∀ (x z : α), x ∈ s → z < y x → z ≤ x
a : Set α
ha : IsOpen a
t : Set α := {x | x ∈ s ∧ x ∈ a ∧ ¬y x ∈ a ∧ ¬IsBot x}
z : α → α
hz : ∀ (x : α), x ∈ t → z x < x
h'z : ∀ (x : α), x ∈ t → Ioc (z x) x ⊆ a
this : PairwiseDisjoint t fun x => Ioc (z x) x
x : α
hx : x ∈ t
⊢ IsOpen (Ioc (z x) x)
[PROOFSTEP]
suffices H : Ioc (z x) x = Ioo (z x) (y x)
[GOAL]
case H
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
✝ : Nontrivial α
s : Set α := {x | ∃ y, x ⋖ y}
y : α → α
hy : ∀ (x : α), x ∈ s → x ⋖ y x
Hy : ∀ (x z : α), x ∈ s → z < y x → z ≤ x
a : Set α
ha : IsOpen a
t : Set α := {x | x ∈ s ∧ x ∈ a ∧ ¬y x ∈ a ∧ ¬IsBot x}
z : α → α
hz : ∀ (x : α), x ∈ t → z x < x
h'z : ∀ (x : α), x ∈ t → Ioc (z x) x ⊆ a
this : PairwiseDisjoint t fun x => Ioc (z x) x
x : α
hx : x ∈ t
H : Ioc (z x) x = Ioo (z x) (y x)
⊢ IsOpen (Ioc (z x) x)
[PROOFSTEP]
rw [H]
[GOAL]
case H
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
✝ : Nontrivial α
s : Set α := {x | ∃ y, x ⋖ y}
y : α → α
hy : ∀ (x : α), x ∈ s → x ⋖ y x
Hy : ∀ (x z : α), x ∈ s → z < y x → z ≤ x
a : Set α
ha : IsOpen a
t : Set α := {x | x ∈ s ∧ x ∈ a ∧ ¬y x ∈ a ∧ ¬IsBot x}
z : α → α
hz : ∀ (x : α), x ∈ t → z x < x
h'z : ∀ (x : α), x ∈ t → Ioc (z x) x ⊆ a
this : PairwiseDisjoint t fun x => Ioc (z x) x
x : α
hx : x ∈ t
H : Ioc (z x) x = Ioo (z x) (y x)
⊢ IsOpen (Ioo (z x) (y x))
[PROOFSTEP]
exact isOpen_Ioo
[GOAL]
case H
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
✝ : Nontrivial α
s : Set α := {x | ∃ y, x ⋖ y}
y : α → α
hy : ∀ (x : α), x ∈ s → x ⋖ y x
Hy : ∀ (x z : α), x ∈ s → z < y x → z ≤ x
a : Set α
ha : IsOpen a
t : Set α := {x | x ∈ s ∧ x ∈ a ∧ ¬y x ∈ a ∧ ¬IsBot x}
z : α → α
hz : ∀ (x : α), x ∈ t → z x < x
h'z : ∀ (x : α), x ∈ t → Ioc (z x) x ⊆ a
this : PairwiseDisjoint t fun x => Ioc (z x) x
x : α
hx : x ∈ t
⊢ Ioc (z x) x = Ioo (z x) (y x)
[PROOFSTEP]
exact Subset.antisymm (Ioc_subset_Ioo_right (hy x hx.1).lt) fun u hu => ⟨hu.1, Hy _ _ hx.1 hu.2⟩
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
⊢ Set.Countable {x | ∃ y, x < y ∧ Ioo x y = ∅}
[PROOFSTEP]
simpa only [← covby_iff_Ioo_eq] using countable_setOf_covby_right
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
⊢ Set.Countable {x | ∃ y, y ⋖ x}
[PROOFSTEP]
convert countable_setOf_covby_right (α := αᵒᵈ) using 5
[GOAL]
case h.e'_2.h.h.e'_2.h.h.h.e'_2.h.h.a
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
e_1✝ : α = αᵒᵈ
x✝¹ x✝ : α
⊢ x✝ ⋖ x✝¹ ↔ x✝¹ ⋖ x✝
[PROOFSTEP]
exact toDual_covby_toDual_iff.symm
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
⊢ Set.Countable {x | ∃ y, y < x ∧ Ioo y x = ∅}
[PROOFSTEP]
simpa only [← covby_iff_Ioo_eq] using countable_setOf_covby_left
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁷ : TopologicalSpace α
inst✝⁶ : LinearOrder α
inst✝⁵ : OrderTopology α
ι : Type u_1
π : ι → Type u_2
inst✝⁴ : Finite ι
inst✝³ : (i : ι) → LinearOrder (π i)
inst✝² : (i : ι) → TopologicalSpace (π i)
inst✝¹ : ∀ (i : ι), OrderTopology (π i)
a b x : (i : ι) → π i
a' b' x' : ι → α
inst✝ : Nonempty ι
ha : ∀ (i : ι), x i < a i
⊢ Iio a ∈ 𝓝 x
[PROOFSTEP]
refine' mem_of_superset (set_pi_mem_nhds Set.finite_univ fun i _ => _) (pi_univ_Iio_subset a)
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁷ : TopologicalSpace α
inst✝⁶ : LinearOrder α
inst✝⁵ : OrderTopology α
ι : Type u_1
π : ι → Type u_2
inst✝⁴ : Finite ι
inst✝³ : (i : ι) → LinearOrder (π i)
inst✝² : (i : ι) → TopologicalSpace (π i)
inst✝¹ : ∀ (i : ι), OrderTopology (π i)
a b x : (i : ι) → π i
a' b' x' : ι → α
inst✝ : Nonempty ι
ha : ∀ (i : ι), x i < a i
i : ι
x✝ : i ∈ univ
⊢ Iio (a i) ∈ 𝓝 (x i)
[PROOFSTEP]
exact Iio_mem_nhds (ha i)
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁷ : TopologicalSpace α
inst✝⁶ : LinearOrder α
inst✝⁵ : OrderTopology α
ι : Type u_1
π : ι → Type u_2
inst✝⁴ : Finite ι
inst✝³ : (i : ι) → LinearOrder (π i)
inst✝² : (i : ι) → TopologicalSpace (π i)
inst✝¹ : ∀ (i : ι), OrderTopology (π i)
a b x : (i : ι) → π i
a' b' x' : ι → α
inst✝ : Nonempty ι
ha : ∀ (i : ι), a i < x i
hb : ∀ (i : ι), x i < b i
⊢ Ioc a b ∈ 𝓝 x
[PROOFSTEP]
refine' mem_of_superset (set_pi_mem_nhds Set.finite_univ fun i _ => _) (pi_univ_Ioc_subset a b)
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁷ : TopologicalSpace α
inst✝⁶ : LinearOrder α
inst✝⁵ : OrderTopology α
ι : Type u_1
π : ι → Type u_2
inst✝⁴ : Finite ι
inst✝³ : (i : ι) → LinearOrder (π i)
inst✝² : (i : ι) → TopologicalSpace (π i)
inst✝¹ : ∀ (i : ι), OrderTopology (π i)
a b x : (i : ι) → π i
a' b' x' : ι → α
inst✝ : Nonempty ι
ha : ∀ (i : ι), a i < x i
hb : ∀ (i : ι), x i < b i
i : ι
x✝ : i ∈ univ
⊢ Ioc (a i) (b i) ∈ 𝓝 (x i)
[PROOFSTEP]
exact Ioc_mem_nhds (ha i) (hb i)
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁷ : TopologicalSpace α
inst✝⁶ : LinearOrder α
inst✝⁵ : OrderTopology α
ι : Type u_1
π : ι → Type u_2
inst✝⁴ : Finite ι
inst✝³ : (i : ι) → LinearOrder (π i)
inst✝² : (i : ι) → TopologicalSpace (π i)
inst✝¹ : ∀ (i : ι), OrderTopology (π i)
a b x : (i : ι) → π i
a' b' x' : ι → α
inst✝ : Nonempty ι
ha : ∀ (i : ι), a i < x i
hb : ∀ (i : ι), x i < b i
⊢ Ico a b ∈ 𝓝 x
[PROOFSTEP]
refine' mem_of_superset (set_pi_mem_nhds Set.finite_univ fun i _ => _) (pi_univ_Ico_subset a b)
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁷ : TopologicalSpace α
inst✝⁶ : LinearOrder α
inst✝⁵ : OrderTopology α
ι : Type u_1
π : ι → Type u_2
inst✝⁴ : Finite ι
inst✝³ : (i : ι) → LinearOrder (π i)
inst✝² : (i : ι) → TopologicalSpace (π i)
inst✝¹ : ∀ (i : ι), OrderTopology (π i)
a b x : (i : ι) → π i
a' b' x' : ι → α
inst✝ : Nonempty ι
ha : ∀ (i : ι), a i < x i
hb : ∀ (i : ι), x i < b i
i : ι
x✝ : i ∈ univ
⊢ Ico (a i) (b i) ∈ 𝓝 (x i)
[PROOFSTEP]
exact Ico_mem_nhds (ha i) (hb i)
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁷ : TopologicalSpace α
inst✝⁶ : LinearOrder α
inst✝⁵ : OrderTopology α
ι : Type u_1
π : ι → Type u_2
inst✝⁴ : Finite ι
inst✝³ : (i : ι) → LinearOrder (π i)
inst✝² : (i : ι) → TopologicalSpace (π i)
inst✝¹ : ∀ (i : ι), OrderTopology (π i)
a b x : (i : ι) → π i
a' b' x' : ι → α
inst✝ : Nonempty ι
ha : ∀ (i : ι), a i < x i
hb : ∀ (i : ι), x i < b i
⊢ Ioo a b ∈ 𝓝 x
[PROOFSTEP]
refine' mem_of_superset (set_pi_mem_nhds Set.finite_univ fun i _ => _) (pi_univ_Ioo_subset a b)
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁷ : TopologicalSpace α
inst✝⁶ : LinearOrder α
inst✝⁵ : OrderTopology α
ι : Type u_1
π : ι → Type u_2
inst✝⁴ : Finite ι
inst✝³ : (i : ι) → LinearOrder (π i)
inst✝² : (i : ι) → TopologicalSpace (π i)
inst✝¹ : ∀ (i : ι), OrderTopology (π i)
a b x : (i : ι) → π i
a' b' x' : ι → α
inst✝ : Nonempty ι
ha : ∀ (i : ι), a i < x i
hb : ∀ (i : ι), x i < b i
i : ι
x✝ : i ∈ univ
⊢ Ioo (a i) (b i) ∈ 𝓝 (x i)
[PROOFSTEP]
exact Ioo_mem_nhds (ha i) (hb i)
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : NoMaxOrder α
x : α
⊢ Disjoint (𝓝 x) atTop
[PROOFSTEP]
rcases exists_gt x with ⟨y, hy : x < y⟩
[GOAL]
case intro
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : NoMaxOrder α
x y : α
hy : x < y
⊢ Disjoint (𝓝 x) atTop
[PROOFSTEP]
refine' disjoint_of_disjoint_of_mem _ (Iio_mem_nhds hy) (mem_atTop y)
[GOAL]
case intro
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : NoMaxOrder α
x y : α
hy : x < y
⊢ Disjoint (Iio y) {b | y ≤ b}
[PROOFSTEP]
exact disjoint_left.mpr fun z => not_le.2
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a b : α
hab : a < b
s : Set α
⊢ TFAE
    [s ∈ 𝓝[Ioi a] a, s ∈ 𝓝[Ioc a b] a, s ∈ 𝓝[Ioo a b] a, ∃ u, u ∈ Ioc a b ∧ Ioo a u ⊆ s, ∃ u, u ∈ Ioi a ∧ Ioo a u ⊆ s]
[PROOFSTEP]
tfae_have 1 ↔ 2
[GOAL]
case tfae_1_iff_2
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a b : α
hab : a < b
s : Set α
⊢ s ∈ 𝓝[Ioi a] a ↔ s ∈ 𝓝[Ioc a b] a
[PROOFSTEP]
rw [nhdsWithin_Ioc_eq_nhdsWithin_Ioi hab]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a b : α
hab : a < b
s : Set α
tfae_1_iff_2 : s ∈ 𝓝[Ioi a] a ↔ s ∈ 𝓝[Ioc a b] a
⊢ TFAE
    [s ∈ 𝓝[Ioi a] a, s ∈ 𝓝[Ioc a b] a, s ∈ 𝓝[Ioo a b] a, ∃ u, u ∈ Ioc a b ∧ Ioo a u ⊆ s, ∃ u, u ∈ Ioi a ∧ Ioo a u ⊆ s]
[PROOFSTEP]
tfae_have 1 ↔ 3
[GOAL]
case tfae_1_iff_3
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a b : α
hab : a < b
s : Set α
tfae_1_iff_2 : s ∈ 𝓝[Ioi a] a ↔ s ∈ 𝓝[Ioc a b] a
⊢ s ∈ 𝓝[Ioi a] a ↔ s ∈ 𝓝[Ioo a b] a
[PROOFSTEP]
rw [nhdsWithin_Ioo_eq_nhdsWithin_Ioi hab]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a b : α
hab : a < b
s : Set α
tfae_1_iff_2 : s ∈ 𝓝[Ioi a] a ↔ s ∈ 𝓝[Ioc a b] a
tfae_1_iff_3 : s ∈ 𝓝[Ioi a] a ↔ s ∈ 𝓝[Ioo a b] a
⊢ TFAE
    [s ∈ 𝓝[Ioi a] a, s ∈ 𝓝[Ioc a b] a, s ∈ 𝓝[Ioo a b] a, ∃ u, u ∈ Ioc a b ∧ Ioo a u ⊆ s, ∃ u, u ∈ Ioi a ∧ Ioo a u ⊆ s]
[PROOFSTEP]
tfae_have 4 → 5
[GOAL]
case tfae_4_to_5
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a b : α
hab : a < b
s : Set α
tfae_1_iff_2 : s ∈ 𝓝[Ioi a] a ↔ s ∈ 𝓝[Ioc a b] a
tfae_1_iff_3 : s ∈ 𝓝[Ioi a] a ↔ s ∈ 𝓝[Ioo a b] a
⊢ (∃ u, u ∈ Ioc a b ∧ Ioo a u ⊆ s) → ∃ u, u ∈ Ioi a ∧ Ioo a u ⊆ s
[PROOFSTEP]
exact fun ⟨u, umem, hu⟩ => ⟨u, umem.1, hu⟩
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a b : α
hab : a < b
s : Set α
tfae_1_iff_2 : s ∈ 𝓝[Ioi a] a ↔ s ∈ 𝓝[Ioc a b] a
tfae_1_iff_3 : s ∈ 𝓝[Ioi a] a ↔ s ∈ 𝓝[Ioo a b] a
tfae_4_to_5 : (∃ u, u ∈ Ioc a b ∧ Ioo a u ⊆ s) → ∃ u, u ∈ Ioi a ∧ Ioo a u ⊆ s
⊢ TFAE
    [s ∈ 𝓝[Ioi a] a, s ∈ 𝓝[Ioc a b] a, s ∈ 𝓝[Ioo a b] a, ∃ u, u ∈ Ioc a b ∧ Ioo a u ⊆ s, ∃ u, u ∈ Ioi a ∧ Ioo a u ⊆ s]
[PROOFSTEP]
tfae_have 5 → 1
[GOAL]
case tfae_5_to_1
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a b : α
hab : a < b
s : Set α
tfae_1_iff_2 : s ∈ 𝓝[Ioi a] a ↔ s ∈ 𝓝[Ioc a b] a
tfae_1_iff_3 : s ∈ 𝓝[Ioi a] a ↔ s ∈ 𝓝[Ioo a b] a
tfae_4_to_5 : (∃ u, u ∈ Ioc a b ∧ Ioo a u ⊆ s) → ∃ u, u ∈ Ioi a ∧ Ioo a u ⊆ s
⊢ (∃ u, u ∈ Ioi a ∧ Ioo a u ⊆ s) → s ∈ 𝓝[Ioi a] a
[PROOFSTEP]
rintro ⟨u, hau, hu⟩
[GOAL]
case tfae_5_to_1.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a b : α
hab : a < b
s : Set α
tfae_1_iff_2 : s ∈ 𝓝[Ioi a] a ↔ s ∈ 𝓝[Ioc a b] a
tfae_1_iff_3 : s ∈ 𝓝[Ioi a] a ↔ s ∈ 𝓝[Ioo a b] a
tfae_4_to_5 : (∃ u, u ∈ Ioc a b ∧ Ioo a u ⊆ s) → ∃ u, u ∈ Ioi a ∧ Ioo a u ⊆ s
u : α
hau : u ∈ Ioi a
hu : Ioo a u ⊆ s
⊢ s ∈ 𝓝[Ioi a] a
[PROOFSTEP]
exact mem_of_superset (Ioo_mem_nhdsWithin_Ioi ⟨le_refl a, hau⟩) hu
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a b : α
hab : a < b
s : Set α
tfae_1_iff_2 : s ∈ 𝓝[Ioi a] a ↔ s ∈ 𝓝[Ioc a b] a
tfae_1_iff_3 : s ∈ 𝓝[Ioi a] a ↔ s ∈ 𝓝[Ioo a b] a
tfae_4_to_5 : (∃ u, u ∈ Ioc a b ∧ Ioo a u ⊆ s) → ∃ u, u ∈ Ioi a ∧ Ioo a u ⊆ s
tfae_5_to_1 : (∃ u, u ∈ Ioi a ∧ Ioo a u ⊆ s) → s ∈ 𝓝[Ioi a] a
⊢ TFAE
    [s ∈ 𝓝[Ioi a] a, s ∈ 𝓝[Ioc a b] a, s ∈ 𝓝[Ioo a b] a, ∃ u, u ∈ Ioc a b ∧ Ioo a u ⊆ s, ∃ u, u ∈ Ioi a ∧ Ioo a u ⊆ s]
[PROOFSTEP]
tfae_have 1 → 4
[GOAL]
case tfae_1_to_4
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a b : α
hab : a < b
s : Set α
tfae_1_iff_2 : s ∈ 𝓝[Ioi a] a ↔ s ∈ 𝓝[Ioc a b] a
tfae_1_iff_3 : s ∈ 𝓝[Ioi a] a ↔ s ∈ 𝓝[Ioo a b] a
tfae_4_to_5 : (∃ u, u ∈ Ioc a b ∧ Ioo a u ⊆ s) → ∃ u, u ∈ Ioi a ∧ Ioo a u ⊆ s
tfae_5_to_1 : (∃ u, u ∈ Ioi a ∧ Ioo a u ⊆ s) → s ∈ 𝓝[Ioi a] a
⊢ s ∈ 𝓝[Ioi a] a → ∃ u, u ∈ Ioc a b ∧ Ioo a u ⊆ s
[PROOFSTEP]
intro h
[GOAL]
case tfae_1_to_4
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a b : α
hab : a < b
s : Set α
tfae_1_iff_2 : s ∈ 𝓝[Ioi a] a ↔ s ∈ 𝓝[Ioc a b] a
tfae_1_iff_3 : s ∈ 𝓝[Ioi a] a ↔ s ∈ 𝓝[Ioo a b] a
tfae_4_to_5 : (∃ u, u ∈ Ioc a b ∧ Ioo a u ⊆ s) → ∃ u, u ∈ Ioi a ∧ Ioo a u ⊆ s
tfae_5_to_1 : (∃ u, u ∈ Ioi a ∧ Ioo a u ⊆ s) → s ∈ 𝓝[Ioi a] a
h : s ∈ 𝓝[Ioi a] a
⊢ ∃ u, u ∈ Ioc a b ∧ Ioo a u ⊆ s
[PROOFSTEP]
rcases mem_nhdsWithin_iff_exists_mem_nhds_inter.1 h with ⟨v, va, hv⟩
[GOAL]
case tfae_1_to_4.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a b : α
hab : a < b
s : Set α
tfae_1_iff_2 : s ∈ 𝓝[Ioi a] a ↔ s ∈ 𝓝[Ioc a b] a
tfae_1_iff_3 : s ∈ 𝓝[Ioi a] a ↔ s ∈ 𝓝[Ioo a b] a
tfae_4_to_5 : (∃ u, u ∈ Ioc a b ∧ Ioo a u ⊆ s) → ∃ u, u ∈ Ioi a ∧ Ioo a u ⊆ s
tfae_5_to_1 : (∃ u, u ∈ Ioi a ∧ Ioo a u ⊆ s) → s ∈ 𝓝[Ioi a] a
h : s ∈ 𝓝[Ioi a] a
v : Set α
va : v ∈ 𝓝 a
hv : v ∩ Ioi a ⊆ s
⊢ ∃ u, u ∈ Ioc a b ∧ Ioo a u ⊆ s
[PROOFSTEP]
rcases exists_Ico_subset_of_mem_nhds' va hab with ⟨u, au, hu⟩
[GOAL]
case tfae_1_to_4.intro.intro.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a b : α
hab : a < b
s : Set α
tfae_1_iff_2 : s ∈ 𝓝[Ioi a] a ↔ s ∈ 𝓝[Ioc a b] a
tfae_1_iff_3 : s ∈ 𝓝[Ioi a] a ↔ s ∈ 𝓝[Ioo a b] a
tfae_4_to_5 : (∃ u, u ∈ Ioc a b ∧ Ioo a u ⊆ s) → ∃ u, u ∈ Ioi a ∧ Ioo a u ⊆ s
tfae_5_to_1 : (∃ u, u ∈ Ioi a ∧ Ioo a u ⊆ s) → s ∈ 𝓝[Ioi a] a
h : s ∈ 𝓝[Ioi a] a
v : Set α
va : v ∈ 𝓝 a
hv : v ∩ Ioi a ⊆ s
u : α
au : u ∈ Ioc a b
hu : Ico a u ⊆ v
⊢ ∃ u, u ∈ Ioc a b ∧ Ioo a u ⊆ s
[PROOFSTEP]
refine' ⟨u, au, fun x hx => _⟩
[GOAL]
case tfae_1_to_4.intro.intro.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a b : α
hab : a < b
s : Set α
tfae_1_iff_2 : s ∈ 𝓝[Ioi a] a ↔ s ∈ 𝓝[Ioc a b] a
tfae_1_iff_3 : s ∈ 𝓝[Ioi a] a ↔ s ∈ 𝓝[Ioo a b] a
tfae_4_to_5 : (∃ u, u ∈ Ioc a b ∧ Ioo a u ⊆ s) → ∃ u, u ∈ Ioi a ∧ Ioo a u ⊆ s
tfae_5_to_1 : (∃ u, u ∈ Ioi a ∧ Ioo a u ⊆ s) → s ∈ 𝓝[Ioi a] a
h : s ∈ 𝓝[Ioi a] a
v : Set α
va : v ∈ 𝓝 a
hv : v ∩ Ioi a ⊆ s
u : α
au : u ∈ Ioc a b
hu : Ico a u ⊆ v
x : α
hx : x ∈ Ioo a u
⊢ x ∈ s
[PROOFSTEP]
refine' hv ⟨hu ⟨le_of_lt hx.1, hx.2⟩, _⟩
[GOAL]
case tfae_1_to_4.intro.intro.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a b : α
hab : a < b
s : Set α
tfae_1_iff_2 : s ∈ 𝓝[Ioi a] a ↔ s ∈ 𝓝[Ioc a b] a
tfae_1_iff_3 : s ∈ 𝓝[Ioi a] a ↔ s ∈ 𝓝[Ioo a b] a
tfae_4_to_5 : (∃ u, u ∈ Ioc a b ∧ Ioo a u ⊆ s) → ∃ u, u ∈ Ioi a ∧ Ioo a u ⊆ s
tfae_5_to_1 : (∃ u, u ∈ Ioi a ∧ Ioo a u ⊆ s) → s ∈ 𝓝[Ioi a] a
h : s ∈ 𝓝[Ioi a] a
v : Set α
va : v ∈ 𝓝 a
hv : v ∩ Ioi a ⊆ s
u : α
au : u ∈ Ioc a b
hu : Ico a u ⊆ v
x : α
hx : x ∈ Ioo a u
⊢ x ∈ Ioi a
[PROOFSTEP]
exact hx.1
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a b : α
hab : a < b
s : Set α
tfae_1_iff_2 : s ∈ 𝓝[Ioi a] a ↔ s ∈ 𝓝[Ioc a b] a
tfae_1_iff_3 : s ∈ 𝓝[Ioi a] a ↔ s ∈ 𝓝[Ioo a b] a
tfae_4_to_5 : (∃ u, u ∈ Ioc a b ∧ Ioo a u ⊆ s) → ∃ u, u ∈ Ioi a ∧ Ioo a u ⊆ s
tfae_5_to_1 : (∃ u, u ∈ Ioi a ∧ Ioo a u ⊆ s) → s ∈ 𝓝[Ioi a] a
tfae_1_to_4 : s ∈ 𝓝[Ioi a] a → ∃ u, u ∈ Ioc a b ∧ Ioo a u ⊆ s
⊢ TFAE
    [s ∈ 𝓝[Ioi a] a, s ∈ 𝓝[Ioc a b] a, s ∈ 𝓝[Ioo a b] a, ∃ u, u ∈ Ioc a b ∧ Ioo a u ⊆ s, ∃ u, u ∈ Ioi a ∧ Ioo a u ⊆ s]
[PROOFSTEP]
tfae_finish
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a : α
⊢ 𝓝[Ioi a] a = ⊥ ↔ IsTop a ∨ ∃ b, a ⋖ b
[PROOFSTEP]
by_cases ha : IsTop a
[GOAL]
case pos
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a : α
ha : IsTop a
⊢ 𝓝[Ioi a] a = ⊥ ↔ IsTop a ∨ ∃ b, a ⋖ b
[PROOFSTEP]
simp [ha, ha.isMax.Ioi_eq]
[GOAL]
case neg
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a : α
ha : ¬IsTop a
⊢ 𝓝[Ioi a] a = ⊥ ↔ IsTop a ∨ ∃ b, a ⋖ b
[PROOFSTEP]
simp only [ha, false_or]
[GOAL]
case neg
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a : α
ha : ¬IsTop a
⊢ 𝓝[Ioi a] a = ⊥ ↔ ∃ b, a ⋖ b
[PROOFSTEP]
rw [isTop_iff_isMax, not_isMax_iff] at ha
[GOAL]
case neg
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a : α
ha : ∃ b, a < b
⊢ 𝓝[Ioi a] a = ⊥ ↔ ∃ b, a ⋖ b
[PROOFSTEP]
simp only [(nhdsWithin_Ioi_basis' ha).eq_bot_iff, covby_iff_Ioo_eq]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
⊢ Set.Countable {x | 𝓝[Ioi x] x = ⊥}
[PROOFSTEP]
simp only [nhdsWithin_Ioi_eq_bot_iff, setOf_or]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
⊢ Set.Countable ({a | IsTop a} ∪ {a | ∃ b, a ⋖ b})
[PROOFSTEP]
exact (subsingleton_isTop α).countable.union countable_setOf_covby_right
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : NoMaxOrder α
inst✝ : DenselyOrdered α
a : α
s : Set α
⊢ s ∈ 𝓝[Ioi a] a ↔ ∃ u, u ∈ Ioi a ∧ Ioc a u ⊆ s
[PROOFSTEP]
rw [mem_nhdsWithin_Ioi_iff_exists_Ioo_subset]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : NoMaxOrder α
inst✝ : DenselyOrdered α
a : α
s : Set α
⊢ (∃ u, u ∈ Ioi a ∧ Ioo a u ⊆ s) ↔ ∃ u, u ∈ Ioi a ∧ Ioc a u ⊆ s
[PROOFSTEP]
constructor
[GOAL]
case mp
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : NoMaxOrder α
inst✝ : DenselyOrdered α
a : α
s : Set α
⊢ (∃ u, u ∈ Ioi a ∧ Ioo a u ⊆ s) → ∃ u, u ∈ Ioi a ∧ Ioc a u ⊆ s
[PROOFSTEP]
rintro ⟨u, au, as⟩
[GOAL]
case mp.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : NoMaxOrder α
inst✝ : DenselyOrdered α
a : α
s : Set α
u : α
au : u ∈ Ioi a
as : Ioo a u ⊆ s
⊢ ∃ u, u ∈ Ioi a ∧ Ioc a u ⊆ s
[PROOFSTEP]
rcases exists_between au with ⟨v, hv⟩
[GOAL]
case mp.intro.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : NoMaxOrder α
inst✝ : DenselyOrdered α
a : α
s : Set α
u : α
au : u ∈ Ioi a
as : Ioo a u ⊆ s
v : α
hv : a < v ∧ v < u
⊢ ∃ u, u ∈ Ioi a ∧ Ioc a u ⊆ s
[PROOFSTEP]
exact ⟨v, hv.1, fun x hx => as ⟨hx.1, lt_of_le_of_lt hx.2 hv.2⟩⟩
[GOAL]
case mpr
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : NoMaxOrder α
inst✝ : DenselyOrdered α
a : α
s : Set α
⊢ (∃ u, u ∈ Ioi a ∧ Ioc a u ⊆ s) → ∃ u, u ∈ Ioi a ∧ Ioo a u ⊆ s
[PROOFSTEP]
rintro ⟨u, au, as⟩
[GOAL]
case mpr.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : NoMaxOrder α
inst✝ : DenselyOrdered α
a : α
s : Set α
u : α
au : u ∈ Ioi a
as : Ioc a u ⊆ s
⊢ ∃ u, u ∈ Ioi a ∧ Ioo a u ⊆ s
[PROOFSTEP]
exact ⟨u, au, Subset.trans Ioo_subset_Ioc_self as⟩
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a b : α
h : a < b
s : Set α
⊢ TFAE
    [s ∈ 𝓝[Iio b] b, s ∈ 𝓝[Ico a b] b, s ∈ 𝓝[Ioo a b] b, ∃ l, l ∈ Ico a b ∧ Ioo l b ⊆ s, ∃ l, l ∈ Iio b ∧ Ioo l b ⊆ s]
[PROOFSTEP]
simpa only [exists_prop, OrderDual.exists, dual_Ioi, dual_Ioc, dual_Ioo] using
  TFAE_mem_nhdsWithin_Ioi h.dual (ofDual ⁻¹' s)
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : NoMinOrder α
inst✝ : DenselyOrdered α
a : α
s : Set α
⊢ s ∈ 𝓝[Iio a] a ↔ ∃ l, l ∈ Iio a ∧ Ico l a ⊆ s
[PROOFSTEP]
have : ofDual ⁻¹' s ∈ 𝓝[>] toDual a ↔ _ := mem_nhdsWithin_Ioi_iff_exists_Ioc_subset
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : NoMinOrder α
inst✝ : DenselyOrdered α
a : α
s : Set α
this : ↑ofDual ⁻¹' s ∈ 𝓝[Ioi (↑toDual a)] ↑toDual a ↔ ∃ u, u ∈ Ioi (↑toDual a) ∧ Ioc (↑toDual a) u ⊆ ↑ofDual ⁻¹' s
⊢ s ∈ 𝓝[Iio a] a ↔ ∃ l, l ∈ Iio a ∧ Ico l a ⊆ s
[PROOFSTEP]
simpa only [OrderDual.exists, exists_prop, dual_Ioc] using this
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a : α
⊢ 𝓝[Iio a] a = ⊥ ↔ IsBot a ∨ ∃ b, b ⋖ a
[PROOFSTEP]
convert (config := { preTransparency := .default }) nhdsWithin_Ioi_eq_bot_iff (a := OrderDual.toDual a) using 4
[GOAL]
case h.e'_2.h.e'_2.h.e'_2.h.h.a
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a : α
e_1✝ : α = (fun x => αᵒᵈ) a
x✝ : α
⊢ x✝ ⋖ a ↔ ↑toDual a ⋖ x✝
[PROOFSTEP]
exact ofDual_covby_ofDual_iff
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a b : α
hab : a < b
s : Set α
⊢ TFAE
    [s ∈ 𝓝[Ici a] a, s ∈ 𝓝[Icc a b] a, s ∈ 𝓝[Ico a b] a, ∃ u, u ∈ Ioc a b ∧ Ico a u ⊆ s, ∃ u, u ∈ Ioi a ∧ Ico a u ⊆ s]
[PROOFSTEP]
tfae_have 1 ↔ 2
[GOAL]
case tfae_1_iff_2
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a b : α
hab : a < b
s : Set α
⊢ s ∈ 𝓝[Ici a] a ↔ s ∈ 𝓝[Icc a b] a
[PROOFSTEP]
rw [nhdsWithin_Icc_eq_nhdsWithin_Ici hab]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a b : α
hab : a < b
s : Set α
tfae_1_iff_2 : s ∈ 𝓝[Ici a] a ↔ s ∈ 𝓝[Icc a b] a
⊢ TFAE
    [s ∈ 𝓝[Ici a] a, s ∈ 𝓝[Icc a b] a, s ∈ 𝓝[Ico a b] a, ∃ u, u ∈ Ioc a b ∧ Ico a u ⊆ s, ∃ u, u ∈ Ioi a ∧ Ico a u ⊆ s]
[PROOFSTEP]
tfae_have 1 ↔ 3
[GOAL]
case tfae_1_iff_3
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a b : α
hab : a < b
s : Set α
tfae_1_iff_2 : s ∈ 𝓝[Ici a] a ↔ s ∈ 𝓝[Icc a b] a
⊢ s ∈ 𝓝[Ici a] a ↔ s ∈ 𝓝[Ico a b] a
[PROOFSTEP]
rw [nhdsWithin_Ico_eq_nhdsWithin_Ici hab]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a b : α
hab : a < b
s : Set α
tfae_1_iff_2 : s ∈ 𝓝[Ici a] a ↔ s ∈ 𝓝[Icc a b] a
tfae_1_iff_3 : s ∈ 𝓝[Ici a] a ↔ s ∈ 𝓝[Ico a b] a
⊢ TFAE
    [s ∈ 𝓝[Ici a] a, s ∈ 𝓝[Icc a b] a, s ∈ 𝓝[Ico a b] a, ∃ u, u ∈ Ioc a b ∧ Ico a u ⊆ s, ∃ u, u ∈ Ioi a ∧ Ico a u ⊆ s]
[PROOFSTEP]
tfae_have 1 ↔ 5
[GOAL]
case tfae_1_iff_5
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a b : α
hab : a < b
s : Set α
tfae_1_iff_2 : s ∈ 𝓝[Ici a] a ↔ s ∈ 𝓝[Icc a b] a
tfae_1_iff_3 : s ∈ 𝓝[Ici a] a ↔ s ∈ 𝓝[Ico a b] a
⊢ s ∈ 𝓝[Ici a] a ↔ ∃ u, u ∈ Ioi a ∧ Ico a u ⊆ s
[PROOFSTEP]
exact (nhdsWithin_Ici_basis' ⟨b, hab⟩).mem_iff
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a b : α
hab : a < b
s : Set α
tfae_1_iff_2 : s ∈ 𝓝[Ici a] a ↔ s ∈ 𝓝[Icc a b] a
tfae_1_iff_3 : s ∈ 𝓝[Ici a] a ↔ s ∈ 𝓝[Ico a b] a
tfae_1_iff_5 : s ∈ 𝓝[Ici a] a ↔ ∃ u, u ∈ Ioi a ∧ Ico a u ⊆ s
⊢ TFAE
    [s ∈ 𝓝[Ici a] a, s ∈ 𝓝[Icc a b] a, s ∈ 𝓝[Ico a b] a, ∃ u, u ∈ Ioc a b ∧ Ico a u ⊆ s, ∃ u, u ∈ Ioi a ∧ Ico a u ⊆ s]
[PROOFSTEP]
tfae_have 4 → 5
[GOAL]
case tfae_4_to_5
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a b : α
hab : a < b
s : Set α
tfae_1_iff_2 : s ∈ 𝓝[Ici a] a ↔ s ∈ 𝓝[Icc a b] a
tfae_1_iff_3 : s ∈ 𝓝[Ici a] a ↔ s ∈ 𝓝[Ico a b] a
tfae_1_iff_5 : s ∈ 𝓝[Ici a] a ↔ ∃ u, u ∈ Ioi a ∧ Ico a u ⊆ s
⊢ (∃ u, u ∈ Ioc a b ∧ Ico a u ⊆ s) → ∃ u, u ∈ Ioi a ∧ Ico a u ⊆ s
[PROOFSTEP]
exact fun ⟨u, umem, hu⟩ => ⟨u, umem.1, hu⟩
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a b : α
hab : a < b
s : Set α
tfae_1_iff_2 : s ∈ 𝓝[Ici a] a ↔ s ∈ 𝓝[Icc a b] a
tfae_1_iff_3 : s ∈ 𝓝[Ici a] a ↔ s ∈ 𝓝[Ico a b] a
tfae_1_iff_5 : s ∈ 𝓝[Ici a] a ↔ ∃ u, u ∈ Ioi a ∧ Ico a u ⊆ s
tfae_4_to_5 : (∃ u, u ∈ Ioc a b ∧ Ico a u ⊆ s) → ∃ u, u ∈ Ioi a ∧ Ico a u ⊆ s
⊢ TFAE
    [s ∈ 𝓝[Ici a] a, s ∈ 𝓝[Icc a b] a, s ∈ 𝓝[Ico a b] a, ∃ u, u ∈ Ioc a b ∧ Ico a u ⊆ s, ∃ u, u ∈ Ioi a ∧ Ico a u ⊆ s]
[PROOFSTEP]
tfae_have 5 → 4
[GOAL]
case tfae_5_to_4
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a b : α
hab : a < b
s : Set α
tfae_1_iff_2 : s ∈ 𝓝[Ici a] a ↔ s ∈ 𝓝[Icc a b] a
tfae_1_iff_3 : s ∈ 𝓝[Ici a] a ↔ s ∈ 𝓝[Ico a b] a
tfae_1_iff_5 : s ∈ 𝓝[Ici a] a ↔ ∃ u, u ∈ Ioi a ∧ Ico a u ⊆ s
tfae_4_to_5 : (∃ u, u ∈ Ioc a b ∧ Ico a u ⊆ s) → ∃ u, u ∈ Ioi a ∧ Ico a u ⊆ s
⊢ (∃ u, u ∈ Ioi a ∧ Ico a u ⊆ s) → ∃ u, u ∈ Ioc a b ∧ Ico a u ⊆ s
[PROOFSTEP]
rintro ⟨u, hua, hus⟩
[GOAL]
case tfae_5_to_4.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a b : α
hab : a < b
s : Set α
tfae_1_iff_2 : s ∈ 𝓝[Ici a] a ↔ s ∈ 𝓝[Icc a b] a
tfae_1_iff_3 : s ∈ 𝓝[Ici a] a ↔ s ∈ 𝓝[Ico a b] a
tfae_1_iff_5 : s ∈ 𝓝[Ici a] a ↔ ∃ u, u ∈ Ioi a ∧ Ico a u ⊆ s
tfae_4_to_5 : (∃ u, u ∈ Ioc a b ∧ Ico a u ⊆ s) → ∃ u, u ∈ Ioi a ∧ Ico a u ⊆ s
u : α
hua : u ∈ Ioi a
hus : Ico a u ⊆ s
⊢ ∃ u, u ∈ Ioc a b ∧ Ico a u ⊆ s
[PROOFSTEP]
exact ⟨min u b, ⟨lt_min hua hab, min_le_right _ _⟩, (Ico_subset_Ico_right <| min_le_left _ _).trans hus⟩
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a b : α
hab : a < b
s : Set α
tfae_1_iff_2 : s ∈ 𝓝[Ici a] a ↔ s ∈ 𝓝[Icc a b] a
tfae_1_iff_3 : s ∈ 𝓝[Ici a] a ↔ s ∈ 𝓝[Ico a b] a
tfae_1_iff_5 : s ∈ 𝓝[Ici a] a ↔ ∃ u, u ∈ Ioi a ∧ Ico a u ⊆ s
tfae_4_to_5 : (∃ u, u ∈ Ioc a b ∧ Ico a u ⊆ s) → ∃ u, u ∈ Ioi a ∧ Ico a u ⊆ s
tfae_5_to_4 : (∃ u, u ∈ Ioi a ∧ Ico a u ⊆ s) → ∃ u, u ∈ Ioc a b ∧ Ico a u ⊆ s
⊢ TFAE
    [s ∈ 𝓝[Ici a] a, s ∈ 𝓝[Icc a b] a, s ∈ 𝓝[Ico a b] a, ∃ u, u ∈ Ioc a b ∧ Ico a u ⊆ s, ∃ u, u ∈ Ioi a ∧ Ico a u ⊆ s]
[PROOFSTEP]
tfae_finish
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a u' : α
s : Set α
hu' : a < u'
⊢ List.get?
      [s ∈ 𝓝[Ici a] a, s ∈ 𝓝[Icc a u'] a, s ∈ 𝓝[Ico a u'] a, ∃ u, u ∈ Ioc a u' ∧ Ico a u ⊆ s,
        ∃ u, u ∈ Ioi a ∧ Ico a u ⊆ s]
      0 =
    some (s ∈ 𝓝[Ici a] a)
[PROOFSTEP]
norm_num
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a u' : α
s : Set α
hu' : a < u'
⊢ List.get?
      [s ∈ 𝓝[Ici a] a, s ∈ 𝓝[Icc a u'] a, s ∈ 𝓝[Ico a u'] a, ∃ u, u ∈ Ioc a u' ∧ Ico a u ⊆ s,
        ∃ u, u ∈ Ioi a ∧ Ico a u ⊆ s]
      3 =
    some (∃ u, u ∈ Ioc a u' ∧ Ico a u ⊆ s)
[PROOFSTEP]
norm_num
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a u' : α
s : Set α
hu' : a < u'
⊢ List.get?
      [s ∈ 𝓝[Ici a] a, s ∈ 𝓝[Icc a u'] a, s ∈ 𝓝[Ico a u'] a, ∃ u, u ∈ Ioc a u' ∧ Ico a u ⊆ s,
        ∃ u, u ∈ Ioi a ∧ Ico a u ⊆ s]
      0 =
    some (s ∈ 𝓝[Ici a] a)
[PROOFSTEP]
norm_num
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a u' : α
s : Set α
hu' : a < u'
⊢ List.get?
      [s ∈ 𝓝[Ici a] a, s ∈ 𝓝[Icc a u'] a, s ∈ 𝓝[Ico a u'] a, ∃ u, u ∈ Ioc a u' ∧ Ico a u ⊆ s,
        ∃ u, u ∈ Ioi a ∧ Ico a u ⊆ s]
      4 =
    some (∃ u, u ∈ Ioi a ∧ Ico a u ⊆ s)
[PROOFSTEP]
norm_num
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : NoMaxOrder α
inst✝ : DenselyOrdered α
a : α
s : Set α
⊢ s ∈ 𝓝[Ici a] a ↔ ∃ u, a < u ∧ Icc a u ⊆ s
[PROOFSTEP]
rw [mem_nhdsWithin_Ici_iff_exists_Ico_subset]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : NoMaxOrder α
inst✝ : DenselyOrdered α
a : α
s : Set α
⊢ (∃ u, u ∈ Ioi a ∧ Ico a u ⊆ s) ↔ ∃ u, a < u ∧ Icc a u ⊆ s
[PROOFSTEP]
constructor
[GOAL]
case mp
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : NoMaxOrder α
inst✝ : DenselyOrdered α
a : α
s : Set α
⊢ (∃ u, u ∈ Ioi a ∧ Ico a u ⊆ s) → ∃ u, a < u ∧ Icc a u ⊆ s
[PROOFSTEP]
rintro ⟨u, au, as⟩
[GOAL]
case mp.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : NoMaxOrder α
inst✝ : DenselyOrdered α
a : α
s : Set α
u : α
au : u ∈ Ioi a
as : Ico a u ⊆ s
⊢ ∃ u, a < u ∧ Icc a u ⊆ s
[PROOFSTEP]
rcases exists_between au with ⟨v, hv⟩
[GOAL]
case mp.intro.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : NoMaxOrder α
inst✝ : DenselyOrdered α
a : α
s : Set α
u : α
au : u ∈ Ioi a
as : Ico a u ⊆ s
v : α
hv : a < v ∧ v < u
⊢ ∃ u, a < u ∧ Icc a u ⊆ s
[PROOFSTEP]
exact ⟨v, hv.1, fun x hx => as ⟨hx.1, lt_of_le_of_lt hx.2 hv.2⟩⟩
[GOAL]
case mpr
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : NoMaxOrder α
inst✝ : DenselyOrdered α
a : α
s : Set α
⊢ (∃ u, a < u ∧ Icc a u ⊆ s) → ∃ u, u ∈ Ioi a ∧ Ico a u ⊆ s
[PROOFSTEP]
rintro ⟨u, au, as⟩
[GOAL]
case mpr.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : NoMaxOrder α
inst✝ : DenselyOrdered α
a : α
s : Set α
u : α
au : a < u
as : Icc a u ⊆ s
⊢ ∃ u, u ∈ Ioi a ∧ Ico a u ⊆ s
[PROOFSTEP]
exact ⟨u, au, Subset.trans Ico_subset_Icc_self as⟩
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a b : α
h : a < b
s : Set α
⊢ TFAE
    [s ∈ 𝓝[Iic b] b, s ∈ 𝓝[Icc a b] b, s ∈ 𝓝[Ioc a b] b, ∃ l, l ∈ Ico a b ∧ Ioc l b ⊆ s, ∃ l, l ∈ Iio b ∧ Ioc l b ⊆ s]
[PROOFSTEP]
simpa only [exists_prop, OrderDual.exists, dual_Ici, dual_Ioc, dual_Icc, dual_Ico] using
  TFAE_mem_nhdsWithin_Ici h.dual (ofDual ⁻¹' s)
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a l' : α
s : Set α
hl' : l' < a
⊢ List.get?
      [s ∈ 𝓝[Iic a] a, s ∈ 𝓝[Icc l' a] a, s ∈ 𝓝[Ioc l' a] a, ∃ l, l ∈ Ico l' a ∧ Ioc l a ⊆ s,
        ∃ l, l ∈ Iio a ∧ Ioc l a ⊆ s]
      0 =
    some (s ∈ 𝓝[Iic a] a)
[PROOFSTEP]
norm_num
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a l' : α
s : Set α
hl' : l' < a
⊢ List.get?
      [s ∈ 𝓝[Iic a] a, s ∈ 𝓝[Icc l' a] a, s ∈ 𝓝[Ioc l' a] a, ∃ l, l ∈ Ico l' a ∧ Ioc l a ⊆ s,
        ∃ l, l ∈ Iio a ∧ Ioc l a ⊆ s]
      3 =
    some (∃ l, l ∈ Ico l' a ∧ Ioc l a ⊆ s)
[PROOFSTEP]
norm_num
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a l' : α
s : Set α
hl' : l' < a
⊢ List.get?
      [s ∈ 𝓝[Iic a] a, s ∈ 𝓝[Icc l' a] a, s ∈ 𝓝[Ioc l' a] a, ∃ l, l ∈ Ico l' a ∧ Ioc l a ⊆ s,
        ∃ l, l ∈ Iio a ∧ Ioc l a ⊆ s]
      0 =
    some (s ∈ 𝓝[Iic a] a)
[PROOFSTEP]
norm_num
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a l' : α
s : Set α
hl' : l' < a
⊢ List.get?
      [s ∈ 𝓝[Iic a] a, s ∈ 𝓝[Icc l' a] a, s ∈ 𝓝[Ioc l' a] a, ∃ l, l ∈ Ico l' a ∧ Ioc l a ⊆ s,
        ∃ l, l ∈ Iio a ∧ Ioc l a ⊆ s]
      4 =
    some (∃ l, l ∈ Iio a ∧ Ioc l a ⊆ s)
[PROOFSTEP]
norm_num
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : NoMinOrder α
inst✝ : DenselyOrdered α
a : α
s : Set α
⊢ (∃ u, ↑toDual a < ↑toDual u ∧ Icc (↑toDual a) (↑toDual u) ⊆ ↑ofDual ⁻¹' s) ↔ ∃ l, l < a ∧ Icc l a ⊆ s
[PROOFSTEP]
simp only [dual_Icc]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : NoMinOrder α
inst✝ : DenselyOrdered α
a : α
s : Set α
⊢ (∃ u, ↑toDual a < ↑toDual u ∧ ↑ofDual ⁻¹' Icc u a ⊆ ↑ofDual ⁻¹' s) ↔ ∃ l, l < a ∧ Icc l a ⊆ s
[PROOFSTEP]
rfl
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrderedAddCommGroup α
inst✝ : OrderTopology α
l : Filter β
f g : β → α
a : α
⊢ 𝓝 a = ⨅ (r : α) (_ : r > 0), 𝓟 {b | |a - b| < r}
[PROOFSTEP]
simp only [nhds_eq_order, abs_lt, setOf_and, ← inf_principal, iInf_inf_eq]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrderedAddCommGroup α
inst✝ : OrderTopology α
l : Filter β
f g : β → α
a : α
⊢ (⨅ (b : α) (_ : b ∈ Iio a), 𝓟 (Ioi b)) ⊓ ⨅ (b : α) (_ : b ∈ Ioi a), 𝓟 (Iio b) =
    (⨅ (x : α) (_ : x > 0), 𝓟 {a_1 | -x < a - a_1}) ⊓ ⨅ (x : α) (_ : x > 0), 𝓟 {a_1 | a - a_1 < x}
[PROOFSTEP]
refine (congr_arg₂ _ ?_ ?_).trans inf_comm
[GOAL]
case refine_1
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrderedAddCommGroup α
inst✝ : OrderTopology α
l : Filter β
f g : β → α
a : α
⊢ ⨅ (b : α) (_ : b ∈ Iio a), 𝓟 (Ioi b) = ⨅ (x : α) (_ : x > 0), 𝓟 {a_1 | a - a_1 < x}
[PROOFSTEP]
refine (Equiv.subLeft a).iInf_congr fun x => ?_
[GOAL]
case refine_1
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrderedAddCommGroup α
inst✝ : OrderTopology α
l : Filter β
f g : β → α
a x : α
⊢ ⨅ (_ : ↑(Equiv.subLeft a) x > 0), 𝓟 {a_1 | a - a_1 < ↑(Equiv.subLeft a) x} = ⨅ (_ : x ∈ Iio a), 𝓟 (Ioi x)
[PROOFSTEP]
simp [Ioi]
[GOAL]
case refine_2
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrderedAddCommGroup α
inst✝ : OrderTopology α
l : Filter β
f g : β → α
a : α
⊢ ⨅ (b : α) (_ : b ∈ Ioi a), 𝓟 (Iio b) = ⨅ (x : α) (_ : x > 0), 𝓟 {a_1 | -x < a - a_1}
[PROOFSTEP]
refine (Equiv.subRight a).iInf_congr fun x => ?_
[GOAL]
case refine_2
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrderedAddCommGroup α
inst✝ : OrderTopology α
l : Filter β
f g : β → α
a x : α
⊢ ⨅ (_ : ↑(Equiv.subRight a) x > 0), 𝓟 {a_1 | -↑(Equiv.subRight a) x < a - a_1} = ⨅ (_ : x ∈ Ioi a), 𝓟 (Iio x)
[PROOFSTEP]
simp [Iio]
[GOAL]
α✝ : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α✝
inst✝³ : LinearOrderedAddCommGroup α✝
inst✝² : OrderTopology α✝
l : Filter β
f g : β → α✝
α : Type u_1
inst✝¹ : TopologicalSpace α
inst✝ : LinearOrderedAddCommGroup α
h_nhds : ∀ (a : α), 𝓝 a = ⨅ (r : α) (_ : r > 0), 𝓟 {b | |a - b| < r}
⊢ OrderTopology α
[PROOFSTEP]
refine' ⟨eq_of_nhds_eq_nhds fun a => _⟩
[GOAL]
α✝ : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α✝
inst✝³ : LinearOrderedAddCommGroup α✝
inst✝² : OrderTopology α✝
l : Filter β
f g : β → α✝
α : Type u_1
inst✝¹ : TopologicalSpace α
inst✝ : LinearOrderedAddCommGroup α
h_nhds : ∀ (a : α), 𝓝 a = ⨅ (r : α) (_ : r > 0), 𝓟 {b | |a - b| < r}
a : α
⊢ 𝓝 a = 𝓝 a
[PROOFSTEP]
rw [h_nhds]
[GOAL]
α✝ : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α✝
inst✝³ : LinearOrderedAddCommGroup α✝
inst✝² : OrderTopology α✝
l : Filter β
f g : β → α✝
α : Type u_1
inst✝¹ : TopologicalSpace α
inst✝ : LinearOrderedAddCommGroup α
h_nhds : ∀ (a : α), 𝓝 a = ⨅ (r : α) (_ : r > 0), 𝓟 {b | |a - b| < r}
a : α
⊢ ⨅ (r : α) (_ : r > 0), 𝓟 {b | |a - b| < r} = 𝓝 a
[PROOFSTEP]
letI := Preorder.topology α
[GOAL]
α✝ : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α✝
inst✝³ : LinearOrderedAddCommGroup α✝
inst✝² : OrderTopology α✝
l : Filter β
f g : β → α✝
α : Type u_1
inst✝¹ : TopologicalSpace α
inst✝ : LinearOrderedAddCommGroup α
h_nhds : ∀ (a : α), 𝓝 a = ⨅ (r : α) (_ : r > 0), 𝓟 {b | |a - b| < r}
a : α
this : TopologicalSpace α := Preorder.topology α
⊢ ⨅ (r : α) (_ : r > 0), 𝓟 {b | |a - b| < r} = 𝓝 a
[PROOFSTEP]
letI : OrderTopology α := ⟨rfl⟩
[GOAL]
α✝ : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α✝
inst✝³ : LinearOrderedAddCommGroup α✝
inst✝² : OrderTopology α✝
l : Filter β
f g : β → α✝
α : Type u_1
inst✝¹ : TopologicalSpace α
inst✝ : LinearOrderedAddCommGroup α
h_nhds : ∀ (a : α), 𝓝 a = ⨅ (r : α) (_ : r > 0), 𝓟 {b | |a - b| < r}
a : α
this✝ : TopologicalSpace α := Preorder.topology α
this : OrderTopology α := { topology_eq_generate_intervals := rfl }
⊢ ⨅ (r : α) (_ : r > 0), 𝓟 {b | |a - b| < r} = 𝓝 a
[PROOFSTEP]
exact (nhds_eq_iInf_abs_sub a).symm
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrderedAddCommGroup α
inst✝ : OrderTopology α
l : Filter β
f g : β → α
x : Filter β
a : α
⊢ Tendsto f x (𝓝 a) ↔ ∀ (ε : α), ε > 0 → ∀ᶠ (b : β) in x, |f b - a| < ε
[PROOFSTEP]
simp [nhds_eq_iInf_abs_sub, abs_sub_comm a]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrderedAddCommGroup α
inst✝ : OrderTopology α
l : Filter β
f g : β → α
a ε : α
hε : 0 < ε
⊢ {x | (fun x => |x - a| < ε) x} ∈ 𝓟 {b | |a - b| < ε}
[PROOFSTEP]
simp only [abs_sub_comm, mem_principal_self]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrderedAddCommGroup α
inst✝ : OrderTopology α
l : Filter β
f g : β → α
C : α
hf : Tendsto f l (𝓝 C)
hg : Tendsto g l atTop
⊢ Tendsto (fun x => f x + g x) l atTop
[PROOFSTEP]
nontriviality α
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrderedAddCommGroup α
inst✝ : OrderTopology α
l : Filter β
f g : β → α
C : α
hf : Tendsto f l (𝓝 C)
hg : Tendsto g l atTop
✝ : Nontrivial α
⊢ Tendsto (fun x => f x + g x) l atTop
[PROOFSTEP]
obtain ⟨C', hC'⟩ : ∃ C', C' < C := exists_lt C
[GOAL]
case intro
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrderedAddCommGroup α
inst✝ : OrderTopology α
l : Filter β
f g : β → α
C : α
hf : Tendsto f l (𝓝 C)
hg : Tendsto g l atTop
✝ : Nontrivial α
C' : α
hC' : C' < C
⊢ Tendsto (fun x => f x + g x) l atTop
[PROOFSTEP]
refine' tendsto_atTop_add_left_of_le' _ C' _ hg
[GOAL]
case intro
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrderedAddCommGroup α
inst✝ : OrderTopology α
l : Filter β
f g : β → α
C : α
hf : Tendsto f l (𝓝 C)
hg : Tendsto g l atTop
✝ : Nontrivial α
C' : α
hC' : C' < C
⊢ ∀ᶠ (x : β) in l, C' ≤ f x
[PROOFSTEP]
exact (hf.eventually (lt_mem_nhds hC')).mono fun x => le_of_lt
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrderedAddCommGroup α
inst✝ : OrderTopology α
l : Filter β
f g : β → α
C : α
hf : Tendsto f l atTop
hg : Tendsto g l (𝓝 C)
⊢ Tendsto (fun x => f x + g x) l atTop
[PROOFSTEP]
conv in _ + _ => rw [add_comm]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrderedAddCommGroup α
inst✝ : OrderTopology α
l : Filter β
f g : β → α
C : α
hf : Tendsto f l atTop
hg : Tendsto g l (𝓝 C)
x : β
| f x + g x
[PROOFSTEP]
rw [add_comm]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrderedAddCommGroup α
inst✝ : OrderTopology α
l : Filter β
f g : β → α
C : α
hf : Tendsto f l atTop
hg : Tendsto g l (𝓝 C)
x : β
| f x + g x
[PROOFSTEP]
rw [add_comm]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrderedAddCommGroup α
inst✝ : OrderTopology α
l : Filter β
f g : β → α
C : α
hf : Tendsto f l atTop
hg : Tendsto g l (𝓝 C)
x : β
| f x + g x
[PROOFSTEP]
rw [add_comm]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrderedAddCommGroup α
inst✝ : OrderTopology α
l : Filter β
f g : β → α
C : α
hf : Tendsto f l atTop
hg : Tendsto g l (𝓝 C)
⊢ Tendsto (fun x => g x + f x) l atTop
[PROOFSTEP]
exact hg.add_atTop hf
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrderedAddCommGroup α
inst✝ : OrderTopology α
l : Filter β
f g : β → α
C : α
hf : Tendsto f l atBot
hg : Tendsto g l (𝓝 C)
⊢ Tendsto (fun x => f x + g x) l atBot
[PROOFSTEP]
conv in _ + _ => rw [add_comm]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrderedAddCommGroup α
inst✝ : OrderTopology α
l : Filter β
f g : β → α
C : α
hf : Tendsto f l atBot
hg : Tendsto g l (𝓝 C)
x : β
| f x + g x
[PROOFSTEP]
rw [add_comm]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrderedAddCommGroup α
inst✝ : OrderTopology α
l : Filter β
f g : β → α
C : α
hf : Tendsto f l atBot
hg : Tendsto g l (𝓝 C)
x : β
| f x + g x
[PROOFSTEP]
rw [add_comm]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrderedAddCommGroup α
inst✝ : OrderTopology α
l : Filter β
f g : β → α
C : α
hf : Tendsto f l atBot
hg : Tendsto g l (𝓝 C)
x : β
| f x + g x
[PROOFSTEP]
rw [add_comm]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrderedAddCommGroup α
inst✝ : OrderTopology α
l : Filter β
f g : β → α
C : α
hf : Tendsto f l atBot
hg : Tendsto g l (𝓝 C)
⊢ Tendsto (fun x => g x + f x) l atBot
[PROOFSTEP]
exact hg.add_atBot hf
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrderedAddCommGroup α
inst✝¹ : OrderTopology α
l : Filter β
f g : β → α
inst✝ : NoMaxOrder α
a : α
⊢ HasBasis (𝓝 a) (fun ε => 0 < ε) fun ε => {b | |b - a| < ε}
[PROOFSTEP]
simp only [nhds_eq_iInf_abs_sub, abs_sub_comm (a := a)]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrderedAddCommGroup α
inst✝¹ : OrderTopology α
l : Filter β
f g : β → α
inst✝ : NoMaxOrder α
a : α
⊢ HasBasis (⨅ (r : α) (_ : r > 0), 𝓟 {b | |b - a| < r}) (fun ε => 0 < ε) fun ε => {b | |b - a| < ε}
[PROOFSTEP]
refine hasBasis_biInf_principal' (fun x hx y hy => ?_) (exists_gt _)
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrderedAddCommGroup α
inst✝¹ : OrderTopology α
l : Filter β
f g : β → α
inst✝ : NoMaxOrder α
a x : α
hx : x > 0
y : α
hy : y > 0
⊢ ∃ k, k > 0 ∧ {b | |b - a| < k} ⊆ {b | |b - a| < x} ∧ {b | |b - a| < k} ⊆ {b | |b - a| < y}
[PROOFSTEP]
exact ⟨min x y, lt_min hx hy, fun _ hz => hz.trans_le (min_le_left _ _), fun _ hz => hz.trans_le (min_le_right _ _)⟩
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrderedAddCommGroup α
inst✝¹ : OrderTopology α
l : Filter β
f g : β → α
inst✝ : NoMaxOrder α
a : α
⊢ HasBasis (𝓝 a) (fun ε => 0 < ε) fun ε => Ioo (a - ε) (a + ε)
[PROOFSTEP]
convert nhds_basis_abs_sub_lt a
[GOAL]
case h.e'_5.h
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrderedAddCommGroup α
inst✝¹ : OrderTopology α
l : Filter β
f g : β → α
inst✝ : NoMaxOrder α
a x✝ : α
⊢ Ioo (a - x✝) (a + x✝) = {b | |b - a| < x✝}
[PROOFSTEP]
simp only [Ioo, abs_lt, ← sub_lt_iff_lt_add, neg_lt_sub_iff_lt_add, sub_lt_comm]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrderedAddCommGroup α
inst✝¹ : OrderTopology α
l : Filter β
f g : β → α
inst✝ : NoMaxOrder α
⊢ HasBasis (𝓝 0) (fun ε => 0 < ε) fun ε => {b | |b| < ε}
[PROOFSTEP]
simpa using nhds_basis_abs_sub_lt (0 : α)
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁵ : TopologicalSpace α
inst✝⁴ : TopologicalSpace β
inst✝³ : LinearOrder α
inst✝² : LinearOrder β
inst✝¹ : OrderTopology α
inst✝ : OrderTopology β
a : α
s : Set α
ha : IsLUB s a
hs : Set.Nonempty s
⊢ ∃ᶠ (x : α) in 𝓝[Iic a] a, x ∈ s
[PROOFSTEP]
rcases hs with ⟨a', ha'⟩
[GOAL]
case intro
α : Type u
β : Type v
γ : Type w
inst✝⁵ : TopologicalSpace α
inst✝⁴ : TopologicalSpace β
inst✝³ : LinearOrder α
inst✝² : LinearOrder β
inst✝¹ : OrderTopology α
inst✝ : OrderTopology β
a : α
s : Set α
ha : IsLUB s a
a' : α
ha' : a' ∈ s
⊢ ∃ᶠ (x : α) in 𝓝[Iic a] a, x ∈ s
[PROOFSTEP]
intro h
[GOAL]
case intro
α : Type u
β : Type v
γ : Type w
inst✝⁵ : TopologicalSpace α
inst✝⁴ : TopologicalSpace β
inst✝³ : LinearOrder α
inst✝² : LinearOrder β
inst✝¹ : OrderTopology α
inst✝ : OrderTopology β
a : α
s : Set α
ha : IsLUB s a
a' : α
ha' : a' ∈ s
h : ∀ᶠ (x : α) in 𝓝[Iic a] a, ¬(fun x => x ∈ s) x
⊢ False
[PROOFSTEP]
rcases(ha.1 ha').eq_or_lt with (rfl | ha'a)
[GOAL]
case intro.inl
α : Type u
β : Type v
γ : Type w
inst✝⁵ : TopologicalSpace α
inst✝⁴ : TopologicalSpace β
inst✝³ : LinearOrder α
inst✝² : LinearOrder β
inst✝¹ : OrderTopology α
inst✝ : OrderTopology β
s : Set α
a' : α
ha' : a' ∈ s
ha : IsLUB s a'
h : ∀ᶠ (x : α) in 𝓝[Iic a'] a', ¬(fun x => x ∈ s) x
⊢ False
[PROOFSTEP]
exact h.self_of_nhdsWithin le_rfl ha'
[GOAL]
case intro.inr
α : Type u
β : Type v
γ : Type w
inst✝⁵ : TopologicalSpace α
inst✝⁴ : TopologicalSpace β
inst✝³ : LinearOrder α
inst✝² : LinearOrder β
inst✝¹ : OrderTopology α
inst✝ : OrderTopology β
a : α
s : Set α
ha : IsLUB s a
a' : α
ha' : a' ∈ s
h : ∀ᶠ (x : α) in 𝓝[Iic a] a, ¬(fun x => x ∈ s) x
ha'a : a' < a
⊢ False
[PROOFSTEP]
rcases(mem_nhdsWithin_Iic_iff_exists_Ioc_subset' ha'a).1 h with ⟨b, hba, hb⟩
[GOAL]
case intro.inr.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝⁵ : TopologicalSpace α
inst✝⁴ : TopologicalSpace β
inst✝³ : LinearOrder α
inst✝² : LinearOrder β
inst✝¹ : OrderTopology α
inst✝ : OrderTopology β
a : α
s : Set α
ha : IsLUB s a
a' : α
ha' : a' ∈ s
h : ∀ᶠ (x : α) in 𝓝[Iic a] a, ¬(fun x => x ∈ s) x
ha'a : a' < a
b : α
hba : b ∈ Iio a
hb : Ioc b a ⊆ {x | (fun x => ¬(fun x => x ∈ s) x) x}
⊢ False
[PROOFSTEP]
rcases ha.exists_between hba with ⟨b', hb's, hb'⟩
[GOAL]
case intro.inr.intro.intro.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝⁵ : TopologicalSpace α
inst✝⁴ : TopologicalSpace β
inst✝³ : LinearOrder α
inst✝² : LinearOrder β
inst✝¹ : OrderTopology α
inst✝ : OrderTopology β
a : α
s : Set α
ha : IsLUB s a
a' : α
ha' : a' ∈ s
h : ∀ᶠ (x : α) in 𝓝[Iic a] a, ¬(fun x => x ∈ s) x
ha'a : a' < a
b : α
hba : b ∈ Iio a
hb : Ioc b a ⊆ {x | (fun x => ¬(fun x => x ∈ s) x) x}
b' : α
hb's : b' ∈ s
hb' : b < b' ∧ b' ≤ a
⊢ False
[PROOFSTEP]
exact hb hb' hb's
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁵ : TopologicalSpace α
inst✝⁴ : TopologicalSpace β
inst✝³ : LinearOrder α
inst✝² : LinearOrder β
inst✝¹ : OrderTopology α
inst✝ : OrderTopology β
s : Set α
a : α
hsa : a ∈ upperBounds s
hsf : a ∈ closure s
⊢ IsLUB s a
[PROOFSTEP]
rw [mem_closure_iff_clusterPt, ClusterPt, inf_comm] at hsf
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁵ : TopologicalSpace α
inst✝⁴ : TopologicalSpace β
inst✝³ : LinearOrder α
inst✝² : LinearOrder β
inst✝¹ : OrderTopology α
inst✝ : OrderTopology β
s : Set α
a : α
hsa : a ∈ upperBounds s
hsf : NeBot (𝓟 s ⊓ 𝓝 a)
⊢ IsLUB s a
[PROOFSTEP]
exact isLUB_of_mem_nhds hsa (mem_principal_self s)
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁸ : TopologicalSpace α
inst✝⁷ : TopologicalSpace β
inst✝⁶ : LinearOrder α
inst✝⁵ : LinearOrder β
inst✝⁴ : OrderTopology α
inst✝³ : OrderTopology β
inst✝² : Preorder γ
inst✝¹ : TopologicalSpace γ
inst✝ : OrderClosedTopology γ
f : α → γ
s : Set α
a : α
b : γ
hf : MonotoneOn f s
ha : IsLUB s a
hb : Tendsto f (𝓝[s] a) (𝓝 b)
⊢ b ∈ upperBounds (f '' s)
[PROOFSTEP]
rintro _ ⟨x, hx, rfl⟩
[GOAL]
case intro.intro
α : Type u
β : Type v
γ : Type w
inst✝⁸ : TopologicalSpace α
inst✝⁷ : TopologicalSpace β
inst✝⁶ : LinearOrder α
inst✝⁵ : LinearOrder β
inst✝⁴ : OrderTopology α
inst✝³ : OrderTopology β
inst✝² : Preorder γ
inst✝¹ : TopologicalSpace γ
inst✝ : OrderClosedTopology γ
f : α → γ
s : Set α
a : α
b : γ
hf : MonotoneOn f s
ha : IsLUB s a
hb : Tendsto f (𝓝[s] a) (𝓝 b)
x : α
hx : x ∈ s
⊢ f x ≤ b
[PROOFSTEP]
replace ha := ha.inter_Ici_of_mem hx
[GOAL]
case intro.intro
α : Type u
β : Type v
γ : Type w
inst✝⁸ : TopologicalSpace α
inst✝⁷ : TopologicalSpace β
inst✝⁶ : LinearOrder α
inst✝⁵ : LinearOrder β
inst✝⁴ : OrderTopology α
inst✝³ : OrderTopology β
inst✝² : Preorder γ
inst✝¹ : TopologicalSpace γ
inst✝ : OrderClosedTopology γ
f : α → γ
s : Set α
a : α
b : γ
hf : MonotoneOn f s
hb : Tendsto f (𝓝[s] a) (𝓝 b)
x : α
hx : x ∈ s
ha : IsLUB (s ∩ Ici x) a
⊢ f x ≤ b
[PROOFSTEP]
haveI := ha.nhdsWithin_neBot ⟨x, hx, le_rfl⟩
[GOAL]
case intro.intro
α : Type u
β : Type v
γ : Type w
inst✝⁸ : TopologicalSpace α
inst✝⁷ : TopologicalSpace β
inst✝⁶ : LinearOrder α
inst✝⁵ : LinearOrder β
inst✝⁴ : OrderTopology α
inst✝³ : OrderTopology β
inst✝² : Preorder γ
inst✝¹ : TopologicalSpace γ
inst✝ : OrderClosedTopology γ
f : α → γ
s : Set α
a : α
b : γ
hf : MonotoneOn f s
hb : Tendsto f (𝓝[s] a) (𝓝 b)
x : α
hx : x ∈ s
ha : IsLUB (s ∩ Ici x) a
this : NeBot (𝓝[s ∩ Ici x] a)
⊢ f x ≤ b
[PROOFSTEP]
refine' ge_of_tendsto (hb.mono_left (nhdsWithin_mono _ (inter_subset_left s (Ici x)))) _
[GOAL]
case intro.intro
α : Type u
β : Type v
γ : Type w
inst✝⁸ : TopologicalSpace α
inst✝⁷ : TopologicalSpace β
inst✝⁶ : LinearOrder α
inst✝⁵ : LinearOrder β
inst✝⁴ : OrderTopology α
inst✝³ : OrderTopology β
inst✝² : Preorder γ
inst✝¹ : TopologicalSpace γ
inst✝ : OrderClosedTopology γ
f : α → γ
s : Set α
a : α
b : γ
hf : MonotoneOn f s
hb : Tendsto f (𝓝[s] a) (𝓝 b)
x : α
hx : x ∈ s
ha : IsLUB (s ∩ Ici x) a
this : NeBot (𝓝[s ∩ Ici x] a)
⊢ ∀ᶠ (c : α) in 𝓝[s ∩ Ici x] a, f x ≤ f c
[PROOFSTEP]
exact mem_of_superset self_mem_nhdsWithin fun y hy => hf hx hy.1 hy.2
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁶ : TopologicalSpace α
inst✝⁵ : TopologicalSpace β
inst✝⁴ : LinearOrder α
inst✝³ : LinearOrder β
inst✝² : OrderTopology α
inst✝¹ : OrderTopology β
t : Set α
x : α
inst✝ : IsCountablyGenerated (𝓝 x)
htx : IsLUB t x
not_mem : ¬x ∈ t
ht : Set.Nonempty t
⊢ ∃ u, StrictMono u ∧ (∀ (n : ℕ), u n < x) ∧ Tendsto u atTop (𝓝 x) ∧ ∀ (n : ℕ), u n ∈ t
[PROOFSTEP]
obtain ⟨v, hvx, hvt⟩ := exists_seq_forall_of_frequently (htx.frequently_mem ht)
[GOAL]
case intro.intro
α : Type u
β : Type v
γ : Type w
inst✝⁶ : TopologicalSpace α
inst✝⁵ : TopologicalSpace β
inst✝⁴ : LinearOrder α
inst✝³ : LinearOrder β
inst✝² : OrderTopology α
inst✝¹ : OrderTopology β
t : Set α
x : α
inst✝ : IsCountablyGenerated (𝓝 x)
htx : IsLUB t x
not_mem : ¬x ∈ t
ht : Set.Nonempty t
v : ℕ → α
hvx : Tendsto v atTop (𝓝[Iic x] x)
hvt : ∀ (n : ℕ), v n ∈ t
⊢ ∃ u, StrictMono u ∧ (∀ (n : ℕ), u n < x) ∧ Tendsto u atTop (𝓝 x) ∧ ∀ (n : ℕ), u n ∈ t
[PROOFSTEP]
replace hvx := hvx.mono_right nhdsWithin_le_nhds
[GOAL]
case intro.intro
α : Type u
β : Type v
γ : Type w
inst✝⁶ : TopologicalSpace α
inst✝⁵ : TopologicalSpace β
inst✝⁴ : LinearOrder α
inst✝³ : LinearOrder β
inst✝² : OrderTopology α
inst✝¹ : OrderTopology β
t : Set α
x : α
inst✝ : IsCountablyGenerated (𝓝 x)
htx : IsLUB t x
not_mem : ¬x ∈ t
ht : Set.Nonempty t
v : ℕ → α
hvt : ∀ (n : ℕ), v n ∈ t
hvx : Tendsto v atTop (𝓝 x)
⊢ ∃ u, StrictMono u ∧ (∀ (n : ℕ), u n < x) ∧ Tendsto u atTop (𝓝 x) ∧ ∀ (n : ℕ), u n ∈ t
[PROOFSTEP]
have hvx' : ∀ {n}, v n < x := (htx.1 (hvt _)).lt_of_ne (ne_of_mem_of_not_mem (hvt _) not_mem)
[GOAL]
case intro.intro
α : Type u
β : Type v
γ : Type w
inst✝⁶ : TopologicalSpace α
inst✝⁵ : TopologicalSpace β
inst✝⁴ : LinearOrder α
inst✝³ : LinearOrder β
inst✝² : OrderTopology α
inst✝¹ : OrderTopology β
t : Set α
x : α
inst✝ : IsCountablyGenerated (𝓝 x)
htx : IsLUB t x
not_mem : ¬x ∈ t
ht : Set.Nonempty t
v : ℕ → α
hvt : ∀ (n : ℕ), v n ∈ t
hvx : Tendsto v atTop (𝓝 x)
hvx' : ∀ {n : ℕ}, v n < x
⊢ ∃ u, StrictMono u ∧ (∀ (n : ℕ), u n < x) ∧ Tendsto u atTop (𝓝 x) ∧ ∀ (n : ℕ), u n ∈ t
[PROOFSTEP]
have : ∀ k, ∀ᶠ l in atTop, v k < v l := fun k => hvx.eventually (lt_mem_nhds hvx')
[GOAL]
case intro.intro
α : Type u
β : Type v
γ : Type w
inst✝⁶ : TopologicalSpace α
inst✝⁵ : TopologicalSpace β
inst✝⁴ : LinearOrder α
inst✝³ : LinearOrder β
inst✝² : OrderTopology α
inst✝¹ : OrderTopology β
t : Set α
x : α
inst✝ : IsCountablyGenerated (𝓝 x)
htx : IsLUB t x
not_mem : ¬x ∈ t
ht : Set.Nonempty t
v : ℕ → α
hvt : ∀ (n : ℕ), v n ∈ t
hvx : Tendsto v atTop (𝓝 x)
hvx' : ∀ {n : ℕ}, v n < x
this : ∀ (k : ℕ), ∀ᶠ (l : ℕ) in atTop, v k < v l
⊢ ∃ u, StrictMono u ∧ (∀ (n : ℕ), u n < x) ∧ Tendsto u atTop (𝓝 x) ∧ ∀ (n : ℕ), u n ∈ t
[PROOFSTEP]
choose N hN hvN using fun k => ((eventually_gt_atTop k).and (this k)).exists
[GOAL]
case intro.intro
α : Type u
β : Type v
γ : Type w
inst✝⁶ : TopologicalSpace α
inst✝⁵ : TopologicalSpace β
inst✝⁴ : LinearOrder α
inst✝³ : LinearOrder β
inst✝² : OrderTopology α
inst✝¹ : OrderTopology β
t : Set α
x : α
inst✝ : IsCountablyGenerated (𝓝 x)
htx : IsLUB t x
not_mem : ¬x ∈ t
ht : Set.Nonempty t
v : ℕ → α
hvt : ∀ (n : ℕ), v n ∈ t
hvx : Tendsto v atTop (𝓝 x)
hvx' : ∀ {n : ℕ}, v n < x
this : ∀ (k : ℕ), ∀ᶠ (l : ℕ) in atTop, v k < v l
N : ℕ → ℕ
hN : ∀ (k : ℕ), k < N k
hvN : ∀ (k : ℕ), v k < v (N k)
⊢ ∃ u, StrictMono u ∧ (∀ (n : ℕ), u n < x) ∧ Tendsto u atTop (𝓝 x) ∧ ∀ (n : ℕ), u n ∈ t
[PROOFSTEP]
refine
  ⟨fun k => v (N^[k] 0), strictMono_nat_of_lt_succ fun _ => ?_, fun _ => hvx',
    hvx.comp (strictMono_nat_of_lt_succ fun _ => ?_).tendsto_atTop, fun _ => hvt _⟩
[GOAL]
case intro.intro.refine_1
α : Type u
β : Type v
γ : Type w
inst✝⁶ : TopologicalSpace α
inst✝⁵ : TopologicalSpace β
inst✝⁴ : LinearOrder α
inst✝³ : LinearOrder β
inst✝² : OrderTopology α
inst✝¹ : OrderTopology β
t : Set α
x : α
inst✝ : IsCountablyGenerated (𝓝 x)
htx : IsLUB t x
not_mem : ¬x ∈ t
ht : Set.Nonempty t
v : ℕ → α
hvt : ∀ (n : ℕ), v n ∈ t
hvx : Tendsto v atTop (𝓝 x)
hvx' : ∀ {n : ℕ}, v n < x
this : ∀ (k : ℕ), ∀ᶠ (l : ℕ) in atTop, v k < v l
N : ℕ → ℕ
hN : ∀ (k : ℕ), k < N k
hvN : ∀ (k : ℕ), v k < v (N k)
x✝ : ℕ
⊢ v (N^[x✝] 0) < v (N^[x✝ + 1] 0)
[PROOFSTEP]
rw [iterate_succ_apply']
[GOAL]
case intro.intro.refine_1
α : Type u
β : Type v
γ : Type w
inst✝⁶ : TopologicalSpace α
inst✝⁵ : TopologicalSpace β
inst✝⁴ : LinearOrder α
inst✝³ : LinearOrder β
inst✝² : OrderTopology α
inst✝¹ : OrderTopology β
t : Set α
x : α
inst✝ : IsCountablyGenerated (𝓝 x)
htx : IsLUB t x
not_mem : ¬x ∈ t
ht : Set.Nonempty t
v : ℕ → α
hvt : ∀ (n : ℕ), v n ∈ t
hvx : Tendsto v atTop (𝓝 x)
hvx' : ∀ {n : ℕ}, v n < x
this : ∀ (k : ℕ), ∀ᶠ (l : ℕ) in atTop, v k < v l
N : ℕ → ℕ
hN : ∀ (k : ℕ), k < N k
hvN : ∀ (k : ℕ), v k < v (N k)
x✝ : ℕ
⊢ v (N^[x✝] 0) < v (N (N^[x✝] 0))
[PROOFSTEP]
exact hvN _
[GOAL]
case intro.intro.refine_2
α : Type u
β : Type v
γ : Type w
inst✝⁶ : TopologicalSpace α
inst✝⁵ : TopologicalSpace β
inst✝⁴ : LinearOrder α
inst✝³ : LinearOrder β
inst✝² : OrderTopology α
inst✝¹ : OrderTopology β
t : Set α
x : α
inst✝ : IsCountablyGenerated (𝓝 x)
htx : IsLUB t x
not_mem : ¬x ∈ t
ht : Set.Nonempty t
v : ℕ → α
hvt : ∀ (n : ℕ), v n ∈ t
hvx : Tendsto v atTop (𝓝 x)
hvx' : ∀ {n : ℕ}, v n < x
this : ∀ (k : ℕ), ∀ᶠ (l : ℕ) in atTop, v k < v l
N : ℕ → ℕ
hN : ∀ (k : ℕ), k < N k
hvN : ∀ (k : ℕ), v k < v (N k)
x✝ : ℕ
⊢ N^[x✝] 0 < N^[x✝ + 1] 0
[PROOFSTEP]
rw [iterate_succ_apply']
[GOAL]
case intro.intro.refine_2
α : Type u
β : Type v
γ : Type w
inst✝⁶ : TopologicalSpace α
inst✝⁵ : TopologicalSpace β
inst✝⁴ : LinearOrder α
inst✝³ : LinearOrder β
inst✝² : OrderTopology α
inst✝¹ : OrderTopology β
t : Set α
x : α
inst✝ : IsCountablyGenerated (𝓝 x)
htx : IsLUB t x
not_mem : ¬x ∈ t
ht : Set.Nonempty t
v : ℕ → α
hvt : ∀ (n : ℕ), v n ∈ t
hvx : Tendsto v atTop (𝓝 x)
hvx' : ∀ {n : ℕ}, v n < x
this : ∀ (k : ℕ), ∀ᶠ (l : ℕ) in atTop, v k < v l
N : ℕ → ℕ
hN : ∀ (k : ℕ), k < N k
hvN : ∀ (k : ℕ), v k < v (N k)
x✝ : ℕ
⊢ N^[x✝] 0 < N (N^[x✝] 0)
[PROOFSTEP]
exact hN _
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁶ : TopologicalSpace α
inst✝⁵ : TopologicalSpace β
inst✝⁴ : LinearOrder α
inst✝³ : LinearOrder β
inst✝² : OrderTopology α
inst✝¹ : OrderTopology β
t : Set α
x : α
inst✝ : IsCountablyGenerated (𝓝 x)
htx : IsLUB t x
ht : Set.Nonempty t
⊢ ∃ u, Monotone u ∧ (∀ (n : ℕ), u n ≤ x) ∧ Tendsto u atTop (𝓝 x) ∧ ∀ (n : ℕ), u n ∈ t
[PROOFSTEP]
by_cases h : x ∈ t
[GOAL]
case pos
α : Type u
β : Type v
γ : Type w
inst✝⁶ : TopologicalSpace α
inst✝⁵ : TopologicalSpace β
inst✝⁴ : LinearOrder α
inst✝³ : LinearOrder β
inst✝² : OrderTopology α
inst✝¹ : OrderTopology β
t : Set α
x : α
inst✝ : IsCountablyGenerated (𝓝 x)
htx : IsLUB t x
ht : Set.Nonempty t
h : x ∈ t
⊢ ∃ u, Monotone u ∧ (∀ (n : ℕ), u n ≤ x) ∧ Tendsto u atTop (𝓝 x) ∧ ∀ (n : ℕ), u n ∈ t
[PROOFSTEP]
exact ⟨fun _ => x, monotone_const, fun n => le_rfl, tendsto_const_nhds, fun _ => h⟩
[GOAL]
case neg
α : Type u
β : Type v
γ : Type w
inst✝⁶ : TopologicalSpace α
inst✝⁵ : TopologicalSpace β
inst✝⁴ : LinearOrder α
inst✝³ : LinearOrder β
inst✝² : OrderTopology α
inst✝¹ : OrderTopology β
t : Set α
x : α
inst✝ : IsCountablyGenerated (𝓝 x)
htx : IsLUB t x
ht : Set.Nonempty t
h : ¬x ∈ t
⊢ ∃ u, Monotone u ∧ (∀ (n : ℕ), u n ≤ x) ∧ Tendsto u atTop (𝓝 x) ∧ ∀ (n : ℕ), u n ∈ t
[PROOFSTEP]
rcases htx.exists_seq_strictMono_tendsto_of_not_mem h ht with ⟨u, hu⟩
[GOAL]
case neg.intro
α : Type u
β : Type v
γ : Type w
inst✝⁶ : TopologicalSpace α
inst✝⁵ : TopologicalSpace β
inst✝⁴ : LinearOrder α
inst✝³ : LinearOrder β
inst✝² : OrderTopology α
inst✝¹ : OrderTopology β
t : Set α
x : α
inst✝ : IsCountablyGenerated (𝓝 x)
htx : IsLUB t x
ht : Set.Nonempty t
h : ¬x ∈ t
u : ℕ → α
hu : StrictMono u ∧ (∀ (n : ℕ), u n < x) ∧ Tendsto u atTop (𝓝 x) ∧ ∀ (n : ℕ), u n ∈ t
⊢ ∃ u, Monotone u ∧ (∀ (n : ℕ), u n ≤ x) ∧ Tendsto u atTop (𝓝 x) ∧ ∀ (n : ℕ), u n ∈ t
[PROOFSTEP]
exact ⟨u, hu.1.monotone, fun n => (hu.2.1 n).le, hu.2.2⟩
[GOAL]
α✝ : Type u
β : Type v
γ : Type w
inst✝¹⁰ : TopologicalSpace α✝
inst✝⁹ : TopologicalSpace β
inst✝⁸ : LinearOrder α✝
inst✝⁷ : LinearOrder β
inst✝⁶ : OrderTopology α✝
inst✝⁵ : OrderTopology β
α : Type u_1
inst✝⁴ : LinearOrder α
inst✝³ : TopologicalSpace α
inst✝² : DenselyOrdered α
inst✝¹ : OrderTopology α
inst✝ : FirstCountableTopology α
x y : α
hy : y < x
⊢ ∃ u, StrictMono u ∧ (∀ (n : ℕ), u n ∈ Ioo y x) ∧ Tendsto u atTop (𝓝 x)
[PROOFSTEP]
have hx : x ∉ Ioo y x := fun h => (lt_irrefl x h.2).elim
[GOAL]
α✝ : Type u
β : Type v
γ : Type w
inst✝¹⁰ : TopologicalSpace α✝
inst✝⁹ : TopologicalSpace β
inst✝⁸ : LinearOrder α✝
inst✝⁷ : LinearOrder β
inst✝⁶ : OrderTopology α✝
inst✝⁵ : OrderTopology β
α : Type u_1
inst✝⁴ : LinearOrder α
inst✝³ : TopologicalSpace α
inst✝² : DenselyOrdered α
inst✝¹ : OrderTopology α
inst✝ : FirstCountableTopology α
x y : α
hy : y < x
hx : ¬x ∈ Ioo y x
⊢ ∃ u, StrictMono u ∧ (∀ (n : ℕ), u n ∈ Ioo y x) ∧ Tendsto u atTop (𝓝 x)
[PROOFSTEP]
have ht : Set.Nonempty (Ioo y x) := nonempty_Ioo.2 hy
[GOAL]
α✝ : Type u
β : Type v
γ : Type w
inst✝¹⁰ : TopologicalSpace α✝
inst✝⁹ : TopologicalSpace β
inst✝⁸ : LinearOrder α✝
inst✝⁷ : LinearOrder β
inst✝⁶ : OrderTopology α✝
inst✝⁵ : OrderTopology β
α : Type u_1
inst✝⁴ : LinearOrder α
inst✝³ : TopologicalSpace α
inst✝² : DenselyOrdered α
inst✝¹ : OrderTopology α
inst✝ : FirstCountableTopology α
x y : α
hy : y < x
hx : ¬x ∈ Ioo y x
ht : Set.Nonempty (Ioo y x)
⊢ ∃ u, StrictMono u ∧ (∀ (n : ℕ), u n ∈ Ioo y x) ∧ Tendsto u atTop (𝓝 x)
[PROOFSTEP]
rcases(isLUB_Ioo hy).exists_seq_strictMono_tendsto_of_not_mem hx ht with ⟨u, hu⟩
[GOAL]
case intro
α✝ : Type u
β : Type v
γ : Type w
inst✝¹⁰ : TopologicalSpace α✝
inst✝⁹ : TopologicalSpace β
inst✝⁸ : LinearOrder α✝
inst✝⁷ : LinearOrder β
inst✝⁶ : OrderTopology α✝
inst✝⁵ : OrderTopology β
α : Type u_1
inst✝⁴ : LinearOrder α
inst✝³ : TopologicalSpace α
inst✝² : DenselyOrdered α
inst✝¹ : OrderTopology α
inst✝ : FirstCountableTopology α
x y : α
hy : y < x
hx : ¬x ∈ Ioo y x
ht : Set.Nonempty (Ioo y x)
u : ℕ → α
hu : StrictMono u ∧ (∀ (n : ℕ), u n < x) ∧ Tendsto u atTop (𝓝 x) ∧ ∀ (n : ℕ), u n ∈ Ioo y x
⊢ ∃ u, StrictMono u ∧ (∀ (n : ℕ), u n ∈ Ioo y x) ∧ Tendsto u atTop (𝓝 x)
[PROOFSTEP]
exact ⟨u, hu.1, hu.2.2.symm⟩
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁸ : TopologicalSpace α
inst✝⁷ : TopologicalSpace β
inst✝⁶ : LinearOrder α
inst✝⁵ : LinearOrder β
inst✝⁴ : OrderTopology α
inst✝³ : OrderTopology β
inst✝² : DenselyOrdered α
inst✝¹ : NoMinOrder α
inst✝ : FirstCountableTopology α
x : α
⊢ ∃ u, StrictMono u ∧ (∀ (n : ℕ), u n < x) ∧ Tendsto u atTop (𝓝 x)
[PROOFSTEP]
obtain ⟨y, hy⟩ : ∃ y, y < x := exists_lt x
[GOAL]
case intro
α : Type u
β : Type v
γ : Type w
inst✝⁸ : TopologicalSpace α
inst✝⁷ : TopologicalSpace β
inst✝⁶ : LinearOrder α
inst✝⁵ : LinearOrder β
inst✝⁴ : OrderTopology α
inst✝³ : OrderTopology β
inst✝² : DenselyOrdered α
inst✝¹ : NoMinOrder α
inst✝ : FirstCountableTopology α
x y : α
hy : y < x
⊢ ∃ u, StrictMono u ∧ (∀ (n : ℕ), u n < x) ∧ Tendsto u atTop (𝓝 x)
[PROOFSTEP]
rcases exists_seq_strictMono_tendsto' hy with ⟨u, hu_mono, hu_mem, hux⟩
[GOAL]
case intro.intro.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝⁸ : TopologicalSpace α
inst✝⁷ : TopologicalSpace β
inst✝⁶ : LinearOrder α
inst✝⁵ : LinearOrder β
inst✝⁴ : OrderTopology α
inst✝³ : OrderTopology β
inst✝² : DenselyOrdered α
inst✝¹ : NoMinOrder α
inst✝ : FirstCountableTopology α
x y : α
hy : y < x
u : ℕ → α
hu_mono : StrictMono u
hu_mem : ∀ (n : ℕ), u n ∈ Ioo y x
hux : Tendsto u atTop (𝓝 x)
⊢ ∃ u, StrictMono u ∧ (∀ (n : ℕ), u n < x) ∧ Tendsto u atTop (𝓝 x)
[PROOFSTEP]
exact ⟨u, hu_mono, fun n => (hu_mem n).2, hux⟩
[GOAL]
α✝ : Type u
β : Type v
γ : Type w
inst✝⁹ : TopologicalSpace α✝
inst✝⁸ : TopologicalSpace β
inst✝⁷ : LinearOrder α✝
inst✝⁶ : LinearOrder β
inst✝⁵ : OrderTopology α✝
inst✝⁴ : OrderTopology β
α : Type u_1
inst✝³ : ConditionallyCompleteLinearOrder α
inst✝² : TopologicalSpace α
inst✝¹ : OrderTopology α
inst✝ : FirstCountableTopology α
S : Set α
hS : Set.Nonempty S
hS' : BddAbove S
⊢ ∃ u, Monotone u ∧ Tendsto u atTop (𝓝 (sSup S)) ∧ ∀ (n : ℕ), u n ∈ S
[PROOFSTEP]
rcases(isLUB_csSup hS hS').exists_seq_monotone_tendsto hS with ⟨u, hu⟩
[GOAL]
case intro
α✝ : Type u
β : Type v
γ : Type w
inst✝⁹ : TopologicalSpace α✝
inst✝⁸ : TopologicalSpace β
inst✝⁷ : LinearOrder α✝
inst✝⁶ : LinearOrder β
inst✝⁵ : OrderTopology α✝
inst✝⁴ : OrderTopology β
α : Type u_1
inst✝³ : ConditionallyCompleteLinearOrder α
inst✝² : TopologicalSpace α
inst✝¹ : OrderTopology α
inst✝ : FirstCountableTopology α
S : Set α
hS : Set.Nonempty S
hS' : BddAbove S
u : ℕ → α
hu : Monotone u ∧ (∀ (n : ℕ), u n ≤ sSup S) ∧ Tendsto u atTop (𝓝 (sSup S)) ∧ ∀ (n : ℕ), u n ∈ S
⊢ ∃ u, Monotone u ∧ Tendsto u atTop (𝓝 (sSup S)) ∧ ∀ (n : ℕ), u n ∈ S
[PROOFSTEP]
exact ⟨u, hu.1, hu.2.2⟩
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁷ : TopologicalSpace α
inst✝⁶ : TopologicalSpace β
inst✝⁵ : LinearOrder α
inst✝⁴ : LinearOrder β
inst✝³ : OrderTopology α
inst✝² : OrderTopology β
inst✝¹ : DenselyOrdered α
inst✝ : FirstCountableTopology α
x y : α
hy : x < y
⊢ ∃ u, StrictAnti u ∧ (∀ (n : ℕ), u n ∈ Ioo x y) ∧ Tendsto u atTop (𝓝 x)
[PROOFSTEP]
simpa only [dual_Ioo] using exists_seq_strictMono_tendsto' (α := αᵒᵈ) (OrderDual.toDual_lt_toDual.2 hy)
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁷ : TopologicalSpace α
inst✝⁶ : TopologicalSpace β
inst✝⁵ : LinearOrder α
inst✝⁴ : LinearOrder β
inst✝³ : OrderTopology α
inst✝² : OrderTopology β
inst✝¹ : DenselyOrdered α
inst✝ : FirstCountableTopology α
x y : α
h : x < y
⊢ ∃ u v,
    StrictAnti u ∧
      StrictMono v ∧
        (∀ (k : ℕ), u k ∈ Ioo x y) ∧
          (∀ (l : ℕ), v l ∈ Ioo x y) ∧ (∀ (k l : ℕ), u k < v l) ∧ Tendsto u atTop (𝓝 x) ∧ Tendsto v atTop (𝓝 y)
[PROOFSTEP]
rcases exists_seq_strictAnti_tendsto' h with ⟨u, hu_anti, hu_mem, hux⟩
[GOAL]
case intro.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝⁷ : TopologicalSpace α
inst✝⁶ : TopologicalSpace β
inst✝⁵ : LinearOrder α
inst✝⁴ : LinearOrder β
inst✝³ : OrderTopology α
inst✝² : OrderTopology β
inst✝¹ : DenselyOrdered α
inst✝ : FirstCountableTopology α
x y : α
h : x < y
u : ℕ → α
hu_anti : StrictAnti u
hu_mem : ∀ (n : ℕ), u n ∈ Ioo x y
hux : Tendsto u atTop (𝓝 x)
⊢ ∃ u v,
    StrictAnti u ∧
      StrictMono v ∧
        (∀ (k : ℕ), u k ∈ Ioo x y) ∧
          (∀ (l : ℕ), v l ∈ Ioo x y) ∧ (∀ (k l : ℕ), u k < v l) ∧ Tendsto u atTop (𝓝 x) ∧ Tendsto v atTop (𝓝 y)
[PROOFSTEP]
rcases exists_seq_strictMono_tendsto' (hu_mem 0).2 with ⟨v, hv_mono, hv_mem, hvy⟩
[GOAL]
case intro.intro.intro.intro.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝⁷ : TopologicalSpace α
inst✝⁶ : TopologicalSpace β
inst✝⁵ : LinearOrder α
inst✝⁴ : LinearOrder β
inst✝³ : OrderTopology α
inst✝² : OrderTopology β
inst✝¹ : DenselyOrdered α
inst✝ : FirstCountableTopology α
x y : α
h : x < y
u : ℕ → α
hu_anti : StrictAnti u
hu_mem : ∀ (n : ℕ), u n ∈ Ioo x y
hux : Tendsto u atTop (𝓝 x)
v : ℕ → α
hv_mono : StrictMono v
hv_mem : ∀ (n : ℕ), v n ∈ Ioo (u 0) y
hvy : Tendsto v atTop (𝓝 y)
⊢ ∃ u v,
    StrictAnti u ∧
      StrictMono v ∧
        (∀ (k : ℕ), u k ∈ Ioo x y) ∧
          (∀ (l : ℕ), v l ∈ Ioo x y) ∧ (∀ (k l : ℕ), u k < v l) ∧ Tendsto u atTop (𝓝 x) ∧ Tendsto v atTop (𝓝 y)
[PROOFSTEP]
exact
  ⟨u, v, hu_anti, hv_mono, hu_mem, fun l => ⟨(hu_mem 0).1.trans (hv_mem l).1, (hv_mem l).2⟩, fun k l =>
    (hu_anti.antitone (zero_le k)).trans_lt (hv_mem l).1, hux, hvy⟩
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b : α
s : Set α
a : α
h : Set.Nonempty (Ioi a)
⊢ closure (Ioi a) = Ici a
[PROOFSTEP]
apply Subset.antisymm
[GOAL]
case h₁
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b : α
s : Set α
a : α
h : Set.Nonempty (Ioi a)
⊢ closure (Ioi a) ⊆ Ici a
[PROOFSTEP]
exact closure_minimal Ioi_subset_Ici_self isClosed_Ici
[GOAL]
case h₂
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b : α
s : Set α
a : α
h : Set.Nonempty (Ioi a)
⊢ Ici a ⊆ closure (Ioi a)
[PROOFSTEP]
rw [← diff_subset_closure_iff, Ici_diff_Ioi_same, singleton_subset_iff]
[GOAL]
case h₂
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b : α
s : Set α
a : α
h : Set.Nonempty (Ioi a)
⊢ a ∈ closure (Ioi a)
[PROOFSTEP]
exact isGLB_Ioi.mem_closure h
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b✝ : α
s : Set α
a b : α
hab : a ≠ b
⊢ closure (Ioo a b) = Icc a b
[PROOFSTEP]
apply Subset.antisymm
[GOAL]
case h₁
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b✝ : α
s : Set α
a b : α
hab : a ≠ b
⊢ closure (Ioo a b) ⊆ Icc a b
[PROOFSTEP]
exact closure_minimal Ioo_subset_Icc_self isClosed_Icc
[GOAL]
case h₂
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b✝ : α
s : Set α
a b : α
hab : a ≠ b
⊢ Icc a b ⊆ closure (Ioo a b)
[PROOFSTEP]
cases' hab.lt_or_lt with hab hab
[GOAL]
case h₂.inl
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b✝ : α
s : Set α
a b : α
hab✝ : a ≠ b
hab : a < b
⊢ Icc a b ⊆ closure (Ioo a b)
[PROOFSTEP]
rw [← diff_subset_closure_iff, Icc_diff_Ioo_same hab.le]
[GOAL]
case h₂.inl
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b✝ : α
s : Set α
a b : α
hab✝ : a ≠ b
hab : a < b
⊢ {a, b} ⊆ closure (Ioo a b)
[PROOFSTEP]
have hab' : (Ioo a b).Nonempty := nonempty_Ioo.2 hab
[GOAL]
case h₂.inl
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b✝ : α
s : Set α
a b : α
hab✝ : a ≠ b
hab : a < b
hab' : Set.Nonempty (Ioo a b)
⊢ {a, b} ⊆ closure (Ioo a b)
[PROOFSTEP]
simp only [insert_subset_iff, singleton_subset_iff]
[GOAL]
case h₂.inl
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b✝ : α
s : Set α
a b : α
hab✝ : a ≠ b
hab : a < b
hab' : Set.Nonempty (Ioo a b)
⊢ a ∈ closure (Ioo a b) ∧ b ∈ closure (Ioo a b)
[PROOFSTEP]
exact ⟨(isGLB_Ioo hab).mem_closure hab', (isLUB_Ioo hab).mem_closure hab'⟩
[GOAL]
case h₂.inr
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b✝ : α
s : Set α
a b : α
hab✝ : a ≠ b
hab : b < a
⊢ Icc a b ⊆ closure (Ioo a b)
[PROOFSTEP]
rw [Icc_eq_empty_of_lt hab]
[GOAL]
case h₂.inr
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b✝ : α
s : Set α
a b : α
hab✝ : a ≠ b
hab : b < a
⊢ ∅ ⊆ closure (Ioo a b)
[PROOFSTEP]
exact empty_subset _
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b✝ : α
s : Set α
a b : α
hab : a ≠ b
⊢ closure (Ioc a b) = Icc a b
[PROOFSTEP]
apply Subset.antisymm
[GOAL]
case h₁
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b✝ : α
s : Set α
a b : α
hab : a ≠ b
⊢ closure (Ioc a b) ⊆ Icc a b
[PROOFSTEP]
exact closure_minimal Ioc_subset_Icc_self isClosed_Icc
[GOAL]
case h₂
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b✝ : α
s : Set α
a b : α
hab : a ≠ b
⊢ Icc a b ⊆ closure (Ioc a b)
[PROOFSTEP]
apply Subset.trans _ (closure_mono Ioo_subset_Ioc_self)
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b✝ : α
s : Set α
a b : α
hab : a ≠ b
⊢ Icc a b ⊆ closure (Ioo a b)
[PROOFSTEP]
rw [closure_Ioo hab]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b✝ : α
s : Set α
a b : α
hab : a ≠ b
⊢ closure (Ico a b) = Icc a b
[PROOFSTEP]
apply Subset.antisymm
[GOAL]
case h₁
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b✝ : α
s : Set α
a b : α
hab : a ≠ b
⊢ closure (Ico a b) ⊆ Icc a b
[PROOFSTEP]
exact closure_minimal Ico_subset_Icc_self isClosed_Icc
[GOAL]
case h₂
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b✝ : α
s : Set α
a b : α
hab : a ≠ b
⊢ Icc a b ⊆ closure (Ico a b)
[PROOFSTEP]
apply Subset.trans _ (closure_mono Ioo_subset_Ico_self)
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b✝ : α
s : Set α
a b : α
hab : a ≠ b
⊢ Icc a b ⊆ closure (Ioo a b)
[PROOFSTEP]
rw [closure_Ioo hab]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b : α
s : Set α
a : α
ha : Set.Nonempty (Iio a)
⊢ interior (Ici a) = Ioi a
[PROOFSTEP]
rw [← compl_Iio, interior_compl, closure_Iio' ha, compl_Iic]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁵ : TopologicalSpace α
inst✝⁴ : LinearOrder α
inst✝³ : OrderTopology α
inst✝² : DenselyOrdered α
a✝ b✝ : α
s : Set α
inst✝¹ : NoMinOrder α
inst✝ : NoMaxOrder α
a b : α
⊢ interior (Icc a b) = Ioo a b
[PROOFSTEP]
rw [← Ici_inter_Iic, interior_inter, interior_Ici, interior_Iic, Ioi_inter_Iio]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : DenselyOrdered α
a✝ b✝ : α
s : Set α
inst✝ : NoMinOrder α
a b : α
⊢ interior (Ico a b) = Ioo a b
[PROOFSTEP]
rw [← Ici_inter_Iio, interior_inter, interior_Ici, interior_Iio, Ioi_inter_Iio]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : DenselyOrdered α
a✝ b✝ : α
s : Set α
inst✝ : NoMaxOrder α
a b : α
⊢ interior (Ioc a b) = Ioo a b
[PROOFSTEP]
rw [← Ioi_inter_Iic, interior_inter, interior_Ioi, interior_Iic, Ioi_inter_Iio]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b✝ : α
s : Set α
a b : α
⊢ Ioc a b ⊆ closure (interior (Ioc a b))
[PROOFSTEP]
rcases eq_or_ne a b with (rfl | h)
[GOAL]
case inl
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b : α
s : Set α
a : α
⊢ Ioc a a ⊆ closure (interior (Ioc a a))
[PROOFSTEP]
simp
[GOAL]
case inr
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b✝ : α
s : Set α
a b : α
h : a ≠ b
⊢ Ioc a b ⊆ closure (interior (Ioc a b))
[PROOFSTEP]
calc
  Ioc a b ⊆ Icc a b := Ioc_subset_Icc_self
  _ = closure (Ioo a b) := (closure_Ioo h).symm
  _ ⊆ closure (interior (Ioc a b)) := closure_mono (interior_maximal Ioo_subset_Ioc_self isOpen_Ioo)
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b✝ : α
s : Set α
a b : α
⊢ Ico a b ⊆ closure (interior (Ico a b))
[PROOFSTEP]
simpa only [dual_Ioc] using Ioc_subset_closure_interior (OrderDual.toDual b) (OrderDual.toDual a)
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b : α
s : Set α
a : α
ha : Set.Nonempty (Iio a)
⊢ frontier (Ici a) = {a}
[PROOFSTEP]
simp [frontier, ha]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b : α
s : Set α
a : α
ha : Set.Nonempty (Ioi a)
⊢ frontier (Iic a) = {a}
[PROOFSTEP]
simp [frontier, ha]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b : α
s : Set α
a : α
ha : Set.Nonempty (Ioi a)
⊢ frontier (Ioi a) = {a}
[PROOFSTEP]
simp [frontier, closure_Ioi' ha, Iic_diff_Iio, Icc_self]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b : α
s : Set α
a : α
ha : Set.Nonempty (Iio a)
⊢ frontier (Iio a) = {a}
[PROOFSTEP]
simp [frontier, closure_Iio' ha, Iic_diff_Iio, Icc_self]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁵ : TopologicalSpace α
inst✝⁴ : LinearOrder α
inst✝³ : OrderTopology α
inst✝² : DenselyOrdered α
a✝ b✝ : α
s : Set α
inst✝¹ : NoMinOrder α
inst✝ : NoMaxOrder α
a b : α
h : a ≤ b
⊢ frontier (Icc a b) = {a, b}
[PROOFSTEP]
simp [frontier, h, Icc_diff_Ioo_same]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b✝ : α
s : Set α
a b : α
h : a < b
⊢ frontier (Ioo a b) = {a, b}
[PROOFSTEP]
rw [frontier, closure_Ioo h.ne, interior_Ioo, Icc_diff_Ioo_same h.le]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : DenselyOrdered α
a✝ b✝ : α
s : Set α
inst✝ : NoMinOrder α
a b : α
h : a < b
⊢ frontier (Ico a b) = {a, b}
[PROOFSTEP]
rw [frontier, closure_Ico h.ne, interior_Ico, Icc_diff_Ioo_same h.le]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : DenselyOrdered α
a✝ b✝ : α
s : Set α
inst✝ : NoMaxOrder α
a b : α
h : a < b
⊢ frontier (Ioc a b) = {a, b}
[PROOFSTEP]
rw [frontier, closure_Ioc h.ne, interior_Ioc, Icc_diff_Ioo_same h.le]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b✝ : α
s : Set α
a b : α
H₁ : Set.Nonempty (Ioi a)
H₂ : a ≤ b
⊢ b ∈ closure (Ioi a)
[PROOFSTEP]
rwa [closure_Ioi' H₁]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : DenselyOrdered α
a✝ b : α
s : Set α
inst✝ : NoMaxOrder α
a : α
p : α → Prop
h : ∀ᶠ (x : α) in 𝓝 a, p x
⊢ ∃ b, b > a ∧ p b
[PROOFSTEP]
simpa only [exists_prop, gt_iff_lt, and_comm] using
  ((h.filter_mono (@nhdsWithin_le_nhds _ _ a (Ioi a))).and self_mem_nhdsWithin).exists
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a b✝ : α
s : Set α
b c : α
H₁ : Set.Nonempty (Iio c)
H₂ : b ≤ c
⊢ b ∈ closure (Iio c)
[PROOFSTEP]
rwa [closure_Iio' H₁]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a b : α
s : Set α
hb : s ⊆ Iio b
hs : Set.Nonempty s → ∃ a, a < b ∧ Ioo a b ⊆ s
⊢ comap Subtype.val (𝓝[Iio b] b) = atTop
[PROOFSTEP]
nontriviality
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a b : α
s : Set α
hb : s ⊆ Iio b
hs : Set.Nonempty s → ∃ a, a < b ∧ Ioo a b ⊆ s
✝ : Nontrivial (Filter { x // x ∈ s })
⊢ comap Subtype.val (𝓝[Iio b] b) = atTop
[PROOFSTEP]
haveI : Nonempty s := nontrivial_iff_nonempty.1 ‹_›
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a b : α
s : Set α
hb : s ⊆ Iio b
hs : Set.Nonempty s → ∃ a, a < b ∧ Ioo a b ⊆ s
✝ : Nontrivial (Filter { x // x ∈ s })
this : Nonempty ↑s
⊢ comap Subtype.val (𝓝[Iio b] b) = atTop
[PROOFSTEP]
rcases hs (nonempty_subtype.1 ‹_›) with ⟨a, h, hs⟩
[GOAL]
case intro.intro
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b : α
s : Set α
hb : s ⊆ Iio b
hs✝ : Set.Nonempty s → ∃ a, a < b ∧ Ioo a b ⊆ s
✝ : Nontrivial (Filter { x // x ∈ s })
this : Nonempty ↑s
a : α
h : a < b
hs : Ioo a b ⊆ s
⊢ comap Subtype.val (𝓝[Iio b] b) = atTop
[PROOFSTEP]
ext u
[GOAL]
case intro.intro.a
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b : α
s : Set α
hb : s ⊆ Iio b
hs✝ : Set.Nonempty s → ∃ a, a < b ∧ Ioo a b ⊆ s
✝ : Nontrivial (Filter { x // x ∈ s })
this : Nonempty ↑s
a : α
h : a < b
hs : Ioo a b ⊆ s
u : Set { x // x ∈ s }
⊢ u ∈ comap Subtype.val (𝓝[Iio b] b) ↔ u ∈ atTop
[PROOFSTEP]
constructor
[GOAL]
case intro.intro.a.mp
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b : α
s : Set α
hb : s ⊆ Iio b
hs✝ : Set.Nonempty s → ∃ a, a < b ∧ Ioo a b ⊆ s
✝ : Nontrivial (Filter { x // x ∈ s })
this : Nonempty ↑s
a : α
h : a < b
hs : Ioo a b ⊆ s
u : Set { x // x ∈ s }
⊢ u ∈ comap Subtype.val (𝓝[Iio b] b) → u ∈ atTop
[PROOFSTEP]
rintro ⟨t, ht, hts⟩
[GOAL]
case intro.intro.a.mp.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b : α
s : Set α
hb : s ⊆ Iio b
hs✝ : Set.Nonempty s → ∃ a, a < b ∧ Ioo a b ⊆ s
✝ : Nontrivial (Filter { x // x ∈ s })
this : Nonempty ↑s
a : α
h : a < b
hs : Ioo a b ⊆ s
u : Set { x // x ∈ s }
t : Set α
ht : t ∈ 𝓝[Iio b] b
hts : Subtype.val ⁻¹' t ⊆ u
⊢ u ∈ atTop
[PROOFSTEP]
obtain ⟨x, ⟨hxa : a ≤ x, hxb : x < b⟩, hxt : Ioo x b ⊆ t⟩ := (mem_nhdsWithin_Iio_iff_exists_mem_Ico_Ioo_subset h).mp ht
[GOAL]
case intro.intro.a.mp.intro.intro.intro.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b : α
s : Set α
hb : s ⊆ Iio b
hs✝ : Set.Nonempty s → ∃ a, a < b ∧ Ioo a b ⊆ s
✝ : Nontrivial (Filter { x // x ∈ s })
this : Nonempty ↑s
a : α
h : a < b
hs : Ioo a b ⊆ s
u : Set { x // x ∈ s }
t : Set α
ht : t ∈ 𝓝[Iio b] b
hts : Subtype.val ⁻¹' t ⊆ u
x : α
hxt : Ioo x b ⊆ t
hxa : a ≤ x
hxb : x < b
⊢ u ∈ atTop
[PROOFSTEP]
obtain ⟨y, hxy, hyb⟩ := exists_between hxb
[GOAL]
case intro.intro.a.mp.intro.intro.intro.intro.intro.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b : α
s : Set α
hb : s ⊆ Iio b
hs✝ : Set.Nonempty s → ∃ a, a < b ∧ Ioo a b ⊆ s
✝ : Nontrivial (Filter { x // x ∈ s })
this : Nonempty ↑s
a : α
h : a < b
hs : Ioo a b ⊆ s
u : Set { x // x ∈ s }
t : Set α
ht : t ∈ 𝓝[Iio b] b
hts : Subtype.val ⁻¹' t ⊆ u
x : α
hxt : Ioo x b ⊆ t
hxa : a ≤ x
hxb : x < b
y : α
hxy : x < y
hyb : y < b
⊢ u ∈ atTop
[PROOFSTEP]
refine' mem_of_superset (mem_atTop ⟨y, hs ⟨hxa.trans_lt hxy, hyb⟩⟩) _
[GOAL]
case intro.intro.a.mp.intro.intro.intro.intro.intro.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b : α
s : Set α
hb : s ⊆ Iio b
hs✝ : Set.Nonempty s → ∃ a, a < b ∧ Ioo a b ⊆ s
✝ : Nontrivial (Filter { x // x ∈ s })
this : Nonempty ↑s
a : α
h : a < b
hs : Ioo a b ⊆ s
u : Set { x // x ∈ s }
t : Set α
ht : t ∈ 𝓝[Iio b] b
hts : Subtype.val ⁻¹' t ⊆ u
x : α
hxt : Ioo x b ⊆ t
hxa : a ≤ x
hxb : x < b
y : α
hxy : x < y
hyb : y < b
⊢ {b_1 | { val := y, property := (_ : y ∈ s) } ≤ b_1} ⊆ u
[PROOFSTEP]
rintro ⟨z, hzs⟩ (hyz : y ≤ z)
[GOAL]
case intro.intro.a.mp.intro.intro.intro.intro.intro.intro.intro.mk
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b : α
s : Set α
hb : s ⊆ Iio b
hs✝ : Set.Nonempty s → ∃ a, a < b ∧ Ioo a b ⊆ s
✝ : Nontrivial (Filter { x // x ∈ s })
this : Nonempty ↑s
a : α
h : a < b
hs : Ioo a b ⊆ s
u : Set { x // x ∈ s }
t : Set α
ht : t ∈ 𝓝[Iio b] b
hts : Subtype.val ⁻¹' t ⊆ u
x : α
hxt : Ioo x b ⊆ t
hxa : a ≤ x
hxb : x < b
y : α
hxy : x < y
hyb : y < b
z : α
hzs : z ∈ s
hyz : y ≤ z
⊢ { val := z, property := hzs } ∈ u
[PROOFSTEP]
exact hts (hxt ⟨hxy.trans_le hyz, hb hzs⟩)
[GOAL]
case intro.intro.a.mpr
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b : α
s : Set α
hb : s ⊆ Iio b
hs✝ : Set.Nonempty s → ∃ a, a < b ∧ Ioo a b ⊆ s
✝ : Nontrivial (Filter { x // x ∈ s })
this : Nonempty ↑s
a : α
h : a < b
hs : Ioo a b ⊆ s
u : Set { x // x ∈ s }
⊢ u ∈ atTop → u ∈ comap Subtype.val (𝓝[Iio b] b)
[PROOFSTEP]
intro hu
[GOAL]
case intro.intro.a.mpr
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b : α
s : Set α
hb : s ⊆ Iio b
hs✝ : Set.Nonempty s → ∃ a, a < b ∧ Ioo a b ⊆ s
✝ : Nontrivial (Filter { x // x ∈ s })
this : Nonempty ↑s
a : α
h : a < b
hs : Ioo a b ⊆ s
u : Set { x // x ∈ s }
hu : u ∈ atTop
⊢ u ∈ comap Subtype.val (𝓝[Iio b] b)
[PROOFSTEP]
obtain ⟨x : s, hx : ∀ z, x ≤ z → z ∈ u⟩ := mem_atTop_sets.1 hu
[GOAL]
case intro.intro.a.mpr.intro
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b : α
s : Set α
hb : s ⊆ Iio b
hs✝ : Set.Nonempty s → ∃ a, a < b ∧ Ioo a b ⊆ s
✝ : Nontrivial (Filter { x // x ∈ s })
this : Nonempty ↑s
a : α
h : a < b
hs : Ioo a b ⊆ s
u : Set { x // x ∈ s }
hu : u ∈ atTop
x : ↑s
hx : ∀ (z : ↑s), x ≤ z → z ∈ u
⊢ u ∈ comap Subtype.val (𝓝[Iio b] b)
[PROOFSTEP]
exact ⟨Ioo x b, Ioo_mem_nhdsWithin_Iio' (hb x.2), fun z hz => hx _ hz.1.le⟩
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a b : α
s : Set α
ha : s ⊆ Ioi a
hs : Set.Nonempty s → ∃ b, b > a ∧ Ioo a b ⊆ s
h : Set.Nonempty (↑ofDual ⁻¹' s)
⊢ ∃ a_1, a_1 < ↑toDual a ∧ Ioo a_1 (↑toDual a) ⊆ ↑ofDual ⁻¹' s
[PROOFSTEP]
simpa only [OrderDual.exists, dual_Ioo] using hs h
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a b : α
s : Set α
hb : s ⊆ Iio b
hs : ∀ (a' : α), a' < b → ∃ a, a < b ∧ Ioo a b ⊆ s
⊢ map Subtype.val atTop = 𝓝[Iio b] b
[PROOFSTEP]
rcases eq_empty_or_nonempty (Iio b) with (hb' | ⟨a, ha⟩)
[GOAL]
case inl
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a b : α
s : Set α
hb : s ⊆ Iio b
hs : ∀ (a' : α), a' < b → ∃ a, a < b ∧ Ioo a b ⊆ s
hb' : Iio b = ∅
⊢ map Subtype.val atTop = 𝓝[Iio b] b
[PROOFSTEP]
have : IsEmpty s := ⟨fun x => hb'.subset (hb x.2)⟩
[GOAL]
case inl
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a b : α
s : Set α
hb : s ⊆ Iio b
hs : ∀ (a' : α), a' < b → ∃ a, a < b ∧ Ioo a b ⊆ s
hb' : Iio b = ∅
this : IsEmpty ↑s
⊢ map Subtype.val atTop = 𝓝[Iio b] b
[PROOFSTEP]
rw [filter_eq_bot_of_isEmpty atTop, Filter.map_bot, hb', nhdsWithin_empty]
[GOAL]
case inr.intro
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b : α
s : Set α
hb : s ⊆ Iio b
hs : ∀ (a' : α), a' < b → ∃ a, a < b ∧ Ioo a b ⊆ s
a : α
ha : a ∈ Iio b
⊢ map Subtype.val atTop = 𝓝[Iio b] b
[PROOFSTEP]
rw [← comap_coe_nhdsWithin_Iio_of_Ioo_subset hb fun _ => hs a ha, map_comap_of_mem]
[GOAL]
case inr.intro
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b : α
s : Set α
hb : s ⊆ Iio b
hs : ∀ (a' : α), a' < b → ∃ a, a < b ∧ Ioo a b ⊆ s
a : α
ha : a ∈ Iio b
⊢ range Subtype.val ∈ 𝓝[Iio b] b
[PROOFSTEP]
rw [Subtype.range_val]
[GOAL]
case inr.intro
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a✝ b : α
s : Set α
hb : s ⊆ Iio b
hs : ∀ (a' : α), a' < b → ∃ a, a < b ∧ Ioo a b ⊆ s
a : α
ha : a ∈ Iio b
⊢ s ∈ 𝓝[Iio b] b
[PROOFSTEP]
exact (mem_nhdsWithin_Iio_iff_exists_Ioo_subset' ha).2 (hs a ha)
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a b : α
s : Set α
ha : s ⊆ Ioi a
hs : ∀ (b' : α), b' > a → ∃ b, b > a ∧ Ioo a b ⊆ s
⊢ map Subtype.val atBot = 𝓝[Ioi a] a
[PROOFSTEP]
refine' (map_coe_atTop_of_Ioo_subset (show ofDual ⁻¹' s ⊆ Iio (toDual a) from ha) fun b' hb' => _ : _)
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a b : α
s : Set α
ha : s ⊆ Ioi a
hs : ∀ (b' : α), b' > a → ∃ b, b > a ∧ Ioo a b ⊆ s
b' : αᵒᵈ
hb' : b' < ↑toDual a
⊢ ∃ a_1, a_1 < ↑toDual a ∧ Ioo a_1 (↑toDual a) ⊆ ↑ofDual ⁻¹' s
[PROOFSTEP]
simpa only [OrderDual.exists, dual_Ioo] using hs b' hb'
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a b : α
s : Set α
l : Filter β
f : α → β
h : a < b
⊢ Tendsto (fun x => f ↑x) atTop l ↔ Tendsto f (𝓝[Iio b] b) l
[PROOFSTEP]
rw [← map_coe_Ioo_atTop h, tendsto_map'_iff]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a b : α
s : Set α
l : Filter β
f : α → β
h : a < b
⊢ Tendsto (fun x => f ↑x) atTop l ↔ Tendsto (f ∘ Subtype.val) atTop l
[PROOFSTEP]
rfl
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a b : α
s : Set α
l : Filter β
f : α → β
h : a < b
⊢ Tendsto (fun x => f ↑x) atBot l ↔ Tendsto f (𝓝[Ioi a] a) l
[PROOFSTEP]
rw [← map_coe_Ioo_atBot h, tendsto_map'_iff]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a b : α
s : Set α
l : Filter β
f : α → β
h : a < b
⊢ Tendsto (fun x => f ↑x) atBot l ↔ Tendsto (f ∘ Subtype.val) atBot l
[PROOFSTEP]
rfl
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a b : α
s : Set α
l : Filter β
f : α → β
⊢ Tendsto (fun x => f ↑x) atBot l ↔ Tendsto f (𝓝[Ioi a] a) l
[PROOFSTEP]
rw [← map_coe_Ioi_atBot, tendsto_map'_iff]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a b : α
s : Set α
l : Filter β
f : α → β
⊢ Tendsto (fun x => f ↑x) atBot l ↔ Tendsto (f ∘ Subtype.val) atBot l
[PROOFSTEP]
rfl
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a b : α
s : Set α
l : Filter β
f : α → β
⊢ Tendsto (fun x => f ↑x) atTop l ↔ Tendsto f (𝓝[Iio a] a) l
[PROOFSTEP]
rw [← map_coe_Iio_atTop, tendsto_map'_iff]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a b : α
s : Set α
l : Filter β
f : α → β
⊢ Tendsto (fun x => f ↑x) atTop l ↔ Tendsto (f ∘ Subtype.val) atTop l
[PROOFSTEP]
rfl
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a b : α
s : Set α
l : Filter β
f✝ : α → β
f : β → ↑(Ioo a b)
⊢ Tendsto f l atTop ↔ Tendsto (fun x => ↑(f x)) l (𝓝[Iio b] b)
[PROOFSTEP]
rw [← comap_coe_Ioo_nhdsWithin_Iio, tendsto_comap_iff]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a b : α
s : Set α
l : Filter β
f✝ : α → β
f : β → ↑(Ioo a b)
⊢ Tendsto (Subtype.val ∘ f) l (𝓝[Iio b] b) ↔ Tendsto (fun x => ↑(f x)) l (𝓝[Iio b] b)
[PROOFSTEP]
rfl
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a b : α
s : Set α
l : Filter β
f✝ : α → β
f : β → ↑(Ioo a b)
⊢ Tendsto f l atBot ↔ Tendsto (fun x => ↑(f x)) l (𝓝[Ioi a] a)
[PROOFSTEP]
rw [← comap_coe_Ioo_nhdsWithin_Ioi, tendsto_comap_iff]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a b : α
s : Set α
l : Filter β
f✝ : α → β
f : β → ↑(Ioo a b)
⊢ Tendsto (Subtype.val ∘ f) l (𝓝[Ioi a] a) ↔ Tendsto (fun x => ↑(f x)) l (𝓝[Ioi a] a)
[PROOFSTEP]
rfl
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a b : α
s : Set α
l : Filter β
f✝ : α → β
f : β → ↑(Ioi a)
⊢ Tendsto f l atBot ↔ Tendsto (fun x => ↑(f x)) l (𝓝[Ioi a] a)
[PROOFSTEP]
rw [← comap_coe_Ioi_nhdsWithin_Ioi, tendsto_comap_iff]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a b : α
s : Set α
l : Filter β
f✝ : α → β
f : β → ↑(Ioi a)
⊢ Tendsto (Subtype.val ∘ f) l (𝓝[Ioi a] a) ↔ Tendsto (fun x => ↑(f x)) l (𝓝[Ioi a] a)
[PROOFSTEP]
rfl
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a b : α
s : Set α
l : Filter β
f✝ : α → β
f : β → ↑(Iio a)
⊢ Tendsto f l atTop ↔ Tendsto (fun x => ↑(f x)) l (𝓝[Iio a] a)
[PROOFSTEP]
rw [← comap_coe_Iio_nhdsWithin_Iio, tendsto_comap_iff]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : DenselyOrdered α
a b : α
s : Set α
l : Filter β
f✝ : α → β
f : β → ↑(Iio a)
⊢ Tendsto (Subtype.val ∘ f) l (𝓝[Iio a] a) ↔ Tendsto (fun x => ↑(f x)) l (𝓝[Iio a] a)
[PROOFSTEP]
rfl
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : DenselyOrdered α
a b : α
s : Set α
l : Filter β
f : α → β
x : α
inst✝ : Nontrivial α
⊢ NeBot (𝓝[{x}ᶜ] x)
[PROOFSTEP]
refine forall_mem_nonempty_iff_neBot.1 fun s hs => ?_
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : DenselyOrdered α
a b : α
s✝ : Set α
l : Filter β
f : α → β
x : α
inst✝ : Nontrivial α
s : Set α
hs : s ∈ 𝓝[{x}ᶜ] x
⊢ Set.Nonempty s
[PROOFSTEP]
obtain ⟨u, u_open, xu, us⟩ : ∃ u : Set α, IsOpen u ∧ x ∈ u ∧ u ∩ { x }ᶜ ⊆ s := mem_nhdsWithin.1 hs
[GOAL]
case intro.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : DenselyOrdered α
a b : α
s✝ : Set α
l : Filter β
f : α → β
x : α
inst✝ : Nontrivial α
s : Set α
hs : s ∈ 𝓝[{x}ᶜ] x
u : Set α
u_open : IsOpen u
xu : x ∈ u
us : u ∩ {x}ᶜ ⊆ s
⊢ Set.Nonempty s
[PROOFSTEP]
obtain ⟨a, b, a_lt_b, hab⟩ : ∃ a b : α, a < b ∧ Ioo a b ⊆ u := u_open.exists_Ioo_subset ⟨x, xu⟩
[GOAL]
case intro.intro.intro.intro.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : DenselyOrdered α
a✝ b✝ : α
s✝ : Set α
l : Filter β
f : α → β
x : α
inst✝ : Nontrivial α
s : Set α
hs : s ∈ 𝓝[{x}ᶜ] x
u : Set α
u_open : IsOpen u
xu : x ∈ u
us : u ∩ {x}ᶜ ⊆ s
a b : α
a_lt_b : a < b
hab : Ioo a b ⊆ u
⊢ Set.Nonempty s
[PROOFSTEP]
obtain ⟨y, hy⟩ : ∃ y, a < y ∧ y < b := exists_between a_lt_b
[GOAL]
case intro.intro.intro.intro.intro.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : DenselyOrdered α
a✝ b✝ : α
s✝ : Set α
l : Filter β
f : α → β
x : α
inst✝ : Nontrivial α
s : Set α
hs : s ∈ 𝓝[{x}ᶜ] x
u : Set α
u_open : IsOpen u
xu : x ∈ u
us : u ∩ {x}ᶜ ⊆ s
a b : α
a_lt_b : a < b
hab : Ioo a b ⊆ u
y : α
hy : a < y ∧ y < b
⊢ Set.Nonempty s
[PROOFSTEP]
rcases ne_or_eq x y with (xy | rfl)
[GOAL]
case intro.intro.intro.intro.intro.intro.intro.inl
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : DenselyOrdered α
a✝ b✝ : α
s✝ : Set α
l : Filter β
f : α → β
x : α
inst✝ : Nontrivial α
s : Set α
hs : s ∈ 𝓝[{x}ᶜ] x
u : Set α
u_open : IsOpen u
xu : x ∈ u
us : u ∩ {x}ᶜ ⊆ s
a b : α
a_lt_b : a < b
hab : Ioo a b ⊆ u
y : α
hy : a < y ∧ y < b
xy : x ≠ y
⊢ Set.Nonempty s
[PROOFSTEP]
exact ⟨y, us ⟨hab hy, xy.symm⟩⟩
[GOAL]
case intro.intro.intro.intro.intro.intro.intro.inr
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : DenselyOrdered α
a✝ b✝ : α
s✝ : Set α
l : Filter β
f : α → β
x : α
inst✝ : Nontrivial α
s : Set α
hs : s ∈ 𝓝[{x}ᶜ] x
u : Set α
u_open : IsOpen u
xu : x ∈ u
us : u ∩ {x}ᶜ ⊆ s
a b : α
a_lt_b : a < b
hab : Ioo a b ⊆ u
hy : a < x ∧ x < b
⊢ Set.Nonempty s
[PROOFSTEP]
obtain ⟨z, hz⟩ : ∃ z, a < z ∧ z < x := exists_between hy.1
[GOAL]
case intro.intro.intro.intro.intro.intro.intro.inr.intro
α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : DenselyOrdered α
a✝ b✝ : α
s✝ : Set α
l : Filter β
f : α → β
x : α
inst✝ : Nontrivial α
s : Set α
hs : s ∈ 𝓝[{x}ᶜ] x
u : Set α
u_open : IsOpen u
xu : x ∈ u
us : u ∩ {x}ᶜ ⊆ s
a b : α
a_lt_b : a < b
hab : Ioo a b ⊆ u
hy : a < x ∧ x < b
z : α
hz : a < z ∧ z < x
⊢ Set.Nonempty s
[PROOFSTEP]
exact ⟨z, us ⟨hab ⟨hz.1, hz.2.trans hy.2⟩, hz.2.ne⟩⟩
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁵ : TopologicalSpace α
inst✝⁴ : LinearOrder α
inst✝³ : OrderTopology α
inst✝² : DenselyOrdered α
a b : α
s✝ : Set α
l : Filter β
f : α → β
inst✝¹ : Nontrivial α
s : Set α
inst✝ : SeparableSpace ↑s
hs : Dense s
⊢ ∃ t, t ⊆ s ∧ Set.Countable t ∧ Dense t ∧ (∀ (x : α), IsBot x → ¬x ∈ t) ∧ ∀ (x : α), IsTop x → ¬x ∈ t
[PROOFSTEP]
rcases hs.exists_countable_dense_subset with ⟨t, hts, htc, htd⟩
[GOAL]
case intro.intro.intro
α : Type u
β : Type v
γ : Type w
inst✝⁵ : TopologicalSpace α
inst✝⁴ : LinearOrder α
inst✝³ : OrderTopology α
inst✝² : DenselyOrdered α
a b : α
s✝ : Set α
l : Filter β
f : α → β
inst✝¹ : Nontrivial α
s : Set α
inst✝ : SeparableSpace ↑s
hs : Dense s
t : Set α
hts : t ⊆ s
htc : Set.Countable t
htd : Dense t
⊢ ∃ t, t ⊆ s ∧ Set.Countable t ∧ Dense t ∧ (∀ (x : α), IsBot x → ¬x ∈ t) ∧ ∀ (x : α), IsTop x → ¬x ∈ t
[PROOFSTEP]
refine' ⟨t \ ({x | IsBot x} ∪ {x | IsTop x}), _, _, _, fun x hx => _, fun x hx => _⟩
[GOAL]
case intro.intro.intro.refine'_1
α : Type u
β : Type v
γ : Type w
inst✝⁵ : TopologicalSpace α
inst✝⁴ : LinearOrder α
inst✝³ : OrderTopology α
inst✝² : DenselyOrdered α
a b : α
s✝ : Set α
l : Filter β
f : α → β
inst✝¹ : Nontrivial α
s : Set α
inst✝ : SeparableSpace ↑s
hs : Dense s
t : Set α
hts : t ⊆ s
htc : Set.Countable t
htd : Dense t
⊢ t \ ({x | IsBot x} ∪ {x | IsTop x}) ⊆ s
[PROOFSTEP]
exact (diff_subset _ _).trans hts
[GOAL]
case intro.intro.intro.refine'_2
α : Type u
β : Type v
γ : Type w
inst✝⁵ : TopologicalSpace α
inst✝⁴ : LinearOrder α
inst✝³ : OrderTopology α
inst✝² : DenselyOrdered α
a b : α
s✝ : Set α
l : Filter β
f : α → β
inst✝¹ : Nontrivial α
s : Set α
inst✝ : SeparableSpace ↑s
hs : Dense s
t : Set α
hts : t ⊆ s
htc : Set.Countable t
htd : Dense t
⊢ Set.Countable (t \ ({x | IsBot x} ∪ {x | IsTop x}))
[PROOFSTEP]
exact htc.mono (diff_subset _ _)
[GOAL]
case intro.intro.intro.refine'_3
α : Type u
β : Type v
γ : Type w
inst✝⁵ : TopologicalSpace α
inst✝⁴ : LinearOrder α
inst✝³ : OrderTopology α
inst✝² : DenselyOrdered α
a b : α
s✝ : Set α
l : Filter β
f : α → β
inst✝¹ : Nontrivial α
s : Set α
inst✝ : SeparableSpace ↑s
hs : Dense s
t : Set α
hts : t ⊆ s
htc : Set.Countable t
htd : Dense t
⊢ Dense (t \ ({x | IsBot x} ∪ {x | IsTop x}))
[PROOFSTEP]
exact htd.diff_finite ((subsingleton_isBot α).finite.union (subsingleton_isTop α).finite)
[GOAL]
case intro.intro.intro.refine'_4
α : Type u
β : Type v
γ : Type w
inst✝⁵ : TopologicalSpace α
inst✝⁴ : LinearOrder α
inst✝³ : OrderTopology α
inst✝² : DenselyOrdered α
a b : α
s✝ : Set α
l : Filter β
f : α → β
inst✝¹ : Nontrivial α
s : Set α
inst✝ : SeparableSpace ↑s
hs : Dense s
t : Set α
hts : t ⊆ s
htc : Set.Countable t
htd : Dense t
x : α
hx : IsBot x
⊢ ¬x ∈ t \ ({x | IsBot x} ∪ {x | IsTop x})
[PROOFSTEP]
simp [hx]
[GOAL]
case intro.intro.intro.refine'_5
α : Type u
β : Type v
γ : Type w
inst✝⁵ : TopologicalSpace α
inst✝⁴ : LinearOrder α
inst✝³ : OrderTopology α
inst✝² : DenselyOrdered α
a b : α
s✝ : Set α
l : Filter β
f : α → β
inst✝¹ : Nontrivial α
s : Set α
inst✝ : SeparableSpace ↑s
hs : Dense s
t : Set α
hts : t ⊆ s
htc : Set.Countable t
htd : Dense t
x : α
hx : IsTop x
⊢ ¬x ∈ t \ ({x | IsBot x} ∪ {x | IsTop x})
[PROOFSTEP]
simp [hx]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁵ : TopologicalSpace α
inst✝⁴ : LinearOrder α
inst✝³ : OrderTopology α
inst✝² : DenselyOrdered α
a b : α
s : Set α
l : Filter β
f : α → β
inst✝¹ : SeparableSpace α
inst✝ : Nontrivial α
⊢ ∃ s, Set.Countable s ∧ Dense s ∧ (∀ (x : α), IsBot x → ¬x ∈ s) ∧ ∀ (x : α), IsTop x → ¬x ∈ s
[PROOFSTEP]
simpa using dense_univ.exists_countable_dense_subset_no_bot_top
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁷ : ConditionallyCompleteLinearOrder α
inst✝⁶ : TopologicalSpace α
inst✝⁵ : OrderTopology α
inst✝⁴ : ConditionallyCompleteLinearOrder β
inst✝³ : TopologicalSpace β
inst✝² : OrderClosedTopology β
inst✝¹ : Nonempty γ
ι : Sort u_1
inst✝ : Nonempty ι
f : α → β
g : ι → α
Cf : ContinuousAt f (iSup g)
Mf : Monotone f
bdd : autoParam (BddAbove (range g)) _auto✝
⊢ f (⨆ (i : ι), g i) = ⨆ (i : ι), f (g i)
[PROOFSTEP]
rw [iSup, Monotone.map_sSup_of_continuousAt' Cf Mf (range_nonempty g) bdd, ← range_comp, iSup]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁷ : ConditionallyCompleteLinearOrder α
inst✝⁶ : TopologicalSpace α
inst✝⁵ : OrderTopology α
inst✝⁴ : ConditionallyCompleteLinearOrder β
inst✝³ : TopologicalSpace β
inst✝² : OrderClosedTopology β
inst✝¹ : Nonempty γ
ι : Sort u_1
inst✝ : Nonempty ι
f : α → β
g : ι → α
Cf : ContinuousAt f (iSup g)
Mf : Monotone f
bdd : autoParam (BddAbove (range g)) _auto✝
⊢ sSup (range (f ∘ g)) = sSup (range fun i => f (g i))
[PROOFSTEP]
rfl
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁷ : ConditionallyCompleteLinearOrder α
inst✝⁶ : TopologicalSpace α
inst✝⁵ : OrderTopology α
inst✝⁴ : ConditionallyCompleteLinearOrder β
inst✝³ : TopologicalSpace β
inst✝² : OrderClosedTopology β
inst✝¹ : Nonempty γ
ι : Sort u_1
inst✝ : Nonempty ι
f : α → β
g : ι → α
Cf : ContinuousAt f (iInf g)
Mf : Monotone f
bdd : autoParam (BddBelow (range g)) _auto✝
⊢ f (⨅ (i : ι), g i) = ⨅ (i : ι), f (g i)
[PROOFSTEP]
rw [iInf, Monotone.map_sInf_of_continuousAt' Cf Mf (range_nonempty g) bdd, ← range_comp, iInf]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁷ : ConditionallyCompleteLinearOrder α
inst✝⁶ : TopologicalSpace α
inst✝⁵ : OrderTopology α
inst✝⁴ : ConditionallyCompleteLinearOrder β
inst✝³ : TopologicalSpace β
inst✝² : OrderClosedTopology β
inst✝¹ : Nonempty γ
ι : Sort u_1
inst✝ : Nonempty ι
f : α → β
g : ι → α
Cf : ContinuousAt f (iInf g)
Mf : Monotone f
bdd : autoParam (BddBelow (range g)) _auto✝
⊢ sInf (range (f ∘ g)) = sInf (range fun i => f (g i))
[PROOFSTEP]
rfl
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁷ : ConditionallyCompleteLinearOrder α
inst✝⁶ : TopologicalSpace α
inst✝⁵ : OrderTopology α
inst✝⁴ : ConditionallyCompleteLinearOrder β
inst✝³ : TopologicalSpace β
inst✝² : OrderClosedTopology β
inst✝¹ : Nonempty γ
ι : Sort u_1
inst✝ : Nonempty ι
f : α → β
g : ι → α
Cf : ContinuousAt f (iInf g)
Af : Antitone f
bdd : autoParam (BddBelow (range g)) _auto✝
⊢ f (⨅ (i : ι), g i) = ⨆ (i : ι), f (g i)
[PROOFSTEP]
rw [iInf, Antitone.map_sInf_of_continuousAt' Cf Af (range_nonempty g) bdd, ← range_comp, iSup]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁷ : ConditionallyCompleteLinearOrder α
inst✝⁶ : TopologicalSpace α
inst✝⁵ : OrderTopology α
inst✝⁴ : ConditionallyCompleteLinearOrder β
inst✝³ : TopologicalSpace β
inst✝² : OrderClosedTopology β
inst✝¹ : Nonempty γ
ι : Sort u_1
inst✝ : Nonempty ι
f : α → β
g : ι → α
Cf : ContinuousAt f (iInf g)
Af : Antitone f
bdd : autoParam (BddBelow (range g)) _auto✝
⊢ sSup (range (f ∘ g)) = sSup (range fun i => f (g i))
[PROOFSTEP]
rfl
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁷ : ConditionallyCompleteLinearOrder α
inst✝⁶ : TopologicalSpace α
inst✝⁵ : OrderTopology α
inst✝⁴ : ConditionallyCompleteLinearOrder β
inst✝³ : TopologicalSpace β
inst✝² : OrderClosedTopology β
inst✝¹ : Nonempty γ
ι : Sort u_1
inst✝ : Nonempty ι
f : α → β
g : ι → α
Cf : ContinuousAt f (iSup g)
Af : Antitone f
bdd : autoParam (BddAbove (range g)) _auto✝
⊢ f (⨆ (i : ι), g i) = ⨅ (i : ι), f (g i)
[PROOFSTEP]
rw [iSup, Antitone.map_sSup_of_continuousAt' Cf Af (range_nonempty g) bdd, ← range_comp, iInf]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁷ : ConditionallyCompleteLinearOrder α
inst✝⁶ : TopologicalSpace α
inst✝⁵ : OrderTopology α
inst✝⁴ : ConditionallyCompleteLinearOrder β
inst✝³ : TopologicalSpace β
inst✝² : OrderClosedTopology β
inst✝¹ : Nonempty γ
ι : Sort u_1
inst✝ : Nonempty ι
f : α → β
g : ι → α
Cf : ContinuousAt f (iSup g)
Af : Antitone f
bdd : autoParam (BddAbove (range g)) _auto✝
⊢ sInf (range (f ∘ g)) = sInf (range fun i => f (g i))
[PROOFSTEP]
rfl
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁶ : CompleteLinearOrder α
inst✝⁵ : TopologicalSpace α
inst✝⁴ : OrderTopology α
inst✝³ : CompleteLinearOrder β
inst✝² : TopologicalSpace β
inst✝¹ : OrderClosedTopology β
inst✝ : Nonempty γ
f : α → β
s : Set α
Cf : ContinuousAt f (sSup s)
Mf : Monotone f
fbot : f ⊥ = ⊥
⊢ f (sSup s) = sSup (f '' s)
[PROOFSTEP]
cases' s.eq_empty_or_nonempty with h h
[GOAL]
case inl
α : Type u
β : Type v
γ : Type w
inst✝⁶ : CompleteLinearOrder α
inst✝⁵ : TopologicalSpace α
inst✝⁴ : OrderTopology α
inst✝³ : CompleteLinearOrder β
inst✝² : TopologicalSpace β
inst✝¹ : OrderClosedTopology β
inst✝ : Nonempty γ
f : α → β
s : Set α
Cf : ContinuousAt f (sSup s)
Mf : Monotone f
fbot : f ⊥ = ⊥
h : s = ∅
⊢ f (sSup s) = sSup (f '' s)
[PROOFSTEP]
simp [h, fbot]
[GOAL]
case inr
α : Type u
β : Type v
γ : Type w
inst✝⁶ : CompleteLinearOrder α
inst✝⁵ : TopologicalSpace α
inst✝⁴ : OrderTopology α
inst✝³ : CompleteLinearOrder β
inst✝² : TopologicalSpace β
inst✝¹ : OrderClosedTopology β
inst✝ : Nonempty γ
f : α → β
s : Set α
Cf : ContinuousAt f (sSup s)
Mf : Monotone f
fbot : f ⊥ = ⊥
h : Set.Nonempty s
⊢ f (sSup s) = sSup (f '' s)
[PROOFSTEP]
exact Mf.map_sSup_of_continuousAt' Cf h
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁶ : CompleteLinearOrder α
inst✝⁵ : TopologicalSpace α
inst✝⁴ : OrderTopology α
inst✝³ : CompleteLinearOrder β
inst✝² : TopologicalSpace β
inst✝¹ : OrderClosedTopology β
inst✝ : Nonempty γ
ι : Sort u_1
f : α → β
g : ι → α
Cf : ContinuousAt f (iSup g)
Mf : Monotone f
fbot : f ⊥ = ⊥
⊢ f (⨆ (i : ι), g i) = ⨆ (i : ι), f (g i)
[PROOFSTEP]
rw [iSup, Mf.map_sSup_of_continuousAt Cf fbot, ← range_comp, iSup]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁶ : CompleteLinearOrder α
inst✝⁵ : TopologicalSpace α
inst✝⁴ : OrderTopology α
inst✝³ : CompleteLinearOrder β
inst✝² : TopologicalSpace β
inst✝¹ : OrderClosedTopology β
inst✝ : Nonempty γ
ι : Sort u_1
f : α → β
g : ι → α
Cf : ContinuousAt f (iSup g)
Mf : Monotone f
fbot : f ⊥ = ⊥
⊢ sSup (range (f ∘ g)) = sSup (range fun i => f (g i))
[PROOFSTEP]
rfl
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁶ : ConditionallyCompleteLinearOrder α
inst✝⁵ : TopologicalSpace α
inst✝⁴ : OrderTopology α
inst✝³ : ConditionallyCompleteLinearOrder β
inst✝² : TopologicalSpace β
inst✝¹ : OrderClosedTopology β
inst✝ : Nonempty γ
f : α → β
s : Set α
Cf : ContinuousAt f (sSup s)
Mf : Monotone f
ne : Set.Nonempty s
H : BddAbove s
⊢ f (sSup s) = sSup (f '' s)
[PROOFSTEP]
refine' ((isLUB_csSup (ne.image f) (Mf.map_bddAbove H)).unique _).symm
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁶ : ConditionallyCompleteLinearOrder α
inst✝⁵ : TopologicalSpace α
inst✝⁴ : OrderTopology α
inst✝³ : ConditionallyCompleteLinearOrder β
inst✝² : TopologicalSpace β
inst✝¹ : OrderClosedTopology β
inst✝ : Nonempty γ
f : α → β
s : Set α
Cf : ContinuousAt f (sSup s)
Mf : Monotone f
ne : Set.Nonempty s
H : BddAbove s
⊢ IsLUB (f '' s) (f (sSup s))
[PROOFSTEP]
refine' (isLUB_csSup ne H).isLUB_of_tendsto (fun x _ y _ xy => Mf xy) ne _
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁶ : ConditionallyCompleteLinearOrder α
inst✝⁵ : TopologicalSpace α
inst✝⁴ : OrderTopology α
inst✝³ : ConditionallyCompleteLinearOrder β
inst✝² : TopologicalSpace β
inst✝¹ : OrderClosedTopology β
inst✝ : Nonempty γ
f : α → β
s : Set α
Cf : ContinuousAt f (sSup s)
Mf : Monotone f
ne : Set.Nonempty s
H : BddAbove s
⊢ Tendsto f (𝓝[s] sSup s) (𝓝 (f (sSup s)))
[PROOFSTEP]
exact Cf.mono_left inf_le_left
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁶ : ConditionallyCompleteLinearOrder α
inst✝⁵ : TopologicalSpace α
inst✝⁴ : OrderTopology α
inst✝³ : ConditionallyCompleteLinearOrder β
inst✝² : TopologicalSpace β
inst✝¹ : OrderClosedTopology β
inst✝ : Nonempty γ
f : α → β
g : γ → α
Cf : ContinuousAt f (⨆ (i : γ), g i)
Mf : Monotone f
H : BddAbove (range g)
⊢ f (⨆ (i : γ), g i) = ⨆ (i : γ), f (g i)
[PROOFSTEP]
rw [iSup, Mf.map_csSup_of_continuousAt Cf (range_nonempty _) H, ← range_comp, iSup]
[GOAL]
α : Type u
β : Type v
γ : Type w
inst✝⁶ : ConditionallyCompleteLinearOrder α
inst✝⁵ : TopologicalSpace α
inst✝⁴ : OrderTopology α
inst✝³ : ConditionallyCompleteLinearOrder β
inst✝² : TopologicalSpace β
inst✝¹ : OrderClosedTopology β
inst✝ : Nonempty γ
f : α → β
g : γ → α
Cf : ContinuousAt f (⨆ (i : γ), g i)
Mf : Monotone f
H : BddAbove (range g)
⊢ sSup (range (f ∘ fun i => g i)) = sSup (range fun i => f (g i))
[PROOFSTEP]
rfl
[GOAL]
α✝ : Type u
β✝ : Type v
γ : Type w
inst✝¹² : ConditionallyCompleteLinearOrder α✝
inst✝¹¹ : TopologicalSpace α✝
inst✝¹⁰ : OrderTopology α✝
inst✝⁹ : ConditionallyCompleteLinearOrder β✝
inst✝⁸ : TopologicalSpace β✝
inst✝⁷ : OrderClosedTopology β✝
inst✝⁶ : Nonempty γ
α : Type u_1
β : Type u_2
inst✝⁵ : LinearOrder α
inst✝⁴ : TopologicalSpace α
inst✝³ : OrderTopology α
inst✝² : ConditionallyCompleteLinearOrder β
inst✝¹ : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
Mf : Monotone f
x : α
⊢ Tendsto f (𝓝[Iio x] x) (𝓝 (sSup (f '' Iio x)))
[PROOFSTEP]
rcases eq_empty_or_nonempty (Iio x) with (h | h)
[GOAL]
case inl
α✝ : Type u
β✝ : Type v
γ : Type w
inst✝¹² : ConditionallyCompleteLinearOrder α✝
inst✝¹¹ : TopologicalSpace α✝
inst✝¹⁰ : OrderTopology α✝
inst✝⁹ : ConditionallyCompleteLinearOrder β✝
inst✝⁸ : TopologicalSpace β✝
inst✝⁷ : OrderClosedTopology β✝
inst✝⁶ : Nonempty γ
α : Type u_1
β : Type u_2
inst✝⁵ : LinearOrder α
inst✝⁴ : TopologicalSpace α
inst✝³ : OrderTopology α
inst✝² : ConditionallyCompleteLinearOrder β
inst✝¹ : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
Mf : Monotone f
x : α
h : Iio x = ∅
⊢ Tendsto f (𝓝[Iio x] x) (𝓝 (sSup (f '' Iio x)))
[PROOFSTEP]
simp [h]
[GOAL]
case inr
α✝ : Type u
β✝ : Type v
γ : Type w
inst✝¹² : ConditionallyCompleteLinearOrder α✝
inst✝¹¹ : TopologicalSpace α✝
inst✝¹⁰ : OrderTopology α✝
inst✝⁹ : ConditionallyCompleteLinearOrder β✝
inst✝⁸ : TopologicalSpace β✝
inst✝⁷ : OrderClosedTopology β✝
inst✝⁶ : Nonempty γ
α : Type u_1
β : Type u_2
inst✝⁵ : LinearOrder α
inst✝⁴ : TopologicalSpace α
inst✝³ : OrderTopology α
inst✝² : ConditionallyCompleteLinearOrder β
inst✝¹ : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
Mf : Monotone f
x : α
h : Set.Nonempty (Iio x)
⊢ Tendsto f (𝓝[Iio x] x) (𝓝 (sSup (f '' Iio x)))
[PROOFSTEP]
refine' tendsto_order.2 ⟨fun l hl => _, fun m hm => _⟩
[GOAL]
case inr.refine'_1
α✝ : Type u
β✝ : Type v
γ : Type w
inst✝¹² : ConditionallyCompleteLinearOrder α✝
inst✝¹¹ : TopologicalSpace α✝
inst✝¹⁰ : OrderTopology α✝
inst✝⁹ : ConditionallyCompleteLinearOrder β✝
inst✝⁸ : TopologicalSpace β✝
inst✝⁷ : OrderClosedTopology β✝
inst✝⁶ : Nonempty γ
α : Type u_1
β : Type u_2
inst✝⁵ : LinearOrder α
inst✝⁴ : TopologicalSpace α
inst✝³ : OrderTopology α
inst✝² : ConditionallyCompleteLinearOrder β
inst✝¹ : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
Mf : Monotone f
x : α
h : Set.Nonempty (Iio x)
l : β
hl : l < sSup (f '' Iio x)
⊢ ∀ᶠ (b : α) in 𝓝[Iio x] x, l < f b
[PROOFSTEP]
obtain ⟨z, zx, lz⟩ : ∃ a : α, a < x ∧ l < f a := by
  simpa only [mem_image, exists_prop, exists_exists_and_eq_and] using exists_lt_of_lt_csSup (nonempty_image_iff.2 h) hl
[GOAL]
α✝ : Type u
β✝ : Type v
γ : Type w
inst✝¹² : ConditionallyCompleteLinearOrder α✝
inst✝¹¹ : TopologicalSpace α✝
inst✝¹⁰ : OrderTopology α✝
inst✝⁹ : ConditionallyCompleteLinearOrder β✝
inst✝⁸ : TopologicalSpace β✝
inst✝⁷ : OrderClosedTopology β✝
inst✝⁶ : Nonempty γ
α : Type u_1
β : Type u_2
inst✝⁵ : LinearOrder α
inst✝⁴ : TopologicalSpace α
inst✝³ : OrderTopology α
inst✝² : ConditionallyCompleteLinearOrder β
inst✝¹ : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
Mf : Monotone f
x : α
h : Set.Nonempty (Iio x)
l : β
hl : l < sSup (f '' Iio x)
⊢ ∃ a, a < x ∧ l < f a
[PROOFSTEP]
simpa only [mem_image, exists_prop, exists_exists_and_eq_and] using exists_lt_of_lt_csSup (nonempty_image_iff.2 h) hl
[GOAL]
case inr.refine'_1.intro.intro
α✝ : Type u
β✝ : Type v
γ : Type w
inst✝¹² : ConditionallyCompleteLinearOrder α✝
inst✝¹¹ : TopologicalSpace α✝
inst✝¹⁰ : OrderTopology α✝
inst✝⁹ : ConditionallyCompleteLinearOrder β✝
inst✝⁸ : TopologicalSpace β✝
inst✝⁷ : OrderClosedTopology β✝
inst✝⁶ : Nonempty γ
α : Type u_1
β : Type u_2
inst✝⁵ : LinearOrder α
inst✝⁴ : TopologicalSpace α
inst✝³ : OrderTopology α
inst✝² : ConditionallyCompleteLinearOrder β
inst✝¹ : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
Mf : Monotone f
x : α
h : Set.Nonempty (Iio x)
l : β
hl : l < sSup (f '' Iio x)
z : α
zx : z < x
lz : l < f z
⊢ ∀ᶠ (b : α) in 𝓝[Iio x] x, l < f b
[PROOFSTEP]
exact mem_of_superset (Ioo_mem_nhdsWithin_Iio' zx) fun y hy => lz.trans_le (Mf hy.1.le)
[GOAL]
case inr.refine'_2
α✝ : Type u
β✝ : Type v
γ : Type w
inst✝¹² : ConditionallyCompleteLinearOrder α✝
inst✝¹¹ : TopologicalSpace α✝
inst✝¹⁰ : OrderTopology α✝
inst✝⁹ : ConditionallyCompleteLinearOrder β✝
inst✝⁸ : TopologicalSpace β✝
inst✝⁷ : OrderClosedTopology β✝
inst✝⁶ : Nonempty γ
α : Type u_1
β : Type u_2
inst✝⁵ : LinearOrder α
inst✝⁴ : TopologicalSpace α
inst✝³ : OrderTopology α
inst✝² : ConditionallyCompleteLinearOrder β
inst✝¹ : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
Mf : Monotone f
x : α
h : Set.Nonempty (Iio x)
m : β
hm : m > sSup (f '' Iio x)
⊢ ∀ᶠ (b : α) in 𝓝[Iio x] x, f b < m
[PROOFSTEP]
refine mem_of_superset self_mem_nhdsWithin fun _ hy => lt_of_le_of_lt ?_ hm
[GOAL]
case inr.refine'_2
α✝ : Type u
β✝ : Type v
γ : Type w
inst✝¹² : ConditionallyCompleteLinearOrder α✝
inst✝¹¹ : TopologicalSpace α✝
inst✝¹⁰ : OrderTopology α✝
inst✝⁹ : ConditionallyCompleteLinearOrder β✝
inst✝⁸ : TopologicalSpace β✝
inst✝⁷ : OrderClosedTopology β✝
inst✝⁶ : Nonempty γ
α : Type u_1
β : Type u_2
inst✝⁵ : LinearOrder α
inst✝⁴ : TopologicalSpace α
inst✝³ : OrderTopology α
inst✝² : ConditionallyCompleteLinearOrder β
inst✝¹ : TopologicalSpace β
inst✝ : OrderTopology β
f : α → β
Mf : Monotone f
x : α
h : Set.Nonempty (Iio x)
m : β
hm : m > sSup (f '' Iio x)
x✝ : α
hy : x✝ ∈ Iio x
⊢ f x✝ ≤ sSup (f '' Iio x)
[PROOFSTEP]
exact le_csSup (Mf.map_bddAbove bddAbove_Iio) (mem_image_of_mem _ hy)