Skip to content

Commit 0ee7df2

Browse files
committed
chore: use NeBot in left and right limits (#41079)
Co-authored-by: sgouezel <sebastien.gouezel@univ-rennes1.fr>
1 parent ba1e3bb commit 0ee7df2

2 files changed

Lines changed: 17 additions & 22 deletions

File tree

Mathlib/MeasureTheory/Measure/Stieltjes.lean

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,8 +148,6 @@ theorem iInf_Ioi_eq [OrderTopology R] [DenselyOrdered R] [NoMaxOrder R]
148148
(f : StieltjesFunction R) (x : R) : ⨅ r : Ioi x, f r = f x := by
149149
suffices Function.rightLim f x = ⨅ r : Ioi x, f r by rw [← this, f.rightLim_eq]
150150
rw [f.mono.rightLim_eq_sInf, sInf_image']
151-
rw [← neBot_iff]
152-
infer_instance
153151

154152
theorem iInf_rat_gt_eq (f : StieltjesFunction ℝ) (x : ℝ) :
155153
⨅ r : { r' : ℚ // x < r' }, f r = f x := by

Mathlib/Topology/Order/LeftRightLim.lean

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -64,18 +64,17 @@ noncomputable def Function.rightLim (f : α → β) (a : α) : β :=
6464
open Function
6565

6666
theorem 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

7574
theorem 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

8079
theorem 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

112111
theorem 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

119118
theorem 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 : α}
274273
include 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

284283
theorem 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

298296
theorem 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
356354
coincides with the value of the function. -/
357355
theorem 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

Comments
 (0)