@@ -64,18 +64,17 @@ noncomputable def Function.rightLim (f : α → β) (a : α) : β :=
6464open Function
6565
6666theorem leftLim_eq_of_tendsto [hα : TopologicalSpace α] [h'α : OrderTopology α] [T2Space β]
67- {f : α → β} {a : α} {y : β} ( h : 𝓝[<] a ≠ ⊥) (h' : Tendsto f (𝓝[<] a) (𝓝 y)) :
67+ {f : α → β} {a : α} {y : β} [ h : ( 𝓝[<] a).NeBot] (h' : Tendsto f (𝓝[<] a) (𝓝 y)) :
6868 leftLim f a = y := by
6969 have h'' : ∃ y, Tendsto f (𝓝[<] a) (𝓝 y) := ⟨y, h'⟩
7070 rw [h'α.topology_eq_generate_intervals] at h h' h''
71- simp only [leftLim, h, h'', not_true, or_self_iff, if_false]
72- haveI := neBot_iff.2 h
71+ simp only [leftLim, neBot_iff.mp h, h'', not_true, or_self_iff, if_false]
7372 exact lim_eq h'
7473
7574theorem rightLim_eq_of_tendsto [TopologicalSpace α] [OrderTopology α] [T2Space β]
76- {f : α → β} {a : α} {y : β} ( h : 𝓝[>] a ≠ ⊥) (h' : Tendsto f (𝓝[>] a) (𝓝 y)) :
75+ {f : α → β} {a : α} {y : β} [ h : ( 𝓝[>] a).NeBot] (h' : Tendsto f (𝓝[>] a) (𝓝 y)) :
7776 Function.rightLim f a = y :=
78- leftLim_eq_of_tendsto (α := αᵒᵈ) h h'
77+ leftLim_eq_of_tendsto (α := αᵒᵈ) (h := h) h'
7978
8079theorem leftLim_eq_of_eq_bot [hα : TopologicalSpace α] [h'α : OrderTopology α] (f : α → β) {a : α}
8180 (h : 𝓝[<] a = ⊥) : leftLim f a = f a := by
@@ -111,9 +110,9 @@ theorem rightLim_eq_of_isTop {f : α → β} {a : α} (ha : IsTop a) :
111110
112111theorem ContinuousWithinAt.leftLim_eq [TopologicalSpace α] [OrderTopology α] [T2Space β]
113112 {f : α → β} {a : α} (hf : ContinuousWithinAt f (Iic a) a) : leftLim f a = f a := by
114- rcases eq_or_ne (𝓝[<] a) ⊥ with h' | h'
113+ rcases eq_or_neBot (𝓝[<] a) with h' | h'
115114 · simp [leftLim_eq_of_eq_bot f h']
116- apply leftLim_eq_of_tendsto h'
115+ apply leftLim_eq_of_tendsto
117116 exact hf.tendsto.mono_left (nhdsWithin_mono _ Iio_subset_Iic_self)
118117
119118theorem ContinuousWithinAt.rightLim_eq [TopologicalSpace α] [OrderTopology α] [T2Space β]
@@ -195,7 +194,7 @@ theorem leftLim_rightLim [TopologicalSpace α] [OrderTopology α] [T3Space β]
195194 {f : α → β} {a : α} (h : Tendsto f (𝓝[<] a) (𝓝 (f.leftLim a))) [h' : (𝓝[<] a).NeBot] :
196195 f.rightLim.leftLim a = f.leftLim a := by
197196 obtain ⟨b, hb⟩ : (Iio a).Nonempty := Filter.nonempty_of_mem (self_mem_nhdsWithin (a := a))
198- apply leftLim_eq_of_tendsto (neBot_iff.mp h')
197+ apply leftLim_eq_of_tendsto
199198 apply (closed_nhds_basis (f.leftLim a)).tendsto_right_iff.2
200199 rintro s ⟨s_mem, s_closed⟩
201200 obtain ⟨u, au, hu⟩ : ∃ u, u < a ∧ Ioo u a ⊆ {x | f x ∈ s} := by
@@ -273,35 +272,34 @@ variable {α β : Type*} [LinearOrder α] [ConditionallyCompleteLinearOrder β]
273272 [OrderTopology β] {f : α → β} (hf : Monotone f) {x y : α}
274273include hf
275274
276- theorem leftLim_eq_sSup [TopologicalSpace α] [OrderTopology α] (h : 𝓝[<] x ≠ ⊥) :
275+ theorem leftLim_eq_sSup [TopologicalSpace α] [OrderTopology α] [( 𝓝[<] x).NeBot] :
277276 leftLim f x = sSup (f '' Iio x) :=
278- leftLim_eq_of_tendsto h (hf.tendsto_nhdsLT x)
277+ leftLim_eq_of_tendsto (hf.tendsto_nhdsLT x)
279278
280- theorem rightLim_eq_sInf [TopologicalSpace α] [OrderTopology α] (h : 𝓝[>] x ≠ ⊥) :
279+ theorem rightLim_eq_sInf [TopologicalSpace α] [OrderTopology α] [( 𝓝[>] x).NeBot] :
281280 rightLim f x = sInf (f '' Ioi x) :=
282- rightLim_eq_of_tendsto h (hf.tendsto_nhdsGT x)
281+ rightLim_eq_of_tendsto (hf.tendsto_nhdsGT x)
283282
284283theorem leftLim_le (h : x ≤ y) : leftLim f x ≤ f y := by
285284 letI : TopologicalSpace α := Preorder.topology α
286285 haveI : OrderTopology α := ⟨rfl⟩
287- rcases eq_or_ne (𝓝[<] x) ⊥ with ( h' | h')
286+ rcases eq_or_neBot (𝓝[<] x) with h' | h'
288287 · simpa [leftLim, h'] using hf h
289- haveI A : NeBot (𝓝[<] x) := neBot_iff.2 h'
290- rw [leftLim_eq_sSup hf h']
288+ rw [leftLim_eq_sSup hf]
291289 refine csSup_le ?_ ?_
292290 · simp only [image_nonempty]
293- exact (forall_mem_nonempty_iff_neBot.2 A ) _ self_mem_nhdsWithin
291+ exact (forall_mem_nonempty_iff_neBot.2 h' ) _ self_mem_nhdsWithin
294292 · simp only [mem_image, mem_Iio, forall_exists_index, and_imp, forall_apply_eq_imp_iff₂]
295293 intro z hz
296294 exact hf (hz.le.trans h)
297295
298296theorem le_leftLim (h : x < y) : f x ≤ leftLim f y := by
299297 letI : TopologicalSpace α := Preorder.topology α
300298 haveI : OrderTopology α := ⟨rfl⟩
301- rcases eq_or_ne (𝓝[<] y) ⊥ with ( h' | h')
299+ rcases eq_or_neBot (𝓝[<] y) with h' | h'
302300 · rw [leftLim_eq_of_eq_bot _ h']
303301 exact hf h.le
304- rw [leftLim_eq_sSup hf h' ]
302+ rw [leftLim_eq_sSup hf]
305303 refine le_csSup ⟨f y, ?_⟩ (mem_image_of_mem _ h)
306304 simp only [upperBounds, mem_image, mem_Iio, forall_exists_index, and_imp,
307305 forall_apply_eq_imp_iff₂, mem_setOf_eq]
@@ -356,9 +354,8 @@ theorem tendsto_rightLim_within (x : α) : Tendsto f (𝓝[>] x) (𝓝[≥] righ
356354coincides with the value of the function. -/
357355theorem continuousWithinAt_Iio_iff_leftLim_eq :
358356 ContinuousWithinAt f (Iio x) x ↔ leftLim f x = f x := by
359- rcases eq_or_ne (𝓝[<] x) ⊥ with ( h' | h')
357+ rcases eq_or_neBot (𝓝[<] x) with h' | h'
360358 · simp [leftLim_eq_of_eq_bot f h', ContinuousWithinAt, h']
361- haveI : (𝓝[Iio x] x).NeBot := neBot_iff.2 h'
362359 refine ⟨fun h => tendsto_nhds_unique (hf.tendsto_leftLim x) h.tendsto, fun h => ?_⟩
363360 have := hf.tendsto_leftLim x
364361 rwa [h] at this
0 commit comments