Skip to content

Commit 21873b4

Browse files
committed
chore(Order.Filter): remove duplicated lemmas (#6932)
Remove the lemmas `le_pure_iff_eq_pure` (duplicate of `NeBot.le_pure_iff`) and `eq_bot_or_pure_of_subsingleton_mem` (duplicate of `subsingleton_iff_bot_or_pure`). This requires moving a few lemmas after their non-duplicate prerequisites.
1 parent 0ed13e5 commit 21873b4

File tree

5 files changed

+20
-43
lines changed

5 files changed

+20
-43
lines changed

Mathlib/Order/Filter/AtTopBot.lean

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -302,18 +302,6 @@ theorem OrderBot.atBot_eq (α) [PartialOrder α] [OrderBot α] : (atBot : Filter
302302
@OrderTop.atTop_eq αᵒᵈ _ _
303303
#align filter.order_bot.at_bot_eq Filter.OrderBot.atBot_eq
304304

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-
317305
@[nontriviality]
318306
theorem Subsingleton.atTop_eq (α) [Subsingleton α] [Preorder α] : (atTop : Filter α) = ⊤ := by
319307
refine' top_unique fun s hs x => _

Mathlib/Order/Filter/Bases.lean

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1192,12 +1192,6 @@ theorem isCountablyGenerated_top : IsCountablyGenerated (⊤ : Filter α) :=
11921192
@principal_univ α ▸ isCountablyGenerated_principal _
11931193
#align filter.is_countably_generated_top Filter.isCountablyGenerated_top
11941194

1195-
lemma isCountablyGenerated_of_subsingleton_mem {l : Filter α} {s : Set α} (hs : s.Subsingleton)
1196-
(h's : s ∈ l) : IsCountablyGenerated l := by
1197-
rcases eq_bot_or_pure_of_subsingleton_mem hs h's with rfl|⟨x, rfl⟩
1198-
· exact isCountablyGenerated_bot
1199-
· exact isCountablyGenerated_pure x
1200-
12011195
-- porting note: without explicit `Sort u` and `Type v`, Lean 4 uses `ι : Prop`
12021196
universe u v
12031197

Mathlib/Order/Filter/Basic.lean

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2681,31 +2681,6 @@ theorem le_pure_iff {f : Filter α} {a : α} : f ≤ pure a ↔ {a} ∈ f := by
26812681
rw [← principal_singleton, le_principal_iff]
26822682
#align filter.le_pure_iff Filter.le_pure_iff
26832683

2684-
lemma le_pure_iff_eq_pure {l : Filter α} [hl : NeBot l] :
2685-
l ≤ pure x ↔ l = pure x := by
2686-
refine' ⟨fun h ↦ _, fun h ↦ h.le⟩
2687-
have hx := le_pure_iff.1 h
2688-
ext s
2689-
simp only [mem_pure]
2690-
refine ⟨fun h ↦ ?_, fun h ↦ mem_of_superset hx (singleton_subset_iff.2 h)⟩
2691-
by_contra H
2692-
have : s ∩ {x} ∈ l := inter_mem h hx
2693-
rw [inter_singleton_eq_empty.2 H, empty_mem_iff_bot] at this
2694-
exact NeBot.ne hl this
2695-
2696-
lemma eq_pure_iff_singleton_mem {l : Filter α} [hl : NeBot l] {x : α} :
2697-
l = pure x ↔ {x} ∈ l := by
2698-
rw [← le_pure_iff_eq_pure, le_pure_iff]
2699-
2700-
lemma eq_bot_or_pure_of_subsingleton_mem {l : Filter α} {s : Set α} (hs : s.Subsingleton)
2701-
(h's : s ∈ l) : l = ⊥ ∨ ∃ x, l = pure x := by
2702-
rcases l.eq_or_neBot with rfl|hl
2703-
· exact Or.inl rfl
2704-
· rcases hs.eq_empty_or_singleton with rfl|⟨x, rfl⟩
2705-
· rw [empty_mem_iff_bot.1 h's]
2706-
exact Or.inl rfl
2707-
· exact Or.inr ⟨x, eq_pure_iff_singleton_mem.2 h's⟩
2708-
27092684
theorem mem_seq_def {f : Filter (α → β)} {g : Filter α} {s : Set β} :
27102685
s ∈ f.seq g ↔ ∃ u ∈ f, ∃ t ∈ g, ∀ x ∈ u, ∀ y ∈ t, (x : α → β) y ∈ s :=
27112686
Iff.rfl

Mathlib/Order/Filter/Subsingleton.lean

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,3 +72,8 @@ theorem subsingleton_iff_exists_singleton_mem [Nonempty α] : l.Subsingleton ↔
7272

7373
/-- A subsingleton filter on a nonempty type is less than or equal to `pure a` for some `a`. -/
7474
alias ⟨Subsingleton.exists_le_pure, _⟩ := subsingleton_iff_exists_le_pure
75+
76+
lemma Subsingleton.isCountablyGenerated (hl : l.Subsingleton) : IsCountablyGenerated l := by
77+
rcases subsingleton_iff_bot_or_pure.1 hl with rfl|⟨x, rfl⟩
78+
· exact isCountablyGenerated_bot
79+
· exact isCountablyGenerated_pure x

Mathlib/Order/Filter/Ultrafilter.lean

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -414,6 +414,21 @@ protected theorem NeBot.le_pure_iff (hf : f.NeBot) : f ≤ pure a ↔ f = pure a
414414
⟨Ultrafilter.unique (pure a), le_of_eq⟩
415415
#align filter.ne_bot.le_pure_iff Filter.NeBot.le_pure_iff
416416

417+
protected theorem NeBot.eq_pure_iff (hf : f.NeBot) {x : α} :
418+
f = pure x ↔ {x} ∈ f := by
419+
rw [← hf.le_pure_iff, le_pure_iff]
420+
421+
lemma atTop_eq_pure_of_isTop [LinearOrder α] {x : α} (hx : IsTop x) :
422+
(atTop : Filter α) = pure x := by
423+
have : Nonempty α := ⟨x⟩
424+
apply atTop_neBot.eq_pure_iff.2
425+
convert Ici_mem_atTop x using 1
426+
exact (Ici_eq_singleton_iff_isTop.2 hx).symm
427+
428+
lemma atBot_eq_pure_of_isBot [LinearOrder α] {x : α} (hx : IsBot x) :
429+
(atBot : Filter α) = pure x :=
430+
@atTop_eq_pure_of_isTop αᵒᵈ _ _ hx
431+
417432
@[simp]
418433
theorem lt_pure_iff : f < pure a ↔ f = ⊥ :=
419434
isAtom_pure.lt_iff

0 commit comments

Comments
 (0)