@@ -132,6 +132,11 @@ theorem atTop_basis [Nonempty α] [SemilatticeSup α] : (@atTop α _).HasBasis (
132
132
hasBasis_iInf_principal (directed_of_sup fun _ _ => Ici_subset_Ici.2 )
133
133
#align filter.at_top_basis Filter.atTop_basis
134
134
135
+ theorem atTop_eq_generate_Ici [SemilatticeSup α] : atTop = generate (range (Ici (α := α))) := by
136
+ rcases isEmpty_or_nonempty α with hα|hα
137
+ · simp only [eq_iff_true_of_subsingleton]
138
+ · simp [(atTop_basis (α := α)).eq_generate, range]
139
+
135
140
theorem atTop_basis' [SemilatticeSup α] (a : α) : (@atTop α _).HasBasis (fun x => a ≤ x) Ici :=
136
141
⟨fun _ =>
137
142
(@atTop_basis α ⟨a⟩ _).mem_iff.trans
@@ -297,6 +302,18 @@ theorem OrderBot.atBot_eq (α) [PartialOrder α] [OrderBot α] : (atBot : Filter
297
302
@OrderTop.atTop_eq αᵒᵈ _ _
298
303
#align filter.order_bot.at_bot_eq Filter.OrderBot.atBot_eq
299
304
305
+ lemma atTop_eq_pure_of_isTop [LinearOrder α] {x : α} (hx : IsTop x) :
306
+ (atTop : Filter α) = pure x := by
307
+ have : Nonempty α := ⟨x⟩
308
+ have : (atTop : Filter α).NeBot := atTop_basis.neBot_iff.2 (fun _ ↦ ⟨x, hx _⟩)
309
+ apply eq_pure_iff_singleton_mem.2
310
+ convert Ici_mem_atTop x using 1
311
+ exact (Ici_eq_singleton_iff_isTop.2 hx).symm
312
+
313
+ lemma atBot_eq_pure_of_isBot [LinearOrder α] {x : α} (hx : IsBot x) :
314
+ (atBot : Filter α) = pure x :=
315
+ @atTop_eq_pure_of_isTop αᵒᵈ _ _ hx
316
+
300
317
@[nontriviality]
301
318
theorem Subsingleton.atTop_eq (α) [Subsingleton α] [Preorder α] : (atTop : Filter α) = ⊤ := by
302
319
refine' top_unique fun s hs x => _
@@ -411,6 +428,26 @@ theorem tendsto_atBot_mono [Preorder β] {l : Filter α} {f g : α → β} (h :
411
428
@tendsto_atTop_mono _ βᵒᵈ _ _ _ _ h
412
429
#align filter.tendsto_at_bot_mono Filter.tendsto_atBot_mono
413
430
431
+ lemma atTop_eq_generate_of_forall_exists_le [LinearOrder α] {s : Set α} (hs : ∀ x, ∃ y ∈ s, x ≤ y) :
432
+ (atTop : Filter α) = generate (Ici '' s) := by
433
+ rw [atTop_eq_generate_Ici]
434
+ apply le_antisymm
435
+ · rw [le_generate_iff]
436
+ rintro - ⟨y, -, rfl⟩
437
+ exact mem_generate_of_mem ⟨y, rfl⟩
438
+ · rw [le_generate_iff]
439
+ rintro - ⟨x, -, -, rfl⟩
440
+ rcases hs x with ⟨y, ys, hy⟩
441
+ have A : Ici y ∈ generate (Ici '' s) := mem_generate_of_mem (mem_image_of_mem _ ys)
442
+ have B : Ici y ⊆ Ici x := Ici_subset_Ici.2 hy
443
+ exact sets_of_superset (generate (Ici '' s)) A B
444
+
445
+ lemma atTop_eq_generate_of_not_bddAbove [LinearOrder α] {s : Set α} (hs : ¬ BddAbove s) :
446
+ (atTop : Filter α) = generate (Ici '' s) := by
447
+ refine' atTop_eq_generate_of_forall_exists_le fun x ↦ _
448
+ obtain ⟨y, hy, hy'⟩ := not_bddAbove_iff.mp hs x
449
+ exact ⟨y, hy, hy'.le⟩
450
+
414
451
end Filter
415
452
416
453
namespace OrderIso
0 commit comments