order.filter.basesMathlib.Order.Filter.Bases

This file has been ported!

Changes since the initial port

The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

chore(*): golf (#18111)

Sets

  • Add set.maps_to_prod_map_diagonal, set.diagonal_nonempty, and set.diagonal_subset_iff.

Filters

  • Generalize and rename nhds_eq_comap_uniformity_aux to filter.mem_comap_prod_mk.
  • Add set.nonempty.principal_ne_bot and filter.comap_id'.
  • Rename filter.has_basis.comp_of_surjective to filter.has_basis.comp_surjective.

Uniform spaces

  • Rename monotone_comp_rel to monotone.comp_rel to enable dot notation.
  • Add nhds_eq_comap_uniformity'.
  • Use 𝓝ˢ (diagonal γ) instead of ⨆ x, 𝓝 (x, x) in uniform_space_of_compact_t2.
  • Golf here and there.

Mathlib 4 port

Relevant parts are forward-ported in leanprover-community/mathlib4#1438

Diff
@@ -347,12 +347,12 @@ begin
   exact forall_congr (λ s, ⟨λ h, h.1, λ h, ⟨h, λ ⟨t, hl, hP, hts⟩, mem_of_superset hl hts⟩⟩)
 end
 
-lemma has_basis.comp_of_surjective (h : l.has_basis p s) {g : ι' → ι} (hg : function.surjective g) :
+lemma has_basis.comp_surjective (h : l.has_basis p s) {g : ι' → ι} (hg : function.surjective g) :
   l.has_basis (p ∘ g) (s ∘ g) :=
 ⟨λ t, h.mem_iff.trans hg.exists⟩
 
 lemma has_basis.comp_equiv (h : l.has_basis p s) (e : ι' ≃ ι) : l.has_basis (p ∘ e) (s ∘ e) :=
-h.comp_of_surjective e.surjective
+h.comp_surjective e.surjective
 
 /-- If `{s i | p i}` is a basis of a filter `l` and each `s i` includes `s j` such that
 `p j ∧ q j`, then `{s j | p j ∧ q j}` is a basis of `l`. -/

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(first ported)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -479,7 +479,7 @@ theorem HasBasis.eq_bot_iff (hl : l.HasBasis p s) : l = ⊥ ↔ ∃ i, p i ∧ s
 #print Filter.generate_neBot_iff /-
 theorem generate_neBot_iff {s : Set (Set α)} :
     NeBot (generate s) ↔ ∀ (t) (_ : t ⊆ s), t.Finite → (⋂₀ t).Nonempty :=
-  (hasBasis_generate s).neBot_iff.trans <| by simp only [← and_imp, and_comm']
+  (hasBasis_generate s).neBot_iff.trans <| by simp only [← and_imp, and_comm]
 #align filter.generate_ne_bot_iff Filter.generate_neBot_iff
 -/
 
@@ -499,7 +499,7 @@ theorem asBasis_filter (f : Filter α) : f.asBasis.filterₓ = f := by
 theorem hasBasis_self {l : Filter α} {P : Set α → Prop} :
     HasBasis l (fun s => s ∈ l ∧ P s) id ↔ ∀ t ∈ l, ∃ r ∈ l, P r ∧ r ⊆ t :=
   by
-  simp only [has_basis_iff, exists_prop, id, and_assoc']
+  simp only [has_basis_iff, exists_prop, id, and_assoc]
   exact
     forall_congr' fun s =>
       ⟨fun h => h.1, fun h => ⟨h, fun ⟨t, hl, hP, hts⟩ => mem_of_superset hl hts⟩⟩
@@ -546,7 +546,7 @@ theorem HasBasis.restrict_subset (h : l.HasBasis p s) {V : Set α} (hV : V ∈ l
 #print Filter.HasBasis.hasBasis_self_subset /-
 theorem HasBasis.hasBasis_self_subset {p : Set α → Prop} (h : l.HasBasis (fun s => s ∈ l ∧ p s) id)
     {V : Set α} (hV : V ∈ l) : l.HasBasis (fun s => s ∈ l ∧ p s ∧ s ⊆ V) id := by
-  simpa only [and_assoc'] using h.restrict_subset hV
+  simpa only [and_assoc] using h.restrict_subset hV
 #align filter.has_basis.has_basis_self_subset Filter.HasBasis.hasBasis_self_subset
 -/
 
@@ -714,8 +714,8 @@ theorem HasBasis.sup' (hl : l.HasBasis p s) (hl' : l'.HasBasis p' s') :
   ⟨by
     intro t
     simp only [mem_sup, hl.mem_iff, hl'.mem_iff, PProd.exists, union_subset_iff, exists_prop,
-      and_assoc', exists_and_left]
-    simp only [← and_assoc', exists_and_right, and_comm']⟩
+      and_assoc, exists_and_left]
+    simp only [← and_assoc, exists_and_right, and_comm]⟩
 #align filter.has_basis.sup' Filter.HasBasis.sup'
 -/
 
@@ -914,7 +914,7 @@ theorem le_iff_forall_inf_principal_compl {f g : Filter α} : f ≤ g ↔ ∀ V
 #print Filter.inf_neBot_iff_frequently_left /-
 theorem inf_neBot_iff_frequently_left {f g : Filter α} :
     NeBot (f ⊓ g) ↔ ∀ {p : α → Prop}, (∀ᶠ x in f, p x) → ∃ᶠ x in g, p x := by
-  simpa only [inf_ne_bot_iff, frequently_iff, exists_prop, and_comm']
+  simpa only [inf_ne_bot_iff, frequently_iff, exists_prop, and_comm]
 #align filter.inf_ne_bot_iff_frequently_left Filter.inf_neBot_iff_frequently_left
 -/
 
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2020 Yury Kudryashov. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov, Johannes Hölzl, Mario Carneiro, Patrick Massot
 -/
-import Data.Prod.Pprod
+import Data.Prod.PProd
 import Data.Set.Countable
 import Order.Filter.Prod
 
@@ -475,7 +475,7 @@ theorem HasBasis.eq_bot_iff (hl : l.HasBasis p s) : l = ⊥ ↔ ∃ i, p i ∧ s
 #align filter.has_basis.eq_bot_iff Filter.HasBasis.eq_bot_iff
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (t «expr ⊆ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:642:2: warning: expanding binder collection (t «expr ⊆ » s) -/
 #print Filter.generate_neBot_iff /-
 theorem generate_neBot_iff {s : Set (Set α)} :
     NeBot (generate s) ↔ ∀ (t) (_ : t ⊆ s), t.Finite → (⋂₀ t).Nonempty :=
Diff
@@ -1221,7 +1221,7 @@ namespace Filter
 variable {α β γ ι : Type _} {ι' : Sort _}
 
 #print Filter.IsCountablyGenerated /-
-/- ./././Mathport/Syntax/Translate/Command.lean:404:30: infer kinds are unsupported in Lean 4: #[`out] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:400:30: infer kinds are unsupported in Lean 4: #[`out] [] -/
 /-- `is_countably_generated f` means `f = generate s` for some countable `s`. -/
 class IsCountablyGenerated (f : Filter α) : Prop where
   out : ∃ s : Set (Set α), s.Countable ∧ f = generate s
Diff
@@ -1221,7 +1221,7 @@ namespace Filter
 variable {α β γ ι : Type _} {ι' : Sort _}
 
 #print Filter.IsCountablyGenerated /-
-/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`out] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:404:30: infer kinds are unsupported in Lean 4: #[`out] [] -/
 /-- `is_countably_generated f` means `f = generate s` for some countable `s`. -/
 class IsCountablyGenerated (f : Filter α) : Prop where
   out : ∃ s : Set (Set α), s.Countable ∧ f = generate s
Diff
@@ -1359,7 +1359,7 @@ theorem HasBasis.exists_antitone_subbasis {f : Filter α} [h : f.IsCountablyGene
     exacts [hs.set_index_subset _, subset.trans (hs.set_index_subset _) (inter_subset_left _ _)]
   refine' ⟨fun i => x i, fun i => (x i).2, _⟩
   have : (⨅ i, 𝓟 (s (x i))).HasAntitoneBasis fun i => s (x i) :=
-    ⟨has_basis_infi_principal (directed_of_sup x_mono), x_mono⟩
+    ⟨has_basis_infi_principal (directed_of_isDirected_le x_mono), x_mono⟩
   convert this
   exact
     le_antisymm (le_iInf fun i => le_principal_iff.2 <| by cases i <;> apply hs.set_index_mem)
Diff
@@ -3,9 +3,9 @@ Copyright (c) 2020 Yury Kudryashov. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov, Johannes Hölzl, Mario Carneiro, Patrick Massot
 -/
-import Mathbin.Data.Prod.Pprod
-import Mathbin.Data.Set.Countable
-import Mathbin.Order.Filter.Prod
+import Data.Prod.Pprod
+import Data.Set.Countable
+import Order.Filter.Prod
 
 #align_import order.filter.bases from "leanprover-community/mathlib"@"f974ae84dfc9fea6a036a8f30f09414254e3bc40"
 
@@ -475,7 +475,7 @@ theorem HasBasis.eq_bot_iff (hl : l.HasBasis p s) : l = ⊥ ↔ ∃ i, p i ∧ s
 #align filter.has_basis.eq_bot_iff Filter.HasBasis.eq_bot_iff
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (t «expr ⊆ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (t «expr ⊆ » s) -/
 #print Filter.generate_neBot_iff /-
 theorem generate_neBot_iff {s : Set (Set α)} :
     NeBot (generate s) ↔ ∀ (t) (_ : t ⊆ s), t.Finite → (⋂₀ t).Nonempty :=
@@ -1221,7 +1221,7 @@ namespace Filter
 variable {α β γ ι : Type _} {ι' : Sort _}
 
 #print Filter.IsCountablyGenerated /-
-/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`out] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`out] [] -/
 /-- `is_countably_generated f` means `f = generate s` for some countable `s`. -/
 class IsCountablyGenerated (f : Filter α) : Prop where
   out : ∃ s : Set (Set α), s.Countable ∧ f = generate s
Diff
@@ -1032,10 +1032,10 @@ protected theorem HasBasis.biInter_mem {f : Set α → Set β} (h : HasBasis l p
 #align filter.has_basis.bInter_mem Filter.HasBasis.biInter_mem
 -/
 
-#print Filter.HasBasis.sInter_sets /-
-theorem HasBasis.sInter_sets (h : HasBasis l p s) : ⋂₀ l.sets = ⋂ (i) (hi : p i), s i := by
+#print Filter.HasBasis.ker /-
+theorem HasBasis.ker (h : HasBasis l p s) : ⋂₀ l.sets = ⋂ (i) (hi : p i), s i := by
   rw [sInter_eq_bInter]; exact h.bInter_mem monotone_id
-#align filter.has_basis.sInter_sets Filter.HasBasis.sInter_sets
+#align filter.has_basis.sInter_sets Filter.HasBasis.ker
 -/
 
 variable {ι'' : Type _} [Preorder ι''] (l) (s'' : ι'' → Set α)
Diff
@@ -405,21 +405,21 @@ protected theorem FilterBasis.hasBasis {α : Type _} (B : FilterBasis α) :
 #align filter_basis.has_basis FilterBasis.hasBasis
 -/
 
-#print Filter.HasBasis.to_has_basis' /-
-theorem HasBasis.to_has_basis' (hl : l.HasBasis p s) (h : ∀ i, p i → ∃ i', p' i' ∧ s' i' ⊆ s i)
+#print Filter.HasBasis.to_hasBasis' /-
+theorem HasBasis.to_hasBasis' (hl : l.HasBasis p s) (h : ∀ i, p i → ∃ i', p' i' ∧ s' i' ⊆ s i)
     (h' : ∀ i', p' i' → s' i' ∈ l) : l.HasBasis p' s' :=
   by
   refine' ⟨fun t => ⟨fun ht => _, fun ⟨i', hi', ht⟩ => mem_of_superset (h' i' hi') ht⟩⟩
   rcases hl.mem_iff.1 ht with ⟨i, hi, ht⟩
   rcases h i hi with ⟨i', hi', hs's⟩
   exact ⟨i', hi', subset.trans hs's ht⟩
-#align filter.has_basis.to_has_basis' Filter.HasBasis.to_has_basis'
+#align filter.has_basis.to_has_basis' Filter.HasBasis.to_hasBasis'
 -/
 
 #print Filter.HasBasis.to_hasBasis /-
 theorem HasBasis.to_hasBasis (hl : l.HasBasis p s) (h : ∀ i, p i → ∃ i', p' i' ∧ s' i' ⊆ s i)
     (h' : ∀ i', p' i' → ∃ i, p i ∧ s i ⊆ s' i') : l.HasBasis p' s' :=
-  hl.to_has_basis' h fun i' hi' =>
+  hl.to_hasBasis' h fun i' hi' =>
     let ⟨i, hi, hss'⟩ := h' i' hi'
     hl.mem_iff.2 ⟨i, hi, hss'⟩
 #align filter.has_basis.to_has_basis Filter.HasBasis.to_hasBasis
@@ -428,7 +428,7 @@ theorem HasBasis.to_hasBasis (hl : l.HasBasis p s) (h : ∀ i, p i → ∃ i', p
 #print Filter.HasBasis.to_subset /-
 theorem HasBasis.to_subset (hl : l.HasBasis p s) {t : ι → Set α} (h : ∀ i, p i → t i ⊆ s i)
     (ht : ∀ i, p i → t i ∈ l) : l.HasBasis p t :=
-  hl.to_has_basis' (fun i hi => ⟨i, hi, h i hi⟩) ht
+  hl.to_hasBasis' (fun i hi => ⟨i, hi, h i hi⟩) ht
 #align filter.has_basis.to_subset Filter.HasBasis.to_subset
 -/
 
Diff
@@ -877,7 +877,7 @@ theorem disjoint_principal_principal {s t : Set α} : Disjoint (𝓟 s) (𝓟 t)
 #align filter.disjoint_principal_principal Filter.disjoint_principal_principal
 -/
 
-alias disjoint_principal_principal ↔ _ _root_.disjoint.filter_principal
+alias ⟨_, _root_.disjoint.filter_principal⟩ := disjoint_principal_principal
 #align disjoint.filter_principal Disjoint.filter_principal
 
 #print Filter.disjoint_pure_pure /-
Diff
@@ -585,7 +585,7 @@ theorem HasBasis.inf' (hl : l.HasBasis p s) (hl' : l'.HasBasis p' s') :
     constructor
     · simp only [mem_inf_iff, exists_prop, hl.mem_iff, hl'.mem_iff]
       rintro ⟨t, ⟨i, hi, ht⟩, t', ⟨i', hi', ht'⟩, rfl⟩
-      use ⟨i, i'⟩, ⟨hi, hi'⟩, inter_subset_inter ht ht'
+      use⟨i, i'⟩, ⟨hi, hi'⟩, inter_subset_inter ht ht'
     · rintro ⟨⟨i, i'⟩, ⟨hi, hi'⟩, H⟩
       exact mem_inf_of_inter (hl.mem_of_mem hi) (hl'.mem_of_mem hi') H⟩
 #align filter.has_basis.inf' Filter.HasBasis.inf'
Diff
@@ -2,16 +2,13 @@
 Copyright (c) 2020 Yury Kudryashov. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov, Johannes Hölzl, Mario Carneiro, Patrick Massot
-
-! This file was ported from Lean 3 source module order.filter.bases
-! leanprover-community/mathlib commit f974ae84dfc9fea6a036a8f30f09414254e3bc40
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Data.Prod.Pprod
 import Mathbin.Data.Set.Countable
 import Mathbin.Order.Filter.Prod
 
+#align_import order.filter.bases from "leanprover-community/mathlib"@"f974ae84dfc9fea6a036a8f30f09414254e3bc40"
+
 /-!
 # Filter bases
 
@@ -478,7 +475,7 @@ theorem HasBasis.eq_bot_iff (hl : l.HasBasis p s) : l = ⊥ ↔ ∃ i, p i ∧ s
 #align filter.has_basis.eq_bot_iff Filter.HasBasis.eq_bot_iff
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (t «expr ⊆ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (t «expr ⊆ » s) -/
 #print Filter.generate_neBot_iff /-
 theorem generate_neBot_iff {s : Set (Set α)} :
     NeBot (generate s) ↔ ∀ (t) (_ : t ⊆ s), t.Finite → (⋂₀ t).Nonempty :=
Diff
@@ -157,9 +157,11 @@ protected def filterBasis {p : ι → Prop} {s : ι → Set α} (h : IsBasis p s
 
 variable {p : ι → Prop} {s : ι → Set α} (h : IsBasis p s)
 
+#print Filter.IsBasis.mem_filterBasis_iff /-
 theorem mem_filterBasis_iff {U : Set α} : U ∈ h.FilterBasis ↔ ∃ i, p i ∧ s i = U :=
   Iff.rfl
 #align filter.is_basis.mem_filter_basis_iff Filter.IsBasis.mem_filterBasis_iff
+-/
 
 end IsBasis
 
@@ -182,9 +184,11 @@ protected def filter (B : FilterBasis α) : Filter α
 #align filter_basis.filter FilterBasis.filter
 -/
 
+#print FilterBasis.mem_filter_iff /-
 theorem mem_filter_iff (B : FilterBasis α) {U : Set α} : U ∈ B.filterₓ ↔ ∃ s ∈ B, s ⊆ U :=
   Iff.rfl
 #align filter_basis.mem_filter_iff FilterBasis.mem_filter_iff
+-/
 
 #print FilterBasis.mem_filter_of_mem /-
 theorem mem_filter_of_mem (B : FilterBasis α) {U : Set α} : U ∈ B → U ∈ B.filterₓ := fun U_in =>
@@ -192,6 +196,7 @@ theorem mem_filter_of_mem (B : FilterBasis α) {U : Set α} : U ∈ B → U ∈
 #align filter_basis.mem_filter_of_mem FilterBasis.mem_filter_of_mem
 -/
 
+#print FilterBasis.eq_iInf_principal /-
 theorem eq_iInf_principal (B : FilterBasis α) : B.filterₓ = ⨅ s : B.sets, 𝓟 s :=
   by
   have : Directed (· ≥ ·) fun s : B.sets => 𝓟 (s : Set α) :=
@@ -204,6 +209,7 @@ theorem eq_iInf_principal (B : FilterBasis α) : B.filterₓ = ⨅ s : B.sets, 
   ext U
   simp [mem_filter_iff, mem_infi_of_directed this]
 #align filter_basis.eq_infi_principal FilterBasis.eq_iInf_principal
+-/
 
 #print FilterBasis.generate /-
 protected theorem generate (B : FilterBasis α) : generate B.sets = B.filterₓ :=
@@ -232,6 +238,7 @@ protected def filter (h : IsBasis p s) : Filter α :=
 #align filter.is_basis.filter Filter.IsBasis.filter
 -/
 
+#print Filter.IsBasis.mem_filter_iff /-
 protected theorem mem_filter_iff (h : IsBasis p s) {U : Set α} :
     U ∈ h.filterₓ ↔ ∃ i, p i ∧ s i ⊆ U :=
   by
@@ -242,10 +249,13 @@ protected theorem mem_filter_iff (h : IsBasis p s) {U : Set α} :
     tauto
   · tauto
 #align filter.is_basis.mem_filter_iff Filter.IsBasis.mem_filter_iff
+-/
 
+#print Filter.IsBasis.filter_eq_generate /-
 theorem filter_eq_generate (h : IsBasis p s) : h.filterₓ = generate {U | ∃ i, p i ∧ s i = U} := by
   erw [h.filter_basis.generate] <;> rfl
 #align filter.is_basis.filter_eq_generate Filter.IsBasis.filter_eq_generate
+-/
 
 end IsBasis
 
@@ -288,36 +298,48 @@ theorem HasBasis.mem_iff (hl : l.HasBasis p s) : t ∈ l ↔ ∃ (i : _) (hi : p
   hl.mem_iff' t
 #align filter.has_basis.mem_iff Filter.HasBasis.mem_iffₓ
 
+#print Filter.HasBasis.eq_of_same_basis /-
 theorem HasBasis.eq_of_same_basis (hl : l.HasBasis p s) (hl' : l'.HasBasis p s) : l = l' :=
   by
   ext t
   rw [hl.mem_iff, hl'.mem_iff]
 #align filter.has_basis.eq_of_same_basis Filter.HasBasis.eq_of_same_basis
+-/
 
 theorem hasBasis_iff : l.HasBasis p s ↔ ∀ t, t ∈ l ↔ ∃ (i : _) (hi : p i), s i ⊆ t :=
   ⟨fun ⟨h⟩ => h, fun h => ⟨h⟩⟩
 #align filter.has_basis_iff Filter.hasBasis_iffₓ
 
+#print Filter.HasBasis.ex_mem /-
 theorem HasBasis.ex_mem (h : l.HasBasis p s) : ∃ i, p i :=
   let ⟨i, pi, h⟩ := h.mem_iff.mp univ_mem
   ⟨i, pi⟩
 #align filter.has_basis.ex_mem Filter.HasBasis.ex_mem
+-/
 
+#print Filter.HasBasis.nonempty /-
 protected theorem HasBasis.nonempty (h : l.HasBasis p s) : Nonempty ι :=
   nonempty_of_exists h.ex_mem
 #align filter.has_basis.nonempty Filter.HasBasis.nonempty
+-/
 
+#print Filter.IsBasis.hasBasis /-
 protected theorem IsBasis.hasBasis (h : IsBasis p s) : HasBasis h.filterₓ p s :=
   ⟨fun t => by simp only [h.mem_filter_iff, exists_prop]⟩
 #align filter.is_basis.has_basis Filter.IsBasis.hasBasis
+-/
 
+#print Filter.HasBasis.mem_of_superset /-
 theorem HasBasis.mem_of_superset (hl : l.HasBasis p s) (hi : p i) (ht : s i ⊆ t) : t ∈ l :=
   hl.mem_iff.2 ⟨i, hi, ht⟩
 #align filter.has_basis.mem_of_superset Filter.HasBasis.mem_of_superset
+-/
 
+#print Filter.HasBasis.mem_of_mem /-
 theorem HasBasis.mem_of_mem (hl : l.HasBasis p s) (hi : p i) : s i ∈ l :=
   hl.mem_of_superset hi <| Subset.refl _
 #align filter.has_basis.mem_of_mem Filter.HasBasis.mem_of_mem
+-/
 
 #print Filter.HasBasis.index /-
 /-- Index of a basis set such that `s i ⊆ t` as an element of `subtype p`. -/
@@ -326,18 +348,25 @@ noncomputable def HasBasis.index (h : l.HasBasis p s) (t : Set α) (ht : t ∈ l
 #align filter.has_basis.index Filter.HasBasis.index
 -/
 
+#print Filter.HasBasis.property_index /-
 theorem HasBasis.property_index (h : l.HasBasis p s) (ht : t ∈ l) : p (h.index t ht) :=
   (h.index t ht).2
 #align filter.has_basis.property_index Filter.HasBasis.property_index
+-/
 
+#print Filter.HasBasis.set_index_mem /-
 theorem HasBasis.set_index_mem (h : l.HasBasis p s) (ht : t ∈ l) : s (h.index t ht) ∈ l :=
   h.mem_of_mem <| h.property_index _
 #align filter.has_basis.set_index_mem Filter.HasBasis.set_index_mem
+-/
 
+#print Filter.HasBasis.set_index_subset /-
 theorem HasBasis.set_index_subset (h : l.HasBasis p s) (ht : t ∈ l) : s (h.index t ht) ⊆ t :=
   (h.mem_iff.1 ht).choose_spec.snd
 #align filter.has_basis.set_index_subset Filter.HasBasis.set_index_subset
+-/
 
+#print Filter.HasBasis.isBasis /-
 theorem HasBasis.isBasis (h : l.HasBasis p s) : IsBasis p s :=
   { Nonempty :=
       let ⟨i, hi, H⟩ := h.mem_iff.mp univ_mem
@@ -345,14 +374,19 @@ theorem HasBasis.isBasis (h : l.HasBasis p s) : IsBasis p s :=
     inter := fun i j hi hj => by
       simpa [h.mem_iff] using l.inter_sets (h.mem_of_mem hi) (h.mem_of_mem hj) }
 #align filter.has_basis.is_basis Filter.HasBasis.isBasis
+-/
 
+#print Filter.HasBasis.filter_eq /-
 theorem HasBasis.filter_eq (h : l.HasBasis p s) : h.IsBasis.filterₓ = l := by ext U;
   simp [h.mem_iff, is_basis.mem_filter_iff]
 #align filter.has_basis.filter_eq Filter.HasBasis.filter_eq
+-/
 
+#print Filter.HasBasis.eq_generate /-
 theorem HasBasis.eq_generate (h : l.HasBasis p s) : l = generate {U | ∃ i, p i ∧ s i = U} := by
   rw [← h.is_basis.filter_eq_generate, h.filter_eq]
 #align filter.has_basis.eq_generate Filter.HasBasis.eq_generate
+-/
 
 #print Filter.generate_eq_generate_inter /-
 theorem generate_eq_generate_inter (s : Set (Set α)) :
@@ -374,6 +408,7 @@ protected theorem FilterBasis.hasBasis {α : Type _} (B : FilterBasis α) :
 #align filter_basis.has_basis FilterBasis.hasBasis
 -/
 
+#print Filter.HasBasis.to_has_basis' /-
 theorem HasBasis.to_has_basis' (hl : l.HasBasis p s) (h : ∀ i, p i → ∃ i', p' i' ∧ s' i' ⊆ s i)
     (h' : ∀ i', p' i' → s' i' ∈ l) : l.HasBasis p' s' :=
   by
@@ -382,26 +417,35 @@ theorem HasBasis.to_has_basis' (hl : l.HasBasis p s) (h : ∀ i, p i → ∃ i',
   rcases h i hi with ⟨i', hi', hs's⟩
   exact ⟨i', hi', subset.trans hs's ht⟩
 #align filter.has_basis.to_has_basis' Filter.HasBasis.to_has_basis'
+-/
 
+#print Filter.HasBasis.to_hasBasis /-
 theorem HasBasis.to_hasBasis (hl : l.HasBasis p s) (h : ∀ i, p i → ∃ i', p' i' ∧ s' i' ⊆ s i)
     (h' : ∀ i', p' i' → ∃ i, p i ∧ s i ⊆ s' i') : l.HasBasis p' s' :=
   hl.to_has_basis' h fun i' hi' =>
     let ⟨i, hi, hss'⟩ := h' i' hi'
     hl.mem_iff.2 ⟨i, hi, hss'⟩
 #align filter.has_basis.to_has_basis Filter.HasBasis.to_hasBasis
+-/
 
+#print Filter.HasBasis.to_subset /-
 theorem HasBasis.to_subset (hl : l.HasBasis p s) {t : ι → Set α} (h : ∀ i, p i → t i ⊆ s i)
     (ht : ∀ i, p i → t i ∈ l) : l.HasBasis p t :=
   hl.to_has_basis' (fun i hi => ⟨i, hi, h i hi⟩) ht
 #align filter.has_basis.to_subset Filter.HasBasis.to_subset
+-/
 
+#print Filter.HasBasis.eventually_iff /-
 theorem HasBasis.eventually_iff (hl : l.HasBasis p s) {q : α → Prop} :
     (∀ᶠ x in l, q x) ↔ ∃ i, p i ∧ ∀ ⦃x⦄, x ∈ s i → q x := by simpa using hl.mem_iff
 #align filter.has_basis.eventually_iff Filter.HasBasis.eventually_iff
+-/
 
+#print Filter.HasBasis.frequently_iff /-
 theorem HasBasis.frequently_iff (hl : l.HasBasis p s) {q : α → Prop} :
     (∃ᶠ x in l, q x) ↔ ∀ i, p i → ∃ x ∈ s i, q x := by simp [Filter.Frequently, hl.eventually_iff]
 #align filter.has_basis.frequently_iff Filter.HasBasis.frequently_iff
+-/
 
 theorem HasBasis.exists_iff (hl : l.HasBasis p s) {P : Set α → Prop}
     (mono : ∀ ⦃s t⦄, s ⊆ t → P t → P s) : (∃ s ∈ l, P s) ↔ ∃ (i : _) (hi : p i), P (s i) :=
@@ -411,22 +455,28 @@ theorem HasBasis.exists_iff (hl : l.HasBasis p s) {P : Set α → Prop}
     fun ⟨i, hi, hP⟩ => ⟨s i, hl.mem_of_mem hi, hP⟩⟩
 #align filter.has_basis.exists_iff Filter.HasBasis.exists_iffₓ
 
+#print Filter.HasBasis.forall_iff /-
 theorem HasBasis.forall_iff (hl : l.HasBasis p s) {P : Set α → Prop}
     (mono : ∀ ⦃s t⦄, s ⊆ t → P s → P t) : (∀ s ∈ l, P s) ↔ ∀ i, p i → P (s i) :=
   ⟨fun H i hi => H (s i) <| hl.mem_of_mem hi, fun H s hs =>
     let ⟨i, hi, his⟩ := hl.mem_iff.1 hs
     mono his (H i hi)⟩
 #align filter.has_basis.forall_iff Filter.HasBasis.forall_iff
+-/
 
+#print Filter.HasBasis.neBot_iff /-
 theorem HasBasis.neBot_iff (hl : l.HasBasis p s) : NeBot l ↔ ∀ {i}, p i → (s i).Nonempty :=
   forall_mem_nonempty_iff_neBot.symm.trans <| hl.forall_iff fun _ _ => Nonempty.mono
 #align filter.has_basis.ne_bot_iff Filter.HasBasis.neBot_iff
+-/
 
+#print Filter.HasBasis.eq_bot_iff /-
 theorem HasBasis.eq_bot_iff (hl : l.HasBasis p s) : l = ⊥ ↔ ∃ i, p i ∧ s i = ∅ :=
   not_iff_not.1 <|
     neBot_iff.symm.trans <|
       hl.neBot_iff.trans <| by simp only [not_exists, not_and, nonempty_iff_ne_empty]
 #align filter.has_basis.eq_bot_iff Filter.HasBasis.eq_bot_iff
+-/
 
 /- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (t «expr ⊆ » s) -/
 #print Filter.generate_neBot_iff /-
@@ -448,6 +498,7 @@ theorem asBasis_filter (f : Filter α) : f.asBasis.filterₓ = f := by
 #align filter.as_basis_filter Filter.asBasis_filter
 -/
 
+#print Filter.hasBasis_self /-
 theorem hasBasis_self {l : Filter α} {P : Set α → Prop} :
     HasBasis l (fun s => s ∈ l ∧ P s) id ↔ ∀ t ∈ l, ∃ r ∈ l, P r ∧ r ⊆ t :=
   by
@@ -456,16 +507,22 @@ theorem hasBasis_self {l : Filter α} {P : Set α → Prop} :
     forall_congr' fun s =>
       ⟨fun h => h.1, fun h => ⟨h, fun ⟨t, hl, hP, hts⟩ => mem_of_superset hl hts⟩⟩
 #align filter.has_basis_self Filter.hasBasis_self
+-/
 
+#print Filter.HasBasis.comp_surjective /-
 theorem HasBasis.comp_surjective (h : l.HasBasis p s) {g : ι' → ι} (hg : Function.Surjective g) :
     l.HasBasis (p ∘ g) (s ∘ g) :=
   ⟨fun t => h.mem_iff.trans hg.exists⟩
 #align filter.has_basis.comp_surjective Filter.HasBasis.comp_surjective
+-/
 
+#print Filter.HasBasis.comp_equiv /-
 theorem HasBasis.comp_equiv (h : l.HasBasis p s) (e : ι' ≃ ι) : l.HasBasis (p ∘ e) (s ∘ e) :=
   h.comp_surjective e.Surjective
 #align filter.has_basis.comp_equiv Filter.HasBasis.comp_equiv
+-/
 
+#print Filter.HasBasis.restrict /-
 /-- If `{s i | p i}` is a basis of a filter `l` and each `s i` includes `s j` such that
 `p j ∧ q j`, then `{s j | p j ∧ q j}` is a basis of `l`. -/
 theorem HasBasis.restrict (h : l.HasBasis p s) {q : ι → Prop}
@@ -476,7 +533,9 @@ theorem HasBasis.restrict (h : l.HasBasis p s) {q : ι → Prop}
   rcases hq i hpi with ⟨j, hpj, hqj, hji⟩
   exact ⟨j, ⟨hpj, hqj⟩, subset.trans hji hti⟩
 #align filter.has_basis.restrict Filter.HasBasis.restrict
+-/
 
+#print Filter.HasBasis.restrict_subset /-
 /-- If `{s i | p i}` is a basis of a filter `l` and `V ∈ l`, then `{s i | p i ∧ s i ⊆ V}`
 is a basis of `l`. -/
 theorem HasBasis.restrict_subset (h : l.HasBasis p s) {V : Set α} (hV : V ∈ l) :
@@ -485,6 +544,7 @@ theorem HasBasis.restrict_subset (h : l.HasBasis p s) {V : Set α} (hV : V ∈ l
     (h.mem_iff.1 (inter_mem hV (h.mem_of_mem hi))).imp fun j hj =>
       ⟨hj.fst, subset_inter_iff.1 hj.snd⟩
 #align filter.has_basis.restrict_subset Filter.HasBasis.restrict_subset
+-/
 
 #print Filter.HasBasis.hasBasis_self_subset /-
 theorem HasBasis.hasBasis_self_subset {p : Set α → Prop} (h : l.HasBasis (fun s => s ∈ l ∧ p s) id)
@@ -493,11 +553,13 @@ theorem HasBasis.hasBasis_self_subset {p : Set α → Prop} (h : l.HasBasis (fun
 #align filter.has_basis.has_basis_self_subset Filter.HasBasis.hasBasis_self_subset
 -/
 
+#print Filter.HasBasis.ge_iff /-
 theorem HasBasis.ge_iff (hl' : l'.HasBasis p' s') : l ≤ l' ↔ ∀ i', p' i' → s' i' ∈ l :=
   ⟨fun h i' hi' => h <| hl'.mem_of_mem hi', fun h s hs =>
     let ⟨i', hi', hs⟩ := hl'.mem_iff.1 hs
     mem_of_superset (h _ hi') hs⟩
 #align filter.has_basis.ge_iff Filter.HasBasis.ge_iff
+-/
 
 theorem HasBasis.le_iff (hl : l.HasBasis p s) : l ≤ l' ↔ ∀ t ∈ l', ∃ (i : _) (hi : p i), s i ⊆ t :=
   by simp only [le_def, hl.mem_iff]
@@ -518,6 +580,7 @@ theorem HasBasis.ext (hl : l.HasBasis p s) (hl' : l'.HasBasis p' s')
     simpa using h
 #align filter.has_basis.ext Filter.HasBasis.extₓ
 
+#print Filter.HasBasis.inf' /-
 theorem HasBasis.inf' (hl : l.HasBasis p s) (hl' : l'.HasBasis p' s') :
     (l ⊓ l').HasBasis (fun i : PProd ι ι' => p i.1 ∧ p' i.2) fun i => s i.1 ∩ s' i.2 :=
   ⟨by
@@ -529,14 +592,18 @@ theorem HasBasis.inf' (hl : l.HasBasis p s) (hl' : l'.HasBasis p' s') :
     · rintro ⟨⟨i, i'⟩, ⟨hi, hi'⟩, H⟩
       exact mem_inf_of_inter (hl.mem_of_mem hi) (hl'.mem_of_mem hi') H⟩
 #align filter.has_basis.inf' Filter.HasBasis.inf'
+-/
 
+#print Filter.HasBasis.inf /-
 theorem HasBasis.inf {ι ι' : Type _} {p : ι → Prop} {s : ι → Set α} {p' : ι' → Prop}
     {s' : ι' → Set α} (hl : l.HasBasis p s) (hl' : l'.HasBasis p' s') :
     (l ⊓ l').HasBasis (fun i : ι × ι' => p i.1 ∧ p' i.2) fun i => s i.1 ∩ s' i.2 :=
   (hl.inf' hl').to_hasBasis (fun i hi => ⟨⟨i.1, i.2⟩, hi, Subset.rfl⟩) fun i hi =>
     ⟨⟨i.1, i.2⟩, hi, Subset.rfl⟩
 #align filter.has_basis.inf Filter.HasBasis.inf
+-/
 
+#print Filter.hasBasis_iInf' /-
 theorem hasBasis_iInf' {ι : Type _} {ι' : ι → Type _} {l : ι → Filter α} {p : ∀ i, ι' i → Prop}
     {s : ∀ i, ι' i → Set α} (hl : ∀ i, (l i).HasBasis (p i) (s i)) :
     (⨅ i, l i).HasBasis (fun If : Set ι × ∀ i, ι' i => If.1.Finite ∧ ∀ i ∈ If.1, p i (If.2 i))
@@ -552,7 +619,9 @@ theorem hasBasis_iInf' {ι : Type _} {ι' : ι → Type _} {l : ι → Filter α
       refine' mem_of_superset _ hsub
       exact (bInter_mem hI₁).mpr fun i hi => mem_infi_of_mem i <| (hl i).mem_of_mem <| hI₂ _ hi⟩
 #align filter.has_basis_infi' Filter.hasBasis_iInf'
+-/
 
+#print Filter.hasBasis_iInf /-
 theorem hasBasis_iInf {ι : Type _} {ι' : ι → Type _} {l : ι → Filter α} {p : ∀ i, ι' i → Prop}
     {s : ∀ i, ι' i → Set α} (hl : ∀ i, (l i).HasBasis (p i) (s i)) :
     (⨅ i, l i).HasBasis
@@ -568,7 +637,9 @@ theorem hasBasis_iInf {ι : Type _} {ι' : ι → Type _} {l : ι → Filter α}
     cases hI.nonempty_fintype
     exact Inter_mem.2 fun i => mem_infi_of_mem i <| (hl i).mem_of_mem <| hf _
 #align filter.has_basis_infi Filter.hasBasis_iInf
+-/
 
+#print Filter.hasBasis_iInf_of_directed' /-
 theorem hasBasis_iInf_of_directed' {ι : Type _} {ι' : ι → Sort _} [Nonempty ι] {l : ι → Filter α}
     (s : ∀ i, ι' i → Set α) (p : ∀ i, ι' i → Prop) (hl : ∀ i, (l i).HasBasis (p i) (s i))
     (h : Directed (· ≥ ·) l) :
@@ -578,7 +649,9 @@ theorem hasBasis_iInf_of_directed' {ι : Type _} {ι' : ι → Sort _} [Nonempty
   rw [mem_infi_of_directed h, Sigma.exists]
   exact exists_congr fun i => (hl i).mem_iff
 #align filter.has_basis_infi_of_directed' Filter.hasBasis_iInf_of_directed'
+-/
 
+#print Filter.hasBasis_iInf_of_directed /-
 theorem hasBasis_iInf_of_directed {ι : Type _} {ι' : Sort _} [Nonempty ι] {l : ι → Filter α}
     (s : ι → ι' → Set α) (p : ι → ι' → Prop) (hl : ∀ i, (l i).HasBasis (p i) (s i))
     (h : Directed (· ≥ ·) l) :
@@ -588,7 +661,9 @@ theorem hasBasis_iInf_of_directed {ι : Type _} {ι' : Sort _} [Nonempty ι] {l
   rw [mem_infi_of_directed h, Prod.exists]
   exact exists_congr fun i => (hl i).mem_iff
 #align filter.has_basis_infi_of_directed Filter.hasBasis_iInf_of_directed
+-/
 
+#print Filter.hasBasis_biInf_of_directed' /-
 theorem hasBasis_biInf_of_directed' {ι : Type _} {ι' : ι → Sort _} {dom : Set ι}
     (hdom : dom.Nonempty) {l : ι → Filter α} (s : ∀ i, ι' i → Set α) (p : ∀ i, ι' i → Prop)
     (hl : ∀ i ∈ dom, (l i).HasBasis (p i) (s i)) (h : DirectedOn (l ⁻¹'o GE.ge) dom) :
@@ -604,7 +679,9 @@ theorem hasBasis_biInf_of_directed' {ι : Type _} {ι' : ι → Sort _} {dom : S
   · rintro ⟨b, ⟨hi, hb⟩, hibt⟩
     exact ⟨hi, (hl i hi).mem_iff.mpr ⟨b, hb, hibt⟩⟩
 #align filter.has_basis_binfi_of_directed' Filter.hasBasis_biInf_of_directed'
+-/
 
+#print Filter.hasBasis_biInf_of_directed /-
 theorem hasBasis_biInf_of_directed {ι : Type _} {ι' : Sort _} {dom : Set ι} (hdom : dom.Nonempty)
     {l : ι → Filter α} (s : ι → ι' → Set α) (p : ι → ι' → Prop)
     (hl : ∀ i ∈ dom, (l i).HasBasis (p i) (s i)) (h : DirectedOn (l ⁻¹'o GE.ge) dom) :
@@ -620,6 +697,7 @@ theorem hasBasis_biInf_of_directed {ι : Type _} {ι' : Sort _} {dom : Set ι} (
   · rintro ⟨b, ⟨hi, hb⟩, hibt⟩
     exact ⟨hi, (hl i hi).mem_iff.mpr ⟨b, hb, hibt⟩⟩
 #align filter.has_basis_binfi_of_directed Filter.hasBasis_biInf_of_directed
+-/
 
 #print Filter.hasBasis_principal /-
 theorem hasBasis_principal (t : Set α) : (𝓟 t).HasBasis (fun i : Unit => True) fun i => t :=
@@ -633,6 +711,7 @@ theorem hasBasis_pure (x : α) : (pure x : Filter α).HasBasis (fun i : Unit =>
 #align filter.has_basis_pure Filter.hasBasis_pure
 -/
 
+#print Filter.HasBasis.sup' /-
 theorem HasBasis.sup' (hl : l.HasBasis p s) (hl' : l'.HasBasis p' s') :
     (l ⊔ l').HasBasis (fun i : PProd ι ι' => p i.1 ∧ p' i.2) fun i => s i.1 ∪ s' i.2 :=
   ⟨by
@@ -641,14 +720,18 @@ theorem HasBasis.sup' (hl : l.HasBasis p s) (hl' : l'.HasBasis p' s') :
       and_assoc', exists_and_left]
     simp only [← and_assoc', exists_and_right, and_comm']⟩
 #align filter.has_basis.sup' Filter.HasBasis.sup'
+-/
 
+#print Filter.HasBasis.sup /-
 theorem HasBasis.sup {ι ι' : Type _} {p : ι → Prop} {s : ι → Set α} {p' : ι' → Prop}
     {s' : ι' → Set α} (hl : l.HasBasis p s) (hl' : l'.HasBasis p' s') :
     (l ⊔ l').HasBasis (fun i : ι × ι' => p i.1 ∧ p' i.2) fun i => s i.1 ∪ s' i.2 :=
   (hl.sup' hl').to_hasBasis (fun i hi => ⟨⟨i.1, i.2⟩, hi, Subset.rfl⟩) fun i hi =>
     ⟨⟨i.1, i.2⟩, hi, Subset.rfl⟩
 #align filter.has_basis.sup Filter.HasBasis.sup
+-/
 
+#print Filter.hasBasis_iSup /-
 theorem hasBasis_iSup {ι : Sort _} {ι' : ι → Type _} {l : ι → Filter α} {p : ∀ i, ι' i → Prop}
     {s : ∀ i, ι' i → Set α} (hl : ∀ i, (l i).HasBasis (p i) (s i)) :
     (⨆ i, l i).HasBasis (fun f : ∀ i, ι' i => ∀ i, p i (f i)) fun f : ∀ i, ι' i => ⋃ i, s i (f i) :=
@@ -656,44 +739,59 @@ theorem hasBasis_iSup {ι : Sort _} {ι' : ι → Type _} {l : ι → Filter α}
     simp only [has_basis_iff, (hl _).mem_iff, Classical.skolem, forall_and, Union_subset_iff,
       mem_supr]
 #align filter.has_basis_supr Filter.hasBasis_iSup
+-/
 
+#print Filter.HasBasis.sup_principal /-
 theorem HasBasis.sup_principal (hl : l.HasBasis p s) (t : Set α) :
     (l ⊔ 𝓟 t).HasBasis p fun i => s i ∪ t :=
   ⟨fun u => by
     simp only [(hl.sup' (has_basis_principal t)).mem_iff, PProd.exists, exists_prop, and_true_iff,
       Unique.exists_iff]⟩
 #align filter.has_basis.sup_principal Filter.HasBasis.sup_principal
+-/
 
+#print Filter.HasBasis.sup_pure /-
 theorem HasBasis.sup_pure (hl : l.HasBasis p s) (x : α) :
     (l ⊔ pure x).HasBasis p fun i => s i ∪ {x} := by
   simp only [← principal_singleton, hl.sup_principal]
 #align filter.has_basis.sup_pure Filter.HasBasis.sup_pure
+-/
 
+#print Filter.HasBasis.inf_principal /-
 theorem HasBasis.inf_principal (hl : l.HasBasis p s) (s' : Set α) :
     (l ⊓ 𝓟 s').HasBasis p fun i => s i ∩ s' :=
   ⟨fun t => by
     simp only [mem_inf_principal, hl.mem_iff, subset_def, mem_set_of_eq, mem_inter_iff, and_imp]⟩
 #align filter.has_basis.inf_principal Filter.HasBasis.inf_principal
+-/
 
+#print Filter.HasBasis.principal_inf /-
 theorem HasBasis.principal_inf (hl : l.HasBasis p s) (s' : Set α) :
     (𝓟 s' ⊓ l).HasBasis p fun i => s' ∩ s i := by
   simpa only [inf_comm, inter_comm] using hl.inf_principal s'
 #align filter.has_basis.principal_inf Filter.HasBasis.principal_inf
+-/
 
+#print Filter.HasBasis.inf_basis_neBot_iff /-
 theorem HasBasis.inf_basis_neBot_iff (hl : l.HasBasis p s) (hl' : l'.HasBasis p' s') :
     NeBot (l ⊓ l') ↔ ∀ ⦃i⦄ (hi : p i) ⦃i'⦄ (hi' : p' i'), (s i ∩ s' i').Nonempty :=
   (hl.inf' hl').neBot_iff.trans <| by simp [@forall_swap _ ι']
 #align filter.has_basis.inf_basis_ne_bot_iff Filter.HasBasis.inf_basis_neBot_iff
+-/
 
+#print Filter.HasBasis.inf_neBot_iff /-
 theorem HasBasis.inf_neBot_iff (hl : l.HasBasis p s) :
     NeBot (l ⊓ l') ↔ ∀ ⦃i⦄ (hi : p i) ⦃s'⦄ (hs' : s' ∈ l'), (s i ∩ s').Nonempty :=
   hl.inf_basis_neBot_iff l'.basis_sets
 #align filter.has_basis.inf_ne_bot_iff Filter.HasBasis.inf_neBot_iff
+-/
 
+#print Filter.HasBasis.inf_principal_neBot_iff /-
 theorem HasBasis.inf_principal_neBot_iff (hl : l.HasBasis p s) {t : Set α} :
     NeBot (l ⊓ 𝓟 t) ↔ ∀ ⦃i⦄ (hi : p i), (s i ∩ t).Nonempty :=
   (hl.inf_principal t).neBot_iff
 #align filter.has_basis.inf_principal_ne_bot_iff Filter.HasBasis.inf_principal_neBot_iff
+-/
 
 theorem HasBasis.disjoint_iff (hl : l.HasBasis p s) (hl' : l'.HasBasis p' s') :
     Disjoint l l' ↔ ∃ (i : _) (hi : p i) (i' : _) (hi' : p' i'), Disjoint (s i) (s' i') :=
@@ -708,6 +806,7 @@ theorem Disjoint.exists_mem_filter_basis (h : Disjoint l l') (hl : l.HasBasis p
   (hl.disjoint_iff hl').1 h
 #align disjoint.exists_mem_filter_basis Disjoint.exists_mem_filter_basisₓ
 
+#print Pairwise.exists_mem_filter_basis_of_disjoint /-
 theorem Pairwise.exists_mem_filter_basis_of_disjoint {I : Type _} [Finite I] {l : I → Filter α}
     {ι : I → Sort _} {p : ∀ i, ι i → Prop} {s : ∀ i, ι i → Set α} (hd : Pairwise (Disjoint on l))
     (h : ∀ i, (l i).HasBasis (p i) (s i)) :
@@ -717,7 +816,9 @@ theorem Pairwise.exists_mem_filter_basis_of_disjoint {I : Type _} [Finite I] {l
   choose ind hp ht using fun i => (h i).mem_iff.1 (htl i)
   exact ⟨ind, hp, hd.mono fun i j hij => hij.mono (ht _) (ht _)⟩
 #align pairwise.exists_mem_filter_basis_of_disjoint Pairwise.exists_mem_filter_basis_of_disjoint
+-/
 
+#print Set.PairwiseDisjoint.exists_mem_filter_basis /-
 theorem Set.PairwiseDisjoint.exists_mem_filter_basis {I : Type _} {l : I → Filter α}
     {ι : I → Sort _} {p : ∀ i, ι i → Prop} {s : ∀ i, ι i → Set α} {S : Set I}
     (hd : S.PairwiseDisjoint l) (hS : S.Finite) (h : ∀ i, (l i).HasBasis (p i) (s i)) :
@@ -727,16 +828,22 @@ theorem Set.PairwiseDisjoint.exists_mem_filter_basis {I : Type _} {l : I → Fil
   choose ind hp ht using fun i => (h i).mem_iff.1 (htl i)
   exact ⟨ind, hp, hd.mono ht⟩
 #align set.pairwise_disjoint.exists_mem_filter_basis Set.PairwiseDisjoint.exists_mem_filter_basis
+-/
 
+#print Filter.inf_neBot_iff /-
 theorem inf_neBot_iff :
     NeBot (l ⊓ l') ↔ ∀ ⦃s : Set α⦄ (hs : s ∈ l) ⦃s'⦄ (hs' : s' ∈ l'), (s ∩ s').Nonempty :=
   l.basis_sets.inf_neBot_iff
 #align filter.inf_ne_bot_iff Filter.inf_neBot_iff
+-/
 
+#print Filter.inf_principal_neBot_iff /-
 theorem inf_principal_neBot_iff {s : Set α} : NeBot (l ⊓ 𝓟 s) ↔ ∀ U ∈ l, (U ∩ s).Nonempty :=
   l.basis_sets.inf_principal_neBot_iff
 #align filter.inf_principal_ne_bot_iff Filter.inf_principal_neBot_iff
+-/
 
+#print Filter.mem_iff_inf_principal_compl /-
 theorem mem_iff_inf_principal_compl {f : Filter α} {s : Set α} : s ∈ f ↔ f ⊓ 𝓟 (sᶜ) = ⊥ :=
   by
   refine' not_iff_not.1 ((inf_principal_ne_bot_iff.trans _).symm.trans ne_bot_iff)
@@ -744,38 +851,51 @@ theorem mem_iff_inf_principal_compl {f : Filter α} {s : Set α} : s ∈ f ↔ f
     ⟨fun h hs => by simpa [not_nonempty_empty] using h s hs, fun hs t ht =>
       inter_compl_nonempty_iff.2 fun hts => hs <| mem_of_superset ht hts⟩
 #align filter.mem_iff_inf_principal_compl Filter.mem_iff_inf_principal_compl
+-/
 
+#print Filter.not_mem_iff_inf_principal_compl /-
 theorem not_mem_iff_inf_principal_compl {f : Filter α} {s : Set α} : s ∉ f ↔ NeBot (f ⊓ 𝓟 (sᶜ)) :=
   (not_congr mem_iff_inf_principal_compl).trans neBot_iff.symm
 #align filter.not_mem_iff_inf_principal_compl Filter.not_mem_iff_inf_principal_compl
+-/
 
+#print Filter.disjoint_principal_right /-
 @[simp]
 theorem disjoint_principal_right {f : Filter α} {s : Set α} : Disjoint f (𝓟 s) ↔ sᶜ ∈ f := by
   rw [mem_iff_inf_principal_compl, compl_compl, disjoint_iff]
 #align filter.disjoint_principal_right Filter.disjoint_principal_right
+-/
 
+#print Filter.disjoint_principal_left /-
 @[simp]
 theorem disjoint_principal_left {f : Filter α} {s : Set α} : Disjoint (𝓟 s) f ↔ sᶜ ∈ f := by
   rw [disjoint_comm, disjoint_principal_right]
 #align filter.disjoint_principal_left Filter.disjoint_principal_left
+-/
 
+#print Filter.disjoint_principal_principal /-
 @[simp]
 theorem disjoint_principal_principal {s t : Set α} : Disjoint (𝓟 s) (𝓟 t) ↔ Disjoint s t := by
   simp [← subset_compl_iff_disjoint_left]
 #align filter.disjoint_principal_principal Filter.disjoint_principal_principal
+-/
 
 alias disjoint_principal_principal ↔ _ _root_.disjoint.filter_principal
 #align disjoint.filter_principal Disjoint.filter_principal
 
+#print Filter.disjoint_pure_pure /-
 @[simp]
 theorem disjoint_pure_pure {x y : α} : Disjoint (pure x : Filter α) (pure y) ↔ x ≠ y := by
   simp only [← principal_singleton, disjoint_principal_principal, disjoint_singleton]
 #align filter.disjoint_pure_pure Filter.disjoint_pure_pure
+-/
 
+#print Filter.compl_diagonal_mem_prod /-
 @[simp]
 theorem compl_diagonal_mem_prod {l₁ l₂ : Filter α} : diagonal αᶜ ∈ l₁ ×ᶠ l₂ ↔ Disjoint l₁ l₂ := by
   simp only [mem_prod_iff, Filter.disjoint_iff, prod_subset_compl_diagonal_iff_disjoint]
 #align filter.compl_diagonal_mem_prod Filter.compl_diagonal_mem_prod
+-/
 
 theorem HasBasis.disjoint_iff_left (h : l.HasBasis p s) :
     Disjoint l l' ↔ ∃ (i : _) (hi : p i), s iᶜ ∈ l' := by
@@ -788,28 +908,39 @@ theorem HasBasis.disjoint_iff_right (h : l.HasBasis p s) :
   disjoint_comm.trans h.disjoint_iff_leftₓ
 #align filter.has_basis.disjoint_iff_right Filter.HasBasis.disjoint_iff_rightₓ
 
+#print Filter.le_iff_forall_inf_principal_compl /-
 theorem le_iff_forall_inf_principal_compl {f g : Filter α} : f ≤ g ↔ ∀ V ∈ g, f ⊓ 𝓟 (Vᶜ) = ⊥ :=
   forall₂_congr fun _ _ => mem_iff_inf_principal_compl
 #align filter.le_iff_forall_inf_principal_compl Filter.le_iff_forall_inf_principal_compl
+-/
 
+#print Filter.inf_neBot_iff_frequently_left /-
 theorem inf_neBot_iff_frequently_left {f g : Filter α} :
     NeBot (f ⊓ g) ↔ ∀ {p : α → Prop}, (∀ᶠ x in f, p x) → ∃ᶠ x in g, p x := by
   simpa only [inf_ne_bot_iff, frequently_iff, exists_prop, and_comm']
 #align filter.inf_ne_bot_iff_frequently_left Filter.inf_neBot_iff_frequently_left
+-/
 
+#print Filter.inf_neBot_iff_frequently_right /-
 theorem inf_neBot_iff_frequently_right {f g : Filter α} :
     NeBot (f ⊓ g) ↔ ∀ {p : α → Prop}, (∀ᶠ x in g, p x) → ∃ᶠ x in f, p x := by rw [inf_comm];
   exact inf_ne_bot_iff_frequently_left
 #align filter.inf_ne_bot_iff_frequently_right Filter.inf_neBot_iff_frequently_right
+-/
 
+#print Filter.HasBasis.eq_biInf /-
 theorem HasBasis.eq_biInf (h : l.HasBasis p s) : l = ⨅ (i) (_ : p i), 𝓟 (s i) :=
   eq_biInf_of_mem_iff_exists_mem fun t => by simp only [h.mem_iff, mem_principal]
 #align filter.has_basis.eq_binfi Filter.HasBasis.eq_biInf
+-/
 
+#print Filter.HasBasis.eq_iInf /-
 theorem HasBasis.eq_iInf (h : l.HasBasis (fun _ => True) s) : l = ⨅ i, 𝓟 (s i) := by
   simpa only [iInf_true] using h.eq_binfi
 #align filter.has_basis.eq_infi Filter.HasBasis.eq_iInf
+-/
 
+#print Filter.hasBasis_iInf_principal /-
 theorem hasBasis_iInf_principal {s : ι → Set α} (h : Directed (· ≥ ·) s) [Nonempty ι] :
     (⨅ i, 𝓟 (s i)).HasBasis (fun _ => True) s :=
   ⟨by
@@ -818,7 +949,9 @@ theorem hasBasis_iInf_principal {s : ι → Set α} (h : Directed (· ≥ ·) s)
         simp only [exists_prop, true_and_iff, mem_principal]
     exact fun _ _ => principal_mono.2⟩
 #align filter.has_basis_infi_principal Filter.hasBasis_iInf_principal
+-/
 
+#print Filter.hasBasis_iInf_principal_finite /-
 /-- If `s : ι → set α` is an indexed family of sets, then finite intersections of `s i` form a basis
 of `⨅ i, 𝓟 (s i)`.  -/
 theorem hasBasis_iInf_principal_finite {ι : Type _} (s : ι → Set α) :
@@ -828,7 +961,9 @@ theorem hasBasis_iInf_principal_finite {ι : Type _} (s : ι → Set α) :
   simp only [infi_principal_finset, mem_Union, mem_principal, exists_prop, exists_finite_iff_finset,
     Finset.set_biInter_coe]
 #align filter.has_basis_infi_principal_finite Filter.hasBasis_iInf_principal_finite
+-/
 
+#print Filter.hasBasis_biInf_principal /-
 theorem hasBasis_biInf_principal {s : β → Set α} {S : Set β} (h : DirectedOn (s ⁻¹'o (· ≥ ·)) S)
     (ne : S.Nonempty) : (⨅ i ∈ S, 𝓟 (s i)).HasBasis (fun i => i ∈ S) s :=
   ⟨by
@@ -837,17 +972,23 @@ theorem hasBasis_biInf_principal {s : β → Set α} {S : Set β} (h : DirectedO
     apply h.mono_comp _ _
     exact fun _ _ => principal_mono.2⟩
 #align filter.has_basis_binfi_principal Filter.hasBasis_biInf_principal
+-/
 
+#print Filter.hasBasis_biInf_principal' /-
 theorem hasBasis_biInf_principal' {ι : Type _} {p : ι → Prop} {s : ι → Set α}
     (h : ∀ i, p i → ∀ j, p j → ∃ (k : _) (h : p k), s k ⊆ s i ∧ s k ⊆ s j) (ne : ∃ i, p i) :
     (⨅ (i) (h : p i), 𝓟 (s i)).HasBasis p s :=
   Filter.hasBasis_biInf_principal h Ne
 #align filter.has_basis_binfi_principal' Filter.hasBasis_biInf_principal'
+-/
 
+#print Filter.HasBasis.map /-
 theorem HasBasis.map (f : α → β) (hl : l.HasBasis p s) : (l.map f).HasBasis p fun i => f '' s i :=
   ⟨fun t => by simp only [mem_map, image_subset_iff, hl.mem_iff, preimage]⟩
 #align filter.has_basis.map Filter.HasBasis.map
+-/
 
+#print Filter.HasBasis.comap /-
 theorem HasBasis.comap (f : β → α) (hl : l.HasBasis p s) :
     (l.comap f).HasBasis p fun i => f ⁻¹' s i :=
   ⟨by
@@ -859,6 +1000,7 @@ theorem HasBasis.comap (f : β → α) (hl : l.HasBasis p s) :
     · rintro ⟨i, hi, H⟩
       exact ⟨s i, ⟨i, hi, subset.refl _⟩, H⟩⟩
 #align filter.has_basis.comap Filter.HasBasis.comap
+-/
 
 #print Filter.comap_hasBasis /-
 theorem comap_hasBasis (f : α → β) (l : Filter β) :
@@ -867,13 +1009,16 @@ theorem comap_hasBasis (f : α → β) (l : Filter β) :
 #align filter.comap_has_basis Filter.comap_hasBasis
 -/
 
+#print Filter.HasBasis.forall_mem_mem /-
 theorem HasBasis.forall_mem_mem (h : HasBasis l p s) {x : α} :
     (∀ t ∈ l, x ∈ t) ↔ ∀ i, p i → x ∈ s i :=
   by
   simp only [h.mem_iff, exists_imp]
   exact ⟨fun h i hi => h (s i) i hi subset.rfl, fun h t i hi ht => ht (h i hi)⟩
 #align filter.has_basis.forall_mem_mem Filter.HasBasis.forall_mem_mem
+-/
 
+#print Filter.HasBasis.biInf_mem /-
 protected theorem HasBasis.biInf_mem [CompleteLattice β] {f : Set α → β} (h : HasBasis l p s)
     (hf : Monotone f) : (⨅ t ∈ l, f t) = ⨅ (i) (hi : p i), f (s i) :=
   le_antisymm (le_iInf₂ fun i hi => iInf₂_le (s i) (h.mem_of_mem hi)) <|
@@ -881,15 +1026,20 @@ protected theorem HasBasis.biInf_mem [CompleteLattice β] {f : Set α → β} (h
       let ⟨i, hpi, hi⟩ := h.mem_iff.1 ht
       iInf₂_le_of_le i hpi (hf hi)
 #align filter.has_basis.binfi_mem Filter.HasBasis.biInf_mem
+-/
 
+#print Filter.HasBasis.biInter_mem /-
 protected theorem HasBasis.biInter_mem {f : Set α → Set β} (h : HasBasis l p s) (hf : Monotone f) :
     (⋂ t ∈ l, f t) = ⋂ (i) (hi : p i), f (s i) :=
   h.biInf_mem hf
 #align filter.has_basis.bInter_mem Filter.HasBasis.biInter_mem
+-/
 
+#print Filter.HasBasis.sInter_sets /-
 theorem HasBasis.sInter_sets (h : HasBasis l p s) : ⋂₀ l.sets = ⋂ (i) (hi : p i), s i := by
   rw [sInter_eq_bInter]; exact h.bInter_mem monotone_id
 #align filter.has_basis.sInter_sets Filter.HasBasis.sInter_sets
+-/
 
 variable {ι'' : Type _} [Preorder ι''] (l) (s'' : ι'' → Set α)
 
@@ -911,10 +1061,12 @@ structure HasAntitoneBasis (l : Filter α) (s : ι'' → Set α) extends HasBasi
 #align filter.has_antitone_basis Filter.HasAntitoneBasis
 -/
 
+#print Filter.HasAntitoneBasis.map /-
 theorem HasAntitoneBasis.map {l : Filter α} {s : ι'' → Set α} {m : α → β}
     (hf : HasAntitoneBasis l s) : HasAntitoneBasis (map m l) fun n => m '' s n :=
   ⟨HasBasis.map _ hf.to_hasBasis, fun i j hij => image_subset _ <| hf.2 hij⟩
 #align filter.has_antitone_basis.map Filter.HasAntitoneBasis.map
+-/
 
 end SameType
 
@@ -928,10 +1080,12 @@ theorem HasBasis.tendsto_left_iff (hla : la.HasBasis pa sa) :
   simp only [tendsto, (hla.map f).le_iffₓ, image_subset_iff]; rfl
 #align filter.has_basis.tendsto_left_iff Filter.HasBasis.tendsto_left_iffₓ
 
+#print Filter.HasBasis.tendsto_right_iff /-
 theorem HasBasis.tendsto_right_iff (hlb : lb.HasBasis pb sb) :
     Tendsto f la lb ↔ ∀ (i) (hi : pb i), ∀ᶠ x in la, f x ∈ sb i := by
   simpa only [tendsto, hlb.ge_iff, mem_map, Filter.Eventually]
 #align filter.has_basis.tendsto_right_iff Filter.HasBasis.tendsto_right_iff
+-/
 
 theorem HasBasis.tendsto_iff (hla : la.HasBasis pa sa) (hlb : lb.HasBasis pb sb) :
     Tendsto f la lb ↔ ∀ (ib) (hib : pb ib), ∃ (ia : _) (hia : pa ia), ∀ x ∈ sa ia, f x ∈ sb ib := by
@@ -943,10 +1097,12 @@ theorem Tendsto.basis_left (H : Tendsto f la lb) (hla : la.HasBasis pa sa) :
   hla.tendsto_left_iffₓ.1 H
 #align filter.tendsto.basis_left Filter.Tendsto.basis_leftₓ
 
+#print Filter.Tendsto.basis_right /-
 theorem Tendsto.basis_right (H : Tendsto f la lb) (hlb : lb.HasBasis pb sb) :
     ∀ (i) (hi : pb i), ∀ᶠ x in la, f x ∈ sb i :=
   hlb.tendsto_right_iff.1 H
 #align filter.tendsto.basis_right Filter.Tendsto.basis_right
+-/
 
 theorem Tendsto.basis_both (H : Tendsto f la lb) (hla : la.HasBasis pa sa)
     (hlb : lb.HasBasis pb sb) :
@@ -955,20 +1111,25 @@ theorem Tendsto.basis_both (H : Tendsto f la lb) (hla : la.HasBasis pa sa)
 #align filter.tendsto.basis_both Filter.Tendsto.basis_bothₓ
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print Filter.HasBasis.prod_pprod /-
 theorem HasBasis.prod_pprod (hla : la.HasBasis pa sa) (hlb : lb.HasBasis pb sb) :
     (la ×ᶠ lb).HasBasis (fun i : PProd ι ι' => pa i.1 ∧ pb i.2) fun i => sa i.1 ×ˢ sb i.2 :=
   (hla.comap Prod.fst).inf' (hlb.comap Prod.snd)
 #align filter.has_basis.prod_pprod Filter.HasBasis.prod_pprod
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print Filter.HasBasis.prod /-
 theorem HasBasis.prod {ι ι' : Type _} {pa : ι → Prop} {sa : ι → Set α} {pb : ι' → Prop}
     {sb : ι' → Set β} (hla : la.HasBasis pa sa) (hlb : lb.HasBasis pb sb) :
     (la ×ᶠ lb).HasBasis (fun i : ι × ι' => pa i.1 ∧ pb i.2) fun i => sa i.1 ×ˢ sb i.2 :=
   (hla.comap Prod.fst).inf (hlb.comap Prod.snd)
 #align filter.has_basis.prod Filter.HasBasis.prod
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print Filter.HasBasis.prod_same_index /-
 theorem HasBasis.prod_same_index {p : ι → Prop} {sb : ι → Set β} (hla : la.HasBasis p sa)
     (hlb : lb.HasBasis p sb) (h_dir : ∀ {i j}, p i → p j → ∃ k, p k ∧ sa k ⊆ sa i ∧ sb k ⊆ sb j) :
     (la ×ᶠ lb).HasBasis p fun i => sa i ×ˢ sb i :=
@@ -981,8 +1142,10 @@ theorem HasBasis.prod_same_index {p : ι → Prop} {sb : ι → Set β} (hla : l
   · rintro ⟨i, hi, h⟩
     exact ⟨⟨i, i⟩, ⟨hi, hi⟩, h⟩
 #align filter.has_basis.prod_same_index Filter.HasBasis.prod_same_index
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print Filter.HasBasis.prod_same_index_mono /-
 theorem HasBasis.prod_same_index_mono {ι : Type _} [LinearOrder ι] {p : ι → Prop} {sa : ι → Set α}
     {sb : ι → Set β} (hla : la.HasBasis p sa) (hlb : lb.HasBasis p sb)
     (hsa : MonotoneOn sa {i | p i}) (hsb : MonotoneOn sb {i | p i}) :
@@ -991,44 +1154,56 @@ theorem HasBasis.prod_same_index_mono {ι : Type _} [LinearOrder ι] {p : ι →
     have : p (min i j) := min_rec' _ hi hj
     ⟨min i j, this, hsa this hi <| min_le_left _ _, hsb this hj <| min_le_right _ _⟩
 #align filter.has_basis.prod_same_index_mono Filter.HasBasis.prod_same_index_mono
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print Filter.HasBasis.prod_same_index_anti /-
 theorem HasBasis.prod_same_index_anti {ι : Type _} [LinearOrder ι] {p : ι → Prop} {sa : ι → Set α}
     {sb : ι → Set β} (hla : la.HasBasis p sa) (hlb : lb.HasBasis p sb)
     (hsa : AntitoneOn sa {i | p i}) (hsb : AntitoneOn sb {i | p i}) :
     (la ×ᶠ lb).HasBasis p fun i => sa i ×ˢ sb i :=
   @HasBasis.prod_same_index_mono _ _ _ _ ιᵒᵈ _ _ _ _ hla hlb hsa.dual_left hsb.dual_left
 #align filter.has_basis.prod_same_index_anti Filter.HasBasis.prod_same_index_anti
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print Filter.HasBasis.prod_self /-
 theorem HasBasis.prod_self (hl : la.HasBasis pa sa) :
     (la ×ᶠ la).HasBasis pa fun i => sa i ×ˢ sa i :=
   hl.prod_same_index hl fun i j hi hj => by
     simpa only [exists_prop, subset_inter_iff] using
       hl.mem_iff.1 (inter_mem (hl.mem_of_mem hi) (hl.mem_of_mem hj))
 #align filter.has_basis.prod_self Filter.HasBasis.prod_self
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print Filter.mem_prod_self_iff /-
 theorem mem_prod_self_iff {s} : s ∈ la ×ᶠ la ↔ ∃ t ∈ la, t ×ˢ t ⊆ s :=
   la.basis_sets.prod_self.mem_iff
 #align filter.mem_prod_self_iff Filter.mem_prod_self_iff
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print Filter.HasAntitoneBasis.prod /-
 theorem HasAntitoneBasis.prod {ι : Type _} [LinearOrder ι] {f : Filter α} {g : Filter β}
     {s : ι → Set α} {t : ι → Set β} (hf : HasAntitoneBasis f s) (hg : HasAntitoneBasis g t) :
     HasAntitoneBasis (f ×ᶠ g) fun n => s n ×ˢ t n :=
   ⟨hf.1.prod_same_index_anti hg.1 (hf.2.AntitoneOn _) (hg.2.AntitoneOn _), hf.2.set_prod hg.2⟩
 #align filter.has_antitone_basis.prod Filter.HasAntitoneBasis.prod
+-/
 
+#print Filter.HasBasis.coprod /-
 theorem HasBasis.coprod {ι ι' : Type _} {pa : ι → Prop} {sa : ι → Set α} {pb : ι' → Prop}
     {sb : ι' → Set β} (hla : la.HasBasis pa sa) (hlb : lb.HasBasis pb sb) :
     (la.coprod lb).HasBasis (fun i : ι × ι' => pa i.1 ∧ pb i.2) fun i =>
       Prod.fst ⁻¹' sa i.1 ∪ Prod.snd ⁻¹' sb i.2 :=
   (hla.comap Prod.fst).sup (hlb.comap Prod.snd)
 #align filter.has_basis.coprod Filter.HasBasis.coprod
+-/
 
 end TwoTypes
 
+#print Filter.map_sigma_mk_comap /-
 theorem map_sigma_mk_comap {π : α → Type _} {π' : β → Type _} {f : α → β}
     (hf : Function.Injective f) (g : ∀ a, π a → π' (f a)) (a : α) (l : Filter (π' (f a))) :
     map (Sigma.mk a) (comap (g a) l) = comap (Sigma.map f g) (map (Sigma.mk (f a)) l) :=
@@ -1038,6 +1213,7 @@ theorem map_sigma_mk_comap {π : α → Type _} {π' : β → Type _} {f : α 
   ext1 s
   apply image_sigma_mk_preimage_sigma_map hf
 #align filter.map_sigma_mk_comap Filter.map_sigma_mk_comap
+-/
 
 end Filter
 
@@ -1048,7 +1224,7 @@ namespace Filter
 variable {α β γ ι : Type _} {ι' : Sort _}
 
 #print Filter.IsCountablyGenerated /-
-/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`out] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`out] [] -/
 /-- `is_countably_generated f` means `f = generate s` for some countable `s`. -/
 class IsCountablyGenerated (f : Filter α) : Prop where
   out : ∃ s : Set (Set α), s.Countable ∧ f = generate s
@@ -1088,11 +1264,14 @@ instance Nat.inhabitedCountableFilterBasis : Inhabited (CountableFilterBasis ℕ
 #align filter.nat.inhabited_countable_filter_basis Filter.Nat.inhabitedCountableFilterBasis
 -/
 
+#print Filter.HasCountableBasis.isCountablyGenerated /-
 theorem HasCountableBasis.isCountablyGenerated {f : Filter α} {p : ι → Prop} {s : ι → Set α}
     (h : f.HasCountableBasis p s) : f.IsCountablyGenerated :=
   ⟨⟨{t | ∃ i, p i ∧ s i = t}, h.Countable.image s, h.to_hasBasis.eq_generate⟩⟩
 #align filter.has_countable_basis.is_countably_generated Filter.HasCountableBasis.isCountablyGenerated
+-/
 
+#print Filter.antitone_seq_of_seq /-
 theorem antitone_seq_of_seq (s : ℕ → Set α) :
     ∃ t : ℕ → Set α, Antitone t ∧ (⨅ i, 𝓟 <| s i) = ⨅ i, 𝓟 (t i) :=
   by
@@ -1103,13 +1282,17 @@ theorem antitone_seq_of_seq (s : ℕ → Set α) :
     rw [← le_principal_iff]; apply iInf_le_of_le j _; exact le_rfl
   · apply iInf_le_of_le i _; rw [principal_mono]; intro a; simp; intro h; apply h; rfl
 #align filter.antitone_seq_of_seq Filter.antitone_seq_of_seq
+-/
 
+#print Filter.countable_biInf_eq_iInf_seq /-
 theorem countable_biInf_eq_iInf_seq [CompleteLattice α] {B : Set ι} (Bcbl : B.Countable)
     (Bne : B.Nonempty) (f : ι → α) : ∃ x : ℕ → ι, (⨅ t ∈ B, f t) = ⨅ i, f (x i) :=
   let ⟨g, hg⟩ := Bcbl.exists_eq_range Bne
   ⟨g, hg.symm ▸ iInf_range⟩
 #align filter.countable_binfi_eq_infi_seq Filter.countable_biInf_eq_iInf_seq
+-/
 
+#print Filter.countable_biInf_eq_iInf_seq' /-
 theorem countable_biInf_eq_iInf_seq' [CompleteLattice α] {B : Set ι} (Bcbl : B.Countable)
     (f : ι → α) {i₀ : ι} (h : f i₀ = ⊤) : ∃ x : ℕ → ι, (⨅ t ∈ B, f t) = ⨅ i, f (x i) :=
   by
@@ -1119,11 +1302,14 @@ theorem countable_biInf_eq_iInf_seq' [CompleteLattice α] {B : Set ι} (Bcbl : B
     simp [h]
   · exact countable_binfi_eq_infi_seq Bcbl Bnonempty f
 #align filter.countable_binfi_eq_infi_seq' Filter.countable_biInf_eq_iInf_seq'
+-/
 
+#print Filter.countable_biInf_principal_eq_seq_iInf /-
 theorem countable_biInf_principal_eq_seq_iInf {B : Set (Set α)} (Bcbl : B.Countable) :
     ∃ x : ℕ → Set α, (⨅ t ∈ B, 𝓟 t) = ⨅ i, 𝓟 (x i) :=
   countable_biInf_eq_iInf_seq' Bcbl 𝓟 principal_univ
 #align filter.countable_binfi_principal_eq_seq_infi Filter.countable_biInf_principal_eq_seq_iInf
+-/
 
 section IsCountablyGenerated
 
@@ -1149,6 +1335,7 @@ theorem HasAntitoneBasis.hasBasis_ge [Preorder ι] [IsDirected ι (· ≤ ·)] {
 #align filter.has_antitone_basis.has_basis_ge Filter.HasAntitoneBasis.hasBasis_ge
 -/
 
+#print Filter.HasBasis.exists_antitone_subbasis /-
 /-- If `f` is countably generated and `f.has_basis p s`, then `f` admits a decreasing basis
 enumerated by natural numbers such that all sets have the form `s i`. More precisely, there is a
 sequence `i n` such that `p (i n)` for all `n` and `s (i n)` is a decreasing sequence of sets which
@@ -1182,6 +1369,7 @@ theorem HasBasis.exists_antitone_subbasis {f : Filter α} [h : f.IsCountablyGene
       (hx'.symm ▸
         le_iInf fun i => le_principal_iff.2 <| this.to_has_basis.mem_iff.2 ⟨i, trivial, x_subset i⟩)
 #align filter.has_basis.exists_antitone_subbasis Filter.HasBasis.exists_antitone_subbasis
+-/
 
 #print Filter.exists_antitone_basis /-
 /-- A countably generated filter admits a basis formed by an antitone sequence of sets. -/
@@ -1192,12 +1380,15 @@ theorem exists_antitone_basis (f : Filter α) [f.IsCountablyGenerated] :
 #align filter.exists_antitone_basis Filter.exists_antitone_basis
 -/
 
+#print Filter.exists_antitone_seq /-
 theorem exists_antitone_seq (f : Filter α) [f.IsCountablyGenerated] :
     ∃ x : ℕ → Set α, Antitone x ∧ ∀ {s}, s ∈ f ↔ ∃ i, x i ⊆ s :=
   let ⟨x, hx⟩ := f.exists_antitone_basis
   ⟨x, hx.Antitone, fun s => by simp [hx.to_has_basis.mem_iff]⟩
 #align filter.exists_antitone_seq Filter.exists_antitone_seq
+-/
 
+#print Filter.Inf.isCountablyGenerated /-
 instance Inf.isCountablyGenerated (f g : Filter α) [IsCountablyGenerated f]
     [IsCountablyGenerated g] : IsCountablyGenerated (f ⊓ g) :=
   by
@@ -1207,6 +1398,7 @@ instance Inf.isCountablyGenerated (f g : Filter α) [IsCountablyGenerated f]
     has_countable_basis.is_countably_generated
       ⟨hs.to_has_basis.inf ht.to_has_basis, Set.to_countable _⟩
 #align filter.inf.is_countably_generated Filter.Inf.isCountablyGenerated
+-/
 
 #print Filter.map.isCountablyGenerated /-
 instance map.isCountablyGenerated (l : Filter α) [l.IsCountablyGenerated] (f : α → β) :
@@ -1224,6 +1416,7 @@ instance comap.isCountablyGenerated (l : Filter β) [l.IsCountablyGenerated] (f
 #align filter.comap.is_countably_generated Filter.comap.isCountablyGenerated
 -/
 
+#print Filter.Sup.isCountablyGenerated /-
 instance Sup.isCountablyGenerated (f g : Filter α) [IsCountablyGenerated f]
     [IsCountablyGenerated g] : IsCountablyGenerated (f ⊔ g) :=
   by
@@ -1233,6 +1426,7 @@ instance Sup.isCountablyGenerated (f g : Filter α) [IsCountablyGenerated f]
     has_countable_basis.is_countably_generated
       ⟨hs.to_has_basis.sup ht.to_has_basis, Set.to_countable _⟩
 #align filter.sup.is_countably_generated Filter.Sup.isCountablyGenerated
+-/
 
 #print Filter.prod.isCountablyGenerated /-
 instance prod.isCountablyGenerated (la : Filter α) (lb : Filter β) [IsCountablyGenerated la]
@@ -1250,23 +1444,29 @@ instance coprod.isCountablyGenerated (la : Filter α) (lb : Filter β) [IsCounta
 
 end IsCountablyGenerated
 
+#print Filter.isCountablyGenerated_seq /-
 theorem isCountablyGenerated_seq [Countable β] (x : β → Set α) :
     IsCountablyGenerated (⨅ i, 𝓟 <| x i) :=
   by
   use range x, countable_range x
   rw [generate_eq_binfi, iInf_range]
 #align filter.is_countably_generated_seq Filter.isCountablyGenerated_seq
+-/
 
+#print Filter.isCountablyGenerated_of_seq /-
 theorem isCountablyGenerated_of_seq {f : Filter α} (h : ∃ x : ℕ → Set α, f = ⨅ i, 𝓟 <| x i) :
     f.IsCountablyGenerated := by
   let ⟨x, h⟩ := h
   rw [h] <;> apply is_countably_generated_seq
 #align filter.is_countably_generated_of_seq Filter.isCountablyGenerated_of_seq
+-/
 
+#print Filter.isCountablyGenerated_biInf_principal /-
 theorem isCountablyGenerated_biInf_principal {B : Set <| Set α} (h : B.Countable) :
     IsCountablyGenerated (⨅ s ∈ B, 𝓟 s) :=
   isCountablyGenerated_of_seq (countable_biInf_principal_eq_seq_iInf h)
 #align filter.is_countably_generated_binfi_principal Filter.isCountablyGenerated_biInf_principal
+-/
 
 #print Filter.isCountablyGenerated_iff_exists_antitone_basis /-
 theorem isCountablyGenerated_iff_exists_antitone_basis {f : Filter α} :
@@ -1294,16 +1494,21 @@ theorem isCountablyGenerated_pure (a : α) : IsCountablyGenerated (pure a) := by
 #align filter.is_countably_generated_pure Filter.isCountablyGenerated_pure
 -/
 
+#print Filter.isCountablyGenerated_bot /-
 @[instance]
 theorem isCountablyGenerated_bot : IsCountablyGenerated (⊥ : Filter α) :=
   @principal_empty α ▸ isCountablyGenerated_principal _
 #align filter.is_countably_generated_bot Filter.isCountablyGenerated_bot
+-/
 
+#print Filter.isCountablyGenerated_top /-
 @[instance]
 theorem isCountablyGenerated_top : IsCountablyGenerated (⊤ : Filter α) :=
   @principal_univ α ▸ isCountablyGenerated_principal _
 #align filter.is_countably_generated_top Filter.isCountablyGenerated_top
+-/
 
+#print Filter.iInf.isCountablyGenerated /-
 instance iInf.isCountablyGenerated {ι : Sort _} [Countable ι] (f : ι → Filter α)
     [∀ i, IsCountablyGenerated (f i)] : IsCountablyGenerated (⨅ i, f i) :=
   by
@@ -1315,6 +1520,7 @@ instance iInf.isCountablyGenerated {ι : Sort _} [Countable ι] (f : ι → Filt
   lift I to Finset (PLift ι) using hI
   exact ⟨⟨I, f⟩, rfl⟩
 #align filter.infi.is_countably_generated Filter.iInf.isCountablyGenerated
+-/
 
 end Filter
 
Diff
@@ -428,7 +428,7 @@ theorem HasBasis.eq_bot_iff (hl : l.HasBasis p s) : l = ⊥ ↔ ∃ i, p i ∧ s
       hl.neBot_iff.trans <| by simp only [not_exists, not_and, nonempty_iff_ne_empty]
 #align filter.has_basis.eq_bot_iff Filter.HasBasis.eq_bot_iff
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (t «expr ⊆ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (t «expr ⊆ » s) -/
 #print Filter.generate_neBot_iff /-
 theorem generate_neBot_iff {s : Set (Set α)} :
     NeBot (generate s) ↔ ∀ (t) (_ : t ⊆ s), t.Finite → (⋂₀ t).Nonempty :=
Diff
@@ -144,7 +144,7 @@ namespace IsBasis
 /-- Constructs a filter basis from an indexed family of sets satisfying `is_basis`. -/
 protected def filterBasis {p : ι → Prop} {s : ι → Set α} (h : IsBasis p s) : FilterBasis α
     where
-  sets := { t | ∃ i, p i ∧ s i = t }
+  sets := {t | ∃ i, p i ∧ s i = t}
   Nonempty :=
     let ⟨i, hi⟩ := h.Nonempty
     ⟨s i, ⟨i, hi, rfl⟩⟩
@@ -171,7 +171,7 @@ namespace FilterBasis
 /-- The filter associated to a filter basis. -/
 protected def filter (B : FilterBasis α) : Filter α
     where
-  sets := { s | ∃ t ∈ B, t ⊆ s }
+  sets := {s | ∃ t ∈ B, t ⊆ s}
   univ_sets :=
     let ⟨s, s_in⟩ := B.Nonempty
     ⟨s, s_in, s.subset_univ⟩
@@ -243,7 +243,7 @@ protected theorem mem_filter_iff (h : IsBasis p s) {U : Set α} :
   · tauto
 #align filter.is_basis.mem_filter_iff Filter.IsBasis.mem_filter_iff
 
-theorem filter_eq_generate (h : IsBasis p s) : h.filterₓ = generate { U | ∃ i, p i ∧ s i = U } := by
+theorem filter_eq_generate (h : IsBasis p s) : h.filterₓ = generate {U | ∃ i, p i ∧ s i = U} := by
   erw [h.filter_basis.generate] <;> rfl
 #align filter.is_basis.filter_eq_generate Filter.IsBasis.filter_eq_generate
 
@@ -273,7 +273,7 @@ theorem hasBasis_generate (s : Set (Set α)) :
 /-- The smallest filter basis containing a given collection of sets. -/
 def FilterBasis.ofSets (s : Set (Set α)) : FilterBasis α
     where
-  sets := sInter '' { t | Set.Finite t ∧ t ⊆ s }
+  sets := sInter '' {t | Set.Finite t ∧ t ⊆ s}
   Nonempty := ⟨univ, ∅, ⟨⟨finite_empty, empty_subset s⟩, sInter_empty⟩⟩
   inter_sets := by
     rintro _ _ ⟨a, ⟨fina, suba⟩, rfl⟩ ⟨b, ⟨finb, subb⟩, rfl⟩
@@ -350,13 +350,13 @@ theorem HasBasis.filter_eq (h : l.HasBasis p s) : h.IsBasis.filterₓ = l := by
   simp [h.mem_iff, is_basis.mem_filter_iff]
 #align filter.has_basis.filter_eq Filter.HasBasis.filter_eq
 
-theorem HasBasis.eq_generate (h : l.HasBasis p s) : l = generate { U | ∃ i, p i ∧ s i = U } := by
+theorem HasBasis.eq_generate (h : l.HasBasis p s) : l = generate {U | ∃ i, p i ∧ s i = U} := by
   rw [← h.is_basis.filter_eq_generate, h.filter_eq]
 #align filter.has_basis.eq_generate Filter.HasBasis.eq_generate
 
 #print Filter.generate_eq_generate_inter /-
 theorem generate_eq_generate_inter (s : Set (Set α)) :
-    generate s = generate (sInter '' { t | Set.Finite t ∧ t ⊆ s }) := by
+    generate s = generate (sInter '' {t | Set.Finite t ∧ t ⊆ s}) := by
   erw [(filter_basis.of_sets s).generate, ← (has_basis_generate s).filter_eq] <;> rfl
 #align filter.generate_eq_generate_inter Filter.generate_eq_generate_inter
 -/
@@ -985,7 +985,7 @@ theorem HasBasis.prod_same_index {p : ι → Prop} {sb : ι → Set β} (hla : l
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 theorem HasBasis.prod_same_index_mono {ι : Type _} [LinearOrder ι] {p : ι → Prop} {sa : ι → Set α}
     {sb : ι → Set β} (hla : la.HasBasis p sa) (hlb : lb.HasBasis p sb)
-    (hsa : MonotoneOn sa { i | p i }) (hsb : MonotoneOn sb { i | p i }) :
+    (hsa : MonotoneOn sa {i | p i}) (hsb : MonotoneOn sb {i | p i}) :
     (la ×ᶠ lb).HasBasis p fun i => sa i ×ˢ sb i :=
   hla.prod_same_index hlb fun i j hi hj =>
     have : p (min i j) := min_rec' _ hi hj
@@ -995,7 +995,7 @@ theorem HasBasis.prod_same_index_mono {ι : Type _} [LinearOrder ι] {p : ι →
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 theorem HasBasis.prod_same_index_anti {ι : Type _} [LinearOrder ι] {p : ι → Prop} {sa : ι → Set α}
     {sb : ι → Set β} (hla : la.HasBasis p sa) (hlb : lb.HasBasis p sb)
-    (hsa : AntitoneOn sa { i | p i }) (hsb : AntitoneOn sb { i | p i }) :
+    (hsa : AntitoneOn sa {i | p i}) (hsb : AntitoneOn sb {i | p i}) :
     (la ×ᶠ lb).HasBasis p fun i => sa i ×ˢ sb i :=
   @HasBasis.prod_same_index_mono _ _ _ _ ιᵒᵈ _ _ _ _ hla hlb hsa.dual_left hsb.dual_left
 #align filter.has_basis.prod_same_index_anti Filter.HasBasis.prod_same_index_anti
@@ -1034,7 +1034,7 @@ theorem map_sigma_mk_comap {π : α → Type _} {π' : β → Type _} {f : α 
     map (Sigma.mk a) (comap (g a) l) = comap (Sigma.map f g) (map (Sigma.mk (f a)) l) :=
   by
   refine' (((basis_sets _).comap _).map _).eq_of_same_basis _
-  convert((basis_sets _).map _).comap _
+  convert ((basis_sets _).map _).comap _
   ext1 s
   apply image_sigma_mk_preimage_sigma_map hf
 #align filter.map_sigma_mk_comap Filter.map_sigma_mk_comap
@@ -1048,7 +1048,7 @@ namespace Filter
 variable {α β γ ι : Type _} {ι' : Sort _}
 
 #print Filter.IsCountablyGenerated /-
-/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`out] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`out] [] -/
 /-- `is_countably_generated f` means `f = generate s` for some countable `s`. -/
 class IsCountablyGenerated (f : Filter α) : Prop where
   out : ∃ s : Set (Set α), s.Countable ∧ f = generate s
@@ -1090,7 +1090,7 @@ instance Nat.inhabitedCountableFilterBasis : Inhabited (CountableFilterBasis ℕ
 
 theorem HasCountableBasis.isCountablyGenerated {f : Filter α} {p : ι → Prop} {s : ι → Set α}
     (h : f.HasCountableBasis p s) : f.IsCountablyGenerated :=
-  ⟨⟨{ t | ∃ i, p i ∧ s i = t }, h.Countable.image s, h.to_hasBasis.eq_generate⟩⟩
+  ⟨⟨{t | ∃ i, p i ∧ s i = t}, h.Countable.image s, h.to_hasBasis.eq_generate⟩⟩
 #align filter.has_countable_basis.is_countably_generated Filter.HasCountableBasis.isCountablyGenerated
 
 theorem antitone_seq_of_seq (s : ℕ → Set α) :
Diff
@@ -253,7 +253,7 @@ end IsBasis
 /-- We say that a filter `l` has a basis `s : ι → set α` bounded by `p : ι → Prop`,
 if `t ∈ l` if and only if `t` includes `s i` for some `i` such that `p i`. -/
 protected structure HasBasis (l : Filter α) (p : ι → Prop) (s : ι → Set α) : Prop where
-  mem_iff' : ∀ t : Set α, t ∈ l ↔ ∃ (i : _)(hi : p i), s i ⊆ t
+  mem_iff' : ∀ t : Set α, t ∈ l ↔ ∃ (i : _) (hi : p i), s i ⊆ t
 #align filter.has_basis Filter.HasBasis
 -/
 
@@ -284,7 +284,7 @@ def FilterBasis.ofSets (s : Set (Set α)) : FilterBasis α
 -/
 
 /-- Definition of `has_basis` unfolded with implicit set argument. -/
-theorem HasBasis.mem_iff (hl : l.HasBasis p s) : t ∈ l ↔ ∃ (i : _)(hi : p i), s i ⊆ t :=
+theorem HasBasis.mem_iff (hl : l.HasBasis p s) : t ∈ l ↔ ∃ (i : _) (hi : p i), s i ⊆ t :=
   hl.mem_iff' t
 #align filter.has_basis.mem_iff Filter.HasBasis.mem_iffₓ
 
@@ -294,7 +294,7 @@ theorem HasBasis.eq_of_same_basis (hl : l.HasBasis p s) (hl' : l'.HasBasis p s)
   rw [hl.mem_iff, hl'.mem_iff]
 #align filter.has_basis.eq_of_same_basis Filter.HasBasis.eq_of_same_basis
 
-theorem hasBasis_iff : l.HasBasis p s ↔ ∀ t, t ∈ l ↔ ∃ (i : _)(hi : p i), s i ⊆ t :=
+theorem hasBasis_iff : l.HasBasis p s ↔ ∀ t, t ∈ l ↔ ∃ (i : _) (hi : p i), s i ⊆ t :=
   ⟨fun ⟨h⟩ => h, fun h => ⟨h⟩⟩
 #align filter.has_basis_iff Filter.hasBasis_iffₓ
 
@@ -404,7 +404,7 @@ theorem HasBasis.frequently_iff (hl : l.HasBasis p s) {q : α → Prop} :
 #align filter.has_basis.frequently_iff Filter.HasBasis.frequently_iff
 
 theorem HasBasis.exists_iff (hl : l.HasBasis p s) {P : Set α → Prop}
-    (mono : ∀ ⦃s t⦄, s ⊆ t → P t → P s) : (∃ s ∈ l, P s) ↔ ∃ (i : _)(hi : p i), P (s i) :=
+    (mono : ∀ ⦃s t⦄, s ⊆ t → P t → P s) : (∃ s ∈ l, P s) ↔ ∃ (i : _) (hi : p i), P (s i) :=
   ⟨fun ⟨s, hs, hP⟩ =>
     let ⟨i, hi, his⟩ := hl.mem_iff.1 hs
     ⟨i, hi, mono his hP⟩,
@@ -499,12 +499,13 @@ theorem HasBasis.ge_iff (hl' : l'.HasBasis p' s') : l ≤ l' ↔ ∀ i', p' i' 
     mem_of_superset (h _ hi') hs⟩
 #align filter.has_basis.ge_iff Filter.HasBasis.ge_iff
 
-theorem HasBasis.le_iff (hl : l.HasBasis p s) : l ≤ l' ↔ ∀ t ∈ l', ∃ (i : _)(hi : p i), s i ⊆ t :=
+theorem HasBasis.le_iff (hl : l.HasBasis p s) : l ≤ l' ↔ ∀ t ∈ l', ∃ (i : _) (hi : p i), s i ⊆ t :=
   by simp only [le_def, hl.mem_iff]
 #align filter.has_basis.le_iff Filter.HasBasis.le_iffₓ
 
 theorem HasBasis.le_basis_iff (hl : l.HasBasis p s) (hl' : l'.HasBasis p' s') :
-    l ≤ l' ↔ ∀ i', p' i' → ∃ (i : _)(hi : p i), s i ⊆ s' i' := by simp only [hl'.ge_iff, hl.mem_iff]
+    l ≤ l' ↔ ∀ i', p' i' → ∃ (i : _) (hi : p i), s i ⊆ s' i' := by
+  simp only [hl'.ge_iff, hl.mem_iff]
 #align filter.has_basis.le_basis_iff Filter.HasBasis.le_basis_iffₓ
 
 theorem HasBasis.ext (hl : l.HasBasis p s) (hl' : l'.HasBasis p' s')
@@ -555,7 +556,7 @@ theorem hasBasis_iInf' {ι : Type _} {ι' : ι → Type _} {l : ι → Filter α
 theorem hasBasis_iInf {ι : Type _} {ι' : ι → Type _} {l : ι → Filter α} {p : ∀ i, ι' i → Prop}
     {s : ∀ i, ι' i → Set α} (hl : ∀ i, (l i).HasBasis (p i) (s i)) :
     (⨅ i, l i).HasBasis
-      (fun If : ΣI : Set ι, ∀ i : I, ι' i => If.1.Finite ∧ ∀ i : If.1, p i (If.2 i)) fun If =>
+      (fun If : Σ I : Set ι, ∀ i : I, ι' i => If.1.Finite ∧ ∀ i : If.1, p i (If.2 i)) fun If =>
       ⋂ i : If.1, s i (If.2 i) :=
   by
   refine' ⟨fun t => ⟨fun ht => _, _⟩⟩
@@ -571,7 +572,7 @@ theorem hasBasis_iInf {ι : Type _} {ι' : ι → Type _} {l : ι → Filter α}
 theorem hasBasis_iInf_of_directed' {ι : Type _} {ι' : ι → Sort _} [Nonempty ι] {l : ι → Filter α}
     (s : ∀ i, ι' i → Set α) (p : ∀ i, ι' i → Prop) (hl : ∀ i, (l i).HasBasis (p i) (s i))
     (h : Directed (· ≥ ·) l) :
-    (⨅ i, l i).HasBasis (fun ii' : Σi, ι' i => p ii'.1 ii'.2) fun ii' => s ii'.1 ii'.2 :=
+    (⨅ i, l i).HasBasis (fun ii' : Σ i, ι' i => p ii'.1 ii'.2) fun ii' => s ii'.1 ii'.2 :=
   by
   refine' ⟨fun t => _⟩
   rw [mem_infi_of_directed h, Sigma.exists]
@@ -591,7 +592,7 @@ theorem hasBasis_iInf_of_directed {ι : Type _} {ι' : Sort _} [Nonempty ι] {l
 theorem hasBasis_biInf_of_directed' {ι : Type _} {ι' : ι → Sort _} {dom : Set ι}
     (hdom : dom.Nonempty) {l : ι → Filter α} (s : ∀ i, ι' i → Set α) (p : ∀ i, ι' i → Prop)
     (hl : ∀ i ∈ dom, (l i).HasBasis (p i) (s i)) (h : DirectedOn (l ⁻¹'o GE.ge) dom) :
-    (⨅ i ∈ dom, l i).HasBasis (fun ii' : Σi, ι' i => ii'.1 ∈ dom ∧ p ii'.1 ii'.2) fun ii' =>
+    (⨅ i ∈ dom, l i).HasBasis (fun ii' : Σ i, ι' i => ii'.1 ∈ dom ∧ p ii'.1 ii'.2) fun ii' =>
       s ii'.1 ii'.2 :=
   by
   refine' ⟨fun t => _⟩
@@ -695,14 +696,15 @@ theorem HasBasis.inf_principal_neBot_iff (hl : l.HasBasis p s) {t : Set α} :
 #align filter.has_basis.inf_principal_ne_bot_iff Filter.HasBasis.inf_principal_neBot_iff
 
 theorem HasBasis.disjoint_iff (hl : l.HasBasis p s) (hl' : l'.HasBasis p' s') :
-    Disjoint l l' ↔ ∃ (i : _)(hi : p i)(i' : _)(hi' : p' i'), Disjoint (s i) (s' i') :=
+    Disjoint l l' ↔ ∃ (i : _) (hi : p i) (i' : _) (hi' : p' i'), Disjoint (s i) (s' i') :=
   not_iff_not.mp <| by
     simp only [disjoint_iff, ← Ne.def, ← ne_bot_iff, hl.inf_basis_ne_bot_iff hl', not_exists,
       bot_eq_empty, ← nonempty_iff_ne_empty, inf_eq_inter]
 #align filter.has_basis.disjoint_iff Filter.HasBasis.disjoint_iffₓ
 
 theorem Disjoint.exists_mem_filter_basis (h : Disjoint l l') (hl : l.HasBasis p s)
-    (hl' : l'.HasBasis p' s') : ∃ (i : _)(hi : p i)(i' : _)(hi' : p' i'), Disjoint (s i) (s' i') :=
+    (hl' : l'.HasBasis p' s') :
+    ∃ (i : _) (hi : p i) (i' : _) (hi' : p' i'), Disjoint (s i) (s' i') :=
   (hl.disjoint_iff hl').1 h
 #align disjoint.exists_mem_filter_basis Disjoint.exists_mem_filter_basisₓ
 
@@ -776,13 +778,13 @@ theorem compl_diagonal_mem_prod {l₁ l₂ : Filter α} : diagonal αᶜ ∈ l
 #align filter.compl_diagonal_mem_prod Filter.compl_diagonal_mem_prod
 
 theorem HasBasis.disjoint_iff_left (h : l.HasBasis p s) :
-    Disjoint l l' ↔ ∃ (i : _)(hi : p i), s iᶜ ∈ l' := by
+    Disjoint l l' ↔ ∃ (i : _) (hi : p i), s iᶜ ∈ l' := by
   simp only [h.disjoint_iff l'.basis_sets, exists_prop, id, ← disjoint_principal_left,
     (has_basis_principal _).disjoint_iff l'.basis_sets, Unique.exists_iff]
 #align filter.has_basis.disjoint_iff_left Filter.HasBasis.disjoint_iff_leftₓ
 
 theorem HasBasis.disjoint_iff_right (h : l.HasBasis p s) :
-    Disjoint l' l ↔ ∃ (i : _)(hi : p i), s iᶜ ∈ l' :=
+    Disjoint l' l ↔ ∃ (i : _) (hi : p i), s iᶜ ∈ l' :=
   disjoint_comm.trans h.disjoint_iff_leftₓ
 #align filter.has_basis.disjoint_iff_right Filter.HasBasis.disjoint_iff_rightₓ
 
@@ -831,13 +833,13 @@ theorem hasBasis_biInf_principal {s : β → Set α} {S : Set β} (h : DirectedO
     (ne : S.Nonempty) : (⨅ i ∈ S, 𝓟 (s i)).HasBasis (fun i => i ∈ S) s :=
   ⟨by
     refine' fun t => (mem_binfi_of_directed _ Ne).trans <| by simp only [mem_principal]
-    rw [directedOn_iff_directed, ← directed_comp, (· ∘ ·)] at h⊢
+    rw [directedOn_iff_directed, ← directed_comp, (· ∘ ·)] at h ⊢
     apply h.mono_comp _ _
     exact fun _ _ => principal_mono.2⟩
 #align filter.has_basis_binfi_principal Filter.hasBasis_biInf_principal
 
 theorem hasBasis_biInf_principal' {ι : Type _} {p : ι → Prop} {s : ι → Set α}
-    (h : ∀ i, p i → ∀ j, p j → ∃ (k : _)(h : p k), s k ⊆ s i ∧ s k ⊆ s j) (ne : ∃ i, p i) :
+    (h : ∀ i, p i → ∀ j, p j → ∃ (k : _) (h : p k), s k ⊆ s i ∧ s k ⊆ s j) (ne : ∃ i, p i) :
     (⨅ (i) (h : p i), 𝓟 (s i)).HasBasis p s :=
   Filter.hasBasis_biInf_principal h Ne
 #align filter.has_basis_binfi_principal' Filter.hasBasis_biInf_principal'
@@ -904,7 +906,7 @@ structure IsAntitoneBasis extends IsBasis (fun _ => True) s'' : Prop where
 includes `s i` for some `i`, and `s` is decreasing. -/
 @[protect_proj]
 structure HasAntitoneBasis (l : Filter α) (s : ι'' → Set α) extends HasBasis l (fun _ => True) s :
-  Prop where
+    Prop where
   Antitone : Antitone s
 #align filter.has_antitone_basis Filter.HasAntitoneBasis
 -/
@@ -922,7 +924,7 @@ variable {la : Filter α} {pa : ι → Prop} {sa : ι → Set α} {lb : Filter 
   {sb : ι' → Set β} {f : α → β}
 
 theorem HasBasis.tendsto_left_iff (hla : la.HasBasis pa sa) :
-    Tendsto f la lb ↔ ∀ t ∈ lb, ∃ (i : _)(hi : pa i), MapsTo f (sa i) t := by
+    Tendsto f la lb ↔ ∀ t ∈ lb, ∃ (i : _) (hi : pa i), MapsTo f (sa i) t := by
   simp only [tendsto, (hla.map f).le_iffₓ, image_subset_iff]; rfl
 #align filter.has_basis.tendsto_left_iff Filter.HasBasis.tendsto_left_iffₓ
 
@@ -932,12 +934,12 @@ theorem HasBasis.tendsto_right_iff (hlb : lb.HasBasis pb sb) :
 #align filter.has_basis.tendsto_right_iff Filter.HasBasis.tendsto_right_iff
 
 theorem HasBasis.tendsto_iff (hla : la.HasBasis pa sa) (hlb : lb.HasBasis pb sb) :
-    Tendsto f la lb ↔ ∀ (ib) (hib : pb ib), ∃ (ia : _)(hia : pa ia), ∀ x ∈ sa ia, f x ∈ sb ib := by
+    Tendsto f la lb ↔ ∀ (ib) (hib : pb ib), ∃ (ia : _) (hia : pa ia), ∀ x ∈ sa ia, f x ∈ sb ib := by
   simp [hlb.tendsto_right_iff, hla.eventually_iff]
 #align filter.has_basis.tendsto_iff Filter.HasBasis.tendsto_iffₓ
 
 theorem Tendsto.basis_left (H : Tendsto f la lb) (hla : la.HasBasis pa sa) :
-    ∀ t ∈ lb, ∃ (i : _)(hi : pa i), MapsTo f (sa i) t :=
+    ∀ t ∈ lb, ∃ (i : _) (hi : pa i), MapsTo f (sa i) t :=
   hla.tendsto_left_iffₓ.1 H
 #align filter.tendsto.basis_left Filter.Tendsto.basis_leftₓ
 
@@ -948,7 +950,7 @@ theorem Tendsto.basis_right (H : Tendsto f la lb) (hlb : lb.HasBasis pb sb) :
 
 theorem Tendsto.basis_both (H : Tendsto f la lb) (hla : la.HasBasis pa sa)
     (hlb : lb.HasBasis pb sb) :
-    ∀ (ib) (hib : pb ib), ∃ (ia : _)(hia : pa ia), ∀ x ∈ sa ia, f x ∈ sb ib :=
+    ∀ (ib) (hib : pb ib), ∃ (ia : _) (hia : pa ia), ∀ x ∈ sa ia, f x ∈ sb ib :=
   (hla.tendsto_iffₓ hlb).1 H
 #align filter.tendsto.basis_both Filter.Tendsto.basis_bothₓ
 
@@ -1065,7 +1067,7 @@ structure IsCountableBasis (p : ι → Prop) (s : ι → Set α) extends IsBasis
 if `t ∈ l` if and only if `t` includes `s i` for some `i` such that `p i`, and the set
 defined by `p` is countable. -/
 structure HasCountableBasis (l : Filter α) (p : ι → Prop) (s : ι → Set α) extends HasBasis l p s :
-  Prop where
+    Prop where
   Countable : (setOf p).Countable
 #align filter.has_countable_basis Filter.HasCountableBasis
 -/
@@ -1170,7 +1172,7 @@ theorem HasBasis.exists_antitone_subbasis {f : Filter α} [h : f.IsCountablyGene
     exact (hs.set_index_subset _).trans (inter_subset_right _ _)
   have x_subset : ∀ i, s (x i) ⊆ x' i := by
     rintro (_ | i)
-    exacts[hs.set_index_subset _, subset.trans (hs.set_index_subset _) (inter_subset_left _ _)]
+    exacts [hs.set_index_subset _, subset.trans (hs.set_index_subset _) (inter_subset_left _ _)]
   refine' ⟨fun i => x i, fun i => (x i).2, _⟩
   have : (⨅ i, 𝓟 (s (x i))).HasAntitoneBasis fun i => s (x i) :=
     ⟨has_basis_infi_principal (directed_of_sup x_mono), x_mono⟩
Diff
@@ -80,7 +80,7 @@ with the case `p = λ _, true`.
 
 open Set Filter
 
-open Filter Classical
+open scoped Filter Classical
 
 section Sort
 
@@ -1139,11 +1139,13 @@ protected theorem HasAntitoneBasis.mem [Preorder ι] {l : Filter α} {s : ι →
 #align filter.has_antitone_basis.mem Filter.HasAntitoneBasis.mem
 -/
 
+#print Filter.HasAntitoneBasis.hasBasis_ge /-
 theorem HasAntitoneBasis.hasBasis_ge [Preorder ι] [IsDirected ι (· ≤ ·)] {l : Filter α}
     {s : ι → Set α} (hs : l.HasAntitoneBasis s) (i : ι) : l.HasBasis (fun j => i ≤ j) s :=
   hs.1.to_hasBasis (fun j _ => (exists_ge_ge i j).imp fun k hk => ⟨hk.1, hs.2 hk.2⟩) fun j hj =>
     ⟨j, trivial, Subset.rfl⟩
 #align filter.has_antitone_basis.has_basis_ge Filter.HasAntitoneBasis.hasBasis_ge
+-/
 
 /-- If `f` is countably generated and `f.has_basis p s`, then `f` admits a decreasing basis
 enumerated by natural numbers such that all sets have the form `s i`. More precisely, there is a
Diff
@@ -157,12 +157,6 @@ protected def filterBasis {p : ι → Prop} {s : ι → Set α} (h : IsBasis p s
 
 variable {p : ι → Prop} {s : ι → Set α} (h : IsBasis p s)
 
-/- warning: filter.is_basis.mem_filter_basis_iff -> Filter.IsBasis.mem_filterBasis_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {p : ι -> Prop} {s : ι -> (Set.{u1} α)} (h : Filter.IsBasis.{u1, u2} α ι p s) {U : Set.{u1} α}, Iff (Membership.Mem.{u1, u1} (Set.{u1} α) (FilterBasis.{u1} α) (FilterBasis.hasMem.{u1} α) U (Filter.IsBasis.filterBasis.{u1, u2} α ι p s h)) (Exists.{u2} ι (fun (i : ι) => And (p i) (Eq.{succ u1} (Set.{u1} α) (s i) U)))
-but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {p : ι -> Prop} {s : ι -> (Set.{u2} α)} (h : Filter.IsBasis.{u2, u1} α ι p s) {U : Set.{u2} α}, Iff (Membership.mem.{u2, u2} (Set.{u2} α) (FilterBasis.{u2} α) (instMembershipSetFilterBasis.{u2} α) U (Filter.IsBasis.filterBasis.{u2, u1} α ι p s h)) (Exists.{u1} ι (fun (i : ι) => And (p i) (Eq.{succ u2} (Set.{u2} α) (s i) U)))
-Case conversion may be inaccurate. Consider using '#align filter.is_basis.mem_filter_basis_iff Filter.IsBasis.mem_filterBasis_iffₓ'. -/
 theorem mem_filterBasis_iff {U : Set α} : U ∈ h.FilterBasis ↔ ∃ i, p i ∧ s i = U :=
   Iff.rfl
 #align filter.is_basis.mem_filter_basis_iff Filter.IsBasis.mem_filterBasis_iff
@@ -188,12 +182,6 @@ protected def filter (B : FilterBasis α) : Filter α
 #align filter_basis.filter FilterBasis.filter
 -/
 
-/- warning: filter_basis.mem_filter_iff -> FilterBasis.mem_filter_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} (B : FilterBasis.{u1} α) {U : Set.{u1} α}, Iff (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) U (FilterBasis.filter.{u1} α B)) (Exists.{succ u1} (Set.{u1} α) (fun (s : Set.{u1} α) => Exists.{0} (Membership.Mem.{u1, u1} (Set.{u1} α) (FilterBasis.{u1} α) (FilterBasis.hasMem.{u1} α) s B) (fun (H : Membership.Mem.{u1, u1} (Set.{u1} α) (FilterBasis.{u1} α) (FilterBasis.hasMem.{u1} α) s B) => HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) s U)))
-but is expected to have type
-  forall {α : Type.{u1}} (B : FilterBasis.{u1} α) {U : Set.{u1} α}, Iff (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) U (FilterBasis.filter.{u1} α B)) (Exists.{succ u1} (Set.{u1} α) (fun (s : Set.{u1} α) => And (Membership.mem.{u1, u1} (Set.{u1} α) (FilterBasis.{u1} α) (instMembershipSetFilterBasis.{u1} α) s B) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.instHasSubsetSet.{u1} α) s U)))
-Case conversion may be inaccurate. Consider using '#align filter_basis.mem_filter_iff FilterBasis.mem_filter_iffₓ'. -/
 theorem mem_filter_iff (B : FilterBasis α) {U : Set α} : U ∈ B.filterₓ ↔ ∃ s ∈ B, s ⊆ U :=
   Iff.rfl
 #align filter_basis.mem_filter_iff FilterBasis.mem_filter_iff
@@ -204,12 +192,6 @@ theorem mem_filter_of_mem (B : FilterBasis α) {U : Set α} : U ∈ B → U ∈
 #align filter_basis.mem_filter_of_mem FilterBasis.mem_filter_of_mem
 -/
 
-/- warning: filter_basis.eq_infi_principal -> FilterBasis.eq_iInf_principal is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} (B : FilterBasis.{u1} α), Eq.{succ u1} (Filter.{u1} α) (FilterBasis.filter.{u1} α B) (iInf.{u1, succ u1} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} (Set.{u1} α)) Type.{u1} (Set.hasCoeToSort.{u1} (Set.{u1} α)) (FilterBasis.sets.{u1} α B)) (fun (s : coeSort.{succ u1, succ (succ u1)} (Set.{u1} (Set.{u1} α)) Type.{u1} (Set.hasCoeToSort.{u1} (Set.{u1} α)) (FilterBasis.sets.{u1} α B)) => Filter.principal.{u1} α ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} (Set.{u1} α)) Type.{u1} (Set.hasCoeToSort.{u1} (Set.{u1} α)) (FilterBasis.sets.{u1} α B)) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} (Set.{u1} α)) Type.{u1} (Set.hasCoeToSort.{u1} (Set.{u1} α)) (FilterBasis.sets.{u1} α B)) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} (Set.{u1} α)) Type.{u1} (Set.hasCoeToSort.{u1} (Set.{u1} α)) (FilterBasis.sets.{u1} α B)) (Set.{u1} α) (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} (Set.{u1} α)) Type.{u1} (Set.hasCoeToSort.{u1} (Set.{u1} α)) (FilterBasis.sets.{u1} α B)) (Set.{u1} α) (coeSubtype.{succ u1} (Set.{u1} α) (fun (x : Set.{u1} α) => Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) x (FilterBasis.sets.{u1} α B)))))) s)))
-but is expected to have type
-  forall {α : Type.{u1}} (B : FilterBasis.{u1} α), Eq.{succ u1} (Filter.{u1} α) (FilterBasis.filter.{u1} α B) (iInf.{u1, succ u1} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) (Set.Elem.{u1} (Set.{u1} α) (FilterBasis.sets.{u1} α B)) (fun (s : Set.Elem.{u1} (Set.{u1} α) (FilterBasis.sets.{u1} α B)) => Filter.principal.{u1} α (Subtype.val.{succ u1} (Set.{u1} α) (fun (x : Set.{u1} α) => Membership.mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.instMembershipSet.{u1} (Set.{u1} α)) x (FilterBasis.sets.{u1} α B)) s)))
-Case conversion may be inaccurate. Consider using '#align filter_basis.eq_infi_principal FilterBasis.eq_iInf_principalₓ'. -/
 theorem eq_iInf_principal (B : FilterBasis α) : B.filterₓ = ⨅ s : B.sets, 𝓟 s :=
   by
   have : Directed (· ≥ ·) fun s : B.sets => 𝓟 (s : Set α) :=
@@ -250,12 +232,6 @@ protected def filter (h : IsBasis p s) : Filter α :=
 #align filter.is_basis.filter Filter.IsBasis.filter
 -/
 
-/- warning: filter.is_basis.mem_filter_iff -> Filter.IsBasis.mem_filter_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {p : ι -> Prop} {s : ι -> (Set.{u1} α)} (h : Filter.IsBasis.{u1, u2} α ι p s) {U : Set.{u1} α}, Iff (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) U (Filter.IsBasis.filter.{u1, u2} α ι p s h)) (Exists.{u2} ι (fun (i : ι) => And (p i) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (s i) U)))
-but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {p : ι -> Prop} {s : ι -> (Set.{u2} α)} (h : Filter.IsBasis.{u2, u1} α ι p s) {U : Set.{u2} α}, Iff (Membership.mem.{u2, u2} (Set.{u2} α) (Filter.{u2} α) (instMembershipSetFilter.{u2} α) U (Filter.IsBasis.filter.{u2, u1} α ι p s h)) (Exists.{u1} ι (fun (i : ι) => And (p i) (HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) (s i) U)))
-Case conversion may be inaccurate. Consider using '#align filter.is_basis.mem_filter_iff Filter.IsBasis.mem_filter_iffₓ'. -/
 protected theorem mem_filter_iff (h : IsBasis p s) {U : Set α} :
     U ∈ h.filterₓ ↔ ∃ i, p i ∧ s i ⊆ U :=
   by
@@ -267,12 +243,6 @@ protected theorem mem_filter_iff (h : IsBasis p s) {U : Set α} :
   · tauto
 #align filter.is_basis.mem_filter_iff Filter.IsBasis.mem_filter_iff
 
-/- warning: filter.is_basis.filter_eq_generate -> Filter.IsBasis.filter_eq_generate is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {p : ι -> Prop} {s : ι -> (Set.{u1} α)} (h : Filter.IsBasis.{u1, u2} α ι p s), Eq.{succ u1} (Filter.{u1} α) (Filter.IsBasis.filter.{u1, u2} α ι p s h) (Filter.generate.{u1} α (setOf.{u1} (Set.{u1} α) (fun (U : Set.{u1} α) => Exists.{u2} ι (fun (i : ι) => And (p i) (Eq.{succ u1} (Set.{u1} α) (s i) U)))))
-but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {p : ι -> Prop} {s : ι -> (Set.{u2} α)} (h : Filter.IsBasis.{u2, u1} α ι p s), Eq.{succ u2} (Filter.{u2} α) (Filter.IsBasis.filter.{u2, u1} α ι p s h) (Filter.generate.{u2} α (setOf.{u2} (Set.{u2} α) (fun (U : Set.{u2} α) => Exists.{u1} ι (fun (i : ι) => And (p i) (Eq.{succ u2} (Set.{u2} α) (s i) U)))))
-Case conversion may be inaccurate. Consider using '#align filter.is_basis.filter_eq_generate Filter.IsBasis.filter_eq_generateₓ'. -/
 theorem filter_eq_generate (h : IsBasis p s) : h.filterₓ = generate { U | ∃ i, p i ∧ s i = U } := by
   erw [h.filter_basis.generate] <;> rfl
 #align filter.is_basis.filter_eq_generate Filter.IsBasis.filter_eq_generate
@@ -318,12 +288,6 @@ theorem HasBasis.mem_iff (hl : l.HasBasis p s) : t ∈ l ↔ ∃ (i : _)(hi : p
   hl.mem_iff' t
 #align filter.has_basis.mem_iff Filter.HasBasis.mem_iffₓ
 
-/- warning: filter.has_basis.eq_of_same_basis -> Filter.HasBasis.eq_of_same_basis is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {l' : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (Filter.HasBasis.{u1, u2} α ι l' p s) -> (Eq.{succ u1} (Filter.{u1} α) l l')
-but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {l' : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι l p s) -> (Filter.HasBasis.{u2, u1} α ι l' p s) -> (Eq.{succ u2} (Filter.{u2} α) l l')
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.eq_of_same_basis Filter.HasBasis.eq_of_same_basisₓ'. -/
 theorem HasBasis.eq_of_same_basis (hl : l.HasBasis p s) (hl' : l'.HasBasis p s) : l = l' :=
   by
   ext t
@@ -334,53 +298,23 @@ theorem hasBasis_iff : l.HasBasis p s ↔ ∀ t, t ∈ l ↔ ∃ (i : _)(hi : p
   ⟨fun ⟨h⟩ => h, fun h => ⟨h⟩⟩
 #align filter.has_basis_iff Filter.hasBasis_iffₓ
 
-/- warning: filter.has_basis.ex_mem -> Filter.HasBasis.ex_mem is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (Exists.{u2} ι (fun (i : ι) => p i))
-but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι l p s) -> (Exists.{u1} ι (fun (i : ι) => p i))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.ex_mem Filter.HasBasis.ex_memₓ'. -/
 theorem HasBasis.ex_mem (h : l.HasBasis p s) : ∃ i, p i :=
   let ⟨i, pi, h⟩ := h.mem_iff.mp univ_mem
   ⟨i, pi⟩
 #align filter.has_basis.ex_mem Filter.HasBasis.ex_mem
 
-/- warning: filter.has_basis.nonempty -> Filter.HasBasis.nonempty is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (Nonempty.{u2} ι)
-but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι l p s) -> (Nonempty.{u1} ι)
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.nonempty Filter.HasBasis.nonemptyₓ'. -/
 protected theorem HasBasis.nonempty (h : l.HasBasis p s) : Nonempty ι :=
   nonempty_of_exists h.ex_mem
 #align filter.has_basis.nonempty Filter.HasBasis.nonempty
 
-/- warning: filter.is_basis.has_basis -> Filter.IsBasis.hasBasis is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {p : ι -> Prop} {s : ι -> (Set.{u1} α)} (h : Filter.IsBasis.{u1, u2} α ι p s), Filter.HasBasis.{u1, u2} α ι (Filter.IsBasis.filter.{u1, u2} α ι p s h) p s
-but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {p : ι -> Prop} {s : ι -> (Set.{u2} α)} (h : Filter.IsBasis.{u2, u1} α ι p s), Filter.HasBasis.{u2, u1} α ι (Filter.IsBasis.filter.{u2, u1} α ι p s h) p s
-Case conversion may be inaccurate. Consider using '#align filter.is_basis.has_basis Filter.IsBasis.hasBasisₓ'. -/
 protected theorem IsBasis.hasBasis (h : IsBasis p s) : HasBasis h.filterₓ p s :=
   ⟨fun t => by simp only [h.mem_filter_iff, exists_prop]⟩
 #align filter.is_basis.has_basis Filter.IsBasis.hasBasis
 
-/- warning: filter.has_basis.mem_of_superset -> Filter.HasBasis.mem_of_superset is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)} {t : Set.{u1} α} {i : ι}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (p i) -> (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (s i) t) -> (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) t l)
-but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)} {t : Set.{u2} α} {i : ι}, (Filter.HasBasis.{u2, u1} α ι l p s) -> (p i) -> (HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) (s i) t) -> (Membership.mem.{u2, u2} (Set.{u2} α) (Filter.{u2} α) (instMembershipSetFilter.{u2} α) t l)
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.mem_of_superset Filter.HasBasis.mem_of_supersetₓ'. -/
 theorem HasBasis.mem_of_superset (hl : l.HasBasis p s) (hi : p i) (ht : s i ⊆ t) : t ∈ l :=
   hl.mem_iff.2 ⟨i, hi, ht⟩
 #align filter.has_basis.mem_of_superset Filter.HasBasis.mem_of_superset
 
-/- warning: filter.has_basis.mem_of_mem -> Filter.HasBasis.mem_of_mem is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)} {i : ι}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (p i) -> (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) (s i) l)
-but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)} {i : ι}, (Filter.HasBasis.{u2, u1} α ι l p s) -> (p i) -> (Membership.mem.{u2, u2} (Set.{u2} α) (Filter.{u2} α) (instMembershipSetFilter.{u2} α) (s i) l)
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.mem_of_mem Filter.HasBasis.mem_of_memₓ'. -/
 theorem HasBasis.mem_of_mem (hl : l.HasBasis p s) (hi : p i) : s i ∈ l :=
   hl.mem_of_superset hi <| Subset.refl _
 #align filter.has_basis.mem_of_mem Filter.HasBasis.mem_of_mem
@@ -392,42 +326,18 @@ noncomputable def HasBasis.index (h : l.HasBasis p s) (t : Set α) (ht : t ∈ l
 #align filter.has_basis.index Filter.HasBasis.index
 -/
 
-/- warning: filter.has_basis.property_index -> Filter.HasBasis.property_index is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)} {t : Set.{u1} α} (h : Filter.HasBasis.{u1, u2} α ι l p s) (ht : Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) t l), p ((fun (a : Sort.{max 1 u2}) (b : Sort.{u2}) [self : HasLiftT.{max 1 u2, u2} a b] => self.0) (Subtype.{u2} ι (fun (i : ι) => p i)) ι (HasLiftT.mk.{max 1 u2, u2} (Subtype.{u2} ι (fun (i : ι) => p i)) ι (CoeTCₓ.coe.{max 1 u2, u2} (Subtype.{u2} ι (fun (i : ι) => p i)) ι (coeBase.{max 1 u2, u2} (Subtype.{u2} ι (fun (i : ι) => p i)) ι (coeSubtype.{u2} ι (fun (i : ι) => p i))))) (Filter.HasBasis.index.{u1, u2} α ι l p s h t ht))
-but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)} {t : Set.{u2} α} (h : Filter.HasBasis.{u2, u1} α ι l p s) (ht : Membership.mem.{u2, u2} (Set.{u2} α) (Filter.{u2} α) (instMembershipSetFilter.{u2} α) t l), p (Subtype.val.{u1} ι (fun (i : ι) => p i) (Filter.HasBasis.index.{u2, u1} α ι l p s h t ht))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.property_index Filter.HasBasis.property_indexₓ'. -/
 theorem HasBasis.property_index (h : l.HasBasis p s) (ht : t ∈ l) : p (h.index t ht) :=
   (h.index t ht).2
 #align filter.has_basis.property_index Filter.HasBasis.property_index
 
-/- warning: filter.has_basis.set_index_mem -> Filter.HasBasis.set_index_mem is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)} {t : Set.{u1} α} (h : Filter.HasBasis.{u1, u2} α ι l p s) (ht : Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) t l), Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) (s ((fun (a : Sort.{max 1 u2}) (b : Sort.{u2}) [self : HasLiftT.{max 1 u2, u2} a b] => self.0) (Subtype.{u2} ι (fun (i : ι) => p i)) ι (HasLiftT.mk.{max 1 u2, u2} (Subtype.{u2} ι (fun (i : ι) => p i)) ι (CoeTCₓ.coe.{max 1 u2, u2} (Subtype.{u2} ι (fun (i : ι) => p i)) ι (coeBase.{max 1 u2, u2} (Subtype.{u2} ι (fun (i : ι) => p i)) ι (coeSubtype.{u2} ι (fun (i : ι) => p i))))) (Filter.HasBasis.index.{u1, u2} α ι l p s h t ht))) l
-but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)} {t : Set.{u2} α} (h : Filter.HasBasis.{u2, u1} α ι l p s) (ht : Membership.mem.{u2, u2} (Set.{u2} α) (Filter.{u2} α) (instMembershipSetFilter.{u2} α) t l), Membership.mem.{u2, u2} (Set.{u2} α) (Filter.{u2} α) (instMembershipSetFilter.{u2} α) (s (Subtype.val.{u1} ι (fun (i : ι) => p i) (Filter.HasBasis.index.{u2, u1} α ι l p s h t ht))) l
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.set_index_mem Filter.HasBasis.set_index_memₓ'. -/
 theorem HasBasis.set_index_mem (h : l.HasBasis p s) (ht : t ∈ l) : s (h.index t ht) ∈ l :=
   h.mem_of_mem <| h.property_index _
 #align filter.has_basis.set_index_mem Filter.HasBasis.set_index_mem
 
-/- warning: filter.has_basis.set_index_subset -> Filter.HasBasis.set_index_subset is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)} {t : Set.{u1} α} (h : Filter.HasBasis.{u1, u2} α ι l p s) (ht : Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) t l), HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (s ((fun (a : Sort.{max 1 u2}) (b : Sort.{u2}) [self : HasLiftT.{max 1 u2, u2} a b] => self.0) (Subtype.{u2} ι (fun (i : ι) => p i)) ι (HasLiftT.mk.{max 1 u2, u2} (Subtype.{u2} ι (fun (i : ι) => p i)) ι (CoeTCₓ.coe.{max 1 u2, u2} (Subtype.{u2} ι (fun (i : ι) => p i)) ι (coeBase.{max 1 u2, u2} (Subtype.{u2} ι (fun (i : ι) => p i)) ι (coeSubtype.{u2} ι (fun (i : ι) => p i))))) (Filter.HasBasis.index.{u1, u2} α ι l p s h t ht))) t
-but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)} {t : Set.{u2} α} (h : Filter.HasBasis.{u2, u1} α ι l p s) (ht : Membership.mem.{u2, u2} (Set.{u2} α) (Filter.{u2} α) (instMembershipSetFilter.{u2} α) t l), HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) (s (Subtype.val.{u1} ι (fun (i : ι) => p i) (Filter.HasBasis.index.{u2, u1} α ι l p s h t ht))) t
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.set_index_subset Filter.HasBasis.set_index_subsetₓ'. -/
 theorem HasBasis.set_index_subset (h : l.HasBasis p s) (ht : t ∈ l) : s (h.index t ht) ⊆ t :=
   (h.mem_iff.1 ht).choose_spec.snd
 #align filter.has_basis.set_index_subset Filter.HasBasis.set_index_subset
 
-/- warning: filter.has_basis.is_basis -> Filter.HasBasis.isBasis is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (Filter.IsBasis.{u1, u2} α ι p s)
-but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι l p s) -> (Filter.IsBasis.{u2, u1} α ι p s)
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.is_basis Filter.HasBasis.isBasisₓ'. -/
 theorem HasBasis.isBasis (h : l.HasBasis p s) : IsBasis p s :=
   { Nonempty :=
       let ⟨i, hi, H⟩ := h.mem_iff.mp univ_mem
@@ -436,22 +346,10 @@ theorem HasBasis.isBasis (h : l.HasBasis p s) : IsBasis p s :=
       simpa [h.mem_iff] using l.inter_sets (h.mem_of_mem hi) (h.mem_of_mem hj) }
 #align filter.has_basis.is_basis Filter.HasBasis.isBasis
 
-/- warning: filter.has_basis.filter_eq -> Filter.HasBasis.filter_eq is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)} (h : Filter.HasBasis.{u1, u2} α ι l p s), Eq.{succ u1} (Filter.{u1} α) (Filter.IsBasis.filter.{u1, u2} α ι p s (Filter.HasBasis.isBasis.{u1, u2} α ι l p s h)) l
-but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)} (h : Filter.HasBasis.{u2, u1} α ι l p s), Eq.{succ u2} (Filter.{u2} α) (Filter.IsBasis.filter.{u2, u1} α ι p s (Filter.HasBasis.isBasis.{u1, u2} α ι l p s h)) l
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.filter_eq Filter.HasBasis.filter_eqₓ'. -/
 theorem HasBasis.filter_eq (h : l.HasBasis p s) : h.IsBasis.filterₓ = l := by ext U;
   simp [h.mem_iff, is_basis.mem_filter_iff]
 #align filter.has_basis.filter_eq Filter.HasBasis.filter_eq
 
-/- warning: filter.has_basis.eq_generate -> Filter.HasBasis.eq_generate is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (Eq.{succ u1} (Filter.{u1} α) l (Filter.generate.{u1} α (setOf.{u1} (Set.{u1} α) (fun (U : Set.{u1} α) => Exists.{u2} ι (fun (i : ι) => And (p i) (Eq.{succ u1} (Set.{u1} α) (s i) U))))))
-but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι l p s) -> (Eq.{succ u2} (Filter.{u2} α) l (Filter.generate.{u2} α (setOf.{u2} (Set.{u2} α) (fun (U : Set.{u2} α) => Exists.{u1} ι (fun (i : ι) => And (p i) (Eq.{succ u2} (Set.{u2} α) (s i) U))))))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.eq_generate Filter.HasBasis.eq_generateₓ'. -/
 theorem HasBasis.eq_generate (h : l.HasBasis p s) : l = generate { U | ∃ i, p i ∧ s i = U } := by
   rw [← h.is_basis.filter_eq_generate, h.filter_eq]
 #align filter.has_basis.eq_generate Filter.HasBasis.eq_generate
@@ -476,12 +374,6 @@ protected theorem FilterBasis.hasBasis {α : Type _} (B : FilterBasis α) :
 #align filter_basis.has_basis FilterBasis.hasBasis
 -/
 
-/- warning: filter.has_basis.to_has_basis' -> Filter.HasBasis.to_has_basis' is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {ι' : Sort.{u3}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)} {p' : ι' -> Prop} {s' : ι' -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (forall (i : ι), (p i) -> (Exists.{u3} ι' (fun (i' : ι') => And (p' i') (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (s' i') (s i))))) -> (forall (i' : ι'), (p' i') -> (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) (s' i') l)) -> (Filter.HasBasis.{u1, u3} α ι' l p' s')
-but is expected to have type
-  forall {α : Type.{u3}} {ι : Sort.{u2}} {ι' : Sort.{u1}} {l : Filter.{u3} α} {p : ι -> Prop} {s : ι -> (Set.{u3} α)} {p' : ι' -> Prop} {s' : ι' -> (Set.{u3} α)}, (Filter.HasBasis.{u3, u2} α ι l p s) -> (forall (i : ι), (p i) -> (Exists.{u1} ι' (fun (i' : ι') => And (p' i') (HasSubset.Subset.{u3} (Set.{u3} α) (Set.instHasSubsetSet.{u3} α) (s' i') (s i))))) -> (forall (i' : ι'), (p' i') -> (Membership.mem.{u3, u3} (Set.{u3} α) (Filter.{u3} α) (instMembershipSetFilter.{u3} α) (s' i') l)) -> (Filter.HasBasis.{u3, u1} α ι' l p' s')
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.to_has_basis' Filter.HasBasis.to_has_basis'ₓ'. -/
 theorem HasBasis.to_has_basis' (hl : l.HasBasis p s) (h : ∀ i, p i → ∃ i', p' i' ∧ s' i' ⊆ s i)
     (h' : ∀ i', p' i' → s' i' ∈ l) : l.HasBasis p' s' :=
   by
@@ -491,12 +383,6 @@ theorem HasBasis.to_has_basis' (hl : l.HasBasis p s) (h : ∀ i, p i → ∃ i',
   exact ⟨i', hi', subset.trans hs's ht⟩
 #align filter.has_basis.to_has_basis' Filter.HasBasis.to_has_basis'
 
-/- warning: filter.has_basis.to_has_basis -> Filter.HasBasis.to_hasBasis is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {ι' : Sort.{u3}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)} {p' : ι' -> Prop} {s' : ι' -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (forall (i : ι), (p i) -> (Exists.{u3} ι' (fun (i' : ι') => And (p' i') (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (s' i') (s i))))) -> (forall (i' : ι'), (p' i') -> (Exists.{u2} ι (fun (i : ι) => And (p i) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (s i) (s' i'))))) -> (Filter.HasBasis.{u1, u3} α ι' l p' s')
-but is expected to have type
-  forall {α : Type.{u3}} {ι : Sort.{u2}} {ι' : Sort.{u1}} {l : Filter.{u3} α} {p : ι -> Prop} {s : ι -> (Set.{u3} α)} {p' : ι' -> Prop} {s' : ι' -> (Set.{u3} α)}, (Filter.HasBasis.{u3, u2} α ι l p s) -> (forall (i : ι), (p i) -> (Exists.{u1} ι' (fun (i' : ι') => And (p' i') (HasSubset.Subset.{u3} (Set.{u3} α) (Set.instHasSubsetSet.{u3} α) (s' i') (s i))))) -> (forall (i' : ι'), (p' i') -> (Exists.{u2} ι (fun (i : ι) => And (p i) (HasSubset.Subset.{u3} (Set.{u3} α) (Set.instHasSubsetSet.{u3} α) (s i) (s' i'))))) -> (Filter.HasBasis.{u3, u1} α ι' l p' s')
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.to_has_basis Filter.HasBasis.to_hasBasisₓ'. -/
 theorem HasBasis.to_hasBasis (hl : l.HasBasis p s) (h : ∀ i, p i → ∃ i', p' i' ∧ s' i' ⊆ s i)
     (h' : ∀ i', p' i' → ∃ i, p i ∧ s i ⊆ s' i') : l.HasBasis p' s' :=
   hl.to_has_basis' h fun i' hi' =>
@@ -504,33 +390,15 @@ theorem HasBasis.to_hasBasis (hl : l.HasBasis p s) (h : ∀ i, p i → ∃ i', p
     hl.mem_iff.2 ⟨i, hi, hss'⟩
 #align filter.has_basis.to_has_basis Filter.HasBasis.to_hasBasis
 
-/- warning: filter.has_basis.to_subset -> Filter.HasBasis.to_subset is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (forall {t : ι -> (Set.{u1} α)}, (forall (i : ι), (p i) -> (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (t i) (s i))) -> (forall (i : ι), (p i) -> (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) (t i) l)) -> (Filter.HasBasis.{u1, u2} α ι l p t))
-but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι l p s) -> (forall {t : ι -> (Set.{u2} α)}, (forall (i : ι), (p i) -> (HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) (t i) (s i))) -> (forall (i : ι), (p i) -> (Membership.mem.{u2, u2} (Set.{u2} α) (Filter.{u2} α) (instMembershipSetFilter.{u2} α) (t i) l)) -> (Filter.HasBasis.{u2, u1} α ι l p t))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.to_subset Filter.HasBasis.to_subsetₓ'. -/
 theorem HasBasis.to_subset (hl : l.HasBasis p s) {t : ι → Set α} (h : ∀ i, p i → t i ⊆ s i)
     (ht : ∀ i, p i → t i ∈ l) : l.HasBasis p t :=
   hl.to_has_basis' (fun i hi => ⟨i, hi, h i hi⟩) ht
 #align filter.has_basis.to_subset Filter.HasBasis.to_subset
 
-/- warning: filter.has_basis.eventually_iff -> Filter.HasBasis.eventually_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (forall {q : α -> Prop}, Iff (Filter.Eventually.{u1} α (fun (x : α) => q x) l) (Exists.{u2} ι (fun (i : ι) => And (p i) (forall {{x : α}}, (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (s i)) -> (q x)))))
-but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι l p s) -> (forall {q : α -> Prop}, Iff (Filter.Eventually.{u2} α (fun (x : α) => q x) l) (Exists.{u1} ι (fun (i : ι) => And (p i) (forall {{x : α}}, (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x (s i)) -> (q x)))))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.eventually_iff Filter.HasBasis.eventually_iffₓ'. -/
 theorem HasBasis.eventually_iff (hl : l.HasBasis p s) {q : α → Prop} :
     (∀ᶠ x in l, q x) ↔ ∃ i, p i ∧ ∀ ⦃x⦄, x ∈ s i → q x := by simpa using hl.mem_iff
 #align filter.has_basis.eventually_iff Filter.HasBasis.eventually_iff
 
-/- warning: filter.has_basis.frequently_iff -> Filter.HasBasis.frequently_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (forall {q : α -> Prop}, Iff (Filter.Frequently.{u1} α (fun (x : α) => q x) l) (forall (i : ι), (p i) -> (Exists.{succ u1} α (fun (x : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (s i)) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (s i)) => q x)))))
-but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι l p s) -> (forall {q : α -> Prop}, Iff (Filter.Frequently.{u2} α (fun (x : α) => q x) l) (forall (i : ι), (p i) -> (Exists.{succ u2} α (fun (x : α) => And (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x (s i)) (q x)))))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.frequently_iff Filter.HasBasis.frequently_iffₓ'. -/
 theorem HasBasis.frequently_iff (hl : l.HasBasis p s) {q : α → Prop} :
     (∃ᶠ x in l, q x) ↔ ∀ i, p i → ∃ x ∈ s i, q x := by simp [Filter.Frequently, hl.eventually_iff]
 #align filter.has_basis.frequently_iff Filter.HasBasis.frequently_iff
@@ -543,12 +411,6 @@ theorem HasBasis.exists_iff (hl : l.HasBasis p s) {P : Set α → Prop}
     fun ⟨i, hi, hP⟩ => ⟨s i, hl.mem_of_mem hi, hP⟩⟩
 #align filter.has_basis.exists_iff Filter.HasBasis.exists_iffₓ
 
-/- warning: filter.has_basis.forall_iff -> Filter.HasBasis.forall_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (forall {P : (Set.{u1} α) -> Prop}, (forall {{s : Set.{u1} α}} {{t : Set.{u1} α}}, (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) s t) -> (P s) -> (P t)) -> (Iff (forall (s : Set.{u1} α), (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) s l) -> (P s)) (forall (i : ι), (p i) -> (P (s i)))))
-but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι l p s) -> (forall {P : (Set.{u2} α) -> Prop}, (forall {{s : Set.{u2} α}} {{t : Set.{u2} α}}, (HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) s t) -> (P s) -> (P t)) -> (Iff (forall (s : Set.{u2} α), (Membership.mem.{u2, u2} (Set.{u2} α) (Filter.{u2} α) (instMembershipSetFilter.{u2} α) s l) -> (P s)) (forall (i : ι), (p i) -> (P (s i)))))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.forall_iff Filter.HasBasis.forall_iffₓ'. -/
 theorem HasBasis.forall_iff (hl : l.HasBasis p s) {P : Set α → Prop}
     (mono : ∀ ⦃s t⦄, s ⊆ t → P s → P t) : (∀ s ∈ l, P s) ↔ ∀ i, p i → P (s i) :=
   ⟨fun H i hi => H (s i) <| hl.mem_of_mem hi, fun H s hs =>
@@ -556,22 +418,10 @@ theorem HasBasis.forall_iff (hl : l.HasBasis p s) {P : Set α → Prop}
     mono his (H i hi)⟩
 #align filter.has_basis.forall_iff Filter.HasBasis.forall_iff
 
-/- warning: filter.has_basis.ne_bot_iff -> Filter.HasBasis.neBot_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (Iff (Filter.NeBot.{u1} α l) (forall {i : ι}, (p i) -> (Set.Nonempty.{u1} α (s i))))
-but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι l p s) -> (Iff (Filter.NeBot.{u2} α l) (forall {i : ι}, (p i) -> (Set.Nonempty.{u2} α (s i))))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.ne_bot_iff Filter.HasBasis.neBot_iffₓ'. -/
 theorem HasBasis.neBot_iff (hl : l.HasBasis p s) : NeBot l ↔ ∀ {i}, p i → (s i).Nonempty :=
   forall_mem_nonempty_iff_neBot.symm.trans <| hl.forall_iff fun _ _ => Nonempty.mono
 #align filter.has_basis.ne_bot_iff Filter.HasBasis.neBot_iff
 
-/- warning: filter.has_basis.eq_bot_iff -> Filter.HasBasis.eq_bot_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (Iff (Eq.{succ u1} (Filter.{u1} α) l (Bot.bot.{u1} (Filter.{u1} α) (CompleteLattice.toHasBot.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α)))) (Exists.{u2} ι (fun (i : ι) => And (p i) (Eq.{succ u1} (Set.{u1} α) (s i) (EmptyCollection.emptyCollection.{u1} (Set.{u1} α) (Set.hasEmptyc.{u1} α))))))
-but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι l p s) -> (Iff (Eq.{succ u2} (Filter.{u2} α) l (Bot.bot.{u2} (Filter.{u2} α) (CompleteLattice.toBot.{u2} (Filter.{u2} α) (Filter.instCompleteLatticeFilter.{u2} α)))) (Exists.{u1} ι (fun (i : ι) => And (p i) (Eq.{succ u2} (Set.{u2} α) (s i) (EmptyCollection.emptyCollection.{u2} (Set.{u2} α) (Set.instEmptyCollectionSet.{u2} α))))))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.eq_bot_iff Filter.HasBasis.eq_bot_iffₓ'. -/
 theorem HasBasis.eq_bot_iff (hl : l.HasBasis p s) : l = ⊥ ↔ ∃ i, p i ∧ s i = ∅ :=
   not_iff_not.1 <|
     neBot_iff.symm.trans <|
@@ -598,12 +448,6 @@ theorem asBasis_filter (f : Filter α) : f.asBasis.filterₓ = f := by
 #align filter.as_basis_filter Filter.asBasis_filter
 -/
 
-/- warning: filter.has_basis_self -> Filter.hasBasis_self is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {l : Filter.{u1} α} {P : (Set.{u1} α) -> Prop}, Iff (Filter.HasBasis.{u1, succ u1} α (Set.{u1} α) l (fun (s : Set.{u1} α) => And (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) s l) (P s)) (id.{succ u1} (Set.{u1} α))) (forall (t : Set.{u1} α), (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) t l) -> (Exists.{succ u1} (Set.{u1} α) (fun (r : Set.{u1} α) => Exists.{0} (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) r l) (fun (H : Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) r l) => And (P r) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) r t)))))
-but is expected to have type
-  forall {α : Type.{u1}} {l : Filter.{u1} α} {P : (Set.{u1} α) -> Prop}, Iff (Filter.HasBasis.{u1, succ u1} α (Set.{u1} α) l (fun (s : Set.{u1} α) => And (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) s l) (P s)) (id.{succ u1} (Set.{u1} α))) (forall (t : Set.{u1} α), (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) t l) -> (Exists.{succ u1} (Set.{u1} α) (fun (r : Set.{u1} α) => And (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) r l) (And (P r) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.instHasSubsetSet.{u1} α) r t)))))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis_self Filter.hasBasis_selfₓ'. -/
 theorem hasBasis_self {l : Filter α} {P : Set α → Prop} :
     HasBasis l (fun s => s ∈ l ∧ P s) id ↔ ∀ t ∈ l, ∃ r ∈ l, P r ∧ r ⊆ t :=
   by
@@ -613,33 +457,15 @@ theorem hasBasis_self {l : Filter α} {P : Set α → Prop} :
       ⟨fun h => h.1, fun h => ⟨h, fun ⟨t, hl, hP, hts⟩ => mem_of_superset hl hts⟩⟩
 #align filter.has_basis_self Filter.hasBasis_self
 
-/- warning: filter.has_basis.comp_surjective -> Filter.HasBasis.comp_surjective is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {ι' : Sort.{u3}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (forall {g : ι' -> ι}, (Function.Surjective.{u3, u2} ι' ι g) -> (Filter.HasBasis.{u1, u3} α ι' l (Function.comp.{u3, u2, 1} ι' ι Prop p g) (Function.comp.{u3, u2, succ u1} ι' ι (Set.{u1} α) s g)))
-but is expected to have type
-  forall {α : Type.{u3}} {ι : Sort.{u2}} {ι' : Sort.{u1}} {l : Filter.{u3} α} {p : ι -> Prop} {s : ι -> (Set.{u3} α)}, (Filter.HasBasis.{u3, u2} α ι l p s) -> (forall {g : ι' -> ι}, (Function.Surjective.{u1, u2} ι' ι g) -> (Filter.HasBasis.{u3, u1} α ι' l (Function.comp.{u1, u2, 1} ι' ι Prop p g) (Function.comp.{u1, u2, succ u3} ι' ι (Set.{u3} α) s g)))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.comp_surjective Filter.HasBasis.comp_surjectiveₓ'. -/
 theorem HasBasis.comp_surjective (h : l.HasBasis p s) {g : ι' → ι} (hg : Function.Surjective g) :
     l.HasBasis (p ∘ g) (s ∘ g) :=
   ⟨fun t => h.mem_iff.trans hg.exists⟩
 #align filter.has_basis.comp_surjective Filter.HasBasis.comp_surjective
 
-/- warning: filter.has_basis.comp_equiv -> Filter.HasBasis.comp_equiv is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {ι' : Sort.{u3}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (forall (e : Equiv.{u3, u2} ι' ι), Filter.HasBasis.{u1, u3} α ι' l (Function.comp.{u3, u2, 1} ι' ι Prop p (coeFn.{max 1 (imax u3 u2) (imax u2 u3), imax u3 u2} (Equiv.{u3, u2} ι' ι) (fun (_x : Equiv.{u3, u2} ι' ι) => ι' -> ι) (Equiv.hasCoeToFun.{u3, u2} ι' ι) e)) (Function.comp.{u3, u2, succ u1} ι' ι (Set.{u1} α) s (coeFn.{max 1 (imax u3 u2) (imax u2 u3), imax u3 u2} (Equiv.{u3, u2} ι' ι) (fun (_x : Equiv.{u3, u2} ι' ι) => ι' -> ι) (Equiv.hasCoeToFun.{u3, u2} ι' ι) e)))
-but is expected to have type
-  forall {α : Type.{u3}} {ι : Sort.{u2}} {ι' : Sort.{u1}} {l : Filter.{u3} α} {p : ι -> Prop} {s : ι -> (Set.{u3} α)}, (Filter.HasBasis.{u3, u2} α ι l p s) -> (forall (e : Equiv.{u1, u2} ι' ι), Filter.HasBasis.{u3, u1} α ι' l (Function.comp.{u1, u2, 1} ι' ι Prop p (FunLike.coe.{max (max 1 u2) u1, u1, u2} (Equiv.{u1, u2} ι' ι) ι' (fun (_x : ι') => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : ι') => ι) _x) (Equiv.instFunLikeEquiv.{u1, u2} ι' ι) e)) (Function.comp.{u1, u2, succ u3} ι' ι (Set.{u3} α) s (FunLike.coe.{max (max 1 u2) u1, u1, u2} (Equiv.{u1, u2} ι' ι) ι' (fun (_x : ι') => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : ι') => ι) _x) (Equiv.instFunLikeEquiv.{u1, u2} ι' ι) e)))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.comp_equiv Filter.HasBasis.comp_equivₓ'. -/
 theorem HasBasis.comp_equiv (h : l.HasBasis p s) (e : ι' ≃ ι) : l.HasBasis (p ∘ e) (s ∘ e) :=
   h.comp_surjective e.Surjective
 #align filter.has_basis.comp_equiv Filter.HasBasis.comp_equiv
 
-/- warning: filter.has_basis.restrict -> Filter.HasBasis.restrict is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (forall {q : ι -> Prop}, (forall (i : ι), (p i) -> (Exists.{u2} ι (fun (j : ι) => And (p j) (And (q j) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (s j) (s i)))))) -> (Filter.HasBasis.{u1, u2} α ι l (fun (i : ι) => And (p i) (q i)) s))
-but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι l p s) -> (forall {q : ι -> Prop}, (forall (i : ι), (p i) -> (Exists.{u1} ι (fun (j : ι) => And (p j) (And (q j) (HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) (s j) (s i)))))) -> (Filter.HasBasis.{u2, u1} α ι l (fun (i : ι) => And (p i) (q i)) s))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.restrict Filter.HasBasis.restrictₓ'. -/
 /-- If `{s i | p i}` is a basis of a filter `l` and each `s i` includes `s j` such that
 `p j ∧ q j`, then `{s j | p j ∧ q j}` is a basis of `l`. -/
 theorem HasBasis.restrict (h : l.HasBasis p s) {q : ι → Prop}
@@ -651,12 +477,6 @@ theorem HasBasis.restrict (h : l.HasBasis p s) {q : ι → Prop}
   exact ⟨j, ⟨hpj, hqj⟩, subset.trans hji hti⟩
 #align filter.has_basis.restrict Filter.HasBasis.restrict
 
-/- warning: filter.has_basis.restrict_subset -> Filter.HasBasis.restrict_subset is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (forall {V : Set.{u1} α}, (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) V l) -> (Filter.HasBasis.{u1, u2} α ι l (fun (i : ι) => And (p i) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (s i) V)) s))
-but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι l p s) -> (forall {V : Set.{u2} α}, (Membership.mem.{u2, u2} (Set.{u2} α) (Filter.{u2} α) (instMembershipSetFilter.{u2} α) V l) -> (Filter.HasBasis.{u2, u1} α ι l (fun (i : ι) => And (p i) (HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) (s i) V)) s))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.restrict_subset Filter.HasBasis.restrict_subsetₓ'. -/
 /-- If `{s i | p i}` is a basis of a filter `l` and `V ∈ l`, then `{s i | p i ∧ s i ⊆ V}`
 is a basis of `l`. -/
 theorem HasBasis.restrict_subset (h : l.HasBasis p s) {V : Set α} (hV : V ∈ l) :
@@ -673,12 +493,6 @@ theorem HasBasis.hasBasis_self_subset {p : Set α → Prop} (h : l.HasBasis (fun
 #align filter.has_basis.has_basis_self_subset Filter.HasBasis.hasBasis_self_subset
 -/
 
-/- warning: filter.has_basis.ge_iff -> Filter.HasBasis.ge_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι' : Sort.{u2}} {l : Filter.{u1} α} {l' : Filter.{u1} α} {p' : ι' -> Prop} {s' : ι' -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι' l' p' s') -> (Iff (LE.le.{u1} (Filter.{u1} α) (Preorder.toHasLe.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))) l l') (forall (i' : ι'), (p' i') -> (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) (s' i') l)))
-but is expected to have type
-  forall {α : Type.{u2}} {ι' : Sort.{u1}} {l : Filter.{u2} α} {l' : Filter.{u2} α} {p' : ι' -> Prop} {s' : ι' -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι' l' p' s') -> (Iff (LE.le.{u2} (Filter.{u2} α) (Preorder.toLE.{u2} (Filter.{u2} α) (PartialOrder.toPreorder.{u2} (Filter.{u2} α) (Filter.instPartialOrderFilter.{u2} α))) l l') (forall (i' : ι'), (p' i') -> (Membership.mem.{u2, u2} (Set.{u2} α) (Filter.{u2} α) (instMembershipSetFilter.{u2} α) (s' i') l)))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.ge_iff Filter.HasBasis.ge_iffₓ'. -/
 theorem HasBasis.ge_iff (hl' : l'.HasBasis p' s') : l ≤ l' ↔ ∀ i', p' i' → s' i' ∈ l :=
   ⟨fun h i' hi' => h <| hl'.mem_of_mem hi', fun h s hs =>
     let ⟨i', hi', hs⟩ := hl'.mem_iff.1 hs
@@ -703,12 +517,6 @@ theorem HasBasis.ext (hl : l.HasBasis p s) (hl' : l'.HasBasis p' s')
     simpa using h
 #align filter.has_basis.ext Filter.HasBasis.extₓ
 
-/- warning: filter.has_basis.inf' -> Filter.HasBasis.inf' is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {ι' : Sort.{u3}} {l : Filter.{u1} α} {l' : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)} {p' : ι' -> Prop} {s' : ι' -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (Filter.HasBasis.{u1, u3} α ι' l' p' s') -> (Filter.HasBasis.{u1, max 1 u2 u3} α (PProd.{u2, u3} ι ι') (Inf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) l l') (fun (i : PProd.{u2, u3} ι ι') => And (p (PProd.fst.{u2, u3} ι ι' i)) (p' (PProd.snd.{u2, u3} ι ι' i))) (fun (i : PProd.{u2, u3} ι ι') => Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) (s (PProd.fst.{u2, u3} ι ι' i)) (s' (PProd.snd.{u2, u3} ι ι' i))))
-but is expected to have type
-  forall {α : Type.{u3}} {ι : Sort.{u2}} {ι' : Sort.{u1}} {l : Filter.{u3} α} {l' : Filter.{u3} α} {p : ι -> Prop} {s : ι -> (Set.{u3} α)} {p' : ι' -> Prop} {s' : ι' -> (Set.{u3} α)}, (Filter.HasBasis.{u3, u2} α ι l p s) -> (Filter.HasBasis.{u3, u1} α ι' l' p' s') -> (Filter.HasBasis.{u3, max (max 1 u2) u1} α (PProd.{u2, u1} ι ι') (Inf.inf.{u3} (Filter.{u3} α) (Filter.instInfFilter.{u3} α) l l') (fun (i : PProd.{u2, u1} ι ι') => And (p (PProd.fst.{u2, u1} ι ι' i)) (p' (PProd.snd.{u2, u1} ι ι' i))) (fun (i : PProd.{u2, u1} ι ι') => Inter.inter.{u3} (Set.{u3} α) (Set.instInterSet.{u3} α) (s (PProd.fst.{u2, u1} ι ι' i)) (s' (PProd.snd.{u2, u1} ι ι' i))))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.inf' Filter.HasBasis.inf'ₓ'. -/
 theorem HasBasis.inf' (hl : l.HasBasis p s) (hl' : l'.HasBasis p' s') :
     (l ⊓ l').HasBasis (fun i : PProd ι ι' => p i.1 ∧ p' i.2) fun i => s i.1 ∩ s' i.2 :=
   ⟨by
@@ -721,12 +529,6 @@ theorem HasBasis.inf' (hl : l.HasBasis p s) (hl' : l'.HasBasis p' s') :
       exact mem_inf_of_inter (hl.mem_of_mem hi) (hl'.mem_of_mem hi') H⟩
 #align filter.has_basis.inf' Filter.HasBasis.inf'
 
-/- warning: filter.has_basis.inf -> Filter.HasBasis.inf is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {l : Filter.{u1} α} {l' : Filter.{u1} α} {ι : Type.{u2}} {ι' : Type.{u3}} {p : ι -> Prop} {s : ι -> (Set.{u1} α)} {p' : ι' -> Prop} {s' : ι' -> (Set.{u1} α)}, (Filter.HasBasis.{u1, succ u2} α ι l p s) -> (Filter.HasBasis.{u1, succ u3} α ι' l' p' s') -> (Filter.HasBasis.{u1, max (succ u2) (succ u3)} α (Prod.{u2, u3} ι ι') (Inf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) l l') (fun (i : Prod.{u2, u3} ι ι') => And (p (Prod.fst.{u2, u3} ι ι' i)) (p' (Prod.snd.{u2, u3} ι ι' i))) (fun (i : Prod.{u2, u3} ι ι') => Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) (s (Prod.fst.{u2, u3} ι ι' i)) (s' (Prod.snd.{u2, u3} ι ι' i))))
-but is expected to have type
-  forall {α : Type.{u1}} {l : Filter.{u1} α} {l' : Filter.{u1} α} {ι : Type.{u3}} {ι' : Type.{u2}} {p : ι -> Prop} {s : ι -> (Set.{u1} α)} {p' : ι' -> Prop} {s' : ι' -> (Set.{u1} α)}, (Filter.HasBasis.{u1, succ u3} α ι l p s) -> (Filter.HasBasis.{u1, succ u2} α ι' l' p' s') -> (Filter.HasBasis.{u1, max (succ u3) (succ u2)} α (Prod.{u3, u2} ι ι') (Inf.inf.{u1} (Filter.{u1} α) (Filter.instInfFilter.{u1} α) l l') (fun (i : Prod.{u3, u2} ι ι') => And (p (Prod.fst.{u3, u2} ι ι' i)) (p' (Prod.snd.{u3, u2} ι ι' i))) (fun (i : Prod.{u3, u2} ι ι') => Inter.inter.{u1} (Set.{u1} α) (Set.instInterSet.{u1} α) (s (Prod.fst.{u3, u2} ι ι' i)) (s' (Prod.snd.{u3, u2} ι ι' i))))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.inf Filter.HasBasis.infₓ'. -/
 theorem HasBasis.inf {ι ι' : Type _} {p : ι → Prop} {s : ι → Set α} {p' : ι' → Prop}
     {s' : ι' → Set α} (hl : l.HasBasis p s) (hl' : l'.HasBasis p' s') :
     (l ⊓ l').HasBasis (fun i : ι × ι' => p i.1 ∧ p' i.2) fun i => s i.1 ∩ s' i.2 :=
@@ -734,12 +536,6 @@ theorem HasBasis.inf {ι ι' : Type _} {p : ι → Prop} {s : ι → Set α} {p'
     ⟨⟨i.1, i.2⟩, hi, Subset.rfl⟩
 #align filter.has_basis.inf Filter.HasBasis.inf
 
-/- warning: filter.has_basis_infi' -> Filter.hasBasis_iInf' is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Type.{u2}} {ι' : ι -> Type.{u3}} {l : ι -> (Filter.{u1} α)} {p : forall (i : ι), (ι' i) -> Prop} {s : forall (i : ι), (ι' i) -> (Set.{u1} α)}, (forall (i : ι), Filter.HasBasis.{u1, succ u3} α (ι' i) (l i) (p i) (s i)) -> (Filter.HasBasis.{u1, max (succ u2) (succ (max u2 u3))} α (Prod.{u2, max u2 u3} (Set.{u2} ι) (forall (i : ι), ι' i)) (iInf.{u1, succ u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => l i)) (fun (If : Prod.{u2, max u2 u3} (Set.{u2} ι) (forall (i : ι), ι' i)) => And (Set.Finite.{u2} ι (Prod.fst.{u2, max u2 u3} (Set.{u2} ι) (forall (i : ι), ι' i) If)) (forall (i : ι), (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i (Prod.fst.{u2, max u2 u3} (Set.{u2} ι) (forall (i : ι), ι' i) If)) -> (p i (Prod.snd.{u2, max u2 u3} (Set.{u2} ι) (forall (i : ι), ι' i) If i)))) (fun (If : Prod.{u2, max u2 u3} (Set.{u2} ι) (forall (i : ι), ι' i)) => Set.iInter.{u1, succ u2} α ι (fun (i : ι) => Set.iInter.{u1, 0} α (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i (Prod.fst.{u2, max u2 u3} (Set.{u2} ι) (forall (i : ι), ι' i) If)) (fun (H : Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i (Prod.fst.{u2, max u2 u3} (Set.{u2} ι) (forall (i : ι), ι' i) If)) => s i (Prod.snd.{u2, max u2 u3} (Set.{u2} ι) (forall (i : ι), ι' i) If i)))))
-but is expected to have type
-  forall {α : Type.{u1}} {ι : Type.{u3}} {ι' : ι -> Type.{u2}} {l : ι -> (Filter.{u1} α)} {p : forall (i : ι), (ι' i) -> Prop} {s : forall (i : ι), (ι' i) -> (Set.{u1} α)}, (forall (i : ι), Filter.HasBasis.{u1, succ u2} α (ι' i) (l i) (p i) (s i)) -> (Filter.HasBasis.{u1, max (succ u3) (succ u2)} α (Prod.{u3, max u3 u2} (Set.{u3} ι) (forall (i : ι), ι' i)) (iInf.{u1, succ u3} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) ι (fun (i : ι) => l i)) (fun (If : Prod.{u3, max u3 u2} (Set.{u3} ι) (forall (i : ι), ι' i)) => And (Set.Finite.{u3} ι (Prod.fst.{u3, max u3 u2} (Set.{u3} ι) (forall (i : ι), ι' i) If)) (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i (Prod.fst.{u3, max u3 u2} (Set.{u3} ι) (forall (i : ι), ι' i) If)) -> (p i (Prod.snd.{u3, max u3 u2} (Set.{u3} ι) (forall (i : ι), ι' i) If i)))) (fun (If : Prod.{u3, max u3 u2} (Set.{u3} ι) (forall (i : ι), ι' i)) => Set.iInter.{u1, succ u3} α ι (fun (i : ι) => Set.iInter.{u1, 0} α (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i (Prod.fst.{u3, max u3 u2} (Set.{u3} ι) (forall (i : ι), ι' i) If)) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i (Prod.fst.{u3, max u3 u2} (Set.{u3} ι) (forall (i : ι), ι' i) If)) => s i (Prod.snd.{u3, max u3 u2} (Set.{u3} ι) (forall (i : ι), ι' i) If i)))))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis_infi' Filter.hasBasis_iInf'ₓ'. -/
 theorem hasBasis_iInf' {ι : Type _} {ι' : ι → Type _} {l : ι → Filter α} {p : ∀ i, ι' i → Prop}
     {s : ∀ i, ι' i → Set α} (hl : ∀ i, (l i).HasBasis (p i) (s i)) :
     (⨅ i, l i).HasBasis (fun If : Set ι × ∀ i, ι' i => If.1.Finite ∧ ∀ i ∈ If.1, p i (If.2 i))
@@ -756,9 +552,6 @@ theorem hasBasis_iInf' {ι : Type _} {ι' : ι → Type _} {l : ι → Filter α
       exact (bInter_mem hI₁).mpr fun i hi => mem_infi_of_mem i <| (hl i).mem_of_mem <| hI₂ _ hi⟩
 #align filter.has_basis_infi' Filter.hasBasis_iInf'
 
-/- warning: filter.has_basis_infi -> Filter.hasBasis_iInf is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align filter.has_basis_infi Filter.hasBasis_iInfₓ'. -/
 theorem hasBasis_iInf {ι : Type _} {ι' : ι → Type _} {l : ι → Filter α} {p : ∀ i, ι' i → Prop}
     {s : ∀ i, ι' i → Set α} (hl : ∀ i, (l i).HasBasis (p i) (s i)) :
     (⨅ i, l i).HasBasis
@@ -775,12 +568,6 @@ theorem hasBasis_iInf {ι : Type _} {ι' : ι → Type _} {l : ι → Filter α}
     exact Inter_mem.2 fun i => mem_infi_of_mem i <| (hl i).mem_of_mem <| hf _
 #align filter.has_basis_infi Filter.hasBasis_iInf
 
-/- warning: filter.has_basis_infi_of_directed' -> Filter.hasBasis_iInf_of_directed' is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Type.{u2}} {ι' : ι -> Type.{u3}} [_inst_1 : Nonempty.{succ u2} ι] {l : ι -> (Filter.{u1} α)} (s : forall (i : ι), (ι' i) -> (Set.{u1} α)) (p : forall (i : ι), (ι' i) -> Prop), (forall (i : ι), Filter.HasBasis.{u1, succ u3} α (ι' i) (l i) (p i) (s i)) -> (Directed.{u1, succ u2} (Filter.{u1} α) ι (GE.ge.{u1} (Filter.{u1} α) (Preorder.toHasLe.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α)))) l) -> (Filter.HasBasis.{u1, max (succ u2) (succ u3)} α (Sigma.{u2, u3} ι (fun (i : ι) => ι' i)) (iInf.{u1, succ u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => l i)) (fun (ii' : Sigma.{u2, u3} ι (fun (i : ι) => ι' i)) => p (Sigma.fst.{u2, u3} ι (fun (i : ι) => ι' i) ii') (Sigma.snd.{u2, u3} ι (fun (i : ι) => ι' i) ii')) (fun (ii' : Sigma.{u2, u3} ι (fun (i : ι) => ι' i)) => s (Sigma.fst.{u2, u3} ι (fun (i : ι) => ι' i) ii') (Sigma.snd.{u2, u3} ι (fun (i : ι) => ι' i) ii')))
-but is expected to have type
-  forall {α : Type.{u1}} {ι : Type.{u3}} {ι' : ι -> Type.{u2}} [_inst_1 : Nonempty.{succ u3} ι] {l : ι -> (Filter.{u1} α)} (s : forall (i : ι), (ι' i) -> (Set.{u1} α)) (p : forall (i : ι), (ι' i) -> Prop), (forall (i : ι), Filter.HasBasis.{u1, succ u2} α (ι' i) (l i) (p i) (s i)) -> (Directed.{u1, succ u3} (Filter.{u1} α) ι (fun (x._@.Mathlib.Order.Filter.Bases._hyg.5723 : Filter.{u1} α) (x._@.Mathlib.Order.Filter.Bases._hyg.5725 : Filter.{u1} α) => GE.ge.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α))) x._@.Mathlib.Order.Filter.Bases._hyg.5723 x._@.Mathlib.Order.Filter.Bases._hyg.5725) l) -> (Filter.HasBasis.{u1, max (succ u3) (succ u2)} α (Sigma.{u3, u2} ι (fun (i : ι) => ι' i)) (iInf.{u1, succ u3} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) ι (fun (i : ι) => l i)) (fun (ii' : Sigma.{u3, u2} ι (fun (i : ι) => ι' i)) => p (Sigma.fst.{u3, u2} ι (fun (i : ι) => ι' i) ii') (Sigma.snd.{u3, u2} ι (fun (i : ι) => ι' i) ii')) (fun (ii' : Sigma.{u3, u2} ι (fun (i : ι) => ι' i)) => s (Sigma.fst.{u3, u2} ι (fun (i : ι) => ι' i) ii') (Sigma.snd.{u3, u2} ι (fun (i : ι) => ι' i) ii')))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis_infi_of_directed' Filter.hasBasis_iInf_of_directed'ₓ'. -/
 theorem hasBasis_iInf_of_directed' {ι : Type _} {ι' : ι → Sort _} [Nonempty ι] {l : ι → Filter α}
     (s : ∀ i, ι' i → Set α) (p : ∀ i, ι' i → Prop) (hl : ∀ i, (l i).HasBasis (p i) (s i))
     (h : Directed (· ≥ ·) l) :
@@ -791,12 +578,6 @@ theorem hasBasis_iInf_of_directed' {ι : Type _} {ι' : ι → Sort _} [Nonempty
   exact exists_congr fun i => (hl i).mem_iff
 #align filter.has_basis_infi_of_directed' Filter.hasBasis_iInf_of_directed'
 
-/- warning: filter.has_basis_infi_of_directed -> Filter.hasBasis_iInf_of_directed is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Type.{u2}} {ι' : Type.{u3}} [_inst_1 : Nonempty.{succ u2} ι] {l : ι -> (Filter.{u1} α)} (s : ι -> ι' -> (Set.{u1} α)) (p : ι -> ι' -> Prop), (forall (i : ι), Filter.HasBasis.{u1, succ u3} α ι' (l i) (p i) (s i)) -> (Directed.{u1, succ u2} (Filter.{u1} α) ι (GE.ge.{u1} (Filter.{u1} α) (Preorder.toHasLe.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α)))) l) -> (Filter.HasBasis.{u1, max (succ u2) (succ u3)} α (Prod.{u2, u3} ι ι') (iInf.{u1, succ u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => l i)) (fun (ii' : Prod.{u2, u3} ι ι') => p (Prod.fst.{u2, u3} ι ι' ii') (Prod.snd.{u2, u3} ι ι' ii')) (fun (ii' : Prod.{u2, u3} ι ι') => s (Prod.fst.{u2, u3} ι ι' ii') (Prod.snd.{u2, u3} ι ι' ii')))
-but is expected to have type
-  forall {α : Type.{u1}} {ι : Type.{u3}} {ι' : Type.{u2}} [_inst_1 : Nonempty.{succ u3} ι] {l : ι -> (Filter.{u1} α)} (s : ι -> ι' -> (Set.{u1} α)) (p : ι -> ι' -> Prop), (forall (i : ι), Filter.HasBasis.{u1, succ u2} α ι' (l i) (p i) (s i)) -> (Directed.{u1, succ u3} (Filter.{u1} α) ι (fun (x._@.Mathlib.Order.Filter.Bases._hyg.5900 : Filter.{u1} α) (x._@.Mathlib.Order.Filter.Bases._hyg.5902 : Filter.{u1} α) => GE.ge.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α))) x._@.Mathlib.Order.Filter.Bases._hyg.5900 x._@.Mathlib.Order.Filter.Bases._hyg.5902) l) -> (Filter.HasBasis.{u1, max (succ u3) (succ u2)} α (Prod.{u3, u2} ι ι') (iInf.{u1, succ u3} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) ι (fun (i : ι) => l i)) (fun (ii' : Prod.{u3, u2} ι ι') => p (Prod.fst.{u3, u2} ι ι' ii') (Prod.snd.{u3, u2} ι ι' ii')) (fun (ii' : Prod.{u3, u2} ι ι') => s (Prod.fst.{u3, u2} ι ι' ii') (Prod.snd.{u3, u2} ι ι' ii')))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis_infi_of_directed Filter.hasBasis_iInf_of_directedₓ'. -/
 theorem hasBasis_iInf_of_directed {ι : Type _} {ι' : Sort _} [Nonempty ι] {l : ι → Filter α}
     (s : ι → ι' → Set α) (p : ι → ι' → Prop) (hl : ∀ i, (l i).HasBasis (p i) (s i))
     (h : Directed (· ≥ ·) l) :
@@ -807,12 +588,6 @@ theorem hasBasis_iInf_of_directed {ι : Type _} {ι' : Sort _} [Nonempty ι] {l
   exact exists_congr fun i => (hl i).mem_iff
 #align filter.has_basis_infi_of_directed Filter.hasBasis_iInf_of_directed
 
-/- warning: filter.has_basis_binfi_of_directed' -> Filter.hasBasis_biInf_of_directed' is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Type.{u2}} {ι' : ι -> Type.{u3}} {dom : Set.{u2} ι}, (Set.Nonempty.{u2} ι dom) -> (forall {l : ι -> (Filter.{u1} α)} (s : forall (i : ι), (ι' i) -> (Set.{u1} α)) (p : forall (i : ι), (ι' i) -> Prop), (forall (i : ι), (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i dom) -> (Filter.HasBasis.{u1, succ u3} α (ι' i) (l i) (p i) (s i))) -> (DirectedOn.{u2} ι (Order.Preimage.{succ u2, succ u1} ι (Filter.{u1} α) l (GE.ge.{u1} (Filter.{u1} α) (Preorder.toHasLe.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))))) dom) -> (Filter.HasBasis.{u1, max (succ u2) (succ u3)} α (Sigma.{u2, u3} ι (fun (i : ι) => ι' i)) (iInf.{u1, succ u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => iInf.{u1, 0} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i dom) (fun (H : Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i dom) => l i))) (fun (ii' : Sigma.{u2, u3} ι (fun (i : ι) => ι' i)) => And (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) (Sigma.fst.{u2, u3} ι (fun (i : ι) => ι' i) ii') dom) (p (Sigma.fst.{u2, u3} ι (fun (i : ι) => ι' i) ii') (Sigma.snd.{u2, u3} ι (fun (i : ι) => ι' i) ii'))) (fun (ii' : Sigma.{u2, u3} ι (fun (i : ι) => ι' i)) => s (Sigma.fst.{u2, u3} ι (fun (i : ι) => ι' i) ii') (Sigma.snd.{u2, u3} ι (fun (i : ι) => ι' i) ii'))))
-but is expected to have type
-  forall {α : Type.{u1}} {ι : Type.{u3}} {ι' : ι -> Type.{u2}} {dom : Set.{u3} ι}, (Set.Nonempty.{u3} ι dom) -> (forall {l : ι -> (Filter.{u1} α)} (s : forall (i : ι), (ι' i) -> (Set.{u1} α)) (p : forall (i : ι), (ι' i) -> Prop), (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i dom) -> (Filter.HasBasis.{u1, succ u2} α (ι' i) (l i) (p i) (s i))) -> (DirectedOn.{u3} ι (Order.Preimage.{succ u3, succ u1} ι (Filter.{u1} α) l (GE.ge.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α))))) dom) -> (Filter.HasBasis.{u1, max (succ u3) (succ u2)} α (Sigma.{u3, u2} ι (fun (i : ι) => ι' i)) (iInf.{u1, succ u3} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) ι (fun (i : ι) => iInf.{u1, 0} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i dom) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i dom) => l i))) (fun (ii' : Sigma.{u3, u2} ι (fun (i : ι) => ι' i)) => And (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) (Sigma.fst.{u3, u2} ι (fun (i : ι) => ι' i) ii') dom) (p (Sigma.fst.{u3, u2} ι (fun (i : ι) => ι' i) ii') (Sigma.snd.{u3, u2} ι (fun (i : ι) => ι' i) ii'))) (fun (ii' : Sigma.{u3, u2} ι (fun (i : ι) => ι' i)) => s (Sigma.fst.{u3, u2} ι (fun (i : ι) => ι' i) ii') (Sigma.snd.{u3, u2} ι (fun (i : ι) => ι' i) ii'))))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis_binfi_of_directed' Filter.hasBasis_biInf_of_directed'ₓ'. -/
 theorem hasBasis_biInf_of_directed' {ι : Type _} {ι' : ι → Sort _} {dom : Set ι}
     (hdom : dom.Nonempty) {l : ι → Filter α} (s : ∀ i, ι' i → Set α) (p : ∀ i, ι' i → Prop)
     (hl : ∀ i ∈ dom, (l i).HasBasis (p i) (s i)) (h : DirectedOn (l ⁻¹'o GE.ge) dom) :
@@ -829,12 +604,6 @@ theorem hasBasis_biInf_of_directed' {ι : Type _} {ι' : ι → Sort _} {dom : S
     exact ⟨hi, (hl i hi).mem_iff.mpr ⟨b, hb, hibt⟩⟩
 #align filter.has_basis_binfi_of_directed' Filter.hasBasis_biInf_of_directed'
 
-/- warning: filter.has_basis_binfi_of_directed -> Filter.hasBasis_biInf_of_directed is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Type.{u2}} {ι' : Type.{u3}} {dom : Set.{u2} ι}, (Set.Nonempty.{u2} ι dom) -> (forall {l : ι -> (Filter.{u1} α)} (s : ι -> ι' -> (Set.{u1} α)) (p : ι -> ι' -> Prop), (forall (i : ι), (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i dom) -> (Filter.HasBasis.{u1, succ u3} α ι' (l i) (p i) (s i))) -> (DirectedOn.{u2} ι (Order.Preimage.{succ u2, succ u1} ι (Filter.{u1} α) l (GE.ge.{u1} (Filter.{u1} α) (Preorder.toHasLe.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))))) dom) -> (Filter.HasBasis.{u1, max (succ u2) (succ u3)} α (Prod.{u2, u3} ι ι') (iInf.{u1, succ u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => iInf.{u1, 0} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i dom) (fun (H : Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i dom) => l i))) (fun (ii' : Prod.{u2, u3} ι ι') => And (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) (Prod.fst.{u2, u3} ι ι' ii') dom) (p (Prod.fst.{u2, u3} ι ι' ii') (Prod.snd.{u2, u3} ι ι' ii'))) (fun (ii' : Prod.{u2, u3} ι ι') => s (Prod.fst.{u2, u3} ι ι' ii') (Prod.snd.{u2, u3} ι ι' ii'))))
-but is expected to have type
-  forall {α : Type.{u1}} {ι : Type.{u3}} {ι' : Type.{u2}} {dom : Set.{u3} ι}, (Set.Nonempty.{u3} ι dom) -> (forall {l : ι -> (Filter.{u1} α)} (s : ι -> ι' -> (Set.{u1} α)) (p : ι -> ι' -> Prop), (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i dom) -> (Filter.HasBasis.{u1, succ u2} α ι' (l i) (p i) (s i))) -> (DirectedOn.{u3} ι (Order.Preimage.{succ u3, succ u1} ι (Filter.{u1} α) l (GE.ge.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α))))) dom) -> (Filter.HasBasis.{u1, max (succ u3) (succ u2)} α (Prod.{u3, u2} ι ι') (iInf.{u1, succ u3} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) ι (fun (i : ι) => iInf.{u1, 0} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i dom) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i dom) => l i))) (fun (ii' : Prod.{u3, u2} ι ι') => And (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) (Prod.fst.{u3, u2} ι ι' ii') dom) (p (Prod.fst.{u3, u2} ι ι' ii') (Prod.snd.{u3, u2} ι ι' ii'))) (fun (ii' : Prod.{u3, u2} ι ι') => s (Prod.fst.{u3, u2} ι ι' ii') (Prod.snd.{u3, u2} ι ι' ii'))))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis_binfi_of_directed Filter.hasBasis_biInf_of_directedₓ'. -/
 theorem hasBasis_biInf_of_directed {ι : Type _} {ι' : Sort _} {dom : Set ι} (hdom : dom.Nonempty)
     {l : ι → Filter α} (s : ι → ι' → Set α) (p : ι → ι' → Prop)
     (hl : ∀ i ∈ dom, (l i).HasBasis (p i) (s i)) (h : DirectedOn (l ⁻¹'o GE.ge) dom) :
@@ -863,12 +632,6 @@ theorem hasBasis_pure (x : α) : (pure x : Filter α).HasBasis (fun i : Unit =>
 #align filter.has_basis_pure Filter.hasBasis_pure
 -/
 
-/- warning: filter.has_basis.sup' -> Filter.HasBasis.sup' is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {ι' : Sort.{u3}} {l : Filter.{u1} α} {l' : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)} {p' : ι' -> Prop} {s' : ι' -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (Filter.HasBasis.{u1, u3} α ι' l' p' s') -> (Filter.HasBasis.{u1, max 1 u2 u3} α (PProd.{u2, u3} ι ι') (Sup.sup.{u1} (Filter.{u1} α) (SemilatticeSup.toHasSup.{u1} (Filter.{u1} α) (Lattice.toSemilatticeSup.{u1} (Filter.{u1} α) (ConditionallyCompleteLattice.toLattice.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))))) l l') (fun (i : PProd.{u2, u3} ι ι') => And (p (PProd.fst.{u2, u3} ι ι' i)) (p' (PProd.snd.{u2, u3} ι ι' i))) (fun (i : PProd.{u2, u3} ι ι') => Union.union.{u1} (Set.{u1} α) (Set.hasUnion.{u1} α) (s (PProd.fst.{u2, u3} ι ι' i)) (s' (PProd.snd.{u2, u3} ι ι' i))))
-but is expected to have type
-  forall {α : Type.{u3}} {ι : Sort.{u2}} {ι' : Sort.{u1}} {l : Filter.{u3} α} {l' : Filter.{u3} α} {p : ι -> Prop} {s : ι -> (Set.{u3} α)} {p' : ι' -> Prop} {s' : ι' -> (Set.{u3} α)}, (Filter.HasBasis.{u3, u2} α ι l p s) -> (Filter.HasBasis.{u3, u1} α ι' l' p' s') -> (Filter.HasBasis.{u3, max (max 1 u2) u1} α (PProd.{u2, u1} ι ι') (Sup.sup.{u3} (Filter.{u3} α) (SemilatticeSup.toSup.{u3} (Filter.{u3} α) (Lattice.toSemilatticeSup.{u3} (Filter.{u3} α) (CompleteLattice.toLattice.{u3} (Filter.{u3} α) (Filter.instCompleteLatticeFilter.{u3} α)))) l l') (fun (i : PProd.{u2, u1} ι ι') => And (p (PProd.fst.{u2, u1} ι ι' i)) (p' (PProd.snd.{u2, u1} ι ι' i))) (fun (i : PProd.{u2, u1} ι ι') => Union.union.{u3} (Set.{u3} α) (Set.instUnionSet.{u3} α) (s (PProd.fst.{u2, u1} ι ι' i)) (s' (PProd.snd.{u2, u1} ι ι' i))))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.sup' Filter.HasBasis.sup'ₓ'. -/
 theorem HasBasis.sup' (hl : l.HasBasis p s) (hl' : l'.HasBasis p' s') :
     (l ⊔ l').HasBasis (fun i : PProd ι ι' => p i.1 ∧ p' i.2) fun i => s i.1 ∪ s' i.2 :=
   ⟨by
@@ -878,12 +641,6 @@ theorem HasBasis.sup' (hl : l.HasBasis p s) (hl' : l'.HasBasis p' s') :
     simp only [← and_assoc', exists_and_right, and_comm']⟩
 #align filter.has_basis.sup' Filter.HasBasis.sup'
 
-/- warning: filter.has_basis.sup -> Filter.HasBasis.sup is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {l : Filter.{u1} α} {l' : Filter.{u1} α} {ι : Type.{u2}} {ι' : Type.{u3}} {p : ι -> Prop} {s : ι -> (Set.{u1} α)} {p' : ι' -> Prop} {s' : ι' -> (Set.{u1} α)}, (Filter.HasBasis.{u1, succ u2} α ι l p s) -> (Filter.HasBasis.{u1, succ u3} α ι' l' p' s') -> (Filter.HasBasis.{u1, max (succ u2) (succ u3)} α (Prod.{u2, u3} ι ι') (Sup.sup.{u1} (Filter.{u1} α) (SemilatticeSup.toHasSup.{u1} (Filter.{u1} α) (Lattice.toSemilatticeSup.{u1} (Filter.{u1} α) (ConditionallyCompleteLattice.toLattice.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))))) l l') (fun (i : Prod.{u2, u3} ι ι') => And (p (Prod.fst.{u2, u3} ι ι' i)) (p' (Prod.snd.{u2, u3} ι ι' i))) (fun (i : Prod.{u2, u3} ι ι') => Union.union.{u1} (Set.{u1} α) (Set.hasUnion.{u1} α) (s (Prod.fst.{u2, u3} ι ι' i)) (s' (Prod.snd.{u2, u3} ι ι' i))))
-but is expected to have type
-  forall {α : Type.{u1}} {l : Filter.{u1} α} {l' : Filter.{u1} α} {ι : Type.{u3}} {ι' : Type.{u2}} {p : ι -> Prop} {s : ι -> (Set.{u1} α)} {p' : ι' -> Prop} {s' : ι' -> (Set.{u1} α)}, (Filter.HasBasis.{u1, succ u3} α ι l p s) -> (Filter.HasBasis.{u1, succ u2} α ι' l' p' s') -> (Filter.HasBasis.{u1, max (succ u3) (succ u2)} α (Prod.{u3, u2} ι ι') (Sup.sup.{u1} (Filter.{u1} α) (SemilatticeSup.toSup.{u1} (Filter.{u1} α) (Lattice.toSemilatticeSup.{u1} (Filter.{u1} α) (CompleteLattice.toLattice.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)))) l l') (fun (i : Prod.{u3, u2} ι ι') => And (p (Prod.fst.{u3, u2} ι ι' i)) (p' (Prod.snd.{u3, u2} ι ι' i))) (fun (i : Prod.{u3, u2} ι ι') => Union.union.{u1} (Set.{u1} α) (Set.instUnionSet.{u1} α) (s (Prod.fst.{u3, u2} ι ι' i)) (s' (Prod.snd.{u3, u2} ι ι' i))))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.sup Filter.HasBasis.supₓ'. -/
 theorem HasBasis.sup {ι ι' : Type _} {p : ι → Prop} {s : ι → Set α} {p' : ι' → Prop}
     {s' : ι' → Set α} (hl : l.HasBasis p s) (hl' : l'.HasBasis p' s') :
     (l ⊔ l').HasBasis (fun i : ι × ι' => p i.1 ∧ p' i.2) fun i => s i.1 ∪ s' i.2 :=
@@ -891,12 +648,6 @@ theorem HasBasis.sup {ι ι' : Type _} {p : ι → Prop} {s : ι → Set α} {p'
     ⟨⟨i.1, i.2⟩, hi, Subset.rfl⟩
 #align filter.has_basis.sup Filter.HasBasis.sup
 
-/- warning: filter.has_basis_supr -> Filter.hasBasis_iSup is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {ι' : ι -> Type.{u3}} {l : ι -> (Filter.{u1} α)} {p : forall (i : ι), (ι' i) -> Prop} {s : forall (i : ι), (ι' i) -> (Set.{u1} α)}, (forall (i : ι), Filter.HasBasis.{u1, succ u3} α (ι' i) (l i) (p i) (s i)) -> (Filter.HasBasis.{u1, max u2 (succ u3)} α (forall (i : ι), ι' i) (iSup.{u1, u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasSup.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => l i)) (fun (f : forall (i : ι), ι' i) => forall (i : ι), p i (f i)) (fun (f : forall (i : ι), ι' i) => Set.iUnion.{u1, u2} α ι (fun (i : ι) => s i (f i))))
-but is expected to have type
-  forall {α : Type.{u1}} {ι : Sort.{u3}} {ι' : ι -> Type.{u2}} {l : ι -> (Filter.{u1} α)} {p : forall (i : ι), (ι' i) -> Prop} {s : forall (i : ι), (ι' i) -> (Set.{u1} α)}, (forall (i : ι), Filter.HasBasis.{u1, succ u2} α (ι' i) (l i) (p i) (s i)) -> (Filter.HasBasis.{u1, max u3 (succ u2)} α (forall (i : ι), ι' i) (iSup.{u1, u3} (Filter.{u1} α) (CompleteLattice.toSupSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) ι (fun (i : ι) => l i)) (fun (f : forall (i : ι), ι' i) => forall (i : ι), p i (f i)) (fun (f : forall (i : ι), ι' i) => Set.iUnion.{u1, u3} α ι (fun (i : ι) => s i (f i))))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis_supr Filter.hasBasis_iSupₓ'. -/
 theorem hasBasis_iSup {ι : Sort _} {ι' : ι → Type _} {l : ι → Filter α} {p : ∀ i, ι' i → Prop}
     {s : ∀ i, ι' i → Set α} (hl : ∀ i, (l i).HasBasis (p i) (s i)) :
     (⨆ i, l i).HasBasis (fun f : ∀ i, ι' i => ∀ i, p i (f i)) fun f : ∀ i, ι' i => ⋃ i, s i (f i) :=
@@ -905,12 +656,6 @@ theorem hasBasis_iSup {ι : Sort _} {ι' : ι → Type _} {l : ι → Filter α}
       mem_supr]
 #align filter.has_basis_supr Filter.hasBasis_iSup
 
-/- warning: filter.has_basis.sup_principal -> Filter.HasBasis.sup_principal is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (forall (t : Set.{u1} α), Filter.HasBasis.{u1, u2} α ι (Sup.sup.{u1} (Filter.{u1} α) (SemilatticeSup.toHasSup.{u1} (Filter.{u1} α) (Lattice.toSemilatticeSup.{u1} (Filter.{u1} α) (ConditionallyCompleteLattice.toLattice.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))))) l (Filter.principal.{u1} α t)) p (fun (i : ι) => Union.union.{u1} (Set.{u1} α) (Set.hasUnion.{u1} α) (s i) t))
-but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι l p s) -> (forall (t : Set.{u2} α), Filter.HasBasis.{u2, u1} α ι (Sup.sup.{u2} (Filter.{u2} α) (SemilatticeSup.toSup.{u2} (Filter.{u2} α) (Lattice.toSemilatticeSup.{u2} (Filter.{u2} α) (CompleteLattice.toLattice.{u2} (Filter.{u2} α) (Filter.instCompleteLatticeFilter.{u2} α)))) l (Filter.principal.{u2} α t)) p (fun (i : ι) => Union.union.{u2} (Set.{u2} α) (Set.instUnionSet.{u2} α) (s i) t))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.sup_principal Filter.HasBasis.sup_principalₓ'. -/
 theorem HasBasis.sup_principal (hl : l.HasBasis p s) (t : Set α) :
     (l ⊔ 𝓟 t).HasBasis p fun i => s i ∪ t :=
   ⟨fun u => by
@@ -918,68 +663,32 @@ theorem HasBasis.sup_principal (hl : l.HasBasis p s) (t : Set α) :
       Unique.exists_iff]⟩
 #align filter.has_basis.sup_principal Filter.HasBasis.sup_principal
 
-/- warning: filter.has_basis.sup_pure -> Filter.HasBasis.sup_pure is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (forall (x : α), Filter.HasBasis.{u1, u2} α ι (Sup.sup.{u1} (Filter.{u1} α) (SemilatticeSup.toHasSup.{u1} (Filter.{u1} α) (Lattice.toSemilatticeSup.{u1} (Filter.{u1} α) (ConditionallyCompleteLattice.toLattice.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))))) l (Pure.pure.{u1, u1} Filter.{u1} Filter.hasPure.{u1} α x)) p (fun (i : ι) => Union.union.{u1} (Set.{u1} α) (Set.hasUnion.{u1} α) (s i) (Singleton.singleton.{u1, u1} α (Set.{u1} α) (Set.hasSingleton.{u1} α) x)))
-but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι l p s) -> (forall (x : α), Filter.HasBasis.{u2, u1} α ι (Sup.sup.{u2} (Filter.{u2} α) (SemilatticeSup.toSup.{u2} (Filter.{u2} α) (Lattice.toSemilatticeSup.{u2} (Filter.{u2} α) (CompleteLattice.toLattice.{u2} (Filter.{u2} α) (Filter.instCompleteLatticeFilter.{u2} α)))) l (Pure.pure.{u2, u2} Filter.{u2} Filter.instPureFilter.{u2} α x)) p (fun (i : ι) => Union.union.{u2} (Set.{u2} α) (Set.instUnionSet.{u2} α) (s i) (Singleton.singleton.{u2, u2} α (Set.{u2} α) (Set.instSingletonSet.{u2} α) x)))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.sup_pure Filter.HasBasis.sup_pureₓ'. -/
 theorem HasBasis.sup_pure (hl : l.HasBasis p s) (x : α) :
     (l ⊔ pure x).HasBasis p fun i => s i ∪ {x} := by
   simp only [← principal_singleton, hl.sup_principal]
 #align filter.has_basis.sup_pure Filter.HasBasis.sup_pure
 
-/- warning: filter.has_basis.inf_principal -> Filter.HasBasis.inf_principal is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (forall (s' : Set.{u1} α), Filter.HasBasis.{u1, u2} α ι (Inf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) l (Filter.principal.{u1} α s')) p (fun (i : ι) => Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) (s i) s'))
-but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι l p s) -> (forall (s' : Set.{u2} α), Filter.HasBasis.{u2, u1} α ι (Inf.inf.{u2} (Filter.{u2} α) (Filter.instInfFilter.{u2} α) l (Filter.principal.{u2} α s')) p (fun (i : ι) => Inter.inter.{u2} (Set.{u2} α) (Set.instInterSet.{u2} α) (s i) s'))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.inf_principal Filter.HasBasis.inf_principalₓ'. -/
 theorem HasBasis.inf_principal (hl : l.HasBasis p s) (s' : Set α) :
     (l ⊓ 𝓟 s').HasBasis p fun i => s i ∩ s' :=
   ⟨fun t => by
     simp only [mem_inf_principal, hl.mem_iff, subset_def, mem_set_of_eq, mem_inter_iff, and_imp]⟩
 #align filter.has_basis.inf_principal Filter.HasBasis.inf_principal
 
-/- warning: filter.has_basis.principal_inf -> Filter.HasBasis.principal_inf is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (forall (s' : Set.{u1} α), Filter.HasBasis.{u1, u2} α ι (Inf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) (Filter.principal.{u1} α s') l) p (fun (i : ι) => Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) s' (s i)))
-but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι l p s) -> (forall (s' : Set.{u2} α), Filter.HasBasis.{u2, u1} α ι (Inf.inf.{u2} (Filter.{u2} α) (Filter.instInfFilter.{u2} α) (Filter.principal.{u2} α s') l) p (fun (i : ι) => Inter.inter.{u2} (Set.{u2} α) (Set.instInterSet.{u2} α) s' (s i)))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.principal_inf Filter.HasBasis.principal_infₓ'. -/
 theorem HasBasis.principal_inf (hl : l.HasBasis p s) (s' : Set α) :
     (𝓟 s' ⊓ l).HasBasis p fun i => s' ∩ s i := by
   simpa only [inf_comm, inter_comm] using hl.inf_principal s'
 #align filter.has_basis.principal_inf Filter.HasBasis.principal_inf
 
-/- warning: filter.has_basis.inf_basis_ne_bot_iff -> Filter.HasBasis.inf_basis_neBot_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {ι' : Sort.{u3}} {l : Filter.{u1} α} {l' : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)} {p' : ι' -> Prop} {s' : ι' -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (Filter.HasBasis.{u1, u3} α ι' l' p' s') -> (Iff (Filter.NeBot.{u1} α (Inf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) l l')) (forall {{i : ι}}, (p i) -> (forall {{i' : ι'}}, (p' i') -> (Set.Nonempty.{u1} α (Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) (s i) (s' i'))))))
-but is expected to have type
-  forall {α : Type.{u3}} {ι : Sort.{u2}} {ι' : Sort.{u1}} {l : Filter.{u3} α} {l' : Filter.{u3} α} {p : ι -> Prop} {s : ι -> (Set.{u3} α)} {p' : ι' -> Prop} {s' : ι' -> (Set.{u3} α)}, (Filter.HasBasis.{u3, u2} α ι l p s) -> (Filter.HasBasis.{u3, u1} α ι' l' p' s') -> (Iff (Filter.NeBot.{u3} α (Inf.inf.{u3} (Filter.{u3} α) (Filter.instInfFilter.{u3} α) l l')) (forall {{i : ι}}, (p i) -> (forall {{i' : ι'}}, (p' i') -> (Set.Nonempty.{u3} α (Inter.inter.{u3} (Set.{u3} α) (Set.instInterSet.{u3} α) (s i) (s' i'))))))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.inf_basis_ne_bot_iff Filter.HasBasis.inf_basis_neBot_iffₓ'. -/
 theorem HasBasis.inf_basis_neBot_iff (hl : l.HasBasis p s) (hl' : l'.HasBasis p' s') :
     NeBot (l ⊓ l') ↔ ∀ ⦃i⦄ (hi : p i) ⦃i'⦄ (hi' : p' i'), (s i ∩ s' i').Nonempty :=
   (hl.inf' hl').neBot_iff.trans <| by simp [@forall_swap _ ι']
 #align filter.has_basis.inf_basis_ne_bot_iff Filter.HasBasis.inf_basis_neBot_iff
 
-/- warning: filter.has_basis.inf_ne_bot_iff -> Filter.HasBasis.inf_neBot_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {l' : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (Iff (Filter.NeBot.{u1} α (Inf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) l l')) (forall {{i : ι}}, (p i) -> (forall {{s' : Set.{u1} α}}, (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) s' l') -> (Set.Nonempty.{u1} α (Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) (s i) s')))))
-but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {l' : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι l p s) -> (Iff (Filter.NeBot.{u2} α (Inf.inf.{u2} (Filter.{u2} α) (Filter.instInfFilter.{u2} α) l l')) (forall {{i : ι}}, (p i) -> (forall {{s' : Set.{u2} α}}, (Membership.mem.{u2, u2} (Set.{u2} α) (Filter.{u2} α) (instMembershipSetFilter.{u2} α) s' l') -> (Set.Nonempty.{u2} α (Inter.inter.{u2} (Set.{u2} α) (Set.instInterSet.{u2} α) (s i) s')))))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.inf_ne_bot_iff Filter.HasBasis.inf_neBot_iffₓ'. -/
 theorem HasBasis.inf_neBot_iff (hl : l.HasBasis p s) :
     NeBot (l ⊓ l') ↔ ∀ ⦃i⦄ (hi : p i) ⦃s'⦄ (hs' : s' ∈ l'), (s i ∩ s').Nonempty :=
   hl.inf_basis_neBot_iff l'.basis_sets
 #align filter.has_basis.inf_ne_bot_iff Filter.HasBasis.inf_neBot_iff
 
-/- warning: filter.has_basis.inf_principal_ne_bot_iff -> Filter.HasBasis.inf_principal_neBot_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (forall {t : Set.{u1} α}, Iff (Filter.NeBot.{u1} α (Inf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) l (Filter.principal.{u1} α t))) (forall {{i : ι}}, (p i) -> (Set.Nonempty.{u1} α (Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) (s i) t))))
-but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι l p s) -> (forall {t : Set.{u2} α}, Iff (Filter.NeBot.{u2} α (Inf.inf.{u2} (Filter.{u2} α) (Filter.instInfFilter.{u2} α) l (Filter.principal.{u2} α t))) (forall {{i : ι}}, (p i) -> (Set.Nonempty.{u2} α (Inter.inter.{u2} (Set.{u2} α) (Set.instInterSet.{u2} α) (s i) t))))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.inf_principal_ne_bot_iff Filter.HasBasis.inf_principal_neBot_iffₓ'. -/
 theorem HasBasis.inf_principal_neBot_iff (hl : l.HasBasis p s) {t : Set α} :
     NeBot (l ⊓ 𝓟 t) ↔ ∀ ⦃i⦄ (hi : p i), (s i ∩ t).Nonempty :=
   (hl.inf_principal t).neBot_iff
@@ -997,12 +706,6 @@ theorem Disjoint.exists_mem_filter_basis (h : Disjoint l l') (hl : l.HasBasis p
   (hl.disjoint_iff hl').1 h
 #align disjoint.exists_mem_filter_basis Disjoint.exists_mem_filter_basisₓ
 
-/- warning: pairwise.exists_mem_filter_basis_of_disjoint -> Pairwise.exists_mem_filter_basis_of_disjoint is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {I : Type.{u2}} [_inst_1 : Finite.{succ u2} I] {l : I -> (Filter.{u1} α)} {ι : I -> Sort.{u3}} {p : forall (i : I), (ι i) -> Prop} {s : forall (i : I), (ι i) -> (Set.{u1} α)}, (Pairwise.{u2} I (Function.onFun.{succ u2, succ u1, 1} I (Filter.{u1} α) Prop (Disjoint.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α) (BoundedOrder.toOrderBot.{u1} (Filter.{u1} α) (Preorder.toHasLe.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))) (CompleteLattice.toBoundedOrder.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α)))) l)) -> (forall (i : I), Filter.HasBasis.{u1, u3} α (ι i) (l i) (p i) (s i)) -> (Exists.{imax (succ u2) u3} (forall (i : I), ι i) (fun (ind : forall (i : I), ι i) => And (forall (i : I), p i (ind i)) (Pairwise.{u2} I (Function.onFun.{succ u2, succ u1, 1} I (Set.{u1} α) Prop (Disjoint.{u1} (Set.{u1} α) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} α) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} α) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)))) (fun (i : I) => s i (ind i))))))
-but is expected to have type
-  forall {α : Type.{u2}} {I : Type.{u3}} [_inst_1 : Finite.{succ u3} I] {l : I -> (Filter.{u2} α)} {ι : I -> Sort.{u1}} {p : forall (i : I), (ι i) -> Prop} {s : forall (i : I), (ι i) -> (Set.{u2} α)}, (Pairwise.{u3} I (Function.onFun.{succ u3, succ u2, 1} I (Filter.{u2} α) Prop (Disjoint.{u2} (Filter.{u2} α) (Filter.instPartialOrderFilter.{u2} α) (BoundedOrder.toOrderBot.{u2} (Filter.{u2} α) (Preorder.toLE.{u2} (Filter.{u2} α) (PartialOrder.toPreorder.{u2} (Filter.{u2} α) (Filter.instPartialOrderFilter.{u2} α))) (CompleteLattice.toBoundedOrder.{u2} (Filter.{u2} α) (Filter.instCompleteLatticeFilter.{u2} α)))) l)) -> (forall (i : I), Filter.HasBasis.{u2, u1} α (ι i) (l i) (p i) (s i)) -> (Exists.{imax (succ u3) u1} (forall (i : I), ι i) (fun (ind : forall (i : I), ι i) => And (forall (i : I), p i (ind i)) (Pairwise.{u3} I (Function.onFun.{succ u3, succ u2, 1} I (Set.{u2} α) Prop (Disjoint.{u2} (Set.{u2} α) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} α) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} α) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} α) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} α) (Set.instCompleteBooleanAlgebraSet.{u2} α)))))) (BoundedOrder.toOrderBot.{u2} (Set.{u2} α) (Preorder.toLE.{u2} (Set.{u2} α) (PartialOrder.toPreorder.{u2} (Set.{u2} α) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} α) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} α) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} α) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} α) (Set.instCompleteBooleanAlgebraSet.{u2} α)))))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} α) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} α) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} α) (Set.instCompleteBooleanAlgebraSet.{u2} α))))))) (fun (i : I) => s i (ind i))))))
-Case conversion may be inaccurate. Consider using '#align pairwise.exists_mem_filter_basis_of_disjoint Pairwise.exists_mem_filter_basis_of_disjointₓ'. -/
 theorem Pairwise.exists_mem_filter_basis_of_disjoint {I : Type _} [Finite I] {l : I → Filter α}
     {ι : I → Sort _} {p : ∀ i, ι i → Prop} {s : ∀ i, ι i → Set α} (hd : Pairwise (Disjoint on l))
     (h : ∀ i, (l i).HasBasis (p i) (s i)) :
@@ -1013,12 +716,6 @@ theorem Pairwise.exists_mem_filter_basis_of_disjoint {I : Type _} [Finite I] {l
   exact ⟨ind, hp, hd.mono fun i j hij => hij.mono (ht _) (ht _)⟩
 #align pairwise.exists_mem_filter_basis_of_disjoint Pairwise.exists_mem_filter_basis_of_disjoint
 
-/- warning: set.pairwise_disjoint.exists_mem_filter_basis -> Set.PairwiseDisjoint.exists_mem_filter_basis is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {I : Type.{u2}} {l : I -> (Filter.{u1} α)} {ι : I -> Sort.{u3}} {p : forall (i : I), (ι i) -> Prop} {s : forall (i : I), (ι i) -> (Set.{u1} α)} {S : Set.{u2} I}, (Set.PairwiseDisjoint.{u1, u2} (Filter.{u1} α) I (Filter.partialOrder.{u1} α) (BoundedOrder.toOrderBot.{u1} (Filter.{u1} α) (Preorder.toHasLe.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))) (CompleteLattice.toBoundedOrder.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) S l) -> (Set.Finite.{u2} I S) -> (forall (i : I), Filter.HasBasis.{u1, u3} α (ι i) (l i) (p i) (s i)) -> (Exists.{imax (succ u2) u3} (forall (i : I), ι i) (fun (ind : forall (i : I), ι i) => And (forall (i : I), p i (ind i)) (Set.PairwiseDisjoint.{u1, u2} (Set.{u1} α) I (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} α) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} α) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α))) S (fun (i : I) => s i (ind i)))))
-but is expected to have type
-  forall {α : Type.{u2}} {I : Type.{u3}} {l : I -> (Filter.{u2} α)} {ι : I -> Sort.{u1}} {p : forall (i : I), (ι i) -> Prop} {s : forall (i : I), (ι i) -> (Set.{u2} α)} {S : Set.{u3} I}, (Set.PairwiseDisjoint.{u2, u3} (Filter.{u2} α) I (Filter.instPartialOrderFilter.{u2} α) (BoundedOrder.toOrderBot.{u2} (Filter.{u2} α) (Preorder.toLE.{u2} (Filter.{u2} α) (PartialOrder.toPreorder.{u2} (Filter.{u2} α) (Filter.instPartialOrderFilter.{u2} α))) (CompleteLattice.toBoundedOrder.{u2} (Filter.{u2} α) (Filter.instCompleteLatticeFilter.{u2} α))) S l) -> (Set.Finite.{u3} I S) -> (forall (i : I), Filter.HasBasis.{u2, u1} α (ι i) (l i) (p i) (s i)) -> (Exists.{imax (succ u3) u1} (forall (i : I), ι i) (fun (ind : forall (i : I), ι i) => And (forall (i : I), p i (ind i)) (Set.PairwiseDisjoint.{u2, u3} (Set.{u2} α) I (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} α) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} α) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} α) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} α) (Set.instCompleteBooleanAlgebraSet.{u2} α)))))) (BoundedOrder.toOrderBot.{u2} (Set.{u2} α) (Preorder.toLE.{u2} (Set.{u2} α) (PartialOrder.toPreorder.{u2} (Set.{u2} α) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} α) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} α) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} α) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} α) (Set.instCompleteBooleanAlgebraSet.{u2} α)))))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} α) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} α) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} α) (Set.instCompleteBooleanAlgebraSet.{u2} α)))))) S (fun (i : I) => s i (ind i)))))
-Case conversion may be inaccurate. Consider using '#align set.pairwise_disjoint.exists_mem_filter_basis Set.PairwiseDisjoint.exists_mem_filter_basisₓ'. -/
 theorem Set.PairwiseDisjoint.exists_mem_filter_basis {I : Type _} {l : I → Filter α}
     {ι : I → Sort _} {p : ∀ i, ι i → Prop} {s : ∀ i, ι i → Set α} {S : Set I}
     (hd : S.PairwiseDisjoint l) (hS : S.Finite) (h : ∀ i, (l i).HasBasis (p i) (s i)) :
@@ -1029,33 +726,15 @@ theorem Set.PairwiseDisjoint.exists_mem_filter_basis {I : Type _} {l : I → Fil
   exact ⟨ind, hp, hd.mono ht⟩
 #align set.pairwise_disjoint.exists_mem_filter_basis Set.PairwiseDisjoint.exists_mem_filter_basis
 
-/- warning: filter.inf_ne_bot_iff -> Filter.inf_neBot_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {l : Filter.{u1} α} {l' : Filter.{u1} α}, Iff (Filter.NeBot.{u1} α (Inf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) l l')) (forall {{s : Set.{u1} α}}, (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) s l) -> (forall {{s' : Set.{u1} α}}, (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) s' l') -> (Set.Nonempty.{u1} α (Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) s s'))))
-but is expected to have type
-  forall {α : Type.{u1}} {l : Filter.{u1} α} {l' : Filter.{u1} α}, Iff (Filter.NeBot.{u1} α (Inf.inf.{u1} (Filter.{u1} α) (Filter.instInfFilter.{u1} α) l l')) (forall {{s : Set.{u1} α}}, (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) s l) -> (forall {{s' : Set.{u1} α}}, (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) s' l') -> (Set.Nonempty.{u1} α (Inter.inter.{u1} (Set.{u1} α) (Set.instInterSet.{u1} α) s s'))))
-Case conversion may be inaccurate. Consider using '#align filter.inf_ne_bot_iff Filter.inf_neBot_iffₓ'. -/
 theorem inf_neBot_iff :
     NeBot (l ⊓ l') ↔ ∀ ⦃s : Set α⦄ (hs : s ∈ l) ⦃s'⦄ (hs' : s' ∈ l'), (s ∩ s').Nonempty :=
   l.basis_sets.inf_neBot_iff
 #align filter.inf_ne_bot_iff Filter.inf_neBot_iff
 
-/- warning: filter.inf_principal_ne_bot_iff -> Filter.inf_principal_neBot_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {l : Filter.{u1} α} {s : Set.{u1} α}, Iff (Filter.NeBot.{u1} α (Inf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) l (Filter.principal.{u1} α s))) (forall (U : Set.{u1} α), (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) U l) -> (Set.Nonempty.{u1} α (Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) U s)))
-but is expected to have type
-  forall {α : Type.{u1}} {l : Filter.{u1} α} {s : Set.{u1} α}, Iff (Filter.NeBot.{u1} α (Inf.inf.{u1} (Filter.{u1} α) (Filter.instInfFilter.{u1} α) l (Filter.principal.{u1} α s))) (forall (U : Set.{u1} α), (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) U l) -> (Set.Nonempty.{u1} α (Inter.inter.{u1} (Set.{u1} α) (Set.instInterSet.{u1} α) U s)))
-Case conversion may be inaccurate. Consider using '#align filter.inf_principal_ne_bot_iff Filter.inf_principal_neBot_iffₓ'. -/
 theorem inf_principal_neBot_iff {s : Set α} : NeBot (l ⊓ 𝓟 s) ↔ ∀ U ∈ l, (U ∩ s).Nonempty :=
   l.basis_sets.inf_principal_neBot_iff
 #align filter.inf_principal_ne_bot_iff Filter.inf_principal_neBot_iff
 
-/- warning: filter.mem_iff_inf_principal_compl -> Filter.mem_iff_inf_principal_compl is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {f : Filter.{u1} α} {s : Set.{u1} α}, Iff (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) s f) (Eq.{succ u1} (Filter.{u1} α) (Inf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) f (Filter.principal.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s))) (Bot.bot.{u1} (Filter.{u1} α) (CompleteLattice.toHasBot.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))))
-but is expected to have type
-  forall {α : Type.{u1}} {f : Filter.{u1} α} {s : Set.{u1} α}, Iff (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) s f) (Eq.{succ u1} (Filter.{u1} α) (Inf.inf.{u1} (Filter.{u1} α) (Filter.instInfFilter.{u1} α) f (Filter.principal.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s))) (Bot.bot.{u1} (Filter.{u1} α) (CompleteLattice.toBot.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α))))
-Case conversion may be inaccurate. Consider using '#align filter.mem_iff_inf_principal_compl Filter.mem_iff_inf_principal_complₓ'. -/
 theorem mem_iff_inf_principal_compl {f : Filter α} {s : Set α} : s ∈ f ↔ f ⊓ 𝓟 (sᶜ) = ⊥ :=
   by
   refine' not_iff_not.1 ((inf_principal_ne_bot_iff.trans _).symm.trans ne_bot_iff)
@@ -1064,75 +743,33 @@ theorem mem_iff_inf_principal_compl {f : Filter α} {s : Set α} : s ∈ f ↔ f
       inter_compl_nonempty_iff.2 fun hts => hs <| mem_of_superset ht hts⟩
 #align filter.mem_iff_inf_principal_compl Filter.mem_iff_inf_principal_compl
 
-/- warning: filter.not_mem_iff_inf_principal_compl -> Filter.not_mem_iff_inf_principal_compl is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {f : Filter.{u1} α} {s : Set.{u1} α}, Iff (Not (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) s f)) (Filter.NeBot.{u1} α (Inf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) f (Filter.principal.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s))))
-but is expected to have type
-  forall {α : Type.{u1}} {f : Filter.{u1} α} {s : Set.{u1} α}, Iff (Not (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) s f)) (Filter.NeBot.{u1} α (Inf.inf.{u1} (Filter.{u1} α) (Filter.instInfFilter.{u1} α) f (Filter.principal.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s))))
-Case conversion may be inaccurate. Consider using '#align filter.not_mem_iff_inf_principal_compl Filter.not_mem_iff_inf_principal_complₓ'. -/
 theorem not_mem_iff_inf_principal_compl {f : Filter α} {s : Set α} : s ∉ f ↔ NeBot (f ⊓ 𝓟 (sᶜ)) :=
   (not_congr mem_iff_inf_principal_compl).trans neBot_iff.symm
 #align filter.not_mem_iff_inf_principal_compl Filter.not_mem_iff_inf_principal_compl
 
-/- warning: filter.disjoint_principal_right -> Filter.disjoint_principal_right is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {f : Filter.{u1} α} {s : Set.{u1} α}, Iff (Disjoint.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α) (BoundedOrder.toOrderBot.{u1} (Filter.{u1} α) (Preorder.toHasLe.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))) (CompleteLattice.toBoundedOrder.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) f (Filter.principal.{u1} α s)) (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s) f)
-but is expected to have type
-  forall {α : Type.{u1}} {f : Filter.{u1} α} {s : Set.{u1} α}, Iff (Disjoint.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α) (BoundedOrder.toOrderBot.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α))) (CompleteLattice.toBoundedOrder.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α))) f (Filter.principal.{u1} α s)) (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s) f)
-Case conversion may be inaccurate. Consider using '#align filter.disjoint_principal_right Filter.disjoint_principal_rightₓ'. -/
 @[simp]
 theorem disjoint_principal_right {f : Filter α} {s : Set α} : Disjoint f (𝓟 s) ↔ sᶜ ∈ f := by
   rw [mem_iff_inf_principal_compl, compl_compl, disjoint_iff]
 #align filter.disjoint_principal_right Filter.disjoint_principal_right
 
-/- warning: filter.disjoint_principal_left -> Filter.disjoint_principal_left is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {f : Filter.{u1} α} {s : Set.{u1} α}, Iff (Disjoint.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α) (BoundedOrder.toOrderBot.{u1} (Filter.{u1} α) (Preorder.toHasLe.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))) (CompleteLattice.toBoundedOrder.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (Filter.principal.{u1} α s) f) (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s) f)
-but is expected to have type
-  forall {α : Type.{u1}} {f : Filter.{u1} α} {s : Set.{u1} α}, Iff (Disjoint.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α) (BoundedOrder.toOrderBot.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α))) (CompleteLattice.toBoundedOrder.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α))) (Filter.principal.{u1} α s) f) (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s) f)
-Case conversion may be inaccurate. Consider using '#align filter.disjoint_principal_left Filter.disjoint_principal_leftₓ'. -/
 @[simp]
 theorem disjoint_principal_left {f : Filter α} {s : Set α} : Disjoint (𝓟 s) f ↔ sᶜ ∈ f := by
   rw [disjoint_comm, disjoint_principal_right]
 #align filter.disjoint_principal_left Filter.disjoint_principal_left
 
-/- warning: filter.disjoint_principal_principal -> Filter.disjoint_principal_principal is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α}, Iff (Disjoint.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α) (BoundedOrder.toOrderBot.{u1} (Filter.{u1} α) (Preorder.toHasLe.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))) (CompleteLattice.toBoundedOrder.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (Filter.principal.{u1} α s) (Filter.principal.{u1} α t)) (Disjoint.{u1} (Set.{u1} α) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} α) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} α) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α))) s t)
-but is expected to have type
-  forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α}, Iff (Disjoint.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α) (BoundedOrder.toOrderBot.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α))) (CompleteLattice.toBoundedOrder.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α))) (Filter.principal.{u1} α s) (Filter.principal.{u1} α t)) (Disjoint.{u1} (Set.{u1} α) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} α) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α)))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} α) (Preorder.toLE.{u1} (Set.{u1} α) (PartialOrder.toPreorder.{u1} (Set.{u1} α) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} α) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α)))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α)))))) s t)
-Case conversion may be inaccurate. Consider using '#align filter.disjoint_principal_principal Filter.disjoint_principal_principalₓ'. -/
 @[simp]
 theorem disjoint_principal_principal {s t : Set α} : Disjoint (𝓟 s) (𝓟 t) ↔ Disjoint s t := by
   simp [← subset_compl_iff_disjoint_left]
 #align filter.disjoint_principal_principal Filter.disjoint_principal_principal
 
-/- warning: disjoint.filter_principal -> Disjoint.filter_principal is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α}, (Disjoint.{u1} (Set.{u1} α) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} α) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} α) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α))) s t) -> (Disjoint.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α) (BoundedOrder.toOrderBot.{u1} (Filter.{u1} α) (Preorder.toHasLe.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))) (CompleteLattice.toBoundedOrder.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (Filter.principal.{u1} α s) (Filter.principal.{u1} α t))
-but is expected to have type
-  forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α}, (Disjoint.{u1} (Set.{u1} α) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} α) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α)))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} α) (Preorder.toLE.{u1} (Set.{u1} α) (PartialOrder.toPreorder.{u1} (Set.{u1} α) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} α) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α)))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α)))))) s t) -> (Disjoint.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α) (BoundedOrder.toOrderBot.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α))) (CompleteLattice.toBoundedOrder.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α))) (Filter.principal.{u1} α s) (Filter.principal.{u1} α t))
-Case conversion may be inaccurate. Consider using '#align disjoint.filter_principal Disjoint.filter_principalₓ'. -/
 alias disjoint_principal_principal ↔ _ _root_.disjoint.filter_principal
 #align disjoint.filter_principal Disjoint.filter_principal
 
-/- warning: filter.disjoint_pure_pure -> Filter.disjoint_pure_pure is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {x : α} {y : α}, Iff (Disjoint.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α) (BoundedOrder.toOrderBot.{u1} (Filter.{u1} α) (Preorder.toHasLe.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))) (CompleteLattice.toBoundedOrder.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (Pure.pure.{u1, u1} Filter.{u1} Filter.hasPure.{u1} α x) (Pure.pure.{u1, u1} Filter.{u1} Filter.hasPure.{u1} α y)) (Ne.{succ u1} α x y)
-but is expected to have type
-  forall {α : Type.{u1}} {x : α} {y : α}, Iff (Disjoint.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α) (BoundedOrder.toOrderBot.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α))) (CompleteLattice.toBoundedOrder.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α))) (Pure.pure.{u1, u1} Filter.{u1} Filter.instPureFilter.{u1} α x) (Pure.pure.{u1, u1} Filter.{u1} Filter.instPureFilter.{u1} α y)) (Ne.{succ u1} α x y)
-Case conversion may be inaccurate. Consider using '#align filter.disjoint_pure_pure Filter.disjoint_pure_pureₓ'. -/
 @[simp]
 theorem disjoint_pure_pure {x y : α} : Disjoint (pure x : Filter α) (pure y) ↔ x ≠ y := by
   simp only [← principal_singleton, disjoint_principal_principal, disjoint_singleton]
 #align filter.disjoint_pure_pure Filter.disjoint_pure_pure
 
-/- warning: filter.compl_diagonal_mem_prod -> Filter.compl_diagonal_mem_prod is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {l₁ : Filter.{u1} α} {l₂ : Filter.{u1} α}, Iff (Membership.Mem.{u1, u1} (Set.{u1} (Prod.{u1, u1} α α)) (Filter.{u1} (Prod.{u1, u1} α α)) (Filter.hasMem.{u1} (Prod.{u1, u1} α α)) (HasCompl.compl.{u1} (Set.{u1} (Prod.{u1, u1} α α)) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} (Prod.{u1, u1} α α)) (Set.booleanAlgebra.{u1} (Prod.{u1, u1} α α))) (Set.diagonal.{u1} α)) (Filter.prod.{u1, u1} α α l₁ l₂)) (Disjoint.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α) (BoundedOrder.toOrderBot.{u1} (Filter.{u1} α) (Preorder.toHasLe.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))) (CompleteLattice.toBoundedOrder.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) l₁ l₂)
-but is expected to have type
-  forall {α : Type.{u1}} {l₁ : Filter.{u1} α} {l₂ : Filter.{u1} α}, Iff (Membership.mem.{u1, u1} (Set.{u1} (Prod.{u1, u1} α α)) (Filter.{u1} (Prod.{u1, u1} α α)) (instMembershipSetFilter.{u1} (Prod.{u1, u1} α α)) (HasCompl.compl.{u1} (Set.{u1} (Prod.{u1, u1} α α)) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} (Prod.{u1, u1} α α)) (Set.instBooleanAlgebraSet.{u1} (Prod.{u1, u1} α α))) (Set.diagonal.{u1} α)) (Filter.prod.{u1, u1} α α l₁ l₂)) (Disjoint.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α) (BoundedOrder.toOrderBot.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α))) (CompleteLattice.toBoundedOrder.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α))) l₁ l₂)
-Case conversion may be inaccurate. Consider using '#align filter.compl_diagonal_mem_prod Filter.compl_diagonal_mem_prodₓ'. -/
 @[simp]
 theorem compl_diagonal_mem_prod {l₁ l₂ : Filter α} : diagonal αᶜ ∈ l₁ ×ᶠ l₂ ↔ Disjoint l₁ l₂ := by
   simp only [mem_prod_iff, Filter.disjoint_iff, prod_subset_compl_diagonal_iff_disjoint]
@@ -1149,64 +786,28 @@ theorem HasBasis.disjoint_iff_right (h : l.HasBasis p s) :
   disjoint_comm.trans h.disjoint_iff_leftₓ
 #align filter.has_basis.disjoint_iff_right Filter.HasBasis.disjoint_iff_rightₓ
 
-/- warning: filter.le_iff_forall_inf_principal_compl -> Filter.le_iff_forall_inf_principal_compl is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {f : Filter.{u1} α} {g : Filter.{u1} α}, Iff (LE.le.{u1} (Filter.{u1} α) (Preorder.toHasLe.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))) f g) (forall (V : Set.{u1} α), (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) V g) -> (Eq.{succ u1} (Filter.{u1} α) (Inf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) f (Filter.principal.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) V))) (Bot.bot.{u1} (Filter.{u1} α) (CompleteLattice.toHasBot.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α)))))
-but is expected to have type
-  forall {α : Type.{u1}} {f : Filter.{u1} α} {g : Filter.{u1} α}, Iff (LE.le.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α))) f g) (forall (V : Set.{u1} α), (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) V g) -> (Eq.{succ u1} (Filter.{u1} α) (Inf.inf.{u1} (Filter.{u1} α) (Filter.instInfFilter.{u1} α) f (Filter.principal.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) V))) (Bot.bot.{u1} (Filter.{u1} α) (CompleteLattice.toBot.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)))))
-Case conversion may be inaccurate. Consider using '#align filter.le_iff_forall_inf_principal_compl Filter.le_iff_forall_inf_principal_complₓ'. -/
 theorem le_iff_forall_inf_principal_compl {f g : Filter α} : f ≤ g ↔ ∀ V ∈ g, f ⊓ 𝓟 (Vᶜ) = ⊥ :=
   forall₂_congr fun _ _ => mem_iff_inf_principal_compl
 #align filter.le_iff_forall_inf_principal_compl Filter.le_iff_forall_inf_principal_compl
 
-/- warning: filter.inf_ne_bot_iff_frequently_left -> Filter.inf_neBot_iff_frequently_left is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {f : Filter.{u1} α} {g : Filter.{u1} α}, Iff (Filter.NeBot.{u1} α (Inf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) f g)) (forall {p : α -> Prop}, (Filter.Eventually.{u1} α (fun (x : α) => p x) f) -> (Filter.Frequently.{u1} α (fun (x : α) => p x) g))
-but is expected to have type
-  forall {α : Type.{u1}} {f : Filter.{u1} α} {g : Filter.{u1} α}, Iff (Filter.NeBot.{u1} α (Inf.inf.{u1} (Filter.{u1} α) (Filter.instInfFilter.{u1} α) f g)) (forall {p : α -> Prop}, (Filter.Eventually.{u1} α (fun (x : α) => p x) f) -> (Filter.Frequently.{u1} α (fun (x : α) => p x) g))
-Case conversion may be inaccurate. Consider using '#align filter.inf_ne_bot_iff_frequently_left Filter.inf_neBot_iff_frequently_leftₓ'. -/
 theorem inf_neBot_iff_frequently_left {f g : Filter α} :
     NeBot (f ⊓ g) ↔ ∀ {p : α → Prop}, (∀ᶠ x in f, p x) → ∃ᶠ x in g, p x := by
   simpa only [inf_ne_bot_iff, frequently_iff, exists_prop, and_comm']
 #align filter.inf_ne_bot_iff_frequently_left Filter.inf_neBot_iff_frequently_left
 
-/- warning: filter.inf_ne_bot_iff_frequently_right -> Filter.inf_neBot_iff_frequently_right is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {f : Filter.{u1} α} {g : Filter.{u1} α}, Iff (Filter.NeBot.{u1} α (Inf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) f g)) (forall {p : α -> Prop}, (Filter.Eventually.{u1} α (fun (x : α) => p x) g) -> (Filter.Frequently.{u1} α (fun (x : α) => p x) f))
-but is expected to have type
-  forall {α : Type.{u1}} {f : Filter.{u1} α} {g : Filter.{u1} α}, Iff (Filter.NeBot.{u1} α (Inf.inf.{u1} (Filter.{u1} α) (Filter.instInfFilter.{u1} α) f g)) (forall {p : α -> Prop}, (Filter.Eventually.{u1} α (fun (x : α) => p x) g) -> (Filter.Frequently.{u1} α (fun (x : α) => p x) f))
-Case conversion may be inaccurate. Consider using '#align filter.inf_ne_bot_iff_frequently_right Filter.inf_neBot_iff_frequently_rightₓ'. -/
 theorem inf_neBot_iff_frequently_right {f g : Filter α} :
     NeBot (f ⊓ g) ↔ ∀ {p : α → Prop}, (∀ᶠ x in g, p x) → ∃ᶠ x in f, p x := by rw [inf_comm];
   exact inf_ne_bot_iff_frequently_left
 #align filter.inf_ne_bot_iff_frequently_right Filter.inf_neBot_iff_frequently_right
 
-/- warning: filter.has_basis.eq_binfi -> Filter.HasBasis.eq_biInf is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (Eq.{succ u1} (Filter.{u1} α) l (iInf.{u1, u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => iInf.{u1, 0} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (p i) (fun (_x : p i) => Filter.principal.{u1} α (s i)))))
-but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι l p s) -> (Eq.{succ u2} (Filter.{u2} α) l (iInf.{u2, u1} (Filter.{u2} α) (CompleteLattice.toInfSet.{u2} (Filter.{u2} α) (Filter.instCompleteLatticeFilter.{u2} α)) ι (fun (i : ι) => iInf.{u2, 0} (Filter.{u2} α) (CompleteLattice.toInfSet.{u2} (Filter.{u2} α) (Filter.instCompleteLatticeFilter.{u2} α)) (p i) (fun (_x : p i) => Filter.principal.{u2} α (s i)))))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.eq_binfi Filter.HasBasis.eq_biInfₓ'. -/
 theorem HasBasis.eq_biInf (h : l.HasBasis p s) : l = ⨅ (i) (_ : p i), 𝓟 (s i) :=
   eq_biInf_of_mem_iff_exists_mem fun t => by simp only [h.mem_iff, mem_principal]
 #align filter.has_basis.eq_binfi Filter.HasBasis.eq_biInf
 
-/- warning: filter.has_basis.eq_infi -> Filter.HasBasis.eq_iInf is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {s : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l (fun (_x : ι) => True) s) -> (Eq.{succ u1} (Filter.{u1} α) l (iInf.{u1, u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => Filter.principal.{u1} α (s i))))
-but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {s : ι -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι l (fun (_x : ι) => True) s) -> (Eq.{succ u2} (Filter.{u2} α) l (iInf.{u2, u1} (Filter.{u2} α) (CompleteLattice.toInfSet.{u2} (Filter.{u2} α) (Filter.instCompleteLatticeFilter.{u2} α)) ι (fun (i : ι) => Filter.principal.{u2} α (s i))))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.eq_infi Filter.HasBasis.eq_iInfₓ'. -/
 theorem HasBasis.eq_iInf (h : l.HasBasis (fun _ => True) s) : l = ⨅ i, 𝓟 (s i) := by
   simpa only [iInf_true] using h.eq_binfi
 #align filter.has_basis.eq_infi Filter.HasBasis.eq_iInf
 
-/- warning: filter.has_basis_infi_principal -> Filter.hasBasis_iInf_principal is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {s : ι -> (Set.{u1} α)}, (Directed.{u1, u2} (Set.{u1} α) ι (GE.ge.{u1} (Set.{u1} α) (Set.hasLe.{u1} α)) s) -> (forall [_inst_1 : Nonempty.{u2} ι], Filter.HasBasis.{u1, u2} α ι (iInf.{u1, u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => Filter.principal.{u1} α (s i))) (fun (_x : ι) => True) s)
-but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {s : ι -> (Set.{u2} α)}, (Directed.{u2, u1} (Set.{u2} α) ι (fun (x._@.Mathlib.Order.Filter.Bases._hyg.9263 : Set.{u2} α) (x._@.Mathlib.Order.Filter.Bases._hyg.9265 : Set.{u2} α) => GE.ge.{u2} (Set.{u2} α) (Set.instLESet.{u2} α) x._@.Mathlib.Order.Filter.Bases._hyg.9263 x._@.Mathlib.Order.Filter.Bases._hyg.9265) s) -> (forall [_inst_1 : Nonempty.{u1} ι], Filter.HasBasis.{u2, u1} α ι (iInf.{u2, u1} (Filter.{u2} α) (CompleteLattice.toInfSet.{u2} (Filter.{u2} α) (Filter.instCompleteLatticeFilter.{u2} α)) ι (fun (i : ι) => Filter.principal.{u2} α (s i))) (fun (_x : ι) => True) s)
-Case conversion may be inaccurate. Consider using '#align filter.has_basis_infi_principal Filter.hasBasis_iInf_principalₓ'. -/
 theorem hasBasis_iInf_principal {s : ι → Set α} (h : Directed (· ≥ ·) s) [Nonempty ι] :
     (⨅ i, 𝓟 (s i)).HasBasis (fun _ => True) s :=
   ⟨by
@@ -1216,12 +817,6 @@ theorem hasBasis_iInf_principal {s : ι → Set α} (h : Directed (· ≥ ·) s)
     exact fun _ _ => principal_mono.2⟩
 #align filter.has_basis_infi_principal Filter.hasBasis_iInf_principal
 
-/- warning: filter.has_basis_infi_principal_finite -> Filter.hasBasis_iInf_principal_finite is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Type.{u2}} (s : ι -> (Set.{u1} α)), Filter.HasBasis.{u1, succ u2} α (Set.{u2} ι) (iInf.{u1, succ u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => Filter.principal.{u1} α (s i))) (fun (t : Set.{u2} ι) => Set.Finite.{u2} ι t) (fun (t : Set.{u2} ι) => Set.iInter.{u1, succ u2} α ι (fun (i : ι) => Set.iInter.{u1, 0} α (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i t) (fun (H : Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i t) => s i)))
-but is expected to have type
-  forall {α : Type.{u1}} {ι : Type.{u2}} (s : ι -> (Set.{u1} α)), Filter.HasBasis.{u1, succ u2} α (Set.{u2} ι) (iInf.{u1, succ u2} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) ι (fun (i : ι) => Filter.principal.{u1} α (s i))) (fun (t : Set.{u2} ι) => Set.Finite.{u2} ι t) (fun (t : Set.{u2} ι) => Set.iInter.{u1, succ u2} α ι (fun (i : ι) => Set.iInter.{u1, 0} α (Membership.mem.{u2, u2} ι (Set.{u2} ι) (Set.instMembershipSet.{u2} ι) i t) (fun (H : Membership.mem.{u2, u2} ι (Set.{u2} ι) (Set.instMembershipSet.{u2} ι) i t) => s i)))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis_infi_principal_finite Filter.hasBasis_iInf_principal_finiteₓ'. -/
 /-- If `s : ι → set α` is an indexed family of sets, then finite intersections of `s i` form a basis
 of `⨅ i, 𝓟 (s i)`.  -/
 theorem hasBasis_iInf_principal_finite {ι : Type _} (s : ι → Set α) :
@@ -1232,12 +827,6 @@ theorem hasBasis_iInf_principal_finite {ι : Type _} (s : ι → Set α) :
     Finset.set_biInter_coe]
 #align filter.has_basis_infi_principal_finite Filter.hasBasis_iInf_principal_finite
 
-/- warning: filter.has_basis_binfi_principal -> Filter.hasBasis_biInf_principal is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {s : β -> (Set.{u1} α)} {S : Set.{u2} β}, (DirectedOn.{u2} β (Order.Preimage.{succ u2, succ u1} β (Set.{u1} α) s (GE.ge.{u1} (Set.{u1} α) (Set.hasLe.{u1} α))) S) -> (Set.Nonempty.{u2} β S) -> (Filter.HasBasis.{u1, succ u2} α β (iInf.{u1, succ u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) β (fun (i : β) => iInf.{u1, 0} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) i S) (fun (H : Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) i S) => Filter.principal.{u1} α (s i)))) (fun (i : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) i S) s)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {s : β -> (Set.{u2} α)} {S : Set.{u1} β}, (DirectedOn.{u1} β (Order.Preimage.{succ u1, succ u2} β (Set.{u2} α) s (fun (x._@.Mathlib.Order.Filter.Bases._hyg.9496 : Set.{u2} α) (x._@.Mathlib.Order.Filter.Bases._hyg.9498 : Set.{u2} α) => GE.ge.{u2} (Set.{u2} α) (Set.instLESet.{u2} α) x._@.Mathlib.Order.Filter.Bases._hyg.9496 x._@.Mathlib.Order.Filter.Bases._hyg.9498)) S) -> (Set.Nonempty.{u1} β S) -> (Filter.HasBasis.{u2, succ u1} α β (iInf.{u2, succ u1} (Filter.{u2} α) (CompleteLattice.toInfSet.{u2} (Filter.{u2} α) (Filter.instCompleteLatticeFilter.{u2} α)) β (fun (i : β) => iInf.{u2, 0} (Filter.{u2} α) (CompleteLattice.toInfSet.{u2} (Filter.{u2} α) (Filter.instCompleteLatticeFilter.{u2} α)) (Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) i S) (fun (H : Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) i S) => Filter.principal.{u2} α (s i)))) (fun (i : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) i S) s)
-Case conversion may be inaccurate. Consider using '#align filter.has_basis_binfi_principal Filter.hasBasis_biInf_principalₓ'. -/
 theorem hasBasis_biInf_principal {s : β → Set α} {S : Set β} (h : DirectedOn (s ⁻¹'o (· ≥ ·)) S)
     (ne : S.Nonempty) : (⨅ i ∈ S, 𝓟 (s i)).HasBasis (fun i => i ∈ S) s :=
   ⟨by
@@ -1247,34 +836,16 @@ theorem hasBasis_biInf_principal {s : β → Set α} {S : Set β} (h : DirectedO
     exact fun _ _ => principal_mono.2⟩
 #align filter.has_basis_binfi_principal Filter.hasBasis_biInf_principal
 
-/- warning: filter.has_basis_binfi_principal' -> Filter.hasBasis_biInf_principal' is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Type.{u2}} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (forall (i : ι), (p i) -> (forall (j : ι), (p j) -> (Exists.{succ u2} ι (fun (k : ι) => Exists.{0} (p k) (fun (h : p k) => And (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (s k) (s i)) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (s k) (s j))))))) -> (Exists.{succ u2} ι (fun (i : ι) => p i)) -> (Filter.HasBasis.{u1, succ u2} α ι (iInf.{u1, succ u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => iInf.{u1, 0} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (p i) (fun (h : p i) => Filter.principal.{u1} α (s i)))) p s)
-but is expected to have type
-  forall {α : Type.{u1}} {ι : Type.{u2}} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (forall (i : ι), (p i) -> (forall (j : ι), (p j) -> (Exists.{succ u2} ι (fun (k : ι) => And (p k) (And (HasSubset.Subset.{u1} (Set.{u1} α) (Set.instHasSubsetSet.{u1} α) (s k) (s i)) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.instHasSubsetSet.{u1} α) (s k) (s j))))))) -> (Exists.{succ u2} ι (fun (i : ι) => p i)) -> (Filter.HasBasis.{u1, succ u2} α ι (iInf.{u1, succ u2} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) ι (fun (i : ι) => iInf.{u1, 0} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) (p i) (fun (h : p i) => Filter.principal.{u1} α (s i)))) p s)
-Case conversion may be inaccurate. Consider using '#align filter.has_basis_binfi_principal' Filter.hasBasis_biInf_principal'ₓ'. -/
 theorem hasBasis_biInf_principal' {ι : Type _} {p : ι → Prop} {s : ι → Set α}
     (h : ∀ i, p i → ∀ j, p j → ∃ (k : _)(h : p k), s k ⊆ s i ∧ s k ⊆ s j) (ne : ∃ i, p i) :
     (⨅ (i) (h : p i), 𝓟 (s i)).HasBasis p s :=
   Filter.hasBasis_biInf_principal h Ne
 #align filter.has_basis_binfi_principal' Filter.hasBasis_biInf_principal'
 
-/- warning: filter.has_basis.map -> Filter.HasBasis.map is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)} (f : α -> β), (Filter.HasBasis.{u1, u3} α ι l p s) -> (Filter.HasBasis.{u2, u3} β ι (Filter.map.{u1, u2} α β f l) p (fun (i : ι) => Set.image.{u1, u2} α β f (s i)))
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u3} α} {p : ι -> Prop} {s : ι -> (Set.{u3} α)} (f : α -> β), (Filter.HasBasis.{u3, u2} α ι l p s) -> (Filter.HasBasis.{u1, u2} β ι (Filter.map.{u3, u1} α β f l) p (fun (i : ι) => Set.image.{u3, u1} α β f (s i)))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.map Filter.HasBasis.mapₓ'. -/
 theorem HasBasis.map (f : α → β) (hl : l.HasBasis p s) : (l.map f).HasBasis p fun i => f '' s i :=
   ⟨fun t => by simp only [mem_map, image_subset_iff, hl.mem_iff, preimage]⟩
 #align filter.has_basis.map Filter.HasBasis.map
 
-/- warning: filter.has_basis.comap -> Filter.HasBasis.comap is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)} (f : β -> α), (Filter.HasBasis.{u1, u3} α ι l p s) -> (Filter.HasBasis.{u2, u3} β ι (Filter.comap.{u2, u1} β α f l) p (fun (i : ι) => Set.preimage.{u2, u1} β α f (s i)))
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u3} α} {p : ι -> Prop} {s : ι -> (Set.{u3} α)} (f : β -> α), (Filter.HasBasis.{u3, u2} α ι l p s) -> (Filter.HasBasis.{u1, u2} β ι (Filter.comap.{u1, u3} β α f l) p (fun (i : ι) => Set.preimage.{u1, u3} β α f (s i)))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.comap Filter.HasBasis.comapₓ'. -/
 theorem HasBasis.comap (f : β → α) (hl : l.HasBasis p s) :
     (l.comap f).HasBasis p fun i => f ⁻¹' s i :=
   ⟨by
@@ -1294,12 +865,6 @@ theorem comap_hasBasis (f : α → β) (l : Filter β) :
 #align filter.comap_has_basis Filter.comap_hasBasis
 -/
 
-/- warning: filter.has_basis.forall_mem_mem -> Filter.HasBasis.forall_mem_mem is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (forall {x : α}, Iff (forall (t : Set.{u1} α), (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) t l) -> (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x t)) (forall (i : ι), (p i) -> (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (s i))))
-but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι l p s) -> (forall {x : α}, Iff (forall (t : Set.{u2} α), (Membership.mem.{u2, u2} (Set.{u2} α) (Filter.{u2} α) (instMembershipSetFilter.{u2} α) t l) -> (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x t)) (forall (i : ι), (p i) -> (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x (s i))))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.forall_mem_mem Filter.HasBasis.forall_mem_memₓ'. -/
 theorem HasBasis.forall_mem_mem (h : HasBasis l p s) {x : α} :
     (∀ t ∈ l, x ∈ t) ↔ ∀ i, p i → x ∈ s i :=
   by
@@ -1307,12 +872,6 @@ theorem HasBasis.forall_mem_mem (h : HasBasis l p s) {x : α} :
   exact ⟨fun h i hi => h (s i) i hi subset.rfl, fun h t i hi ht => ht (h i hi)⟩
 #align filter.has_basis.forall_mem_mem Filter.HasBasis.forall_mem_mem
 
-/- warning: filter.has_basis.binfi_mem -> Filter.HasBasis.biInf_mem is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)} [_inst_1 : CompleteLattice.{u2} β] {f : (Set.{u1} α) -> β}, (Filter.HasBasis.{u1, u3} α ι l p s) -> (Monotone.{u1, u2} (Set.{u1} α) β (PartialOrder.toPreorder.{u1} (Set.{u1} α) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} α) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α))))))) (PartialOrder.toPreorder.{u2} β (CompleteSemilatticeInf.toPartialOrder.{u2} β (CompleteLattice.toCompleteSemilatticeInf.{u2} β _inst_1))) f) -> (Eq.{succ u2} β (iInf.{u2, succ u1} β (ConditionallyCompleteLattice.toHasInf.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_1)) (Set.{u1} α) (fun (t : Set.{u1} α) => iInf.{u2, 0} β (ConditionallyCompleteLattice.toHasInf.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_1)) (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) t l) (fun (H : Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) t l) => f t))) (iInf.{u2, u3} β (ConditionallyCompleteLattice.toHasInf.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_1)) ι (fun (i : ι) => iInf.{u2, 0} β (ConditionallyCompleteLattice.toHasInf.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_1)) (p i) (fun (hi : p i) => f (s i)))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}} {ι : Sort.{u1}} {l : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)} [_inst_1 : CompleteLattice.{u3} β] {f : (Set.{u2} α) -> β}, (Filter.HasBasis.{u2, u1} α ι l p s) -> (Monotone.{u2, u3} (Set.{u2} α) β (PartialOrder.toPreorder.{u2} (Set.{u2} α) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} α) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} α) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} α) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} α) (Set.instCompleteBooleanAlgebraSet.{u2} α))))))) (PartialOrder.toPreorder.{u3} β (CompleteSemilatticeInf.toPartialOrder.{u3} β (CompleteLattice.toCompleteSemilatticeInf.{u3} β _inst_1))) f) -> (Eq.{succ u3} β (iInf.{u3, succ u2} β (CompleteLattice.toInfSet.{u3} β _inst_1) (Set.{u2} α) (fun (t : Set.{u2} α) => iInf.{u3, 0} β (CompleteLattice.toInfSet.{u3} β _inst_1) (Membership.mem.{u2, u2} (Set.{u2} α) (Filter.{u2} α) (instMembershipSetFilter.{u2} α) t l) (fun (H : Membership.mem.{u2, u2} (Set.{u2} α) (Filter.{u2} α) (instMembershipSetFilter.{u2} α) t l) => f t))) (iInf.{u3, u1} β (CompleteLattice.toInfSet.{u3} β _inst_1) ι (fun (i : ι) => iInf.{u3, 0} β (CompleteLattice.toInfSet.{u3} β _inst_1) (p i) (fun (hi : p i) => f (s i)))))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.binfi_mem Filter.HasBasis.biInf_memₓ'. -/
 protected theorem HasBasis.biInf_mem [CompleteLattice β] {f : Set α → β} (h : HasBasis l p s)
     (hf : Monotone f) : (⨅ t ∈ l, f t) = ⨅ (i) (hi : p i), f (s i) :=
   le_antisymm (le_iInf₂ fun i hi => iInf₂_le (s i) (h.mem_of_mem hi)) <|
@@ -1321,23 +880,11 @@ protected theorem HasBasis.biInf_mem [CompleteLattice β] {f : Set α → β} (h
       iInf₂_le_of_le i hpi (hf hi)
 #align filter.has_basis.binfi_mem Filter.HasBasis.biInf_mem
 
-/- warning: filter.has_basis.bInter_mem -> Filter.HasBasis.biInter_mem is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)} {f : (Set.{u1} α) -> (Set.{u2} β)}, (Filter.HasBasis.{u1, u3} α ι l p s) -> (Monotone.{u1, u2} (Set.{u1} α) (Set.{u2} β) (PartialOrder.toPreorder.{u1} (Set.{u1} α) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} α) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) f) -> (Eq.{succ u2} (Set.{u2} β) (Set.iInter.{u2, succ u1} β (Set.{u1} α) (fun (t : Set.{u1} α) => Set.iInter.{u2, 0} β (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) t l) (fun (H : Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) t l) => f t))) (Set.iInter.{u2, u3} β ι (fun (i : ι) => Set.iInter.{u2, 0} β (p i) (fun (hi : p i) => f (s i)))))
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u3} α} {p : ι -> Prop} {s : ι -> (Set.{u3} α)} {f : (Set.{u3} α) -> (Set.{u2} β)}, (Filter.HasBasis.{u3, u1} α ι l p s) -> (Monotone.{u3, u2} (Set.{u3} α) (Set.{u2} β) (PartialOrder.toPreorder.{u3} (Set.{u3} α) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} α) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} α) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} α) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} α) (Set.instCompleteBooleanAlgebraSet.{u3} α))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) f) -> (Eq.{succ u2} (Set.{u2} β) (Set.iInter.{u2, succ u3} β (Set.{u3} α) (fun (t : Set.{u3} α) => Set.iInter.{u2, 0} β (Membership.mem.{u3, u3} (Set.{u3} α) (Filter.{u3} α) (instMembershipSetFilter.{u3} α) t l) (fun (H : Membership.mem.{u3, u3} (Set.{u3} α) (Filter.{u3} α) (instMembershipSetFilter.{u3} α) t l) => f t))) (Set.iInter.{u2, u1} β ι (fun (i : ι) => Set.iInter.{u2, 0} β (p i) (fun (hi : p i) => f (s i)))))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.bInter_mem Filter.HasBasis.biInter_memₓ'. -/
 protected theorem HasBasis.biInter_mem {f : Set α → Set β} (h : HasBasis l p s) (hf : Monotone f) :
     (⋂ t ∈ l, f t) = ⋂ (i) (hi : p i), f (s i) :=
   h.biInf_mem hf
 #align filter.has_basis.bInter_mem Filter.HasBasis.biInter_mem
 
-/- warning: filter.has_basis.sInter_sets -> Filter.HasBasis.sInter_sets is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (Eq.{succ u1} (Set.{u1} α) (Set.sInter.{u1} α (Filter.sets.{u1} α l)) (Set.iInter.{u1, u2} α ι (fun (i : ι) => Set.iInter.{u1, 0} α (p i) (fun (hi : p i) => s i))))
-but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι l p s) -> (Eq.{succ u2} (Set.{u2} α) (Set.sInter.{u2} α (Filter.sets.{u2} α l)) (Set.iInter.{u2, u1} α ι (fun (i : ι) => Set.iInter.{u2, 0} α (p i) (fun (hi : p i) => s i))))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.sInter_sets Filter.HasBasis.sInter_setsₓ'. -/
 theorem HasBasis.sInter_sets (h : HasBasis l p s) : ⋂₀ l.sets = ⋂ (i) (hi : p i), s i := by
   rw [sInter_eq_bInter]; exact h.bInter_mem monotone_id
 #align filter.has_basis.sInter_sets Filter.HasBasis.sInter_sets
@@ -1362,12 +909,6 @@ structure HasAntitoneBasis (l : Filter α) (s : ι'' → Set α) extends HasBasi
 #align filter.has_antitone_basis Filter.HasAntitoneBasis
 -/
 
-/- warning: filter.has_antitone_basis.map -> Filter.HasAntitoneBasis.map is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι'' : Type.{u3}} [_inst_1 : Preorder.{u3} ι''] {l : Filter.{u1} α} {s : ι'' -> (Set.{u1} α)} {m : α -> β}, (Filter.HasAntitoneBasis.{u1, u3} α ι'' _inst_1 l s) -> (Filter.HasAntitoneBasis.{u2, u3} β ι'' _inst_1 (Filter.map.{u1, u2} α β m l) (fun (n : ι'') => Set.image.{u1, u2} α β m (s n)))
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u1}} {ι'' : Type.{u2}} [_inst_1 : Preorder.{u2} ι''] {l : Filter.{u3} α} {s : ι'' -> (Set.{u3} α)} {m : α -> β}, (Filter.HasAntitoneBasis.{u3, u2} α ι'' _inst_1 l s) -> (Filter.HasAntitoneBasis.{u1, u2} β ι'' _inst_1 (Filter.map.{u3, u1} α β m l) (fun (n : ι'') => Set.image.{u3, u1} α β m (s n)))
-Case conversion may be inaccurate. Consider using '#align filter.has_antitone_basis.map Filter.HasAntitoneBasis.mapₓ'. -/
 theorem HasAntitoneBasis.map {l : Filter α} {s : ι'' → Set α} {m : α → β}
     (hf : HasAntitoneBasis l s) : HasAntitoneBasis (map m l) fun n => m '' s n :=
   ⟨HasBasis.map _ hf.to_hasBasis, fun i j hij => image_subset _ <| hf.2 hij⟩
@@ -1385,12 +926,6 @@ theorem HasBasis.tendsto_left_iff (hla : la.HasBasis pa sa) :
   simp only [tendsto, (hla.map f).le_iffₓ, image_subset_iff]; rfl
 #align filter.has_basis.tendsto_left_iff Filter.HasBasis.tendsto_left_iffₓ
 
-/- warning: filter.has_basis.tendsto_right_iff -> Filter.HasBasis.tendsto_right_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι' : Sort.{u3}} {la : Filter.{u1} α} {lb : Filter.{u2} β} {pb : ι' -> Prop} {sb : ι' -> (Set.{u2} β)} {f : α -> β}, (Filter.HasBasis.{u2, u3} β ι' lb pb sb) -> (Iff (Filter.Tendsto.{u1, u2} α β f la lb) (forall (i : ι'), (pb i) -> (Filter.Eventually.{u1} α (fun (x : α) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) (f x) (sb i)) la)))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u3}} {ι' : Sort.{u2}} {la : Filter.{u1} α} {lb : Filter.{u3} β} {pb : ι' -> Prop} {sb : ι' -> (Set.{u3} β)} {f : α -> β}, (Filter.HasBasis.{u3, u2} β ι' lb pb sb) -> (Iff (Filter.Tendsto.{u1, u3} α β f la lb) (forall (i : ι'), (pb i) -> (Filter.Eventually.{u1} α (fun (x : α) => Membership.mem.{u3, u3} β (Set.{u3} β) (Set.instMembershipSet.{u3} β) (f x) (sb i)) la)))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.tendsto_right_iff Filter.HasBasis.tendsto_right_iffₓ'. -/
 theorem HasBasis.tendsto_right_iff (hlb : lb.HasBasis pb sb) :
     Tendsto f la lb ↔ ∀ (i) (hi : pb i), ∀ᶠ x in la, f x ∈ sb i := by
   simpa only [tendsto, hlb.ge_iff, mem_map, Filter.Eventually]
@@ -1406,12 +941,6 @@ theorem Tendsto.basis_left (H : Tendsto f la lb) (hla : la.HasBasis pa sa) :
   hla.tendsto_left_iffₓ.1 H
 #align filter.tendsto.basis_left Filter.Tendsto.basis_leftₓ
 
-/- warning: filter.tendsto.basis_right -> Filter.Tendsto.basis_right is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι' : Sort.{u3}} {la : Filter.{u1} α} {lb : Filter.{u2} β} {pb : ι' -> Prop} {sb : ι' -> (Set.{u2} β)} {f : α -> β}, (Filter.Tendsto.{u1, u2} α β f la lb) -> (Filter.HasBasis.{u2, u3} β ι' lb pb sb) -> (forall (i : ι'), (pb i) -> (Filter.Eventually.{u1} α (fun (x : α) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) (f x) (sb i)) la))
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {ι' : Sort.{u1}} {la : Filter.{u3} α} {lb : Filter.{u2} β} {pb : ι' -> Prop} {sb : ι' -> (Set.{u2} β)} {f : α -> β}, (Filter.Tendsto.{u3, u2} α β f la lb) -> (Filter.HasBasis.{u2, u1} β ι' lb pb sb) -> (forall (i : ι'), (pb i) -> (Filter.Eventually.{u3} α (fun (x : α) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) (f x) (sb i)) la))
-Case conversion may be inaccurate. Consider using '#align filter.tendsto.basis_right Filter.Tendsto.basis_rightₓ'. -/
 theorem Tendsto.basis_right (H : Tendsto f la lb) (hlb : lb.HasBasis pb sb) :
     ∀ (i) (hi : pb i), ∀ᶠ x in la, f x ∈ sb i :=
   hlb.tendsto_right_iff.1 H
@@ -1423,24 +952,12 @@ theorem Tendsto.basis_both (H : Tendsto f la lb) (hla : la.HasBasis pa sa)
   (hla.tendsto_iffₓ hlb).1 H
 #align filter.tendsto.basis_both Filter.Tendsto.basis_bothₓ
 
-/- warning: filter.has_basis.prod_pprod -> Filter.HasBasis.prod_pprod is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {ι' : Sort.{u4}} {la : Filter.{u1} α} {pa : ι -> Prop} {sa : ι -> (Set.{u1} α)} {lb : Filter.{u2} β} {pb : ι' -> Prop} {sb : ι' -> (Set.{u2} β)}, (Filter.HasBasis.{u1, u3} α ι la pa sa) -> (Filter.HasBasis.{u2, u4} β ι' lb pb sb) -> (Filter.HasBasis.{max u1 u2, max 1 u3 u4} (Prod.{u1, u2} α β) (PProd.{u3, u4} ι ι') (Filter.prod.{u1, u2} α β la lb) (fun (i : PProd.{u3, u4} ι ι') => And (pa (PProd.fst.{u3, u4} ι ι' i)) (pb (PProd.snd.{u3, u4} ι ι' i))) (fun (i : PProd.{u3, u4} ι ι') => Set.prod.{u1, u2} α β (sa (PProd.fst.{u3, u4} ι ι' i)) (sb (PProd.snd.{u3, u4} ι ι' i))))
-but is expected to have type
-  forall {α : Type.{u4}} {β : Type.{u2}} {ι : Sort.{u3}} {ι' : Sort.{u1}} {la : Filter.{u4} α} {pa : ι -> Prop} {sa : ι -> (Set.{u4} α)} {lb : Filter.{u2} β} {pb : ι' -> Prop} {sb : ι' -> (Set.{u2} β)}, (Filter.HasBasis.{u4, u3} α ι la pa sa) -> (Filter.HasBasis.{u2, u1} β ι' lb pb sb) -> (Filter.HasBasis.{max u4 u2, max (max 1 u3) u1} (Prod.{u4, u2} α β) (PProd.{u3, u1} ι ι') (Filter.prod.{u4, u2} α β la lb) (fun (i : PProd.{u3, u1} ι ι') => And (pa (PProd.fst.{u3, u1} ι ι' i)) (pb (PProd.snd.{u3, u1} ι ι' i))) (fun (i : PProd.{u3, u1} ι ι') => Set.prod.{u4, u2} α β (sa (PProd.fst.{u3, u1} ι ι' i)) (sb (PProd.snd.{u3, u1} ι ι' i))))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.prod_pprod Filter.HasBasis.prod_pprodₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 theorem HasBasis.prod_pprod (hla : la.HasBasis pa sa) (hlb : lb.HasBasis pb sb) :
     (la ×ᶠ lb).HasBasis (fun i : PProd ι ι' => pa i.1 ∧ pb i.2) fun i => sa i.1 ×ˢ sb i.2 :=
   (hla.comap Prod.fst).inf' (hlb.comap Prod.snd)
 #align filter.has_basis.prod_pprod Filter.HasBasis.prod_pprod
 
-/- warning: filter.has_basis.prod -> Filter.HasBasis.prod is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {la : Filter.{u1} α} {lb : Filter.{u2} β} {ι : Type.{u3}} {ι' : Type.{u4}} {pa : ι -> Prop} {sa : ι -> (Set.{u1} α)} {pb : ι' -> Prop} {sb : ι' -> (Set.{u2} β)}, (Filter.HasBasis.{u1, succ u3} α ι la pa sa) -> (Filter.HasBasis.{u2, succ u4} β ι' lb pb sb) -> (Filter.HasBasis.{max u1 u2, max (succ u3) (succ u4)} (Prod.{u1, u2} α β) (Prod.{u3, u4} ι ι') (Filter.prod.{u1, u2} α β la lb) (fun (i : Prod.{u3, u4} ι ι') => And (pa (Prod.fst.{u3, u4} ι ι' i)) (pb (Prod.snd.{u3, u4} ι ι' i))) (fun (i : Prod.{u3, u4} ι ι') => Set.prod.{u1, u2} α β (sa (Prod.fst.{u3, u4} ι ι' i)) (sb (Prod.snd.{u3, u4} ι ι' i))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {la : Filter.{u2} α} {lb : Filter.{u1} β} {ι : Type.{u4}} {ι' : Type.{u3}} {pa : ι -> Prop} {sa : ι -> (Set.{u2} α)} {pb : ι' -> Prop} {sb : ι' -> (Set.{u1} β)}, (Filter.HasBasis.{u2, succ u4} α ι la pa sa) -> (Filter.HasBasis.{u1, succ u3} β ι' lb pb sb) -> (Filter.HasBasis.{max u2 u1, max (succ u4) (succ u3)} (Prod.{u2, u1} α β) (Prod.{u4, u3} ι ι') (Filter.prod.{u2, u1} α β la lb) (fun (i : Prod.{u4, u3} ι ι') => And (pa (Prod.fst.{u4, u3} ι ι' i)) (pb (Prod.snd.{u4, u3} ι ι' i))) (fun (i : Prod.{u4, u3} ι ι') => Set.prod.{u2, u1} α β (sa (Prod.fst.{u4, u3} ι ι' i)) (sb (Prod.snd.{u4, u3} ι ι' i))))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.prod Filter.HasBasis.prodₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 theorem HasBasis.prod {ι ι' : Type _} {pa : ι → Prop} {sa : ι → Set α} {pb : ι' → Prop}
     {sb : ι' → Set β} (hla : la.HasBasis pa sa) (hlb : lb.HasBasis pb sb) :
@@ -1448,12 +965,6 @@ theorem HasBasis.prod {ι ι' : Type _} {pa : ι → Prop} {sa : ι → Set α}
   (hla.comap Prod.fst).inf (hlb.comap Prod.snd)
 #align filter.has_basis.prod Filter.HasBasis.prod
 
-/- warning: filter.has_basis.prod_same_index -> Filter.HasBasis.prod_same_index is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {la : Filter.{u1} α} {sa : ι -> (Set.{u1} α)} {lb : Filter.{u2} β} {p : ι -> Prop} {sb : ι -> (Set.{u2} β)}, (Filter.HasBasis.{u1, u3} α ι la p sa) -> (Filter.HasBasis.{u2, u3} β ι lb p sb) -> (forall {i : ι} {j : ι}, (p i) -> (p j) -> (Exists.{u3} ι (fun (k : ι) => And (p k) (And (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (sa k) (sa i)) (HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (sb k) (sb j)))))) -> (Filter.HasBasis.{max u1 u2, u3} (Prod.{u1, u2} α β) ι (Filter.prod.{u1, u2} α β la lb) p (fun (i : ι) => Set.prod.{u1, u2} α β (sa i) (sb i)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}} {ι : Sort.{u1}} {la : Filter.{u2} α} {sa : ι -> (Set.{u2} α)} {lb : Filter.{u3} β} {p : ι -> Prop} {sb : ι -> (Set.{u3} β)}, (Filter.HasBasis.{u2, u1} α ι la p sa) -> (Filter.HasBasis.{u3, u1} β ι lb p sb) -> (forall {i : ι} {j : ι}, (p i) -> (p j) -> (Exists.{u1} ι (fun (k : ι) => And (p k) (And (HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) (sa k) (sa i)) (HasSubset.Subset.{u3} (Set.{u3} β) (Set.instHasSubsetSet.{u3} β) (sb k) (sb j)))))) -> (Filter.HasBasis.{max u2 u3, u1} (Prod.{u2, u3} α β) ι (Filter.prod.{u2, u3} α β la lb) p (fun (i : ι) => Set.prod.{u2, u3} α β (sa i) (sb i)))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.prod_same_index Filter.HasBasis.prod_same_indexₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 theorem HasBasis.prod_same_index {p : ι → Prop} {sb : ι → Set β} (hla : la.HasBasis p sa)
@@ -1469,12 +980,6 @@ theorem HasBasis.prod_same_index {p : ι → Prop} {sb : ι → Set β} (hla : l
     exact ⟨⟨i, i⟩, ⟨hi, hi⟩, h⟩
 #align filter.has_basis.prod_same_index Filter.HasBasis.prod_same_index
 
-/- warning: filter.has_basis.prod_same_index_mono -> Filter.HasBasis.prod_same_index_mono is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {la : Filter.{u1} α} {lb : Filter.{u2} β} {ι : Type.{u3}} [_inst_1 : LinearOrder.{u3} ι] {p : ι -> Prop} {sa : ι -> (Set.{u1} α)} {sb : ι -> (Set.{u2} β)}, (Filter.HasBasis.{u1, succ u3} α ι la p sa) -> (Filter.HasBasis.{u2, succ u3} β ι lb p sb) -> (MonotoneOn.{u3, u1} ι (Set.{u1} α) (PartialOrder.toPreorder.{u3} ι (SemilatticeInf.toPartialOrder.{u3} ι (Lattice.toSemilatticeInf.{u3} ι (LinearOrder.toLattice.{u3} ι _inst_1)))) (PartialOrder.toPreorder.{u1} (Set.{u1} α) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} α) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α))))))) sa (setOf.{u3} ι (fun (i : ι) => p i))) -> (MonotoneOn.{u3, u2} ι (Set.{u2} β) (PartialOrder.toPreorder.{u3} ι (SemilatticeInf.toPartialOrder.{u3} ι (Lattice.toSemilatticeInf.{u3} ι (LinearOrder.toLattice.{u3} ι _inst_1)))) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) sb (setOf.{u3} ι (fun (i : ι) => p i))) -> (Filter.HasBasis.{max u1 u2, succ u3} (Prod.{u1, u2} α β) ι (Filter.prod.{u1, u2} α β la lb) p (fun (i : ι) => Set.prod.{u1, u2} α β (sa i) (sb i)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {la : Filter.{u2} α} {lb : Filter.{u1} β} {ι : Type.{u3}} [_inst_1 : LinearOrder.{u3} ι] {p : ι -> Prop} {sa : ι -> (Set.{u2} α)} {sb : ι -> (Set.{u1} β)}, (Filter.HasBasis.{u2, succ u3} α ι la p sa) -> (Filter.HasBasis.{u1, succ u3} β ι lb p sb) -> (MonotoneOn.{u3, u2} ι (Set.{u2} α) (PartialOrder.toPreorder.{u3} ι (SemilatticeInf.toPartialOrder.{u3} ι (Lattice.toSemilatticeInf.{u3} ι (DistribLattice.toLattice.{u3} ι (instDistribLattice.{u3} ι _inst_1))))) (PartialOrder.toPreorder.{u2} (Set.{u2} α) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} α) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} α) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} α) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} α) (Set.instCompleteBooleanAlgebraSet.{u2} α))))))) sa (setOf.{u3} ι (fun (i : ι) => p i))) -> (MonotoneOn.{u3, u1} ι (Set.{u1} β) (PartialOrder.toPreorder.{u3} ι (SemilatticeInf.toPartialOrder.{u3} ι (Lattice.toSemilatticeInf.{u3} ι (DistribLattice.toLattice.{u3} ι (instDistribLattice.{u3} ι _inst_1))))) (PartialOrder.toPreorder.{u1} (Set.{u1} β) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} β) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} β) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} β) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} β) (Set.instCompleteBooleanAlgebraSet.{u1} β))))))) sb (setOf.{u3} ι (fun (i : ι) => p i))) -> (Filter.HasBasis.{max u2 u1, succ u3} (Prod.{u2, u1} α β) ι (Filter.prod.{u2, u1} α β la lb) p (fun (i : ι) => Set.prod.{u2, u1} α β (sa i) (sb i)))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.prod_same_index_mono Filter.HasBasis.prod_same_index_monoₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 theorem HasBasis.prod_same_index_mono {ι : Type _} [LinearOrder ι] {p : ι → Prop} {sa : ι → Set α}
     {sb : ι → Set β} (hla : la.HasBasis p sa) (hlb : lb.HasBasis p sb)
@@ -1485,12 +990,6 @@ theorem HasBasis.prod_same_index_mono {ι : Type _} [LinearOrder ι] {p : ι →
     ⟨min i j, this, hsa this hi <| min_le_left _ _, hsb this hj <| min_le_right _ _⟩
 #align filter.has_basis.prod_same_index_mono Filter.HasBasis.prod_same_index_mono
 
-/- warning: filter.has_basis.prod_same_index_anti -> Filter.HasBasis.prod_same_index_anti is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {la : Filter.{u1} α} {lb : Filter.{u2} β} {ι : Type.{u3}} [_inst_1 : LinearOrder.{u3} ι] {p : ι -> Prop} {sa : ι -> (Set.{u1} α)} {sb : ι -> (Set.{u2} β)}, (Filter.HasBasis.{u1, succ u3} α ι la p sa) -> (Filter.HasBasis.{u2, succ u3} β ι lb p sb) -> (AntitoneOn.{u3, u1} ι (Set.{u1} α) (PartialOrder.toPreorder.{u3} ι (SemilatticeInf.toPartialOrder.{u3} ι (Lattice.toSemilatticeInf.{u3} ι (LinearOrder.toLattice.{u3} ι _inst_1)))) (PartialOrder.toPreorder.{u1} (Set.{u1} α) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} α) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α))))))) sa (setOf.{u3} ι (fun (i : ι) => p i))) -> (AntitoneOn.{u3, u2} ι (Set.{u2} β) (PartialOrder.toPreorder.{u3} ι (SemilatticeInf.toPartialOrder.{u3} ι (Lattice.toSemilatticeInf.{u3} ι (LinearOrder.toLattice.{u3} ι _inst_1)))) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) sb (setOf.{u3} ι (fun (i : ι) => p i))) -> (Filter.HasBasis.{max u1 u2, succ u3} (Prod.{u1, u2} α β) ι (Filter.prod.{u1, u2} α β la lb) p (fun (i : ι) => Set.prod.{u1, u2} α β (sa i) (sb i)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {la : Filter.{u2} α} {lb : Filter.{u1} β} {ι : Type.{u3}} [_inst_1 : LinearOrder.{u3} ι] {p : ι -> Prop} {sa : ι -> (Set.{u2} α)} {sb : ι -> (Set.{u1} β)}, (Filter.HasBasis.{u2, succ u3} α ι la p sa) -> (Filter.HasBasis.{u1, succ u3} β ι lb p sb) -> (AntitoneOn.{u3, u2} ι (Set.{u2} α) (PartialOrder.toPreorder.{u3} ι (SemilatticeInf.toPartialOrder.{u3} ι (Lattice.toSemilatticeInf.{u3} ι (DistribLattice.toLattice.{u3} ι (instDistribLattice.{u3} ι _inst_1))))) (PartialOrder.toPreorder.{u2} (Set.{u2} α) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} α) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} α) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} α) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} α) (Set.instCompleteBooleanAlgebraSet.{u2} α))))))) sa (setOf.{u3} ι (fun (i : ι) => p i))) -> (AntitoneOn.{u3, u1} ι (Set.{u1} β) (PartialOrder.toPreorder.{u3} ι (SemilatticeInf.toPartialOrder.{u3} ι (Lattice.toSemilatticeInf.{u3} ι (DistribLattice.toLattice.{u3} ι (instDistribLattice.{u3} ι _inst_1))))) (PartialOrder.toPreorder.{u1} (Set.{u1} β) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} β) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} β) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} β) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} β) (Set.instCompleteBooleanAlgebraSet.{u1} β))))))) sb (setOf.{u3} ι (fun (i : ι) => p i))) -> (Filter.HasBasis.{max u2 u1, succ u3} (Prod.{u2, u1} α β) ι (Filter.prod.{u2, u1} α β la lb) p (fun (i : ι) => Set.prod.{u2, u1} α β (sa i) (sb i)))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.prod_same_index_anti Filter.HasBasis.prod_same_index_antiₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 theorem HasBasis.prod_same_index_anti {ι : Type _} [LinearOrder ι] {p : ι → Prop} {sa : ι → Set α}
     {sb : ι → Set β} (hla : la.HasBasis p sa) (hlb : lb.HasBasis p sb)
@@ -1499,12 +998,6 @@ theorem HasBasis.prod_same_index_anti {ι : Type _} [LinearOrder ι] {p : ι →
   @HasBasis.prod_same_index_mono _ _ _ _ ιᵒᵈ _ _ _ _ hla hlb hsa.dual_left hsb.dual_left
 #align filter.has_basis.prod_same_index_anti Filter.HasBasis.prod_same_index_anti
 
-/- warning: filter.has_basis.prod_self -> Filter.HasBasis.prod_self is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {la : Filter.{u1} α} {pa : ι -> Prop} {sa : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι la pa sa) -> (Filter.HasBasis.{u1, u2} (Prod.{u1, u1} α α) ι (Filter.prod.{u1, u1} α α la la) pa (fun (i : ι) => Set.prod.{u1, u1} α α (sa i) (sa i)))
-but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {la : Filter.{u2} α} {pa : ι -> Prop} {sa : ι -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι la pa sa) -> (Filter.HasBasis.{u2, u1} (Prod.{u2, u2} α α) ι (Filter.prod.{u2, u2} α α la la) pa (fun (i : ι) => Set.prod.{u2, u2} α α (sa i) (sa i)))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.prod_self Filter.HasBasis.prod_selfₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 theorem HasBasis.prod_self (hl : la.HasBasis pa sa) :
     (la ×ᶠ la).HasBasis pa fun i => sa i ×ˢ sa i :=
@@ -1513,23 +1006,11 @@ theorem HasBasis.prod_self (hl : la.HasBasis pa sa) :
       hl.mem_iff.1 (inter_mem (hl.mem_of_mem hi) (hl.mem_of_mem hj))
 #align filter.has_basis.prod_self Filter.HasBasis.prod_self
 
-/- warning: filter.mem_prod_self_iff -> Filter.mem_prod_self_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {la : Filter.{u1} α} {s : Set.{u1} (Prod.{u1, u1} α α)}, Iff (Membership.Mem.{u1, u1} (Set.{u1} (Prod.{u1, u1} α α)) (Filter.{u1} (Prod.{u1, u1} α α)) (Filter.hasMem.{u1} (Prod.{u1, u1} α α)) s (Filter.prod.{u1, u1} α α la la)) (Exists.{succ u1} (Set.{u1} α) (fun (t : Set.{u1} α) => Exists.{0} (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) t la) (fun (H : Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) t la) => HasSubset.Subset.{u1} (Set.{u1} (Prod.{u1, u1} α α)) (Set.hasSubset.{u1} (Prod.{u1, u1} α α)) (Set.prod.{u1, u1} α α t t) s)))
-but is expected to have type
-  forall {α : Type.{u1}} {la : Filter.{u1} α} {s : Set.{u1} (Prod.{u1, u1} α α)}, Iff (Membership.mem.{u1, u1} (Set.{u1} (Prod.{u1, u1} α α)) (Filter.{u1} (Prod.{u1, u1} α α)) (instMembershipSetFilter.{u1} (Prod.{u1, u1} α α)) s (Filter.prod.{u1, u1} α α la la)) (Exists.{succ u1} (Set.{u1} α) (fun (t : Set.{u1} α) => And (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) t la) (HasSubset.Subset.{u1} (Set.{u1} (Prod.{u1, u1} α α)) (Set.instHasSubsetSet.{u1} (Prod.{u1, u1} α α)) (Set.prod.{u1, u1} α α t t) s)))
-Case conversion may be inaccurate. Consider using '#align filter.mem_prod_self_iff Filter.mem_prod_self_iffₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 theorem mem_prod_self_iff {s} : s ∈ la ×ᶠ la ↔ ∃ t ∈ la, t ×ˢ t ⊆ s :=
   la.basis_sets.prod_self.mem_iff
 #align filter.mem_prod_self_iff Filter.mem_prod_self_iff
 
-/- warning: filter.has_antitone_basis.prod -> Filter.HasAntitoneBasis.prod is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : LinearOrder.{u3} ι] {f : Filter.{u1} α} {g : Filter.{u2} β} {s : ι -> (Set.{u1} α)} {t : ι -> (Set.{u2} β)}, (Filter.HasAntitoneBasis.{u1, u3} α ι (PartialOrder.toPreorder.{u3} ι (SemilatticeInf.toPartialOrder.{u3} ι (Lattice.toSemilatticeInf.{u3} ι (LinearOrder.toLattice.{u3} ι _inst_1)))) f s) -> (Filter.HasAntitoneBasis.{u2, u3} β ι (PartialOrder.toPreorder.{u3} ι (SemilatticeInf.toPartialOrder.{u3} ι (Lattice.toSemilatticeInf.{u3} ι (LinearOrder.toLattice.{u3} ι _inst_1)))) g t) -> (Filter.HasAntitoneBasis.{max u1 u2, u3} (Prod.{u1, u2} α β) ι (PartialOrder.toPreorder.{u3} ι (SemilatticeInf.toPartialOrder.{u3} ι (Lattice.toSemilatticeInf.{u3} ι (LinearOrder.toLattice.{u3} ι _inst_1)))) (Filter.prod.{u1, u2} α β f g) (fun (n : ι) => Set.prod.{u1, u2} α β (s n) (t n)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {ι : Type.{u3}} [_inst_1 : LinearOrder.{u3} ι] {f : Filter.{u2} α} {g : Filter.{u1} β} {s : ι -> (Set.{u2} α)} {t : ι -> (Set.{u1} β)}, (Filter.HasAntitoneBasis.{u2, u3} α ι (PartialOrder.toPreorder.{u3} ι (SemilatticeInf.toPartialOrder.{u3} ι (Lattice.toSemilatticeInf.{u3} ι (DistribLattice.toLattice.{u3} ι (instDistribLattice.{u3} ι _inst_1))))) f s) -> (Filter.HasAntitoneBasis.{u1, u3} β ι (PartialOrder.toPreorder.{u3} ι (SemilatticeInf.toPartialOrder.{u3} ι (Lattice.toSemilatticeInf.{u3} ι (DistribLattice.toLattice.{u3} ι (instDistribLattice.{u3} ι _inst_1))))) g t) -> (Filter.HasAntitoneBasis.{max u1 u2, u3} (Prod.{u2, u1} α β) ι (PartialOrder.toPreorder.{u3} ι (SemilatticeInf.toPartialOrder.{u3} ι (Lattice.toSemilatticeInf.{u3} ι (DistribLattice.toLattice.{u3} ι (instDistribLattice.{u3} ι _inst_1))))) (Filter.prod.{u2, u1} α β f g) (fun (n : ι) => Set.prod.{u2, u1} α β (s n) (t n)))
-Case conversion may be inaccurate. Consider using '#align filter.has_antitone_basis.prod Filter.HasAntitoneBasis.prodₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 theorem HasAntitoneBasis.prod {ι : Type _} [LinearOrder ι] {f : Filter α} {g : Filter β}
     {s : ι → Set α} {t : ι → Set β} (hf : HasAntitoneBasis f s) (hg : HasAntitoneBasis g t) :
@@ -1537,12 +1018,6 @@ theorem HasAntitoneBasis.prod {ι : Type _} [LinearOrder ι] {f : Filter α} {g
   ⟨hf.1.prod_same_index_anti hg.1 (hf.2.AntitoneOn _) (hg.2.AntitoneOn _), hf.2.set_prod hg.2⟩
 #align filter.has_antitone_basis.prod Filter.HasAntitoneBasis.prod
 
-/- warning: filter.has_basis.coprod -> Filter.HasBasis.coprod is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {la : Filter.{u1} α} {lb : Filter.{u2} β} {ι : Type.{u3}} {ι' : Type.{u4}} {pa : ι -> Prop} {sa : ι -> (Set.{u1} α)} {pb : ι' -> Prop} {sb : ι' -> (Set.{u2} β)}, (Filter.HasBasis.{u1, succ u3} α ι la pa sa) -> (Filter.HasBasis.{u2, succ u4} β ι' lb pb sb) -> (Filter.HasBasis.{max u1 u2, max (succ u3) (succ u4)} (Prod.{u1, u2} α β) (Prod.{u3, u4} ι ι') (Filter.coprod.{u1, u2} α β la lb) (fun (i : Prod.{u3, u4} ι ι') => And (pa (Prod.fst.{u3, u4} ι ι' i)) (pb (Prod.snd.{u3, u4} ι ι' i))) (fun (i : Prod.{u3, u4} ι ι') => Union.union.{max u1 u2} (Set.{max u1 u2} (Prod.{u1, u2} α β)) (Set.hasUnion.{max u1 u2} (Prod.{u1, u2} α β)) (Set.preimage.{max u1 u2, u1} (Prod.{u1, u2} α β) α (Prod.fst.{u1, u2} α β) (sa (Prod.fst.{u3, u4} ι ι' i))) (Set.preimage.{max u1 u2, u2} (Prod.{u1, u2} α β) β (Prod.snd.{u1, u2} α β) (sb (Prod.snd.{u3, u4} ι ι' i)))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {la : Filter.{u2} α} {lb : Filter.{u1} β} {ι : Type.{u4}} {ι' : Type.{u3}} {pa : ι -> Prop} {sa : ι -> (Set.{u2} α)} {pb : ι' -> Prop} {sb : ι' -> (Set.{u1} β)}, (Filter.HasBasis.{u2, succ u4} α ι la pa sa) -> (Filter.HasBasis.{u1, succ u3} β ι' lb pb sb) -> (Filter.HasBasis.{max u2 u1, max (succ u4) (succ u3)} (Prod.{u2, u1} α β) (Prod.{u4, u3} ι ι') (Filter.coprod.{u2, u1} α β la lb) (fun (i : Prod.{u4, u3} ι ι') => And (pa (Prod.fst.{u4, u3} ι ι' i)) (pb (Prod.snd.{u4, u3} ι ι' i))) (fun (i : Prod.{u4, u3} ι ι') => Union.union.{max u2 u1} (Set.{max u2 u1} (Prod.{u2, u1} α β)) (Set.instUnionSet.{max u2 u1} (Prod.{u2, u1} α β)) (Set.preimage.{max u2 u1, u2} (Prod.{u2, u1} α β) α (Prod.fst.{u2, u1} α β) (sa (Prod.fst.{u4, u3} ι ι' i))) (Set.preimage.{max u2 u1, u1} (Prod.{u2, u1} α β) β (Prod.snd.{u2, u1} α β) (sb (Prod.snd.{u4, u3} ι ι' i)))))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.coprod Filter.HasBasis.coprodₓ'. -/
 theorem HasBasis.coprod {ι ι' : Type _} {pa : ι → Prop} {sa : ι → Set α} {pb : ι' → Prop}
     {sb : ι' → Set β} (hla : la.HasBasis pa sa) (hlb : lb.HasBasis pb sb) :
     (la.coprod lb).HasBasis (fun i : ι × ι' => pa i.1 ∧ pb i.2) fun i =>
@@ -1552,12 +1027,6 @@ theorem HasBasis.coprod {ι ι' : Type _} {pa : ι → Prop} {sa : ι → Set α
 
 end TwoTypes
 
-/- warning: filter.map_sigma_mk_comap -> Filter.map_sigma_mk_comap is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {π : α -> Type.{u3}} {π' : β -> Type.{u4}} {f : α -> β}, (Function.Injective.{succ u1, succ u2} α β f) -> (forall (g : forall (a : α), (π a) -> (π' (f a))) (a : α) (l : Filter.{u4} (π' (f a))), Eq.{succ (max u1 u3)} (Filter.{max u1 u3} (Sigma.{u1, u3} α (fun (a : α) => π a))) (Filter.map.{u3, max u1 u3} (π a) (Sigma.{u1, u3} α (fun (a : α) => π a)) (Sigma.mk.{u1, u3} α (fun (a : α) => π a) a) (Filter.comap.{u3, u4} (π a) (π' (f a)) (g a) l)) (Filter.comap.{max u1 u3, max u2 u4} (Sigma.{u1, u3} α (fun (a : α) => π a)) (Sigma.{u2, u4} β π') (Sigma.map.{u1, u2, u3, u4} α β (fun (a : α) => π a) π' f g) (Filter.map.{u4, max u2 u4} (π' (f a)) (Sigma.{u2, u4} β π') (Sigma.mk.{u2, u4} β π' (f a)) l)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {π : α -> Type.{u4}} {π' : β -> Type.{u3}} {f : α -> β}, (Function.Injective.{succ u2, succ u1} α β f) -> (forall (g : forall (a : α), (π a) -> (π' (f a))) (a : α) (l : Filter.{u3} (π' (f a))), Eq.{max (succ u2) (succ u4)} (Filter.{max u2 u4} (Sigma.{u2, u4} α π)) (Filter.map.{u4, max u2 u4} (π a) (Sigma.{u2, u4} α π) (Sigma.mk.{u2, u4} α π a) (Filter.comap.{u4, u3} (π a) (π' (f a)) (g a) l)) (Filter.comap.{max u4 u2, max u3 u1} (Sigma.{u2, u4} α (fun (a : α) => π a)) (Sigma.{u1, u3} β π') (Sigma.map.{u2, u1, u4, u3} α β (fun (a : α) => π a) π' f g) (Filter.map.{u3, max u1 u3} (π' (f a)) (Sigma.{u1, u3} β π') (Sigma.mk.{u1, u3} β π' (f a)) l)))
-Case conversion may be inaccurate. Consider using '#align filter.map_sigma_mk_comap Filter.map_sigma_mk_comapₓ'. -/
 theorem map_sigma_mk_comap {π : α → Type _} {π' : β → Type _} {f : α → β}
     (hf : Function.Injective f) (g : ∀ a, π a → π' (f a)) (a : α) (l : Filter (π' (f a))) :
     map (Sigma.mk a) (comap (g a) l) = comap (Sigma.map f g) (map (Sigma.mk (f a)) l) :=
@@ -1617,23 +1086,11 @@ instance Nat.inhabitedCountableFilterBasis : Inhabited (CountableFilterBasis ℕ
 #align filter.nat.inhabited_countable_filter_basis Filter.Nat.inhabitedCountableFilterBasis
 -/
 
-/- warning: filter.has_countable_basis.is_countably_generated -> Filter.HasCountableBasis.isCountablyGenerated is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Type.{u2}} {f : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (Filter.HasCountableBasis.{u1, u2} α ι f p s) -> (Filter.IsCountablyGenerated.{u1} α f)
-but is expected to have type
-  forall {α : Type.{u2}} {ι : Type.{u1}} {f : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)}, (Filter.HasCountableBasis.{u2, u1} α ι f p s) -> (Filter.IsCountablyGenerated.{u2} α f)
-Case conversion may be inaccurate. Consider using '#align filter.has_countable_basis.is_countably_generated Filter.HasCountableBasis.isCountablyGeneratedₓ'. -/
 theorem HasCountableBasis.isCountablyGenerated {f : Filter α} {p : ι → Prop} {s : ι → Set α}
     (h : f.HasCountableBasis p s) : f.IsCountablyGenerated :=
   ⟨⟨{ t | ∃ i, p i ∧ s i = t }, h.Countable.image s, h.to_hasBasis.eq_generate⟩⟩
 #align filter.has_countable_basis.is_countably_generated Filter.HasCountableBasis.isCountablyGenerated
 
-/- warning: filter.antitone_seq_of_seq -> Filter.antitone_seq_of_seq is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} (s : Nat -> (Set.{u1} α)), Exists.{succ u1} (Nat -> (Set.{u1} α)) (fun (t : Nat -> (Set.{u1} α)) => And (Antitone.{0, u1} Nat (Set.{u1} α) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (PartialOrder.toPreorder.{u1} (Set.{u1} α) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} α) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α))))))) t) (Eq.{succ u1} (Filter.{u1} α) (iInf.{u1, 1} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) Nat (fun (i : Nat) => Filter.principal.{u1} α (s i))) (iInf.{u1, 1} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) Nat (fun (i : Nat) => Filter.principal.{u1} α (t i)))))
-but is expected to have type
-  forall {α : Type.{u1}} (s : Nat -> (Set.{u1} α)), Exists.{succ u1} (Nat -> (Set.{u1} α)) (fun (t : Nat -> (Set.{u1} α)) => And (Antitone.{0, u1} Nat (Set.{u1} α) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (PartialOrder.toPreorder.{u1} (Set.{u1} α) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} α) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α))))))) t) (Eq.{succ u1} (Filter.{u1} α) (iInf.{u1, 1} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) Nat (fun (i : Nat) => Filter.principal.{u1} α (s i))) (iInf.{u1, 1} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) Nat (fun (i : Nat) => Filter.principal.{u1} α (t i)))))
-Case conversion may be inaccurate. Consider using '#align filter.antitone_seq_of_seq Filter.antitone_seq_of_seqₓ'. -/
 theorem antitone_seq_of_seq (s : ℕ → Set α) :
     ∃ t : ℕ → Set α, Antitone t ∧ (⨅ i, 𝓟 <| s i) = ⨅ i, 𝓟 (t i) :=
   by
@@ -1645,24 +1102,12 @@ theorem antitone_seq_of_seq (s : ℕ → Set α) :
   · apply iInf_le_of_le i _; rw [principal_mono]; intro a; simp; intro h; apply h; rfl
 #align filter.antitone_seq_of_seq Filter.antitone_seq_of_seq
 
-/- warning: filter.countable_binfi_eq_infi_seq -> Filter.countable_biInf_eq_iInf_seq is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Type.{u2}} [_inst_1 : CompleteLattice.{u1} α] {B : Set.{u2} ι}, (Set.Countable.{u2} ι B) -> (Set.Nonempty.{u2} ι B) -> (forall (f : ι -> α), Exists.{succ u2} (Nat -> ι) (fun (x : Nat -> ι) => Eq.{succ u1} α (iInf.{u1, succ u2} α (ConditionallyCompleteLattice.toHasInf.{u1} α (CompleteLattice.toConditionallyCompleteLattice.{u1} α _inst_1)) ι (fun (t : ι) => iInf.{u1, 0} α (ConditionallyCompleteLattice.toHasInf.{u1} α (CompleteLattice.toConditionallyCompleteLattice.{u1} α _inst_1)) (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) t B) (fun (H : Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) t B) => f t))) (iInf.{u1, 1} α (ConditionallyCompleteLattice.toHasInf.{u1} α (CompleteLattice.toConditionallyCompleteLattice.{u1} α _inst_1)) Nat (fun (i : Nat) => f (x i)))))
-but is expected to have type
-  forall {α : Type.{u2}} {ι : Type.{u1}} [_inst_1 : CompleteLattice.{u2} α] {B : Set.{u1} ι}, (Set.Countable.{u1} ι B) -> (Set.Nonempty.{u1} ι B) -> (forall (f : ι -> α), Exists.{succ u1} (Nat -> ι) (fun (x : Nat -> ι) => Eq.{succ u2} α (iInf.{u2, succ u1} α (CompleteLattice.toInfSet.{u2} α _inst_1) ι (fun (t : ι) => iInf.{u2, 0} α (CompleteLattice.toInfSet.{u2} α _inst_1) (Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) t B) (fun (H : Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) t B) => f t))) (iInf.{u2, 1} α (CompleteLattice.toInfSet.{u2} α _inst_1) Nat (fun (i : Nat) => f (x i)))))
-Case conversion may be inaccurate. Consider using '#align filter.countable_binfi_eq_infi_seq Filter.countable_biInf_eq_iInf_seqₓ'. -/
 theorem countable_biInf_eq_iInf_seq [CompleteLattice α] {B : Set ι} (Bcbl : B.Countable)
     (Bne : B.Nonempty) (f : ι → α) : ∃ x : ℕ → ι, (⨅ t ∈ B, f t) = ⨅ i, f (x i) :=
   let ⟨g, hg⟩ := Bcbl.exists_eq_range Bne
   ⟨g, hg.symm ▸ iInf_range⟩
 #align filter.countable_binfi_eq_infi_seq Filter.countable_biInf_eq_iInf_seq
 
-/- warning: filter.countable_binfi_eq_infi_seq' -> Filter.countable_biInf_eq_iInf_seq' is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Type.{u2}} [_inst_1 : CompleteLattice.{u1} α] {B : Set.{u2} ι}, (Set.Countable.{u2} ι B) -> (forall (f : ι -> α) {i₀ : ι}, (Eq.{succ u1} α (f i₀) (Top.top.{u1} α (CompleteLattice.toHasTop.{u1} α _inst_1))) -> (Exists.{succ u2} (Nat -> ι) (fun (x : Nat -> ι) => Eq.{succ u1} α (iInf.{u1, succ u2} α (ConditionallyCompleteLattice.toHasInf.{u1} α (CompleteLattice.toConditionallyCompleteLattice.{u1} α _inst_1)) ι (fun (t : ι) => iInf.{u1, 0} α (ConditionallyCompleteLattice.toHasInf.{u1} α (CompleteLattice.toConditionallyCompleteLattice.{u1} α _inst_1)) (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) t B) (fun (H : Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) t B) => f t))) (iInf.{u1, 1} α (ConditionallyCompleteLattice.toHasInf.{u1} α (CompleteLattice.toConditionallyCompleteLattice.{u1} α _inst_1)) Nat (fun (i : Nat) => f (x i))))))
-but is expected to have type
-  forall {α : Type.{u2}} {ι : Type.{u1}} [_inst_1 : CompleteLattice.{u2} α] {B : Set.{u1} ι}, (Set.Countable.{u1} ι B) -> (forall (f : ι -> α) {i₀ : ι}, (Eq.{succ u2} α (f i₀) (Top.top.{u2} α (CompleteLattice.toTop.{u2} α _inst_1))) -> (Exists.{succ u1} (Nat -> ι) (fun (x : Nat -> ι) => Eq.{succ u2} α (iInf.{u2, succ u1} α (CompleteLattice.toInfSet.{u2} α _inst_1) ι (fun (t : ι) => iInf.{u2, 0} α (CompleteLattice.toInfSet.{u2} α _inst_1) (Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) t B) (fun (H : Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) t B) => f t))) (iInf.{u2, 1} α (CompleteLattice.toInfSet.{u2} α _inst_1) Nat (fun (i : Nat) => f (x i))))))
-Case conversion may be inaccurate. Consider using '#align filter.countable_binfi_eq_infi_seq' Filter.countable_biInf_eq_iInf_seq'ₓ'. -/
 theorem countable_biInf_eq_iInf_seq' [CompleteLattice α] {B : Set ι} (Bcbl : B.Countable)
     (f : ι → α) {i₀ : ι} (h : f i₀ = ⊤) : ∃ x : ℕ → ι, (⨅ t ∈ B, f t) = ⨅ i, f (x i) :=
   by
@@ -1673,12 +1118,6 @@ theorem countable_biInf_eq_iInf_seq' [CompleteLattice α] {B : Set ι} (Bcbl : B
   · exact countable_binfi_eq_infi_seq Bcbl Bnonempty f
 #align filter.countable_binfi_eq_infi_seq' Filter.countable_biInf_eq_iInf_seq'
 
-/- warning: filter.countable_binfi_principal_eq_seq_infi -> Filter.countable_biInf_principal_eq_seq_iInf is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {B : Set.{u1} (Set.{u1} α)}, (Set.Countable.{u1} (Set.{u1} α) B) -> (Exists.{succ u1} (Nat -> (Set.{u1} α)) (fun (x : Nat -> (Set.{u1} α)) => Eq.{succ u1} (Filter.{u1} α) (iInf.{u1, succ u1} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (Set.{u1} α) (fun (t : Set.{u1} α) => iInf.{u1, 0} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) t B) (fun (H : Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) t B) => Filter.principal.{u1} α t))) (iInf.{u1, 1} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) Nat (fun (i : Nat) => Filter.principal.{u1} α (x i)))))
-but is expected to have type
-  forall {α : Type.{u1}} {B : Set.{u1} (Set.{u1} α)}, (Set.Countable.{u1} (Set.{u1} α) B) -> (Exists.{succ u1} (Nat -> (Set.{u1} α)) (fun (x : Nat -> (Set.{u1} α)) => Eq.{succ u1} (Filter.{u1} α) (iInf.{u1, succ u1} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) (Set.{u1} α) (fun (t : Set.{u1} α) => iInf.{u1, 0} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) (Membership.mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.instMembershipSet.{u1} (Set.{u1} α)) t B) (fun (H : Membership.mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.instMembershipSet.{u1} (Set.{u1} α)) t B) => Filter.principal.{u1} α t))) (iInf.{u1, 1} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) Nat (fun (i : Nat) => Filter.principal.{u1} α (x i)))))
-Case conversion may be inaccurate. Consider using '#align filter.countable_binfi_principal_eq_seq_infi Filter.countable_biInf_principal_eq_seq_iInfₓ'. -/
 theorem countable_biInf_principal_eq_seq_iInf {B : Set (Set α)} (Bcbl : B.Countable) :
     ∃ x : ℕ → Set α, (⨅ t ∈ B, 𝓟 t) = ⨅ i, 𝓟 (x i) :=
   countable_biInf_eq_iInf_seq' Bcbl 𝓟 principal_univ
@@ -1700,24 +1139,12 @@ protected theorem HasAntitoneBasis.mem [Preorder ι] {l : Filter α} {s : ι →
 #align filter.has_antitone_basis.mem Filter.HasAntitoneBasis.mem
 -/
 
-/- warning: filter.has_antitone_basis.has_basis_ge -> Filter.HasAntitoneBasis.hasBasis_ge is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Type.{u2}} [_inst_1 : Preorder.{u2} ι] [_inst_2 : IsDirected.{u2} ι (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_1))] {l : Filter.{u1} α} {s : ι -> (Set.{u1} α)}, (Filter.HasAntitoneBasis.{u1, u2} α ι _inst_1 l s) -> (forall (i : ι), Filter.HasBasis.{u1, succ u2} α ι l (fun (j : ι) => LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_1) i j) s)
-but is expected to have type
-  forall {α : Type.{u1}} {ι : Type.{u2}} [_inst_1 : Preorder.{u2} ι] [_inst_2 : IsDirected.{u2} ι (fun (x._@.Mathlib.Order.Filter.Bases._hyg.13517 : ι) (x._@.Mathlib.Order.Filter.Bases._hyg.13519 : ι) => LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_1) x._@.Mathlib.Order.Filter.Bases._hyg.13517 x._@.Mathlib.Order.Filter.Bases._hyg.13519)] {l : Filter.{u1} α} {s : ι -> (Set.{u1} α)}, (Filter.HasAntitoneBasis.{u1, u2} α ι _inst_1 l s) -> (forall (i : ι), Filter.HasBasis.{u1, succ u2} α ι l (fun (j : ι) => LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_1) i j) s)
-Case conversion may be inaccurate. Consider using '#align filter.has_antitone_basis.has_basis_ge Filter.HasAntitoneBasis.hasBasis_geₓ'. -/
 theorem HasAntitoneBasis.hasBasis_ge [Preorder ι] [IsDirected ι (· ≤ ·)] {l : Filter α}
     {s : ι → Set α} (hs : l.HasAntitoneBasis s) (i : ι) : l.HasBasis (fun j => i ≤ j) s :=
   hs.1.to_hasBasis (fun j _ => (exists_ge_ge i j).imp fun k hk => ⟨hk.1, hs.2 hk.2⟩) fun j hj =>
     ⟨j, trivial, Subset.rfl⟩
 #align filter.has_antitone_basis.has_basis_ge Filter.HasAntitoneBasis.hasBasis_ge
 
-/- warning: filter.has_basis.exists_antitone_subbasis -> Filter.HasBasis.exists_antitone_subbasis is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι' : Sort.{u2}} {f : Filter.{u1} α} [h : Filter.IsCountablyGenerated.{u1} α f] {p : ι' -> Prop} {s : ι' -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι' f p s) -> (Exists.{imax 1 u2} (Nat -> ι') (fun (x : Nat -> ι') => And (forall (i : Nat), p (x i)) (Filter.HasAntitoneBasis.{u1, 0} α Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) f (fun (i : Nat) => s (x i)))))
-but is expected to have type
-  forall {α : Type.{u2}} {ι' : Sort.{u1}} {f : Filter.{u2} α} [h : Filter.IsCountablyGenerated.{u2} α f] {p : ι' -> Prop} {s : ι' -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι' f p s) -> (Exists.{imax 1 u1} (Nat -> ι') (fun (x : Nat -> ι') => And (forall (i : Nat), p (x i)) (Filter.HasAntitoneBasis.{u2, 0} α Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) f (fun (i : Nat) => s (x i)))))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.exists_antitone_subbasis Filter.HasBasis.exists_antitone_subbasisₓ'. -/
 /-- If `f` is countably generated and `f.has_basis p s`, then `f` admits a decreasing basis
 enumerated by natural numbers such that all sets have the form `s i`. More precisely, there is a
 sequence `i n` such that `p (i n)` for all `n` and `s (i n)` is a decreasing sequence of sets which
@@ -1761,24 +1188,12 @@ theorem exists_antitone_basis (f : Filter α) [f.IsCountablyGenerated] :
 #align filter.exists_antitone_basis Filter.exists_antitone_basis
 -/
 
-/- warning: filter.exists_antitone_seq -> Filter.exists_antitone_seq is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} (f : Filter.{u1} α) [_inst_1 : Filter.IsCountablyGenerated.{u1} α f], Exists.{succ u1} (Nat -> (Set.{u1} α)) (fun (x : Nat -> (Set.{u1} α)) => And (Antitone.{0, u1} Nat (Set.{u1} α) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (PartialOrder.toPreorder.{u1} (Set.{u1} α) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} α) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α))))))) x) (forall {s : Set.{u1} α}, Iff (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) s f) (Exists.{1} Nat (fun (i : Nat) => HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (x i) s))))
-but is expected to have type
-  forall {α : Type.{u1}} (f : Filter.{u1} α) [_inst_1 : Filter.IsCountablyGenerated.{u1} α f], Exists.{succ u1} (Nat -> (Set.{u1} α)) (fun (x : Nat -> (Set.{u1} α)) => And (Antitone.{0, u1} Nat (Set.{u1} α) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (PartialOrder.toPreorder.{u1} (Set.{u1} α) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} α) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α))))))) x) (forall {s : Set.{u1} α}, Iff (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) s f) (Exists.{1} Nat (fun (i : Nat) => HasSubset.Subset.{u1} (Set.{u1} α) (Set.instHasSubsetSet.{u1} α) (x i) s))))
-Case conversion may be inaccurate. Consider using '#align filter.exists_antitone_seq Filter.exists_antitone_seqₓ'. -/
 theorem exists_antitone_seq (f : Filter α) [f.IsCountablyGenerated] :
     ∃ x : ℕ → Set α, Antitone x ∧ ∀ {s}, s ∈ f ↔ ∃ i, x i ⊆ s :=
   let ⟨x, hx⟩ := f.exists_antitone_basis
   ⟨x, hx.Antitone, fun s => by simp [hx.to_has_basis.mem_iff]⟩
 #align filter.exists_antitone_seq Filter.exists_antitone_seq
 
-/- warning: filter.inf.is_countably_generated -> Filter.Inf.isCountablyGenerated is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} (f : Filter.{u1} α) (g : Filter.{u1} α) [_inst_1 : Filter.IsCountablyGenerated.{u1} α f] [_inst_2 : Filter.IsCountablyGenerated.{u1} α g], Filter.IsCountablyGenerated.{u1} α (Inf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) f g)
-but is expected to have type
-  forall {α : Type.{u1}} (f : Filter.{u1} α) (g : Filter.{u1} α) [_inst_1 : Filter.IsCountablyGenerated.{u1} α f] [_inst_2 : Filter.IsCountablyGenerated.{u1} α g], Filter.IsCountablyGenerated.{u1} α (Inf.inf.{u1} (Filter.{u1} α) (Filter.instInfFilter.{u1} α) f g)
-Case conversion may be inaccurate. Consider using '#align filter.inf.is_countably_generated Filter.Inf.isCountablyGeneratedₓ'. -/
 instance Inf.isCountablyGenerated (f g : Filter α) [IsCountablyGenerated f]
     [IsCountablyGenerated g] : IsCountablyGenerated (f ⊓ g) :=
   by
@@ -1805,12 +1220,6 @@ instance comap.isCountablyGenerated (l : Filter β) [l.IsCountablyGenerated] (f
 #align filter.comap.is_countably_generated Filter.comap.isCountablyGenerated
 -/
 
-/- warning: filter.sup.is_countably_generated -> Filter.Sup.isCountablyGenerated is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} (f : Filter.{u1} α) (g : Filter.{u1} α) [_inst_1 : Filter.IsCountablyGenerated.{u1} α f] [_inst_2 : Filter.IsCountablyGenerated.{u1} α g], Filter.IsCountablyGenerated.{u1} α (Sup.sup.{u1} (Filter.{u1} α) (SemilatticeSup.toHasSup.{u1} (Filter.{u1} α) (Lattice.toSemilatticeSup.{u1} (Filter.{u1} α) (ConditionallyCompleteLattice.toLattice.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))))) f g)
-but is expected to have type
-  forall {α : Type.{u1}} (f : Filter.{u1} α) (g : Filter.{u1} α) [_inst_1 : Filter.IsCountablyGenerated.{u1} α f] [_inst_2 : Filter.IsCountablyGenerated.{u1} α g], Filter.IsCountablyGenerated.{u1} α (Sup.sup.{u1} (Filter.{u1} α) (SemilatticeSup.toSup.{u1} (Filter.{u1} α) (Lattice.toSemilatticeSup.{u1} (Filter.{u1} α) (CompleteLattice.toLattice.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)))) f g)
-Case conversion may be inaccurate. Consider using '#align filter.sup.is_countably_generated Filter.Sup.isCountablyGeneratedₓ'. -/
 instance Sup.isCountablyGenerated (f g : Filter α) [IsCountablyGenerated f]
     [IsCountablyGenerated g] : IsCountablyGenerated (f ⊔ g) :=
   by
@@ -1837,12 +1246,6 @@ instance coprod.isCountablyGenerated (la : Filter α) (lb : Filter β) [IsCounta
 
 end IsCountablyGenerated
 
-/- warning: filter.is_countably_generated_seq -> Filter.isCountablyGenerated_seq is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Countable.{succ u2} β] (x : β -> (Set.{u1} α)), Filter.IsCountablyGenerated.{u1} α (iInf.{u1, succ u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) β (fun (i : β) => Filter.principal.{u1} α (x i)))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Countable.{succ u2} β] (x : β -> (Set.{u1} α)), Filter.IsCountablyGenerated.{u1} α (iInf.{u1, succ u2} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) β (fun (i : β) => Filter.principal.{u1} α (x i)))
-Case conversion may be inaccurate. Consider using '#align filter.is_countably_generated_seq Filter.isCountablyGenerated_seqₓ'. -/
 theorem isCountablyGenerated_seq [Countable β] (x : β → Set α) :
     IsCountablyGenerated (⨅ i, 𝓟 <| x i) :=
   by
@@ -1850,24 +1253,12 @@ theorem isCountablyGenerated_seq [Countable β] (x : β → Set α) :
   rw [generate_eq_binfi, iInf_range]
 #align filter.is_countably_generated_seq Filter.isCountablyGenerated_seq
 
-/- warning: filter.is_countably_generated_of_seq -> Filter.isCountablyGenerated_of_seq is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {f : Filter.{u1} α}, (Exists.{succ u1} (Nat -> (Set.{u1} α)) (fun (x : Nat -> (Set.{u1} α)) => Eq.{succ u1} (Filter.{u1} α) f (iInf.{u1, 1} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) Nat (fun (i : Nat) => Filter.principal.{u1} α (x i))))) -> (Filter.IsCountablyGenerated.{u1} α f)
-but is expected to have type
-  forall {α : Type.{u1}} {f : Filter.{u1} α}, (Exists.{succ u1} (Nat -> (Set.{u1} α)) (fun (x : Nat -> (Set.{u1} α)) => Eq.{succ u1} (Filter.{u1} α) f (iInf.{u1, 1} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) Nat (fun (i : Nat) => Filter.principal.{u1} α (x i))))) -> (Filter.IsCountablyGenerated.{u1} α f)
-Case conversion may be inaccurate. Consider using '#align filter.is_countably_generated_of_seq Filter.isCountablyGenerated_of_seqₓ'. -/
 theorem isCountablyGenerated_of_seq {f : Filter α} (h : ∃ x : ℕ → Set α, f = ⨅ i, 𝓟 <| x i) :
     f.IsCountablyGenerated := by
   let ⟨x, h⟩ := h
   rw [h] <;> apply is_countably_generated_seq
 #align filter.is_countably_generated_of_seq Filter.isCountablyGenerated_of_seq
 
-/- warning: filter.is_countably_generated_binfi_principal -> Filter.isCountablyGenerated_biInf_principal is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {B : Set.{u1} (Set.{u1} α)}, (Set.Countable.{u1} (Set.{u1} α) B) -> (Filter.IsCountablyGenerated.{u1} α (iInf.{u1, succ u1} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (Set.{u1} α) (fun (s : Set.{u1} α) => iInf.{u1, 0} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) s B) (fun (H : Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) s B) => Filter.principal.{u1} α s))))
-but is expected to have type
-  forall {α : Type.{u1}} {B : Set.{u1} (Set.{u1} α)}, (Set.Countable.{u1} (Set.{u1} α) B) -> (Filter.IsCountablyGenerated.{u1} α (iInf.{u1, succ u1} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) (Set.{u1} α) (fun (s : Set.{u1} α) => iInf.{u1, 0} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) (Membership.mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.instMembershipSet.{u1} (Set.{u1} α)) s B) (fun (H : Membership.mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.instMembershipSet.{u1} (Set.{u1} α)) s B) => Filter.principal.{u1} α s))))
-Case conversion may be inaccurate. Consider using '#align filter.is_countably_generated_binfi_principal Filter.isCountablyGenerated_biInf_principalₓ'. -/
 theorem isCountablyGenerated_biInf_principal {B : Set <| Set α} (h : B.Countable) :
     IsCountablyGenerated (⨅ s ∈ B, 𝓟 s) :=
   isCountablyGenerated_of_seq (countable_biInf_principal_eq_seq_iInf h)
@@ -1899,34 +1290,16 @@ theorem isCountablyGenerated_pure (a : α) : IsCountablyGenerated (pure a) := by
 #align filter.is_countably_generated_pure Filter.isCountablyGenerated_pure
 -/
 
-/- warning: filter.is_countably_generated_bot -> Filter.isCountablyGenerated_bot is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}}, Filter.IsCountablyGenerated.{u1} α (Bot.bot.{u1} (Filter.{u1} α) (CompleteLattice.toHasBot.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α)))
-but is expected to have type
-  forall {α : Type.{u1}}, Filter.IsCountablyGenerated.{u1} α (Bot.bot.{u1} (Filter.{u1} α) (CompleteLattice.toBot.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)))
-Case conversion may be inaccurate. Consider using '#align filter.is_countably_generated_bot Filter.isCountablyGenerated_botₓ'. -/
 @[instance]
 theorem isCountablyGenerated_bot : IsCountablyGenerated (⊥ : Filter α) :=
   @principal_empty α ▸ isCountablyGenerated_principal _
 #align filter.is_countably_generated_bot Filter.isCountablyGenerated_bot
 
-/- warning: filter.is_countably_generated_top -> Filter.isCountablyGenerated_top is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}}, Filter.IsCountablyGenerated.{u1} α (Top.top.{u1} (Filter.{u1} α) (Filter.hasTop.{u1} α))
-but is expected to have type
-  forall {α : Type.{u1}}, Filter.IsCountablyGenerated.{u1} α (Top.top.{u1} (Filter.{u1} α) (Filter.instTopFilter.{u1} α))
-Case conversion may be inaccurate. Consider using '#align filter.is_countably_generated_top Filter.isCountablyGenerated_topₓ'. -/
 @[instance]
 theorem isCountablyGenerated_top : IsCountablyGenerated (⊤ : Filter α) :=
   @principal_univ α ▸ isCountablyGenerated_principal _
 #align filter.is_countably_generated_top Filter.isCountablyGenerated_top
 
-/- warning: filter.infi.is_countably_generated -> Filter.iInf.isCountablyGenerated is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} [_inst_1 : Countable.{u2} ι] (f : ι -> (Filter.{u1} α)) [_inst_2 : forall (i : ι), Filter.IsCountablyGenerated.{u1} α (f i)], Filter.IsCountablyGenerated.{u1} α (iInf.{u1, u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => f i))
-but is expected to have type
-  forall {α : Sort.{u1}} {ι : Type.{u2}} [_inst_1 : Countable.{u1} α] (f : α -> (Filter.{u2} ι)) [_inst_2 : forall (i : α), Filter.IsCountablyGenerated.{u2} ι (f i)], Filter.IsCountablyGenerated.{u2} ι (iInf.{u2, u1} (Filter.{u2} ι) (CompleteLattice.toInfSet.{u2} (Filter.{u2} ι) (Filter.instCompleteLatticeFilter.{u2} ι)) α (fun (i : α) => f i))
-Case conversion may be inaccurate. Consider using '#align filter.infi.is_countably_generated Filter.iInf.isCountablyGeneratedₓ'. -/
 instance iInf.isCountablyGenerated {ι : Sort _} [Countable ι] (f : ι → Filter α)
     [∀ i, IsCountablyGenerated (f i)] : IsCountablyGenerated (⨅ i, f i) :=
   by
Diff
@@ -442,9 +442,7 @@ lean 3 declaration is
 but is expected to have type
   forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)} (h : Filter.HasBasis.{u2, u1} α ι l p s), Eq.{succ u2} (Filter.{u2} α) (Filter.IsBasis.filter.{u2, u1} α ι p s (Filter.HasBasis.isBasis.{u1, u2} α ι l p s h)) l
 Case conversion may be inaccurate. Consider using '#align filter.has_basis.filter_eq Filter.HasBasis.filter_eqₓ'. -/
-theorem HasBasis.filter_eq (h : l.HasBasis p s) : h.IsBasis.filterₓ = l :=
-  by
-  ext U
+theorem HasBasis.filter_eq (h : l.HasBasis p s) : h.IsBasis.filterₓ = l := by ext U;
   simp [h.mem_iff, is_basis.mem_filter_iff]
 #align filter.has_basis.filter_eq Filter.HasBasis.filter_eq
 
@@ -1179,9 +1177,7 @@ but is expected to have type
   forall {α : Type.{u1}} {f : Filter.{u1} α} {g : Filter.{u1} α}, Iff (Filter.NeBot.{u1} α (Inf.inf.{u1} (Filter.{u1} α) (Filter.instInfFilter.{u1} α) f g)) (forall {p : α -> Prop}, (Filter.Eventually.{u1} α (fun (x : α) => p x) g) -> (Filter.Frequently.{u1} α (fun (x : α) => p x) f))
 Case conversion may be inaccurate. Consider using '#align filter.inf_ne_bot_iff_frequently_right Filter.inf_neBot_iff_frequently_rightₓ'. -/
 theorem inf_neBot_iff_frequently_right {f g : Filter α} :
-    NeBot (f ⊓ g) ↔ ∀ {p : α → Prop}, (∀ᶠ x in g, p x) → ∃ᶠ x in f, p x :=
-  by
-  rw [inf_comm]
+    NeBot (f ⊓ g) ↔ ∀ {p : α → Prop}, (∀ᶠ x in g, p x) → ∃ᶠ x in f, p x := by rw [inf_comm];
   exact inf_ne_bot_iff_frequently_left
 #align filter.inf_ne_bot_iff_frequently_right Filter.inf_neBot_iff_frequently_right
 
@@ -1342,10 +1338,8 @@ lean 3 declaration is
 but is expected to have type
   forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι l p s) -> (Eq.{succ u2} (Set.{u2} α) (Set.sInter.{u2} α (Filter.sets.{u2} α l)) (Set.iInter.{u2, u1} α ι (fun (i : ι) => Set.iInter.{u2, 0} α (p i) (fun (hi : p i) => s i))))
 Case conversion may be inaccurate. Consider using '#align filter.has_basis.sInter_sets Filter.HasBasis.sInter_setsₓ'. -/
-theorem HasBasis.sInter_sets (h : HasBasis l p s) : ⋂₀ l.sets = ⋂ (i) (hi : p i), s i :=
-  by
-  rw [sInter_eq_bInter]
-  exact h.bInter_mem monotone_id
+theorem HasBasis.sInter_sets (h : HasBasis l p s) : ⋂₀ l.sets = ⋂ (i) (hi : p i), s i := by
+  rw [sInter_eq_bInter]; exact h.bInter_mem monotone_id
 #align filter.has_basis.sInter_sets Filter.HasBasis.sInter_sets
 
 variable {ι'' : Type _} [Preorder ι''] (l) (s'' : ι'' → Set α)
@@ -1387,10 +1381,8 @@ variable {la : Filter α} {pa : ι → Prop} {sa : ι → Set α} {lb : Filter 
   {sb : ι' → Set β} {f : α → β}
 
 theorem HasBasis.tendsto_left_iff (hla : la.HasBasis pa sa) :
-    Tendsto f la lb ↔ ∀ t ∈ lb, ∃ (i : _)(hi : pa i), MapsTo f (sa i) t :=
-  by
-  simp only [tendsto, (hla.map f).le_iffₓ, image_subset_iff]
-  rfl
+    Tendsto f la lb ↔ ∀ t ∈ lb, ∃ (i : _)(hi : pa i), MapsTo f (sa i) t := by
+  simp only [tendsto, (hla.map f).le_iffₓ, image_subset_iff]; rfl
 #align filter.has_basis.tendsto_left_iff Filter.HasBasis.tendsto_left_iffₓ
 
 /- warning: filter.has_basis.tendsto_right_iff -> Filter.HasBasis.tendsto_right_iff is a dubious translation:
@@ -1648,18 +1640,9 @@ theorem antitone_seq_of_seq (s : ℕ → Set α) :
   use fun n => ⋂ m ≤ n, s m; constructor
   · exact fun i j hij => bInter_mono (Iic_subset_Iic.2 hij) fun n hn => subset.refl _
   apply le_antisymm <;> rw [le_iInf_iff] <;> intro i
-  · rw [le_principal_iff]
-    refine' (bInter_mem (finite_le_nat _)).2 fun j hji => _
-    rw [← le_principal_iff]
-    apply iInf_le_of_le j _
-    exact le_rfl
-  · apply iInf_le_of_le i _
-    rw [principal_mono]
-    intro a
-    simp
-    intro h
-    apply h
-    rfl
+  · rw [le_principal_iff]; refine' (bInter_mem (finite_le_nat _)).2 fun j hji => _
+    rw [← le_principal_iff]; apply iInf_le_of_le j _; exact le_rfl
+  · apply iInf_le_of_le i _; rw [principal_mono]; intro a; simp; intro h; apply h; rfl
 #align filter.antitone_seq_of_seq Filter.antitone_seq_of_seq
 
 /- warning: filter.countable_binfi_eq_infi_seq -> Filter.countable_biInf_eq_iInf_seq is a dubious translation:
@@ -1895,8 +1878,7 @@ theorem isCountablyGenerated_iff_exists_antitone_basis {f : Filter α} :
     IsCountablyGenerated f ↔ ∃ x : ℕ → Set α, f.HasAntitoneBasis x :=
   by
   constructor
-  · intro h
-    exact f.exists_antitone_basis
+  · intro h; exact f.exists_antitone_basis
   · rintro ⟨x, h⟩
     rw [h.to_has_basis.eq_infi]
     exact is_countably_generated_seq x
@@ -1912,10 +1894,8 @@ theorem isCountablyGenerated_principal (s : Set α) : IsCountablyGenerated (𝓟
 
 #print Filter.isCountablyGenerated_pure /-
 @[instance]
-theorem isCountablyGenerated_pure (a : α) : IsCountablyGenerated (pure a) :=
-  by
-  rw [← principal_singleton]
-  exact is_countably_generated_principal _
+theorem isCountablyGenerated_pure (a : α) : IsCountablyGenerated (pure a) := by
+  rw [← principal_singleton]; exact is_countably_generated_principal _
 #align filter.is_countably_generated_pure Filter.isCountablyGenerated_pure
 -/
 
Diff
@@ -759,10 +759,7 @@ theorem hasBasis_iInf' {ι : Type _} {ι' : ι → Type _} {l : ι → Filter α
 #align filter.has_basis_infi' Filter.hasBasis_iInf'
 
 /- warning: filter.has_basis_infi -> Filter.hasBasis_iInf is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Type.{u2}} {ι' : ι -> Type.{u3}} {l : ι -> (Filter.{u1} α)} {p : forall (i : ι), (ι' i) -> Prop} {s : forall (i : ι), (ι' i) -> (Set.{u1} α)}, (forall (i : ι), Filter.HasBasis.{u1, succ u3} α (ι' i) (l i) (p i) (s i)) -> (Filter.HasBasis.{u1, max (succ u2) (succ (max u2 u3))} α (Sigma.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i))) (iInf.{u1, succ u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => l i)) (fun (If : Sigma.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i))) => And (Set.Finite.{u2} ι (Sigma.fst.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If)) (forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (Sigma.fst.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If)), p ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (Sigma.fst.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If)) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (Sigma.fst.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If)) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (Sigma.fst.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If)) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (Sigma.fst.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If)) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x (Sigma.fst.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If)))))) i) (Sigma.snd.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If i))) (fun (If : Sigma.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i))) => Set.iInter.{u1, succ u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (Sigma.fst.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If)) (fun (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (Sigma.fst.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If)) => s ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (Sigma.fst.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If)) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (Sigma.fst.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If)) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (Sigma.fst.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If)) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (Sigma.fst.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If)) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x (Sigma.fst.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If)))))) i) (Sigma.snd.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If i))))
-but is expected to have type
-  forall {α : Type.{u1}} {ι : Type.{u3}} {ι' : ι -> Type.{u2}} {l : ι -> (Filter.{u1} α)} {p : forall (i : ι), (ι' i) -> Prop} {s : forall (i : ι), (ι' i) -> (Set.{u1} α)}, (forall (i : ι), Filter.HasBasis.{u1, succ u2} α (ι' i) (l i) (p i) (s i)) -> (Filter.HasBasis.{u1, max (succ u3) (succ u2)} α (Sigma.{u3, max u3 u2} (Set.{u3} ι) (fun (I : Set.{u3} ι) => forall (i : Set.Elem.{u3} ι I), ι' (Subtype.val.{succ u3} ι (fun (x : ι) => Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) x I) i))) (iInf.{u1, succ u3} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) ι (fun (i : ι) => l i)) (fun (If : Sigma.{u3, max u3 u2} (Set.{u3} ι) (fun (I : Set.{u3} ι) => forall (i : Set.Elem.{u3} ι I), ι' (Subtype.val.{succ u3} ι (fun (x : ι) => Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) x I) i))) => And (Set.Finite.{u3} ι (Sigma.fst.{u3, max u3 u2} (Set.{u3} ι) (fun (I : Set.{u3} ι) => forall (i : Set.Elem.{u3} ι I), ι' (Subtype.val.{succ u3} ι (fun (x : ι) => Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) x I) i)) If)) (forall (i : Set.Elem.{u3} ι (Sigma.fst.{u3, max u3 u2} (Set.{u3} ι) (fun (I : Set.{u3} ι) => forall (i : Set.Elem.{u3} ι I), ι' (Subtype.val.{succ u3} ι (fun (x : ι) => Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) x I) i)) If)), p (Subtype.val.{succ u3} ι (fun (x : ι) => Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) x (Sigma.fst.{u3, max u3 u2} (Set.{u3} ι) (fun (I : Set.{u3} ι) => forall (i : Set.Elem.{u3} ι I), ι' (Subtype.val.{succ u3} ι (fun (x : ι) => Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) x I) i)) If)) i) (Sigma.snd.{u3, max u3 u2} (Set.{u3} ι) (fun (I : Set.{u3} ι) => forall (i : Set.Elem.{u3} ι I), ι' (Subtype.val.{succ u3} ι (fun (x : ι) => Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) x I) i)) If i))) (fun (If : Sigma.{u3, max u3 u2} (Set.{u3} ι) (fun (I : Set.{u3} ι) => forall (i : Set.Elem.{u3} ι I), ι' (Subtype.val.{succ u3} ι (fun (x : ι) => Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) x I) i))) => Set.iInter.{u1, succ u3} α (Set.Elem.{u3} ι (Sigma.fst.{u3, max u3 u2} (Set.{u3} ι) (fun (I : Set.{u3} ι) => forall (i : Set.Elem.{u3} ι I), ι' (Subtype.val.{succ u3} ι (fun (x : ι) => Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) x I) i)) If)) (fun (i : Set.Elem.{u3} ι (Sigma.fst.{u3, max u3 u2} (Set.{u3} ι) (fun (I : Set.{u3} ι) => forall (i : Set.Elem.{u3} ι I), ι' (Subtype.val.{succ u3} ι (fun (x : ι) => Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) x I) i)) If)) => s (Subtype.val.{succ u3} ι (fun (x : ι) => Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) x (Sigma.fst.{u3, max u3 u2} (Set.{u3} ι) (fun (I : Set.{u3} ι) => forall (i : Set.Elem.{u3} ι I), ι' (Subtype.val.{succ u3} ι (fun (x : ι) => Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) x I) i)) If)) i) (Sigma.snd.{u3, max u3 u2} (Set.{u3} ι) (fun (I : Set.{u3} ι) => forall (i : Set.Elem.{u3} ι I), ι' (Subtype.val.{succ u3} ι (fun (x : ι) => Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) x I) i)) If i))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align filter.has_basis_infi Filter.hasBasis_iInfₓ'. -/
 theorem hasBasis_iInf {ι : Type _} {ι' : ι → Type _} {l : ι → Filter α} {p : ∀ i, ι' i → Prop}
     {s : ∀ i, ι' i → Set α} (hl : ∀ i, (l i).HasBasis (p i) (s i)) :
Diff
@@ -630,7 +630,7 @@ theorem HasBasis.comp_surjective (h : l.HasBasis p s) {g : ι' → ι} (hg : Fun
 lean 3 declaration is
   forall {α : Type.{u1}} {ι : Sort.{u2}} {ι' : Sort.{u3}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (forall (e : Equiv.{u3, u2} ι' ι), Filter.HasBasis.{u1, u3} α ι' l (Function.comp.{u3, u2, 1} ι' ι Prop p (coeFn.{max 1 (imax u3 u2) (imax u2 u3), imax u3 u2} (Equiv.{u3, u2} ι' ι) (fun (_x : Equiv.{u3, u2} ι' ι) => ι' -> ι) (Equiv.hasCoeToFun.{u3, u2} ι' ι) e)) (Function.comp.{u3, u2, succ u1} ι' ι (Set.{u1} α) s (coeFn.{max 1 (imax u3 u2) (imax u2 u3), imax u3 u2} (Equiv.{u3, u2} ι' ι) (fun (_x : Equiv.{u3, u2} ι' ι) => ι' -> ι) (Equiv.hasCoeToFun.{u3, u2} ι' ι) e)))
 but is expected to have type
-  forall {α : Type.{u3}} {ι : Sort.{u2}} {ι' : Sort.{u1}} {l : Filter.{u3} α} {p : ι -> Prop} {s : ι -> (Set.{u3} α)}, (Filter.HasBasis.{u3, u2} α ι l p s) -> (forall (e : Equiv.{u1, u2} ι' ι), Filter.HasBasis.{u3, u1} α ι' l (Function.comp.{u1, u2, 1} ι' ι Prop p (FunLike.coe.{max (max 1 u2) u1, u1, u2} (Equiv.{u1, u2} ι' ι) ι' (fun (_x : ι') => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : ι') => ι) _x) (Equiv.instFunLikeEquiv.{u1, u2} ι' ι) e)) (Function.comp.{u1, u2, succ u3} ι' ι (Set.{u3} α) s (FunLike.coe.{max (max 1 u2) u1, u1, u2} (Equiv.{u1, u2} ι' ι) ι' (fun (_x : ι') => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : ι') => ι) _x) (Equiv.instFunLikeEquiv.{u1, u2} ι' ι) e)))
+  forall {α : Type.{u3}} {ι : Sort.{u2}} {ι' : Sort.{u1}} {l : Filter.{u3} α} {p : ι -> Prop} {s : ι -> (Set.{u3} α)}, (Filter.HasBasis.{u3, u2} α ι l p s) -> (forall (e : Equiv.{u1, u2} ι' ι), Filter.HasBasis.{u3, u1} α ι' l (Function.comp.{u1, u2, 1} ι' ι Prop p (FunLike.coe.{max (max 1 u2) u1, u1, u2} (Equiv.{u1, u2} ι' ι) ι' (fun (_x : ι') => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : ι') => ι) _x) (Equiv.instFunLikeEquiv.{u1, u2} ι' ι) e)) (Function.comp.{u1, u2, succ u3} ι' ι (Set.{u3} α) s (FunLike.coe.{max (max 1 u2) u1, u1, u2} (Equiv.{u1, u2} ι' ι) ι' (fun (_x : ι') => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : ι') => ι) _x) (Equiv.instFunLikeEquiv.{u1, u2} ι' ι) e)))
 Case conversion may be inaccurate. Consider using '#align filter.has_basis.comp_equiv Filter.HasBasis.comp_equivₓ'. -/
 theorem HasBasis.comp_equiv (h : l.HasBasis p s) (e : ι' ≃ ι) : l.HasBasis (p ∘ e) (s ∘ e) :=
   h.comp_surjective e.Surjective
Diff
@@ -677,7 +677,7 @@ theorem HasBasis.hasBasis_self_subset {p : Set α → Prop} (h : l.HasBasis (fun
 
 /- warning: filter.has_basis.ge_iff -> Filter.HasBasis.ge_iff is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {ι' : Sort.{u2}} {l : Filter.{u1} α} {l' : Filter.{u1} α} {p' : ι' -> Prop} {s' : ι' -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι' l' p' s') -> (Iff (LE.le.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))) l l') (forall (i' : ι'), (p' i') -> (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) (s' i') l)))
+  forall {α : Type.{u1}} {ι' : Sort.{u2}} {l : Filter.{u1} α} {l' : Filter.{u1} α} {p' : ι' -> Prop} {s' : ι' -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι' l' p' s') -> (Iff (LE.le.{u1} (Filter.{u1} α) (Preorder.toHasLe.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))) l l') (forall (i' : ι'), (p' i') -> (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) (s' i') l)))
 but is expected to have type
   forall {α : Type.{u2}} {ι' : Sort.{u1}} {l : Filter.{u2} α} {l' : Filter.{u2} α} {p' : ι' -> Prop} {s' : ι' -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι' l' p' s') -> (Iff (LE.le.{u2} (Filter.{u2} α) (Preorder.toLE.{u2} (Filter.{u2} α) (PartialOrder.toPreorder.{u2} (Filter.{u2} α) (Filter.instPartialOrderFilter.{u2} α))) l l') (forall (i' : ι'), (p' i') -> (Membership.mem.{u2, u2} (Set.{u2} α) (Filter.{u2} α) (instMembershipSetFilter.{u2} α) (s' i') l)))
 Case conversion may be inaccurate. Consider using '#align filter.has_basis.ge_iff Filter.HasBasis.ge_iffₓ'. -/
@@ -782,7 +782,7 @@ theorem hasBasis_iInf {ι : Type _} {ι' : ι → Type _} {l : ι → Filter α}
 
 /- warning: filter.has_basis_infi_of_directed' -> Filter.hasBasis_iInf_of_directed' is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Type.{u2}} {ι' : ι -> Type.{u3}} [_inst_1 : Nonempty.{succ u2} ι] {l : ι -> (Filter.{u1} α)} (s : forall (i : ι), (ι' i) -> (Set.{u1} α)) (p : forall (i : ι), (ι' i) -> Prop), (forall (i : ι), Filter.HasBasis.{u1, succ u3} α (ι' i) (l i) (p i) (s i)) -> (Directed.{u1, succ u2} (Filter.{u1} α) ι (GE.ge.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α)))) l) -> (Filter.HasBasis.{u1, max (succ u2) (succ u3)} α (Sigma.{u2, u3} ι (fun (i : ι) => ι' i)) (iInf.{u1, succ u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => l i)) (fun (ii' : Sigma.{u2, u3} ι (fun (i : ι) => ι' i)) => p (Sigma.fst.{u2, u3} ι (fun (i : ι) => ι' i) ii') (Sigma.snd.{u2, u3} ι (fun (i : ι) => ι' i) ii')) (fun (ii' : Sigma.{u2, u3} ι (fun (i : ι) => ι' i)) => s (Sigma.fst.{u2, u3} ι (fun (i : ι) => ι' i) ii') (Sigma.snd.{u2, u3} ι (fun (i : ι) => ι' i) ii')))
+  forall {α : Type.{u1}} {ι : Type.{u2}} {ι' : ι -> Type.{u3}} [_inst_1 : Nonempty.{succ u2} ι] {l : ι -> (Filter.{u1} α)} (s : forall (i : ι), (ι' i) -> (Set.{u1} α)) (p : forall (i : ι), (ι' i) -> Prop), (forall (i : ι), Filter.HasBasis.{u1, succ u3} α (ι' i) (l i) (p i) (s i)) -> (Directed.{u1, succ u2} (Filter.{u1} α) ι (GE.ge.{u1} (Filter.{u1} α) (Preorder.toHasLe.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α)))) l) -> (Filter.HasBasis.{u1, max (succ u2) (succ u3)} α (Sigma.{u2, u3} ι (fun (i : ι) => ι' i)) (iInf.{u1, succ u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => l i)) (fun (ii' : Sigma.{u2, u3} ι (fun (i : ι) => ι' i)) => p (Sigma.fst.{u2, u3} ι (fun (i : ι) => ι' i) ii') (Sigma.snd.{u2, u3} ι (fun (i : ι) => ι' i) ii')) (fun (ii' : Sigma.{u2, u3} ι (fun (i : ι) => ι' i)) => s (Sigma.fst.{u2, u3} ι (fun (i : ι) => ι' i) ii') (Sigma.snd.{u2, u3} ι (fun (i : ι) => ι' i) ii')))
 but is expected to have type
   forall {α : Type.{u1}} {ι : Type.{u3}} {ι' : ι -> Type.{u2}} [_inst_1 : Nonempty.{succ u3} ι] {l : ι -> (Filter.{u1} α)} (s : forall (i : ι), (ι' i) -> (Set.{u1} α)) (p : forall (i : ι), (ι' i) -> Prop), (forall (i : ι), Filter.HasBasis.{u1, succ u2} α (ι' i) (l i) (p i) (s i)) -> (Directed.{u1, succ u3} (Filter.{u1} α) ι (fun (x._@.Mathlib.Order.Filter.Bases._hyg.5723 : Filter.{u1} α) (x._@.Mathlib.Order.Filter.Bases._hyg.5725 : Filter.{u1} α) => GE.ge.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α))) x._@.Mathlib.Order.Filter.Bases._hyg.5723 x._@.Mathlib.Order.Filter.Bases._hyg.5725) l) -> (Filter.HasBasis.{u1, max (succ u3) (succ u2)} α (Sigma.{u3, u2} ι (fun (i : ι) => ι' i)) (iInf.{u1, succ u3} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) ι (fun (i : ι) => l i)) (fun (ii' : Sigma.{u3, u2} ι (fun (i : ι) => ι' i)) => p (Sigma.fst.{u3, u2} ι (fun (i : ι) => ι' i) ii') (Sigma.snd.{u3, u2} ι (fun (i : ι) => ι' i) ii')) (fun (ii' : Sigma.{u3, u2} ι (fun (i : ι) => ι' i)) => s (Sigma.fst.{u3, u2} ι (fun (i : ι) => ι' i) ii') (Sigma.snd.{u3, u2} ι (fun (i : ι) => ι' i) ii')))
 Case conversion may be inaccurate. Consider using '#align filter.has_basis_infi_of_directed' Filter.hasBasis_iInf_of_directed'ₓ'. -/
@@ -798,7 +798,7 @@ theorem hasBasis_iInf_of_directed' {ι : Type _} {ι' : ι → Sort _} [Nonempty
 
 /- warning: filter.has_basis_infi_of_directed -> Filter.hasBasis_iInf_of_directed is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Type.{u2}} {ι' : Type.{u3}} [_inst_1 : Nonempty.{succ u2} ι] {l : ι -> (Filter.{u1} α)} (s : ι -> ι' -> (Set.{u1} α)) (p : ι -> ι' -> Prop), (forall (i : ι), Filter.HasBasis.{u1, succ u3} α ι' (l i) (p i) (s i)) -> (Directed.{u1, succ u2} (Filter.{u1} α) ι (GE.ge.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α)))) l) -> (Filter.HasBasis.{u1, max (succ u2) (succ u3)} α (Prod.{u2, u3} ι ι') (iInf.{u1, succ u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => l i)) (fun (ii' : Prod.{u2, u3} ι ι') => p (Prod.fst.{u2, u3} ι ι' ii') (Prod.snd.{u2, u3} ι ι' ii')) (fun (ii' : Prod.{u2, u3} ι ι') => s (Prod.fst.{u2, u3} ι ι' ii') (Prod.snd.{u2, u3} ι ι' ii')))
+  forall {α : Type.{u1}} {ι : Type.{u2}} {ι' : Type.{u3}} [_inst_1 : Nonempty.{succ u2} ι] {l : ι -> (Filter.{u1} α)} (s : ι -> ι' -> (Set.{u1} α)) (p : ι -> ι' -> Prop), (forall (i : ι), Filter.HasBasis.{u1, succ u3} α ι' (l i) (p i) (s i)) -> (Directed.{u1, succ u2} (Filter.{u1} α) ι (GE.ge.{u1} (Filter.{u1} α) (Preorder.toHasLe.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α)))) l) -> (Filter.HasBasis.{u1, max (succ u2) (succ u3)} α (Prod.{u2, u3} ι ι') (iInf.{u1, succ u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => l i)) (fun (ii' : Prod.{u2, u3} ι ι') => p (Prod.fst.{u2, u3} ι ι' ii') (Prod.snd.{u2, u3} ι ι' ii')) (fun (ii' : Prod.{u2, u3} ι ι') => s (Prod.fst.{u2, u3} ι ι' ii') (Prod.snd.{u2, u3} ι ι' ii')))
 but is expected to have type
   forall {α : Type.{u1}} {ι : Type.{u3}} {ι' : Type.{u2}} [_inst_1 : Nonempty.{succ u3} ι] {l : ι -> (Filter.{u1} α)} (s : ι -> ι' -> (Set.{u1} α)) (p : ι -> ι' -> Prop), (forall (i : ι), Filter.HasBasis.{u1, succ u2} α ι' (l i) (p i) (s i)) -> (Directed.{u1, succ u3} (Filter.{u1} α) ι (fun (x._@.Mathlib.Order.Filter.Bases._hyg.5900 : Filter.{u1} α) (x._@.Mathlib.Order.Filter.Bases._hyg.5902 : Filter.{u1} α) => GE.ge.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α))) x._@.Mathlib.Order.Filter.Bases._hyg.5900 x._@.Mathlib.Order.Filter.Bases._hyg.5902) l) -> (Filter.HasBasis.{u1, max (succ u3) (succ u2)} α (Prod.{u3, u2} ι ι') (iInf.{u1, succ u3} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) ι (fun (i : ι) => l i)) (fun (ii' : Prod.{u3, u2} ι ι') => p (Prod.fst.{u3, u2} ι ι' ii') (Prod.snd.{u3, u2} ι ι' ii')) (fun (ii' : Prod.{u3, u2} ι ι') => s (Prod.fst.{u3, u2} ι ι' ii') (Prod.snd.{u3, u2} ι ι' ii')))
 Case conversion may be inaccurate. Consider using '#align filter.has_basis_infi_of_directed Filter.hasBasis_iInf_of_directedₓ'. -/
@@ -814,7 +814,7 @@ theorem hasBasis_iInf_of_directed {ι : Type _} {ι' : Sort _} [Nonempty ι] {l
 
 /- warning: filter.has_basis_binfi_of_directed' -> Filter.hasBasis_biInf_of_directed' is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Type.{u2}} {ι' : ι -> Type.{u3}} {dom : Set.{u2} ι}, (Set.Nonempty.{u2} ι dom) -> (forall {l : ι -> (Filter.{u1} α)} (s : forall (i : ι), (ι' i) -> (Set.{u1} α)) (p : forall (i : ι), (ι' i) -> Prop), (forall (i : ι), (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i dom) -> (Filter.HasBasis.{u1, succ u3} α (ι' i) (l i) (p i) (s i))) -> (DirectedOn.{u2} ι (Order.Preimage.{succ u2, succ u1} ι (Filter.{u1} α) l (GE.ge.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))))) dom) -> (Filter.HasBasis.{u1, max (succ u2) (succ u3)} α (Sigma.{u2, u3} ι (fun (i : ι) => ι' i)) (iInf.{u1, succ u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => iInf.{u1, 0} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i dom) (fun (H : Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i dom) => l i))) (fun (ii' : Sigma.{u2, u3} ι (fun (i : ι) => ι' i)) => And (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) (Sigma.fst.{u2, u3} ι (fun (i : ι) => ι' i) ii') dom) (p (Sigma.fst.{u2, u3} ι (fun (i : ι) => ι' i) ii') (Sigma.snd.{u2, u3} ι (fun (i : ι) => ι' i) ii'))) (fun (ii' : Sigma.{u2, u3} ι (fun (i : ι) => ι' i)) => s (Sigma.fst.{u2, u3} ι (fun (i : ι) => ι' i) ii') (Sigma.snd.{u2, u3} ι (fun (i : ι) => ι' i) ii'))))
+  forall {α : Type.{u1}} {ι : Type.{u2}} {ι' : ι -> Type.{u3}} {dom : Set.{u2} ι}, (Set.Nonempty.{u2} ι dom) -> (forall {l : ι -> (Filter.{u1} α)} (s : forall (i : ι), (ι' i) -> (Set.{u1} α)) (p : forall (i : ι), (ι' i) -> Prop), (forall (i : ι), (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i dom) -> (Filter.HasBasis.{u1, succ u3} α (ι' i) (l i) (p i) (s i))) -> (DirectedOn.{u2} ι (Order.Preimage.{succ u2, succ u1} ι (Filter.{u1} α) l (GE.ge.{u1} (Filter.{u1} α) (Preorder.toHasLe.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))))) dom) -> (Filter.HasBasis.{u1, max (succ u2) (succ u3)} α (Sigma.{u2, u3} ι (fun (i : ι) => ι' i)) (iInf.{u1, succ u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => iInf.{u1, 0} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i dom) (fun (H : Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i dom) => l i))) (fun (ii' : Sigma.{u2, u3} ι (fun (i : ι) => ι' i)) => And (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) (Sigma.fst.{u2, u3} ι (fun (i : ι) => ι' i) ii') dom) (p (Sigma.fst.{u2, u3} ι (fun (i : ι) => ι' i) ii') (Sigma.snd.{u2, u3} ι (fun (i : ι) => ι' i) ii'))) (fun (ii' : Sigma.{u2, u3} ι (fun (i : ι) => ι' i)) => s (Sigma.fst.{u2, u3} ι (fun (i : ι) => ι' i) ii') (Sigma.snd.{u2, u3} ι (fun (i : ι) => ι' i) ii'))))
 but is expected to have type
   forall {α : Type.{u1}} {ι : Type.{u3}} {ι' : ι -> Type.{u2}} {dom : Set.{u3} ι}, (Set.Nonempty.{u3} ι dom) -> (forall {l : ι -> (Filter.{u1} α)} (s : forall (i : ι), (ι' i) -> (Set.{u1} α)) (p : forall (i : ι), (ι' i) -> Prop), (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i dom) -> (Filter.HasBasis.{u1, succ u2} α (ι' i) (l i) (p i) (s i))) -> (DirectedOn.{u3} ι (Order.Preimage.{succ u3, succ u1} ι (Filter.{u1} α) l (GE.ge.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α))))) dom) -> (Filter.HasBasis.{u1, max (succ u3) (succ u2)} α (Sigma.{u3, u2} ι (fun (i : ι) => ι' i)) (iInf.{u1, succ u3} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) ι (fun (i : ι) => iInf.{u1, 0} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i dom) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i dom) => l i))) (fun (ii' : Sigma.{u3, u2} ι (fun (i : ι) => ι' i)) => And (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) (Sigma.fst.{u3, u2} ι (fun (i : ι) => ι' i) ii') dom) (p (Sigma.fst.{u3, u2} ι (fun (i : ι) => ι' i) ii') (Sigma.snd.{u3, u2} ι (fun (i : ι) => ι' i) ii'))) (fun (ii' : Sigma.{u3, u2} ι (fun (i : ι) => ι' i)) => s (Sigma.fst.{u3, u2} ι (fun (i : ι) => ι' i) ii') (Sigma.snd.{u3, u2} ι (fun (i : ι) => ι' i) ii'))))
 Case conversion may be inaccurate. Consider using '#align filter.has_basis_binfi_of_directed' Filter.hasBasis_biInf_of_directed'ₓ'. -/
@@ -836,7 +836,7 @@ theorem hasBasis_biInf_of_directed' {ι : Type _} {ι' : ι → Sort _} {dom : S
 
 /- warning: filter.has_basis_binfi_of_directed -> Filter.hasBasis_biInf_of_directed is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Type.{u2}} {ι' : Type.{u3}} {dom : Set.{u2} ι}, (Set.Nonempty.{u2} ι dom) -> (forall {l : ι -> (Filter.{u1} α)} (s : ι -> ι' -> (Set.{u1} α)) (p : ι -> ι' -> Prop), (forall (i : ι), (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i dom) -> (Filter.HasBasis.{u1, succ u3} α ι' (l i) (p i) (s i))) -> (DirectedOn.{u2} ι (Order.Preimage.{succ u2, succ u1} ι (Filter.{u1} α) l (GE.ge.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))))) dom) -> (Filter.HasBasis.{u1, max (succ u2) (succ u3)} α (Prod.{u2, u3} ι ι') (iInf.{u1, succ u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => iInf.{u1, 0} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i dom) (fun (H : Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i dom) => l i))) (fun (ii' : Prod.{u2, u3} ι ι') => And (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) (Prod.fst.{u2, u3} ι ι' ii') dom) (p (Prod.fst.{u2, u3} ι ι' ii') (Prod.snd.{u2, u3} ι ι' ii'))) (fun (ii' : Prod.{u2, u3} ι ι') => s (Prod.fst.{u2, u3} ι ι' ii') (Prod.snd.{u2, u3} ι ι' ii'))))
+  forall {α : Type.{u1}} {ι : Type.{u2}} {ι' : Type.{u3}} {dom : Set.{u2} ι}, (Set.Nonempty.{u2} ι dom) -> (forall {l : ι -> (Filter.{u1} α)} (s : ι -> ι' -> (Set.{u1} α)) (p : ι -> ι' -> Prop), (forall (i : ι), (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i dom) -> (Filter.HasBasis.{u1, succ u3} α ι' (l i) (p i) (s i))) -> (DirectedOn.{u2} ι (Order.Preimage.{succ u2, succ u1} ι (Filter.{u1} α) l (GE.ge.{u1} (Filter.{u1} α) (Preorder.toHasLe.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))))) dom) -> (Filter.HasBasis.{u1, max (succ u2) (succ u3)} α (Prod.{u2, u3} ι ι') (iInf.{u1, succ u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => iInf.{u1, 0} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i dom) (fun (H : Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i dom) => l i))) (fun (ii' : Prod.{u2, u3} ι ι') => And (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) (Prod.fst.{u2, u3} ι ι' ii') dom) (p (Prod.fst.{u2, u3} ι ι' ii') (Prod.snd.{u2, u3} ι ι' ii'))) (fun (ii' : Prod.{u2, u3} ι ι') => s (Prod.fst.{u2, u3} ι ι' ii') (Prod.snd.{u2, u3} ι ι' ii'))))
 but is expected to have type
   forall {α : Type.{u1}} {ι : Type.{u3}} {ι' : Type.{u2}} {dom : Set.{u3} ι}, (Set.Nonempty.{u3} ι dom) -> (forall {l : ι -> (Filter.{u1} α)} (s : ι -> ι' -> (Set.{u1} α)) (p : ι -> ι' -> Prop), (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i dom) -> (Filter.HasBasis.{u1, succ u2} α ι' (l i) (p i) (s i))) -> (DirectedOn.{u3} ι (Order.Preimage.{succ u3, succ u1} ι (Filter.{u1} α) l (GE.ge.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α))))) dom) -> (Filter.HasBasis.{u1, max (succ u3) (succ u2)} α (Prod.{u3, u2} ι ι') (iInf.{u1, succ u3} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) ι (fun (i : ι) => iInf.{u1, 0} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i dom) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i dom) => l i))) (fun (ii' : Prod.{u3, u2} ι ι') => And (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) (Prod.fst.{u3, u2} ι ι' ii') dom) (p (Prod.fst.{u3, u2} ι ι' ii') (Prod.snd.{u3, u2} ι ι' ii'))) (fun (ii' : Prod.{u3, u2} ι ι') => s (Prod.fst.{u3, u2} ι ι' ii') (Prod.snd.{u3, u2} ι ι' ii'))))
 Case conversion may be inaccurate. Consider using '#align filter.has_basis_binfi_of_directed Filter.hasBasis_biInf_of_directedₓ'. -/
@@ -1004,7 +1004,7 @@ theorem Disjoint.exists_mem_filter_basis (h : Disjoint l l') (hl : l.HasBasis p
 
 /- warning: pairwise.exists_mem_filter_basis_of_disjoint -> Pairwise.exists_mem_filter_basis_of_disjoint is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {I : Type.{u2}} [_inst_1 : Finite.{succ u2} I] {l : I -> (Filter.{u1} α)} {ι : I -> Sort.{u3}} {p : forall (i : I), (ι i) -> Prop} {s : forall (i : I), (ι i) -> (Set.{u1} α)}, (Pairwise.{u2} I (Function.onFun.{succ u2, succ u1, 1} I (Filter.{u1} α) Prop (Disjoint.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α) (BoundedOrder.toOrderBot.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))) (CompleteLattice.toBoundedOrder.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α)))) l)) -> (forall (i : I), Filter.HasBasis.{u1, u3} α (ι i) (l i) (p i) (s i)) -> (Exists.{imax (succ u2) u3} (forall (i : I), ι i) (fun (ind : forall (i : I), ι i) => And (forall (i : I), p i (ind i)) (Pairwise.{u2} I (Function.onFun.{succ u2, succ u1, 1} I (Set.{u1} α) Prop (Disjoint.{u1} (Set.{u1} α) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} α) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} α) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)))) (fun (i : I) => s i (ind i))))))
+  forall {α : Type.{u1}} {I : Type.{u2}} [_inst_1 : Finite.{succ u2} I] {l : I -> (Filter.{u1} α)} {ι : I -> Sort.{u3}} {p : forall (i : I), (ι i) -> Prop} {s : forall (i : I), (ι i) -> (Set.{u1} α)}, (Pairwise.{u2} I (Function.onFun.{succ u2, succ u1, 1} I (Filter.{u1} α) Prop (Disjoint.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α) (BoundedOrder.toOrderBot.{u1} (Filter.{u1} α) (Preorder.toHasLe.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))) (CompleteLattice.toBoundedOrder.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α)))) l)) -> (forall (i : I), Filter.HasBasis.{u1, u3} α (ι i) (l i) (p i) (s i)) -> (Exists.{imax (succ u2) u3} (forall (i : I), ι i) (fun (ind : forall (i : I), ι i) => And (forall (i : I), p i (ind i)) (Pairwise.{u2} I (Function.onFun.{succ u2, succ u1, 1} I (Set.{u1} α) Prop (Disjoint.{u1} (Set.{u1} α) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} α) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} α) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)))) (fun (i : I) => s i (ind i))))))
 but is expected to have type
   forall {α : Type.{u2}} {I : Type.{u3}} [_inst_1 : Finite.{succ u3} I] {l : I -> (Filter.{u2} α)} {ι : I -> Sort.{u1}} {p : forall (i : I), (ι i) -> Prop} {s : forall (i : I), (ι i) -> (Set.{u2} α)}, (Pairwise.{u3} I (Function.onFun.{succ u3, succ u2, 1} I (Filter.{u2} α) Prop (Disjoint.{u2} (Filter.{u2} α) (Filter.instPartialOrderFilter.{u2} α) (BoundedOrder.toOrderBot.{u2} (Filter.{u2} α) (Preorder.toLE.{u2} (Filter.{u2} α) (PartialOrder.toPreorder.{u2} (Filter.{u2} α) (Filter.instPartialOrderFilter.{u2} α))) (CompleteLattice.toBoundedOrder.{u2} (Filter.{u2} α) (Filter.instCompleteLatticeFilter.{u2} α)))) l)) -> (forall (i : I), Filter.HasBasis.{u2, u1} α (ι i) (l i) (p i) (s i)) -> (Exists.{imax (succ u3) u1} (forall (i : I), ι i) (fun (ind : forall (i : I), ι i) => And (forall (i : I), p i (ind i)) (Pairwise.{u3} I (Function.onFun.{succ u3, succ u2, 1} I (Set.{u2} α) Prop (Disjoint.{u2} (Set.{u2} α) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} α) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} α) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} α) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} α) (Set.instCompleteBooleanAlgebraSet.{u2} α)))))) (BoundedOrder.toOrderBot.{u2} (Set.{u2} α) (Preorder.toLE.{u2} (Set.{u2} α) (PartialOrder.toPreorder.{u2} (Set.{u2} α) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} α) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} α) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} α) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} α) (Set.instCompleteBooleanAlgebraSet.{u2} α)))))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} α) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} α) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} α) (Set.instCompleteBooleanAlgebraSet.{u2} α))))))) (fun (i : I) => s i (ind i))))))
 Case conversion may be inaccurate. Consider using '#align pairwise.exists_mem_filter_basis_of_disjoint Pairwise.exists_mem_filter_basis_of_disjointₓ'. -/
@@ -1020,7 +1020,7 @@ theorem Pairwise.exists_mem_filter_basis_of_disjoint {I : Type _} [Finite I] {l
 
 /- warning: set.pairwise_disjoint.exists_mem_filter_basis -> Set.PairwiseDisjoint.exists_mem_filter_basis is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {I : Type.{u2}} {l : I -> (Filter.{u1} α)} {ι : I -> Sort.{u3}} {p : forall (i : I), (ι i) -> Prop} {s : forall (i : I), (ι i) -> (Set.{u1} α)} {S : Set.{u2} I}, (Set.PairwiseDisjoint.{u1, u2} (Filter.{u1} α) I (Filter.partialOrder.{u1} α) (BoundedOrder.toOrderBot.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))) (CompleteLattice.toBoundedOrder.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) S l) -> (Set.Finite.{u2} I S) -> (forall (i : I), Filter.HasBasis.{u1, u3} α (ι i) (l i) (p i) (s i)) -> (Exists.{imax (succ u2) u3} (forall (i : I), ι i) (fun (ind : forall (i : I), ι i) => And (forall (i : I), p i (ind i)) (Set.PairwiseDisjoint.{u1, u2} (Set.{u1} α) I (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} α) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} α) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α))) S (fun (i : I) => s i (ind i)))))
+  forall {α : Type.{u1}} {I : Type.{u2}} {l : I -> (Filter.{u1} α)} {ι : I -> Sort.{u3}} {p : forall (i : I), (ι i) -> Prop} {s : forall (i : I), (ι i) -> (Set.{u1} α)} {S : Set.{u2} I}, (Set.PairwiseDisjoint.{u1, u2} (Filter.{u1} α) I (Filter.partialOrder.{u1} α) (BoundedOrder.toOrderBot.{u1} (Filter.{u1} α) (Preorder.toHasLe.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))) (CompleteLattice.toBoundedOrder.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) S l) -> (Set.Finite.{u2} I S) -> (forall (i : I), Filter.HasBasis.{u1, u3} α (ι i) (l i) (p i) (s i)) -> (Exists.{imax (succ u2) u3} (forall (i : I), ι i) (fun (ind : forall (i : I), ι i) => And (forall (i : I), p i (ind i)) (Set.PairwiseDisjoint.{u1, u2} (Set.{u1} α) I (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} α) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} α) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α))) S (fun (i : I) => s i (ind i)))))
 but is expected to have type
   forall {α : Type.{u2}} {I : Type.{u3}} {l : I -> (Filter.{u2} α)} {ι : I -> Sort.{u1}} {p : forall (i : I), (ι i) -> Prop} {s : forall (i : I), (ι i) -> (Set.{u2} α)} {S : Set.{u3} I}, (Set.PairwiseDisjoint.{u2, u3} (Filter.{u2} α) I (Filter.instPartialOrderFilter.{u2} α) (BoundedOrder.toOrderBot.{u2} (Filter.{u2} α) (Preorder.toLE.{u2} (Filter.{u2} α) (PartialOrder.toPreorder.{u2} (Filter.{u2} α) (Filter.instPartialOrderFilter.{u2} α))) (CompleteLattice.toBoundedOrder.{u2} (Filter.{u2} α) (Filter.instCompleteLatticeFilter.{u2} α))) S l) -> (Set.Finite.{u3} I S) -> (forall (i : I), Filter.HasBasis.{u2, u1} α (ι i) (l i) (p i) (s i)) -> (Exists.{imax (succ u3) u1} (forall (i : I), ι i) (fun (ind : forall (i : I), ι i) => And (forall (i : I), p i (ind i)) (Set.PairwiseDisjoint.{u2, u3} (Set.{u2} α) I (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} α) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} α) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} α) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} α) (Set.instCompleteBooleanAlgebraSet.{u2} α)))))) (BoundedOrder.toOrderBot.{u2} (Set.{u2} α) (Preorder.toLE.{u2} (Set.{u2} α) (PartialOrder.toPreorder.{u2} (Set.{u2} α) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} α) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} α) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} α) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} α) (Set.instCompleteBooleanAlgebraSet.{u2} α)))))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} α) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} α) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} α) (Set.instCompleteBooleanAlgebraSet.{u2} α)))))) S (fun (i : I) => s i (ind i)))))
 Case conversion may be inaccurate. Consider using '#align set.pairwise_disjoint.exists_mem_filter_basis Set.PairwiseDisjoint.exists_mem_filter_basisₓ'. -/
@@ -1081,7 +1081,7 @@ theorem not_mem_iff_inf_principal_compl {f : Filter α} {s : Set α} : s ∉ f 
 
 /- warning: filter.disjoint_principal_right -> Filter.disjoint_principal_right is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {f : Filter.{u1} α} {s : Set.{u1} α}, Iff (Disjoint.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α) (BoundedOrder.toOrderBot.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))) (CompleteLattice.toBoundedOrder.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) f (Filter.principal.{u1} α s)) (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s) f)
+  forall {α : Type.{u1}} {f : Filter.{u1} α} {s : Set.{u1} α}, Iff (Disjoint.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α) (BoundedOrder.toOrderBot.{u1} (Filter.{u1} α) (Preorder.toHasLe.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))) (CompleteLattice.toBoundedOrder.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) f (Filter.principal.{u1} α s)) (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s) f)
 but is expected to have type
   forall {α : Type.{u1}} {f : Filter.{u1} α} {s : Set.{u1} α}, Iff (Disjoint.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α) (BoundedOrder.toOrderBot.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α))) (CompleteLattice.toBoundedOrder.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α))) f (Filter.principal.{u1} α s)) (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s) f)
 Case conversion may be inaccurate. Consider using '#align filter.disjoint_principal_right Filter.disjoint_principal_rightₓ'. -/
@@ -1092,7 +1092,7 @@ theorem disjoint_principal_right {f : Filter α} {s : Set α} : Disjoint f (𝓟
 
 /- warning: filter.disjoint_principal_left -> Filter.disjoint_principal_left is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {f : Filter.{u1} α} {s : Set.{u1} α}, Iff (Disjoint.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α) (BoundedOrder.toOrderBot.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))) (CompleteLattice.toBoundedOrder.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (Filter.principal.{u1} α s) f) (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s) f)
+  forall {α : Type.{u1}} {f : Filter.{u1} α} {s : Set.{u1} α}, Iff (Disjoint.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α) (BoundedOrder.toOrderBot.{u1} (Filter.{u1} α) (Preorder.toHasLe.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))) (CompleteLattice.toBoundedOrder.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (Filter.principal.{u1} α s) f) (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s) f)
 but is expected to have type
   forall {α : Type.{u1}} {f : Filter.{u1} α} {s : Set.{u1} α}, Iff (Disjoint.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α) (BoundedOrder.toOrderBot.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α))) (CompleteLattice.toBoundedOrder.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α))) (Filter.principal.{u1} α s) f) (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s) f)
 Case conversion may be inaccurate. Consider using '#align filter.disjoint_principal_left Filter.disjoint_principal_leftₓ'. -/
@@ -1103,7 +1103,7 @@ theorem disjoint_principal_left {f : Filter α} {s : Set α} : Disjoint (𝓟 s)
 
 /- warning: filter.disjoint_principal_principal -> Filter.disjoint_principal_principal is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α}, Iff (Disjoint.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α) (BoundedOrder.toOrderBot.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))) (CompleteLattice.toBoundedOrder.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (Filter.principal.{u1} α s) (Filter.principal.{u1} α t)) (Disjoint.{u1} (Set.{u1} α) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} α) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} α) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α))) s t)
+  forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α}, Iff (Disjoint.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α) (BoundedOrder.toOrderBot.{u1} (Filter.{u1} α) (Preorder.toHasLe.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))) (CompleteLattice.toBoundedOrder.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (Filter.principal.{u1} α s) (Filter.principal.{u1} α t)) (Disjoint.{u1} (Set.{u1} α) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} α) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} α) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α))) s t)
 but is expected to have type
   forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α}, Iff (Disjoint.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α) (BoundedOrder.toOrderBot.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α))) (CompleteLattice.toBoundedOrder.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α))) (Filter.principal.{u1} α s) (Filter.principal.{u1} α t)) (Disjoint.{u1} (Set.{u1} α) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} α) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α)))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} α) (Preorder.toLE.{u1} (Set.{u1} α) (PartialOrder.toPreorder.{u1} (Set.{u1} α) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} α) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α)))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α)))))) s t)
 Case conversion may be inaccurate. Consider using '#align filter.disjoint_principal_principal Filter.disjoint_principal_principalₓ'. -/
@@ -1114,7 +1114,7 @@ theorem disjoint_principal_principal {s t : Set α} : Disjoint (𝓟 s) (𝓟 t)
 
 /- warning: disjoint.filter_principal -> Disjoint.filter_principal is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α}, (Disjoint.{u1} (Set.{u1} α) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} α) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} α) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α))) s t) -> (Disjoint.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α) (BoundedOrder.toOrderBot.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))) (CompleteLattice.toBoundedOrder.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (Filter.principal.{u1} α s) (Filter.principal.{u1} α t))
+  forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α}, (Disjoint.{u1} (Set.{u1} α) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} α) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} α) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α))) s t) -> (Disjoint.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α) (BoundedOrder.toOrderBot.{u1} (Filter.{u1} α) (Preorder.toHasLe.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))) (CompleteLattice.toBoundedOrder.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (Filter.principal.{u1} α s) (Filter.principal.{u1} α t))
 but is expected to have type
   forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α}, (Disjoint.{u1} (Set.{u1} α) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} α) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α)))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} α) (Preorder.toLE.{u1} (Set.{u1} α) (PartialOrder.toPreorder.{u1} (Set.{u1} α) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} α) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α)))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α)))))) s t) -> (Disjoint.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α) (BoundedOrder.toOrderBot.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α))) (CompleteLattice.toBoundedOrder.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α))) (Filter.principal.{u1} α s) (Filter.principal.{u1} α t))
 Case conversion may be inaccurate. Consider using '#align disjoint.filter_principal Disjoint.filter_principalₓ'. -/
@@ -1123,7 +1123,7 @@ alias disjoint_principal_principal ↔ _ _root_.disjoint.filter_principal
 
 /- warning: filter.disjoint_pure_pure -> Filter.disjoint_pure_pure is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {x : α} {y : α}, Iff (Disjoint.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α) (BoundedOrder.toOrderBot.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))) (CompleteLattice.toBoundedOrder.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (Pure.pure.{u1, u1} Filter.{u1} Filter.hasPure.{u1} α x) (Pure.pure.{u1, u1} Filter.{u1} Filter.hasPure.{u1} α y)) (Ne.{succ u1} α x y)
+  forall {α : Type.{u1}} {x : α} {y : α}, Iff (Disjoint.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α) (BoundedOrder.toOrderBot.{u1} (Filter.{u1} α) (Preorder.toHasLe.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))) (CompleteLattice.toBoundedOrder.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (Pure.pure.{u1, u1} Filter.{u1} Filter.hasPure.{u1} α x) (Pure.pure.{u1, u1} Filter.{u1} Filter.hasPure.{u1} α y)) (Ne.{succ u1} α x y)
 but is expected to have type
   forall {α : Type.{u1}} {x : α} {y : α}, Iff (Disjoint.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α) (BoundedOrder.toOrderBot.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α))) (CompleteLattice.toBoundedOrder.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α))) (Pure.pure.{u1, u1} Filter.{u1} Filter.instPureFilter.{u1} α x) (Pure.pure.{u1, u1} Filter.{u1} Filter.instPureFilter.{u1} α y)) (Ne.{succ u1} α x y)
 Case conversion may be inaccurate. Consider using '#align filter.disjoint_pure_pure Filter.disjoint_pure_pureₓ'. -/
@@ -1134,7 +1134,7 @@ theorem disjoint_pure_pure {x y : α} : Disjoint (pure x : Filter α) (pure y) 
 
 /- warning: filter.compl_diagonal_mem_prod -> Filter.compl_diagonal_mem_prod is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {l₁ : Filter.{u1} α} {l₂ : Filter.{u1} α}, Iff (Membership.Mem.{u1, u1} (Set.{u1} (Prod.{u1, u1} α α)) (Filter.{u1} (Prod.{u1, u1} α α)) (Filter.hasMem.{u1} (Prod.{u1, u1} α α)) (HasCompl.compl.{u1} (Set.{u1} (Prod.{u1, u1} α α)) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} (Prod.{u1, u1} α α)) (Set.booleanAlgebra.{u1} (Prod.{u1, u1} α α))) (Set.diagonal.{u1} α)) (Filter.prod.{u1, u1} α α l₁ l₂)) (Disjoint.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α) (BoundedOrder.toOrderBot.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))) (CompleteLattice.toBoundedOrder.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) l₁ l₂)
+  forall {α : Type.{u1}} {l₁ : Filter.{u1} α} {l₂ : Filter.{u1} α}, Iff (Membership.Mem.{u1, u1} (Set.{u1} (Prod.{u1, u1} α α)) (Filter.{u1} (Prod.{u1, u1} α α)) (Filter.hasMem.{u1} (Prod.{u1, u1} α α)) (HasCompl.compl.{u1} (Set.{u1} (Prod.{u1, u1} α α)) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} (Prod.{u1, u1} α α)) (Set.booleanAlgebra.{u1} (Prod.{u1, u1} α α))) (Set.diagonal.{u1} α)) (Filter.prod.{u1, u1} α α l₁ l₂)) (Disjoint.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α) (BoundedOrder.toOrderBot.{u1} (Filter.{u1} α) (Preorder.toHasLe.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))) (CompleteLattice.toBoundedOrder.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) l₁ l₂)
 but is expected to have type
   forall {α : Type.{u1}} {l₁ : Filter.{u1} α} {l₂ : Filter.{u1} α}, Iff (Membership.mem.{u1, u1} (Set.{u1} (Prod.{u1, u1} α α)) (Filter.{u1} (Prod.{u1, u1} α α)) (instMembershipSetFilter.{u1} (Prod.{u1, u1} α α)) (HasCompl.compl.{u1} (Set.{u1} (Prod.{u1, u1} α α)) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} (Prod.{u1, u1} α α)) (Set.instBooleanAlgebraSet.{u1} (Prod.{u1, u1} α α))) (Set.diagonal.{u1} α)) (Filter.prod.{u1, u1} α α l₁ l₂)) (Disjoint.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α) (BoundedOrder.toOrderBot.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α))) (CompleteLattice.toBoundedOrder.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α))) l₁ l₂)
 Case conversion may be inaccurate. Consider using '#align filter.compl_diagonal_mem_prod Filter.compl_diagonal_mem_prodₓ'. -/
@@ -1156,7 +1156,7 @@ theorem HasBasis.disjoint_iff_right (h : l.HasBasis p s) :
 
 /- warning: filter.le_iff_forall_inf_principal_compl -> Filter.le_iff_forall_inf_principal_compl is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {f : Filter.{u1} α} {g : Filter.{u1} α}, Iff (LE.le.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))) f g) (forall (V : Set.{u1} α), (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) V g) -> (Eq.{succ u1} (Filter.{u1} α) (Inf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) f (Filter.principal.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) V))) (Bot.bot.{u1} (Filter.{u1} α) (CompleteLattice.toHasBot.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α)))))
+  forall {α : Type.{u1}} {f : Filter.{u1} α} {g : Filter.{u1} α}, Iff (LE.le.{u1} (Filter.{u1} α) (Preorder.toHasLe.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))) f g) (forall (V : Set.{u1} α), (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) V g) -> (Eq.{succ u1} (Filter.{u1} α) (Inf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) f (Filter.principal.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) V))) (Bot.bot.{u1} (Filter.{u1} α) (CompleteLattice.toHasBot.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α)))))
 but is expected to have type
   forall {α : Type.{u1}} {f : Filter.{u1} α} {g : Filter.{u1} α}, Iff (LE.le.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α))) f g) (forall (V : Set.{u1} α), (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) V g) -> (Eq.{succ u1} (Filter.{u1} α) (Inf.inf.{u1} (Filter.{u1} α) (Filter.instInfFilter.{u1} α) f (Filter.principal.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) V))) (Bot.bot.{u1} (Filter.{u1} α) (CompleteLattice.toBot.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)))))
 Case conversion may be inaccurate. Consider using '#align filter.le_iff_forall_inf_principal_compl Filter.le_iff_forall_inf_principal_complₓ'. -/
@@ -1720,13 +1720,17 @@ protected theorem HasAntitoneBasis.mem [Preorder ι] {l : Filter α} {s : ι →
 #align filter.has_antitone_basis.mem Filter.HasAntitoneBasis.mem
 -/
 
-#print Filter.HasAntitoneBasis.hasBasis_ge /-
+/- warning: filter.has_antitone_basis.has_basis_ge -> Filter.HasAntitoneBasis.hasBasis_ge is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {ι : Type.{u2}} [_inst_1 : Preorder.{u2} ι] [_inst_2 : IsDirected.{u2} ι (LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_1))] {l : Filter.{u1} α} {s : ι -> (Set.{u1} α)}, (Filter.HasAntitoneBasis.{u1, u2} α ι _inst_1 l s) -> (forall (i : ι), Filter.HasBasis.{u1, succ u2} α ι l (fun (j : ι) => LE.le.{u2} ι (Preorder.toHasLe.{u2} ι _inst_1) i j) s)
+but is expected to have type
+  forall {α : Type.{u1}} {ι : Type.{u2}} [_inst_1 : Preorder.{u2} ι] [_inst_2 : IsDirected.{u2} ι (fun (x._@.Mathlib.Order.Filter.Bases._hyg.13517 : ι) (x._@.Mathlib.Order.Filter.Bases._hyg.13519 : ι) => LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_1) x._@.Mathlib.Order.Filter.Bases._hyg.13517 x._@.Mathlib.Order.Filter.Bases._hyg.13519)] {l : Filter.{u1} α} {s : ι -> (Set.{u1} α)}, (Filter.HasAntitoneBasis.{u1, u2} α ι _inst_1 l s) -> (forall (i : ι), Filter.HasBasis.{u1, succ u2} α ι l (fun (j : ι) => LE.le.{u2} ι (Preorder.toLE.{u2} ι _inst_1) i j) s)
+Case conversion may be inaccurate. Consider using '#align filter.has_antitone_basis.has_basis_ge Filter.HasAntitoneBasis.hasBasis_geₓ'. -/
 theorem HasAntitoneBasis.hasBasis_ge [Preorder ι] [IsDirected ι (· ≤ ·)] {l : Filter α}
     {s : ι → Set α} (hs : l.HasAntitoneBasis s) (i : ι) : l.HasBasis (fun j => i ≤ j) s :=
   hs.1.to_hasBasis (fun j _ => (exists_ge_ge i j).imp fun k hk => ⟨hk.1, hs.2 hk.2⟩) fun j hj =>
     ⟨j, trivial, Subset.rfl⟩
 #align filter.has_antitone_basis.has_basis_ge Filter.HasAntitoneBasis.hasBasis_ge
--/
 
 /- warning: filter.has_basis.exists_antitone_subbasis -> Filter.HasBasis.exists_antitone_subbasis is a dubious translation:
 lean 3 declaration is
Diff
@@ -204,13 +204,13 @@ theorem mem_filter_of_mem (B : FilterBasis α) {U : Set α} : U ∈ B → U ∈
 #align filter_basis.mem_filter_of_mem FilterBasis.mem_filter_of_mem
 -/
 
-/- warning: filter_basis.eq_infi_principal -> FilterBasis.eq_infᵢ_principal is a dubious translation:
+/- warning: filter_basis.eq_infi_principal -> FilterBasis.eq_iInf_principal is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} (B : FilterBasis.{u1} α), Eq.{succ u1} (Filter.{u1} α) (FilterBasis.filter.{u1} α B) (infᵢ.{u1, succ u1} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} (Set.{u1} α)) Type.{u1} (Set.hasCoeToSort.{u1} (Set.{u1} α)) (FilterBasis.sets.{u1} α B)) (fun (s : coeSort.{succ u1, succ (succ u1)} (Set.{u1} (Set.{u1} α)) Type.{u1} (Set.hasCoeToSort.{u1} (Set.{u1} α)) (FilterBasis.sets.{u1} α B)) => Filter.principal.{u1} α ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} (Set.{u1} α)) Type.{u1} (Set.hasCoeToSort.{u1} (Set.{u1} α)) (FilterBasis.sets.{u1} α B)) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} (Set.{u1} α)) Type.{u1} (Set.hasCoeToSort.{u1} (Set.{u1} α)) (FilterBasis.sets.{u1} α B)) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} (Set.{u1} α)) Type.{u1} (Set.hasCoeToSort.{u1} (Set.{u1} α)) (FilterBasis.sets.{u1} α B)) (Set.{u1} α) (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} (Set.{u1} α)) Type.{u1} (Set.hasCoeToSort.{u1} (Set.{u1} α)) (FilterBasis.sets.{u1} α B)) (Set.{u1} α) (coeSubtype.{succ u1} (Set.{u1} α) (fun (x : Set.{u1} α) => Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) x (FilterBasis.sets.{u1} α B)))))) s)))
+  forall {α : Type.{u1}} (B : FilterBasis.{u1} α), Eq.{succ u1} (Filter.{u1} α) (FilterBasis.filter.{u1} α B) (iInf.{u1, succ u1} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} (Set.{u1} α)) Type.{u1} (Set.hasCoeToSort.{u1} (Set.{u1} α)) (FilterBasis.sets.{u1} α B)) (fun (s : coeSort.{succ u1, succ (succ u1)} (Set.{u1} (Set.{u1} α)) Type.{u1} (Set.hasCoeToSort.{u1} (Set.{u1} α)) (FilterBasis.sets.{u1} α B)) => Filter.principal.{u1} α ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} (Set.{u1} α)) Type.{u1} (Set.hasCoeToSort.{u1} (Set.{u1} α)) (FilterBasis.sets.{u1} α B)) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} (Set.{u1} α)) Type.{u1} (Set.hasCoeToSort.{u1} (Set.{u1} α)) (FilterBasis.sets.{u1} α B)) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} (Set.{u1} α)) Type.{u1} (Set.hasCoeToSort.{u1} (Set.{u1} α)) (FilterBasis.sets.{u1} α B)) (Set.{u1} α) (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} (Set.{u1} α)) Type.{u1} (Set.hasCoeToSort.{u1} (Set.{u1} α)) (FilterBasis.sets.{u1} α B)) (Set.{u1} α) (coeSubtype.{succ u1} (Set.{u1} α) (fun (x : Set.{u1} α) => Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) x (FilterBasis.sets.{u1} α B)))))) s)))
 but is expected to have type
-  forall {α : Type.{u1}} (B : FilterBasis.{u1} α), Eq.{succ u1} (Filter.{u1} α) (FilterBasis.filter.{u1} α B) (infᵢ.{u1, succ u1} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) (Set.Elem.{u1} (Set.{u1} α) (FilterBasis.sets.{u1} α B)) (fun (s : Set.Elem.{u1} (Set.{u1} α) (FilterBasis.sets.{u1} α B)) => Filter.principal.{u1} α (Subtype.val.{succ u1} (Set.{u1} α) (fun (x : Set.{u1} α) => Membership.mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.instMembershipSet.{u1} (Set.{u1} α)) x (FilterBasis.sets.{u1} α B)) s)))
-Case conversion may be inaccurate. Consider using '#align filter_basis.eq_infi_principal FilterBasis.eq_infᵢ_principalₓ'. -/
-theorem eq_infᵢ_principal (B : FilterBasis α) : B.filterₓ = ⨅ s : B.sets, 𝓟 s :=
+  forall {α : Type.{u1}} (B : FilterBasis.{u1} α), Eq.{succ u1} (Filter.{u1} α) (FilterBasis.filter.{u1} α B) (iInf.{u1, succ u1} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) (Set.Elem.{u1} (Set.{u1} α) (FilterBasis.sets.{u1} α B)) (fun (s : Set.Elem.{u1} (Set.{u1} α) (FilterBasis.sets.{u1} α B)) => Filter.principal.{u1} α (Subtype.val.{succ u1} (Set.{u1} α) (fun (x : Set.{u1} α) => Membership.mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.instMembershipSet.{u1} (Set.{u1} α)) x (FilterBasis.sets.{u1} α B)) s)))
+Case conversion may be inaccurate. Consider using '#align filter_basis.eq_infi_principal FilterBasis.eq_iInf_principalₓ'. -/
+theorem eq_iInf_principal (B : FilterBasis α) : B.filterₓ = ⨅ s : B.sets, 𝓟 s :=
   by
   have : Directed (· ≥ ·) fun s : B.sets => 𝓟 (s : Set α) :=
     by
@@ -221,7 +221,7 @@ theorem eq_infᵢ_principal (B : FilterBasis α) : B.filterₓ = ⨅ s : B.sets,
     exact subset_inter_iff.mp W_sub
   ext U
   simp [mem_filter_iff, mem_infi_of_directed this]
-#align filter_basis.eq_infi_principal FilterBasis.eq_infᵢ_principal
+#align filter_basis.eq_infi_principal FilterBasis.eq_iInf_principal
 
 #print FilterBasis.generate /-
 protected theorem generate (B : FilterBasis α) : generate B.sets = B.filterₓ :=
@@ -303,8 +303,8 @@ theorem hasBasis_generate (s : Set (Set α)) :
 /-- The smallest filter basis containing a given collection of sets. -/
 def FilterBasis.ofSets (s : Set (Set α)) : FilterBasis α
     where
-  sets := interₛ '' { t | Set.Finite t ∧ t ⊆ s }
-  Nonempty := ⟨univ, ∅, ⟨⟨finite_empty, empty_subset s⟩, interₛ_empty⟩⟩
+  sets := sInter '' { t | Set.Finite t ∧ t ⊆ s }
+  Nonempty := ⟨univ, ∅, ⟨⟨finite_empty, empty_subset s⟩, sInter_empty⟩⟩
   inter_sets := by
     rintro _ _ ⟨a, ⟨fina, suba⟩, rfl⟩ ⟨b, ⟨finb, subb⟩, rfl⟩
     exact
@@ -460,7 +460,7 @@ theorem HasBasis.eq_generate (h : l.HasBasis p s) : l = generate { U | ∃ i, p
 
 #print Filter.generate_eq_generate_inter /-
 theorem generate_eq_generate_inter (s : Set (Set α)) :
-    generate s = generate (interₛ '' { t | Set.Finite t ∧ t ⊆ s }) := by
+    generate s = generate (sInter '' { t | Set.Finite t ∧ t ⊆ s }) := by
   erw [(filter_basis.of_sets s).generate, ← (has_basis_generate s).filter_eq] <;> rfl
 #align filter.generate_eq_generate_inter Filter.generate_eq_generate_inter
 -/
@@ -736,13 +736,13 @@ theorem HasBasis.inf {ι ι' : Type _} {p : ι → Prop} {s : ι → Set α} {p'
     ⟨⟨i.1, i.2⟩, hi, Subset.rfl⟩
 #align filter.has_basis.inf Filter.HasBasis.inf
 
-/- warning: filter.has_basis_infi' -> Filter.hasBasis_infᵢ' is a dubious translation:
+/- warning: filter.has_basis_infi' -> Filter.hasBasis_iInf' is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Type.{u2}} {ι' : ι -> Type.{u3}} {l : ι -> (Filter.{u1} α)} {p : forall (i : ι), (ι' i) -> Prop} {s : forall (i : ι), (ι' i) -> (Set.{u1} α)}, (forall (i : ι), Filter.HasBasis.{u1, succ u3} α (ι' i) (l i) (p i) (s i)) -> (Filter.HasBasis.{u1, max (succ u2) (succ (max u2 u3))} α (Prod.{u2, max u2 u3} (Set.{u2} ι) (forall (i : ι), ι' i)) (infᵢ.{u1, succ u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => l i)) (fun (If : Prod.{u2, max u2 u3} (Set.{u2} ι) (forall (i : ι), ι' i)) => And (Set.Finite.{u2} ι (Prod.fst.{u2, max u2 u3} (Set.{u2} ι) (forall (i : ι), ι' i) If)) (forall (i : ι), (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i (Prod.fst.{u2, max u2 u3} (Set.{u2} ι) (forall (i : ι), ι' i) If)) -> (p i (Prod.snd.{u2, max u2 u3} (Set.{u2} ι) (forall (i : ι), ι' i) If i)))) (fun (If : Prod.{u2, max u2 u3} (Set.{u2} ι) (forall (i : ι), ι' i)) => Set.interᵢ.{u1, succ u2} α ι (fun (i : ι) => Set.interᵢ.{u1, 0} α (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i (Prod.fst.{u2, max u2 u3} (Set.{u2} ι) (forall (i : ι), ι' i) If)) (fun (H : Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i (Prod.fst.{u2, max u2 u3} (Set.{u2} ι) (forall (i : ι), ι' i) If)) => s i (Prod.snd.{u2, max u2 u3} (Set.{u2} ι) (forall (i : ι), ι' i) If i)))))
+  forall {α : Type.{u1}} {ι : Type.{u2}} {ι' : ι -> Type.{u3}} {l : ι -> (Filter.{u1} α)} {p : forall (i : ι), (ι' i) -> Prop} {s : forall (i : ι), (ι' i) -> (Set.{u1} α)}, (forall (i : ι), Filter.HasBasis.{u1, succ u3} α (ι' i) (l i) (p i) (s i)) -> (Filter.HasBasis.{u1, max (succ u2) (succ (max u2 u3))} α (Prod.{u2, max u2 u3} (Set.{u2} ι) (forall (i : ι), ι' i)) (iInf.{u1, succ u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => l i)) (fun (If : Prod.{u2, max u2 u3} (Set.{u2} ι) (forall (i : ι), ι' i)) => And (Set.Finite.{u2} ι (Prod.fst.{u2, max u2 u3} (Set.{u2} ι) (forall (i : ι), ι' i) If)) (forall (i : ι), (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i (Prod.fst.{u2, max u2 u3} (Set.{u2} ι) (forall (i : ι), ι' i) If)) -> (p i (Prod.snd.{u2, max u2 u3} (Set.{u2} ι) (forall (i : ι), ι' i) If i)))) (fun (If : Prod.{u2, max u2 u3} (Set.{u2} ι) (forall (i : ι), ι' i)) => Set.iInter.{u1, succ u2} α ι (fun (i : ι) => Set.iInter.{u1, 0} α (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i (Prod.fst.{u2, max u2 u3} (Set.{u2} ι) (forall (i : ι), ι' i) If)) (fun (H : Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i (Prod.fst.{u2, max u2 u3} (Set.{u2} ι) (forall (i : ι), ι' i) If)) => s i (Prod.snd.{u2, max u2 u3} (Set.{u2} ι) (forall (i : ι), ι' i) If i)))))
 but is expected to have type
-  forall {α : Type.{u1}} {ι : Type.{u3}} {ι' : ι -> Type.{u2}} {l : ι -> (Filter.{u1} α)} {p : forall (i : ι), (ι' i) -> Prop} {s : forall (i : ι), (ι' i) -> (Set.{u1} α)}, (forall (i : ι), Filter.HasBasis.{u1, succ u2} α (ι' i) (l i) (p i) (s i)) -> (Filter.HasBasis.{u1, max (succ u3) (succ u2)} α (Prod.{u3, max u3 u2} (Set.{u3} ι) (forall (i : ι), ι' i)) (infᵢ.{u1, succ u3} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) ι (fun (i : ι) => l i)) (fun (If : Prod.{u3, max u3 u2} (Set.{u3} ι) (forall (i : ι), ι' i)) => And (Set.Finite.{u3} ι (Prod.fst.{u3, max u3 u2} (Set.{u3} ι) (forall (i : ι), ι' i) If)) (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i (Prod.fst.{u3, max u3 u2} (Set.{u3} ι) (forall (i : ι), ι' i) If)) -> (p i (Prod.snd.{u3, max u3 u2} (Set.{u3} ι) (forall (i : ι), ι' i) If i)))) (fun (If : Prod.{u3, max u3 u2} (Set.{u3} ι) (forall (i : ι), ι' i)) => Set.interᵢ.{u1, succ u3} α ι (fun (i : ι) => Set.interᵢ.{u1, 0} α (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i (Prod.fst.{u3, max u3 u2} (Set.{u3} ι) (forall (i : ι), ι' i) If)) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i (Prod.fst.{u3, max u3 u2} (Set.{u3} ι) (forall (i : ι), ι' i) If)) => s i (Prod.snd.{u3, max u3 u2} (Set.{u3} ι) (forall (i : ι), ι' i) If i)))))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis_infi' Filter.hasBasis_infᵢ'ₓ'. -/
-theorem hasBasis_infᵢ' {ι : Type _} {ι' : ι → Type _} {l : ι → Filter α} {p : ∀ i, ι' i → Prop}
+  forall {α : Type.{u1}} {ι : Type.{u3}} {ι' : ι -> Type.{u2}} {l : ι -> (Filter.{u1} α)} {p : forall (i : ι), (ι' i) -> Prop} {s : forall (i : ι), (ι' i) -> (Set.{u1} α)}, (forall (i : ι), Filter.HasBasis.{u1, succ u2} α (ι' i) (l i) (p i) (s i)) -> (Filter.HasBasis.{u1, max (succ u3) (succ u2)} α (Prod.{u3, max u3 u2} (Set.{u3} ι) (forall (i : ι), ι' i)) (iInf.{u1, succ u3} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) ι (fun (i : ι) => l i)) (fun (If : Prod.{u3, max u3 u2} (Set.{u3} ι) (forall (i : ι), ι' i)) => And (Set.Finite.{u3} ι (Prod.fst.{u3, max u3 u2} (Set.{u3} ι) (forall (i : ι), ι' i) If)) (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i (Prod.fst.{u3, max u3 u2} (Set.{u3} ι) (forall (i : ι), ι' i) If)) -> (p i (Prod.snd.{u3, max u3 u2} (Set.{u3} ι) (forall (i : ι), ι' i) If i)))) (fun (If : Prod.{u3, max u3 u2} (Set.{u3} ι) (forall (i : ι), ι' i)) => Set.iInter.{u1, succ u3} α ι (fun (i : ι) => Set.iInter.{u1, 0} α (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i (Prod.fst.{u3, max u3 u2} (Set.{u3} ι) (forall (i : ι), ι' i) If)) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i (Prod.fst.{u3, max u3 u2} (Set.{u3} ι) (forall (i : ι), ι' i) If)) => s i (Prod.snd.{u3, max u3 u2} (Set.{u3} ι) (forall (i : ι), ι' i) If i)))))
+Case conversion may be inaccurate. Consider using '#align filter.has_basis_infi' Filter.hasBasis_iInf'ₓ'. -/
+theorem hasBasis_iInf' {ι : Type _} {ι' : ι → Type _} {l : ι → Filter α} {p : ∀ i, ι' i → Prop}
     {s : ∀ i, ι' i → Set α} (hl : ∀ i, (l i).HasBasis (p i) (s i)) :
     (⨅ i, l i).HasBasis (fun If : Set ι × ∀ i, ι' i => If.1.Finite ∧ ∀ i ∈ If.1, p i (If.2 i))
       fun If : Set ι × ∀ i, ι' i => ⋂ i ∈ If.1, s i (If.2 i) :=
@@ -756,15 +756,15 @@ theorem hasBasis_infᵢ' {ι : Type _} {ι' : ι → Type _} {l : ι → Filter
     · rintro ⟨⟨I, f⟩, ⟨hI₁, hI₂⟩, hsub⟩
       refine' mem_of_superset _ hsub
       exact (bInter_mem hI₁).mpr fun i hi => mem_infi_of_mem i <| (hl i).mem_of_mem <| hI₂ _ hi⟩
-#align filter.has_basis_infi' Filter.hasBasis_infᵢ'
+#align filter.has_basis_infi' Filter.hasBasis_iInf'
 
-/- warning: filter.has_basis_infi -> Filter.hasBasis_infᵢ is a dubious translation:
+/- warning: filter.has_basis_infi -> Filter.hasBasis_iInf is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Type.{u2}} {ι' : ι -> Type.{u3}} {l : ι -> (Filter.{u1} α)} {p : forall (i : ι), (ι' i) -> Prop} {s : forall (i : ι), (ι' i) -> (Set.{u1} α)}, (forall (i : ι), Filter.HasBasis.{u1, succ u3} α (ι' i) (l i) (p i) (s i)) -> (Filter.HasBasis.{u1, max (succ u2) (succ (max u2 u3))} α (Sigma.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i))) (infᵢ.{u1, succ u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => l i)) (fun (If : Sigma.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i))) => And (Set.Finite.{u2} ι (Sigma.fst.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If)) (forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (Sigma.fst.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If)), p ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (Sigma.fst.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If)) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (Sigma.fst.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If)) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (Sigma.fst.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If)) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (Sigma.fst.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If)) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x (Sigma.fst.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If)))))) i) (Sigma.snd.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If i))) (fun (If : Sigma.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i))) => Set.interᵢ.{u1, succ u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (Sigma.fst.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If)) (fun (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (Sigma.fst.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If)) => s ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (Sigma.fst.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If)) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (Sigma.fst.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If)) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (Sigma.fst.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If)) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (Sigma.fst.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If)) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x (Sigma.fst.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If)))))) i) (Sigma.snd.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If i))))
+  forall {α : Type.{u1}} {ι : Type.{u2}} {ι' : ι -> Type.{u3}} {l : ι -> (Filter.{u1} α)} {p : forall (i : ι), (ι' i) -> Prop} {s : forall (i : ι), (ι' i) -> (Set.{u1} α)}, (forall (i : ι), Filter.HasBasis.{u1, succ u3} α (ι' i) (l i) (p i) (s i)) -> (Filter.HasBasis.{u1, max (succ u2) (succ (max u2 u3))} α (Sigma.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i))) (iInf.{u1, succ u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => l i)) (fun (If : Sigma.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i))) => And (Set.Finite.{u2} ι (Sigma.fst.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If)) (forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (Sigma.fst.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If)), p ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (Sigma.fst.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If)) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (Sigma.fst.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If)) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (Sigma.fst.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If)) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (Sigma.fst.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If)) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x (Sigma.fst.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If)))))) i) (Sigma.snd.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If i))) (fun (If : Sigma.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i))) => Set.iInter.{u1, succ u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (Sigma.fst.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If)) (fun (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (Sigma.fst.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If)) => s ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (Sigma.fst.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If)) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (Sigma.fst.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If)) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (Sigma.fst.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If)) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (Sigma.fst.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If)) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x (Sigma.fst.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If)))))) i) (Sigma.snd.{u2, max u2 u3} (Set.{u2} ι) (fun (I : Set.{u2} ι) => forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I), ι' ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) I) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x I))))) i)) If i))))
 but is expected to have type
-  forall {α : Type.{u1}} {ι : Type.{u3}} {ι' : ι -> Type.{u2}} {l : ι -> (Filter.{u1} α)} {p : forall (i : ι), (ι' i) -> Prop} {s : forall (i : ι), (ι' i) -> (Set.{u1} α)}, (forall (i : ι), Filter.HasBasis.{u1, succ u2} α (ι' i) (l i) (p i) (s i)) -> (Filter.HasBasis.{u1, max (succ u3) (succ u2)} α (Sigma.{u3, max u3 u2} (Set.{u3} ι) (fun (I : Set.{u3} ι) => forall (i : Set.Elem.{u3} ι I), ι' (Subtype.val.{succ u3} ι (fun (x : ι) => Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) x I) i))) (infᵢ.{u1, succ u3} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) ι (fun (i : ι) => l i)) (fun (If : Sigma.{u3, max u3 u2} (Set.{u3} ι) (fun (I : Set.{u3} ι) => forall (i : Set.Elem.{u3} ι I), ι' (Subtype.val.{succ u3} ι (fun (x : ι) => Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) x I) i))) => And (Set.Finite.{u3} ι (Sigma.fst.{u3, max u3 u2} (Set.{u3} ι) (fun (I : Set.{u3} ι) => forall (i : Set.Elem.{u3} ι I), ι' (Subtype.val.{succ u3} ι (fun (x : ι) => Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) x I) i)) If)) (forall (i : Set.Elem.{u3} ι (Sigma.fst.{u3, max u3 u2} (Set.{u3} ι) (fun (I : Set.{u3} ι) => forall (i : Set.Elem.{u3} ι I), ι' (Subtype.val.{succ u3} ι (fun (x : ι) => Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) x I) i)) If)), p (Subtype.val.{succ u3} ι (fun (x : ι) => Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) x (Sigma.fst.{u3, max u3 u2} (Set.{u3} ι) (fun (I : Set.{u3} ι) => forall (i : Set.Elem.{u3} ι I), ι' (Subtype.val.{succ u3} ι (fun (x : ι) => Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) x I) i)) If)) i) (Sigma.snd.{u3, max u3 u2} (Set.{u3} ι) (fun (I : Set.{u3} ι) => forall (i : Set.Elem.{u3} ι I), ι' (Subtype.val.{succ u3} ι (fun (x : ι) => Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) x I) i)) If i))) (fun (If : Sigma.{u3, max u3 u2} (Set.{u3} ι) (fun (I : Set.{u3} ι) => forall (i : Set.Elem.{u3} ι I), ι' (Subtype.val.{succ u3} ι (fun (x : ι) => Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) x I) i))) => Set.interᵢ.{u1, succ u3} α (Set.Elem.{u3} ι (Sigma.fst.{u3, max u3 u2} (Set.{u3} ι) (fun (I : Set.{u3} ι) => forall (i : Set.Elem.{u3} ι I), ι' (Subtype.val.{succ u3} ι (fun (x : ι) => Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) x I) i)) If)) (fun (i : Set.Elem.{u3} ι (Sigma.fst.{u3, max u3 u2} (Set.{u3} ι) (fun (I : Set.{u3} ι) => forall (i : Set.Elem.{u3} ι I), ι' (Subtype.val.{succ u3} ι (fun (x : ι) => Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) x I) i)) If)) => s (Subtype.val.{succ u3} ι (fun (x : ι) => Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) x (Sigma.fst.{u3, max u3 u2} (Set.{u3} ι) (fun (I : Set.{u3} ι) => forall (i : Set.Elem.{u3} ι I), ι' (Subtype.val.{succ u3} ι (fun (x : ι) => Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) x I) i)) If)) i) (Sigma.snd.{u3, max u3 u2} (Set.{u3} ι) (fun (I : Set.{u3} ι) => forall (i : Set.Elem.{u3} ι I), ι' (Subtype.val.{succ u3} ι (fun (x : ι) => Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) x I) i)) If i))))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis_infi Filter.hasBasis_infᵢₓ'. -/
-theorem hasBasis_infᵢ {ι : Type _} {ι' : ι → Type _} {l : ι → Filter α} {p : ∀ i, ι' i → Prop}
+  forall {α : Type.{u1}} {ι : Type.{u3}} {ι' : ι -> Type.{u2}} {l : ι -> (Filter.{u1} α)} {p : forall (i : ι), (ι' i) -> Prop} {s : forall (i : ι), (ι' i) -> (Set.{u1} α)}, (forall (i : ι), Filter.HasBasis.{u1, succ u2} α (ι' i) (l i) (p i) (s i)) -> (Filter.HasBasis.{u1, max (succ u3) (succ u2)} α (Sigma.{u3, max u3 u2} (Set.{u3} ι) (fun (I : Set.{u3} ι) => forall (i : Set.Elem.{u3} ι I), ι' (Subtype.val.{succ u3} ι (fun (x : ι) => Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) x I) i))) (iInf.{u1, succ u3} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) ι (fun (i : ι) => l i)) (fun (If : Sigma.{u3, max u3 u2} (Set.{u3} ι) (fun (I : Set.{u3} ι) => forall (i : Set.Elem.{u3} ι I), ι' (Subtype.val.{succ u3} ι (fun (x : ι) => Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) x I) i))) => And (Set.Finite.{u3} ι (Sigma.fst.{u3, max u3 u2} (Set.{u3} ι) (fun (I : Set.{u3} ι) => forall (i : Set.Elem.{u3} ι I), ι' (Subtype.val.{succ u3} ι (fun (x : ι) => Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) x I) i)) If)) (forall (i : Set.Elem.{u3} ι (Sigma.fst.{u3, max u3 u2} (Set.{u3} ι) (fun (I : Set.{u3} ι) => forall (i : Set.Elem.{u3} ι I), ι' (Subtype.val.{succ u3} ι (fun (x : ι) => Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) x I) i)) If)), p (Subtype.val.{succ u3} ι (fun (x : ι) => Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) x (Sigma.fst.{u3, max u3 u2} (Set.{u3} ι) (fun (I : Set.{u3} ι) => forall (i : Set.Elem.{u3} ι I), ι' (Subtype.val.{succ u3} ι (fun (x : ι) => Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) x I) i)) If)) i) (Sigma.snd.{u3, max u3 u2} (Set.{u3} ι) (fun (I : Set.{u3} ι) => forall (i : Set.Elem.{u3} ι I), ι' (Subtype.val.{succ u3} ι (fun (x : ι) => Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) x I) i)) If i))) (fun (If : Sigma.{u3, max u3 u2} (Set.{u3} ι) (fun (I : Set.{u3} ι) => forall (i : Set.Elem.{u3} ι I), ι' (Subtype.val.{succ u3} ι (fun (x : ι) => Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) x I) i))) => Set.iInter.{u1, succ u3} α (Set.Elem.{u3} ι (Sigma.fst.{u3, max u3 u2} (Set.{u3} ι) (fun (I : Set.{u3} ι) => forall (i : Set.Elem.{u3} ι I), ι' (Subtype.val.{succ u3} ι (fun (x : ι) => Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) x I) i)) If)) (fun (i : Set.Elem.{u3} ι (Sigma.fst.{u3, max u3 u2} (Set.{u3} ι) (fun (I : Set.{u3} ι) => forall (i : Set.Elem.{u3} ι I), ι' (Subtype.val.{succ u3} ι (fun (x : ι) => Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) x I) i)) If)) => s (Subtype.val.{succ u3} ι (fun (x : ι) => Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) x (Sigma.fst.{u3, max u3 u2} (Set.{u3} ι) (fun (I : Set.{u3} ι) => forall (i : Set.Elem.{u3} ι I), ι' (Subtype.val.{succ u3} ι (fun (x : ι) => Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) x I) i)) If)) i) (Sigma.snd.{u3, max u3 u2} (Set.{u3} ι) (fun (I : Set.{u3} ι) => forall (i : Set.Elem.{u3} ι I), ι' (Subtype.val.{succ u3} ι (fun (x : ι) => Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) x I) i)) If i))))
+Case conversion may be inaccurate. Consider using '#align filter.has_basis_infi Filter.hasBasis_iInfₓ'. -/
+theorem hasBasis_iInf {ι : Type _} {ι' : ι → Type _} {l : ι → Filter α} {p : ∀ i, ι' i → Prop}
     {s : ∀ i, ι' i → Set α} (hl : ∀ i, (l i).HasBasis (p i) (s i)) :
     (⨅ i, l i).HasBasis
       (fun If : ΣI : Set ι, ∀ i : I, ι' i => If.1.Finite ∧ ∀ i : If.1, p i (If.2 i)) fun If =>
@@ -778,15 +778,15 @@ theorem hasBasis_infᵢ {ι : Type _} {ι' : ι → Type _} {l : ι → Filter 
     refine' mem_of_superset _ hsub
     cases hI.nonempty_fintype
     exact Inter_mem.2 fun i => mem_infi_of_mem i <| (hl i).mem_of_mem <| hf _
-#align filter.has_basis_infi Filter.hasBasis_infᵢ
+#align filter.has_basis_infi Filter.hasBasis_iInf
 
-/- warning: filter.has_basis_infi_of_directed' -> Filter.hasBasis_infᵢ_of_directed' is a dubious translation:
+/- warning: filter.has_basis_infi_of_directed' -> Filter.hasBasis_iInf_of_directed' is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Type.{u2}} {ι' : ι -> Type.{u3}} [_inst_1 : Nonempty.{succ u2} ι] {l : ι -> (Filter.{u1} α)} (s : forall (i : ι), (ι' i) -> (Set.{u1} α)) (p : forall (i : ι), (ι' i) -> Prop), (forall (i : ι), Filter.HasBasis.{u1, succ u3} α (ι' i) (l i) (p i) (s i)) -> (Directed.{u1, succ u2} (Filter.{u1} α) ι (GE.ge.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α)))) l) -> (Filter.HasBasis.{u1, max (succ u2) (succ u3)} α (Sigma.{u2, u3} ι (fun (i : ι) => ι' i)) (infᵢ.{u1, succ u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => l i)) (fun (ii' : Sigma.{u2, u3} ι (fun (i : ι) => ι' i)) => p (Sigma.fst.{u2, u3} ι (fun (i : ι) => ι' i) ii') (Sigma.snd.{u2, u3} ι (fun (i : ι) => ι' i) ii')) (fun (ii' : Sigma.{u2, u3} ι (fun (i : ι) => ι' i)) => s (Sigma.fst.{u2, u3} ι (fun (i : ι) => ι' i) ii') (Sigma.snd.{u2, u3} ι (fun (i : ι) => ι' i) ii')))
+  forall {α : Type.{u1}} {ι : Type.{u2}} {ι' : ι -> Type.{u3}} [_inst_1 : Nonempty.{succ u2} ι] {l : ι -> (Filter.{u1} α)} (s : forall (i : ι), (ι' i) -> (Set.{u1} α)) (p : forall (i : ι), (ι' i) -> Prop), (forall (i : ι), Filter.HasBasis.{u1, succ u3} α (ι' i) (l i) (p i) (s i)) -> (Directed.{u1, succ u2} (Filter.{u1} α) ι (GE.ge.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α)))) l) -> (Filter.HasBasis.{u1, max (succ u2) (succ u3)} α (Sigma.{u2, u3} ι (fun (i : ι) => ι' i)) (iInf.{u1, succ u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => l i)) (fun (ii' : Sigma.{u2, u3} ι (fun (i : ι) => ι' i)) => p (Sigma.fst.{u2, u3} ι (fun (i : ι) => ι' i) ii') (Sigma.snd.{u2, u3} ι (fun (i : ι) => ι' i) ii')) (fun (ii' : Sigma.{u2, u3} ι (fun (i : ι) => ι' i)) => s (Sigma.fst.{u2, u3} ι (fun (i : ι) => ι' i) ii') (Sigma.snd.{u2, u3} ι (fun (i : ι) => ι' i) ii')))
 but is expected to have type
-  forall {α : Type.{u1}} {ι : Type.{u3}} {ι' : ι -> Type.{u2}} [_inst_1 : Nonempty.{succ u3} ι] {l : ι -> (Filter.{u1} α)} (s : forall (i : ι), (ι' i) -> (Set.{u1} α)) (p : forall (i : ι), (ι' i) -> Prop), (forall (i : ι), Filter.HasBasis.{u1, succ u2} α (ι' i) (l i) (p i) (s i)) -> (Directed.{u1, succ u3} (Filter.{u1} α) ι (fun (x._@.Mathlib.Order.Filter.Bases._hyg.5723 : Filter.{u1} α) (x._@.Mathlib.Order.Filter.Bases._hyg.5725 : Filter.{u1} α) => GE.ge.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α))) x._@.Mathlib.Order.Filter.Bases._hyg.5723 x._@.Mathlib.Order.Filter.Bases._hyg.5725) l) -> (Filter.HasBasis.{u1, max (succ u3) (succ u2)} α (Sigma.{u3, u2} ι (fun (i : ι) => ι' i)) (infᵢ.{u1, succ u3} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) ι (fun (i : ι) => l i)) (fun (ii' : Sigma.{u3, u2} ι (fun (i : ι) => ι' i)) => p (Sigma.fst.{u3, u2} ι (fun (i : ι) => ι' i) ii') (Sigma.snd.{u3, u2} ι (fun (i : ι) => ι' i) ii')) (fun (ii' : Sigma.{u3, u2} ι (fun (i : ι) => ι' i)) => s (Sigma.fst.{u3, u2} ι (fun (i : ι) => ι' i) ii') (Sigma.snd.{u3, u2} ι (fun (i : ι) => ι' i) ii')))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis_infi_of_directed' Filter.hasBasis_infᵢ_of_directed'ₓ'. -/
-theorem hasBasis_infᵢ_of_directed' {ι : Type _} {ι' : ι → Sort _} [Nonempty ι] {l : ι → Filter α}
+  forall {α : Type.{u1}} {ι : Type.{u3}} {ι' : ι -> Type.{u2}} [_inst_1 : Nonempty.{succ u3} ι] {l : ι -> (Filter.{u1} α)} (s : forall (i : ι), (ι' i) -> (Set.{u1} α)) (p : forall (i : ι), (ι' i) -> Prop), (forall (i : ι), Filter.HasBasis.{u1, succ u2} α (ι' i) (l i) (p i) (s i)) -> (Directed.{u1, succ u3} (Filter.{u1} α) ι (fun (x._@.Mathlib.Order.Filter.Bases._hyg.5723 : Filter.{u1} α) (x._@.Mathlib.Order.Filter.Bases._hyg.5725 : Filter.{u1} α) => GE.ge.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α))) x._@.Mathlib.Order.Filter.Bases._hyg.5723 x._@.Mathlib.Order.Filter.Bases._hyg.5725) l) -> (Filter.HasBasis.{u1, max (succ u3) (succ u2)} α (Sigma.{u3, u2} ι (fun (i : ι) => ι' i)) (iInf.{u1, succ u3} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) ι (fun (i : ι) => l i)) (fun (ii' : Sigma.{u3, u2} ι (fun (i : ι) => ι' i)) => p (Sigma.fst.{u3, u2} ι (fun (i : ι) => ι' i) ii') (Sigma.snd.{u3, u2} ι (fun (i : ι) => ι' i) ii')) (fun (ii' : Sigma.{u3, u2} ι (fun (i : ι) => ι' i)) => s (Sigma.fst.{u3, u2} ι (fun (i : ι) => ι' i) ii') (Sigma.snd.{u3, u2} ι (fun (i : ι) => ι' i) ii')))
+Case conversion may be inaccurate. Consider using '#align filter.has_basis_infi_of_directed' Filter.hasBasis_iInf_of_directed'ₓ'. -/
+theorem hasBasis_iInf_of_directed' {ι : Type _} {ι' : ι → Sort _} [Nonempty ι] {l : ι → Filter α}
     (s : ∀ i, ι' i → Set α) (p : ∀ i, ι' i → Prop) (hl : ∀ i, (l i).HasBasis (p i) (s i))
     (h : Directed (· ≥ ·) l) :
     (⨅ i, l i).HasBasis (fun ii' : Σi, ι' i => p ii'.1 ii'.2) fun ii' => s ii'.1 ii'.2 :=
@@ -794,15 +794,15 @@ theorem hasBasis_infᵢ_of_directed' {ι : Type _} {ι' : ι → Sort _} [Nonemp
   refine' ⟨fun t => _⟩
   rw [mem_infi_of_directed h, Sigma.exists]
   exact exists_congr fun i => (hl i).mem_iff
-#align filter.has_basis_infi_of_directed' Filter.hasBasis_infᵢ_of_directed'
+#align filter.has_basis_infi_of_directed' Filter.hasBasis_iInf_of_directed'
 
-/- warning: filter.has_basis_infi_of_directed -> Filter.hasBasis_infᵢ_of_directed is a dubious translation:
+/- warning: filter.has_basis_infi_of_directed -> Filter.hasBasis_iInf_of_directed is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Type.{u2}} {ι' : Type.{u3}} [_inst_1 : Nonempty.{succ u2} ι] {l : ι -> (Filter.{u1} α)} (s : ι -> ι' -> (Set.{u1} α)) (p : ι -> ι' -> Prop), (forall (i : ι), Filter.HasBasis.{u1, succ u3} α ι' (l i) (p i) (s i)) -> (Directed.{u1, succ u2} (Filter.{u1} α) ι (GE.ge.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α)))) l) -> (Filter.HasBasis.{u1, max (succ u2) (succ u3)} α (Prod.{u2, u3} ι ι') (infᵢ.{u1, succ u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => l i)) (fun (ii' : Prod.{u2, u3} ι ι') => p (Prod.fst.{u2, u3} ι ι' ii') (Prod.snd.{u2, u3} ι ι' ii')) (fun (ii' : Prod.{u2, u3} ι ι') => s (Prod.fst.{u2, u3} ι ι' ii') (Prod.snd.{u2, u3} ι ι' ii')))
+  forall {α : Type.{u1}} {ι : Type.{u2}} {ι' : Type.{u3}} [_inst_1 : Nonempty.{succ u2} ι] {l : ι -> (Filter.{u1} α)} (s : ι -> ι' -> (Set.{u1} α)) (p : ι -> ι' -> Prop), (forall (i : ι), Filter.HasBasis.{u1, succ u3} α ι' (l i) (p i) (s i)) -> (Directed.{u1, succ u2} (Filter.{u1} α) ι (GE.ge.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α)))) l) -> (Filter.HasBasis.{u1, max (succ u2) (succ u3)} α (Prod.{u2, u3} ι ι') (iInf.{u1, succ u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => l i)) (fun (ii' : Prod.{u2, u3} ι ι') => p (Prod.fst.{u2, u3} ι ι' ii') (Prod.snd.{u2, u3} ι ι' ii')) (fun (ii' : Prod.{u2, u3} ι ι') => s (Prod.fst.{u2, u3} ι ι' ii') (Prod.snd.{u2, u3} ι ι' ii')))
 but is expected to have type
-  forall {α : Type.{u1}} {ι : Type.{u3}} {ι' : Type.{u2}} [_inst_1 : Nonempty.{succ u3} ι] {l : ι -> (Filter.{u1} α)} (s : ι -> ι' -> (Set.{u1} α)) (p : ι -> ι' -> Prop), (forall (i : ι), Filter.HasBasis.{u1, succ u2} α ι' (l i) (p i) (s i)) -> (Directed.{u1, succ u3} (Filter.{u1} α) ι (fun (x._@.Mathlib.Order.Filter.Bases._hyg.5900 : Filter.{u1} α) (x._@.Mathlib.Order.Filter.Bases._hyg.5902 : Filter.{u1} α) => GE.ge.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α))) x._@.Mathlib.Order.Filter.Bases._hyg.5900 x._@.Mathlib.Order.Filter.Bases._hyg.5902) l) -> (Filter.HasBasis.{u1, max (succ u3) (succ u2)} α (Prod.{u3, u2} ι ι') (infᵢ.{u1, succ u3} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) ι (fun (i : ι) => l i)) (fun (ii' : Prod.{u3, u2} ι ι') => p (Prod.fst.{u3, u2} ι ι' ii') (Prod.snd.{u3, u2} ι ι' ii')) (fun (ii' : Prod.{u3, u2} ι ι') => s (Prod.fst.{u3, u2} ι ι' ii') (Prod.snd.{u3, u2} ι ι' ii')))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis_infi_of_directed Filter.hasBasis_infᵢ_of_directedₓ'. -/
-theorem hasBasis_infᵢ_of_directed {ι : Type _} {ι' : Sort _} [Nonempty ι] {l : ι → Filter α}
+  forall {α : Type.{u1}} {ι : Type.{u3}} {ι' : Type.{u2}} [_inst_1 : Nonempty.{succ u3} ι] {l : ι -> (Filter.{u1} α)} (s : ι -> ι' -> (Set.{u1} α)) (p : ι -> ι' -> Prop), (forall (i : ι), Filter.HasBasis.{u1, succ u2} α ι' (l i) (p i) (s i)) -> (Directed.{u1, succ u3} (Filter.{u1} α) ι (fun (x._@.Mathlib.Order.Filter.Bases._hyg.5900 : Filter.{u1} α) (x._@.Mathlib.Order.Filter.Bases._hyg.5902 : Filter.{u1} α) => GE.ge.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α))) x._@.Mathlib.Order.Filter.Bases._hyg.5900 x._@.Mathlib.Order.Filter.Bases._hyg.5902) l) -> (Filter.HasBasis.{u1, max (succ u3) (succ u2)} α (Prod.{u3, u2} ι ι') (iInf.{u1, succ u3} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) ι (fun (i : ι) => l i)) (fun (ii' : Prod.{u3, u2} ι ι') => p (Prod.fst.{u3, u2} ι ι' ii') (Prod.snd.{u3, u2} ι ι' ii')) (fun (ii' : Prod.{u3, u2} ι ι') => s (Prod.fst.{u3, u2} ι ι' ii') (Prod.snd.{u3, u2} ι ι' ii')))
+Case conversion may be inaccurate. Consider using '#align filter.has_basis_infi_of_directed Filter.hasBasis_iInf_of_directedₓ'. -/
+theorem hasBasis_iInf_of_directed {ι : Type _} {ι' : Sort _} [Nonempty ι] {l : ι → Filter α}
     (s : ι → ι' → Set α) (p : ι → ι' → Prop) (hl : ∀ i, (l i).HasBasis (p i) (s i))
     (h : Directed (· ≥ ·) l) :
     (⨅ i, l i).HasBasis (fun ii' : ι × ι' => p ii'.1 ii'.2) fun ii' => s ii'.1 ii'.2 :=
@@ -810,15 +810,15 @@ theorem hasBasis_infᵢ_of_directed {ι : Type _} {ι' : Sort _} [Nonempty ι] {
   refine' ⟨fun t => _⟩
   rw [mem_infi_of_directed h, Prod.exists]
   exact exists_congr fun i => (hl i).mem_iff
-#align filter.has_basis_infi_of_directed Filter.hasBasis_infᵢ_of_directed
+#align filter.has_basis_infi_of_directed Filter.hasBasis_iInf_of_directed
 
-/- warning: filter.has_basis_binfi_of_directed' -> Filter.hasBasis_binfᵢ_of_directed' is a dubious translation:
+/- warning: filter.has_basis_binfi_of_directed' -> Filter.hasBasis_biInf_of_directed' is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Type.{u2}} {ι' : ι -> Type.{u3}} {dom : Set.{u2} ι}, (Set.Nonempty.{u2} ι dom) -> (forall {l : ι -> (Filter.{u1} α)} (s : forall (i : ι), (ι' i) -> (Set.{u1} α)) (p : forall (i : ι), (ι' i) -> Prop), (forall (i : ι), (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i dom) -> (Filter.HasBasis.{u1, succ u3} α (ι' i) (l i) (p i) (s i))) -> (DirectedOn.{u2} ι (Order.Preimage.{succ u2, succ u1} ι (Filter.{u1} α) l (GE.ge.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))))) dom) -> (Filter.HasBasis.{u1, max (succ u2) (succ u3)} α (Sigma.{u2, u3} ι (fun (i : ι) => ι' i)) (infᵢ.{u1, succ u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => infᵢ.{u1, 0} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i dom) (fun (H : Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i dom) => l i))) (fun (ii' : Sigma.{u2, u3} ι (fun (i : ι) => ι' i)) => And (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) (Sigma.fst.{u2, u3} ι (fun (i : ι) => ι' i) ii') dom) (p (Sigma.fst.{u2, u3} ι (fun (i : ι) => ι' i) ii') (Sigma.snd.{u2, u3} ι (fun (i : ι) => ι' i) ii'))) (fun (ii' : Sigma.{u2, u3} ι (fun (i : ι) => ι' i)) => s (Sigma.fst.{u2, u3} ι (fun (i : ι) => ι' i) ii') (Sigma.snd.{u2, u3} ι (fun (i : ι) => ι' i) ii'))))
+  forall {α : Type.{u1}} {ι : Type.{u2}} {ι' : ι -> Type.{u3}} {dom : Set.{u2} ι}, (Set.Nonempty.{u2} ι dom) -> (forall {l : ι -> (Filter.{u1} α)} (s : forall (i : ι), (ι' i) -> (Set.{u1} α)) (p : forall (i : ι), (ι' i) -> Prop), (forall (i : ι), (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i dom) -> (Filter.HasBasis.{u1, succ u3} α (ι' i) (l i) (p i) (s i))) -> (DirectedOn.{u2} ι (Order.Preimage.{succ u2, succ u1} ι (Filter.{u1} α) l (GE.ge.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))))) dom) -> (Filter.HasBasis.{u1, max (succ u2) (succ u3)} α (Sigma.{u2, u3} ι (fun (i : ι) => ι' i)) (iInf.{u1, succ u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => iInf.{u1, 0} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i dom) (fun (H : Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i dom) => l i))) (fun (ii' : Sigma.{u2, u3} ι (fun (i : ι) => ι' i)) => And (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) (Sigma.fst.{u2, u3} ι (fun (i : ι) => ι' i) ii') dom) (p (Sigma.fst.{u2, u3} ι (fun (i : ι) => ι' i) ii') (Sigma.snd.{u2, u3} ι (fun (i : ι) => ι' i) ii'))) (fun (ii' : Sigma.{u2, u3} ι (fun (i : ι) => ι' i)) => s (Sigma.fst.{u2, u3} ι (fun (i : ι) => ι' i) ii') (Sigma.snd.{u2, u3} ι (fun (i : ι) => ι' i) ii'))))
 but is expected to have type
-  forall {α : Type.{u1}} {ι : Type.{u3}} {ι' : ι -> Type.{u2}} {dom : Set.{u3} ι}, (Set.Nonempty.{u3} ι dom) -> (forall {l : ι -> (Filter.{u1} α)} (s : forall (i : ι), (ι' i) -> (Set.{u1} α)) (p : forall (i : ι), (ι' i) -> Prop), (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i dom) -> (Filter.HasBasis.{u1, succ u2} α (ι' i) (l i) (p i) (s i))) -> (DirectedOn.{u3} ι (Order.Preimage.{succ u3, succ u1} ι (Filter.{u1} α) l (GE.ge.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α))))) dom) -> (Filter.HasBasis.{u1, max (succ u3) (succ u2)} α (Sigma.{u3, u2} ι (fun (i : ι) => ι' i)) (infᵢ.{u1, succ u3} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) ι (fun (i : ι) => infᵢ.{u1, 0} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i dom) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i dom) => l i))) (fun (ii' : Sigma.{u3, u2} ι (fun (i : ι) => ι' i)) => And (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) (Sigma.fst.{u3, u2} ι (fun (i : ι) => ι' i) ii') dom) (p (Sigma.fst.{u3, u2} ι (fun (i : ι) => ι' i) ii') (Sigma.snd.{u3, u2} ι (fun (i : ι) => ι' i) ii'))) (fun (ii' : Sigma.{u3, u2} ι (fun (i : ι) => ι' i)) => s (Sigma.fst.{u3, u2} ι (fun (i : ι) => ι' i) ii') (Sigma.snd.{u3, u2} ι (fun (i : ι) => ι' i) ii'))))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis_binfi_of_directed' Filter.hasBasis_binfᵢ_of_directed'ₓ'. -/
-theorem hasBasis_binfᵢ_of_directed' {ι : Type _} {ι' : ι → Sort _} {dom : Set ι}
+  forall {α : Type.{u1}} {ι : Type.{u3}} {ι' : ι -> Type.{u2}} {dom : Set.{u3} ι}, (Set.Nonempty.{u3} ι dom) -> (forall {l : ι -> (Filter.{u1} α)} (s : forall (i : ι), (ι' i) -> (Set.{u1} α)) (p : forall (i : ι), (ι' i) -> Prop), (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i dom) -> (Filter.HasBasis.{u1, succ u2} α (ι' i) (l i) (p i) (s i))) -> (DirectedOn.{u3} ι (Order.Preimage.{succ u3, succ u1} ι (Filter.{u1} α) l (GE.ge.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α))))) dom) -> (Filter.HasBasis.{u1, max (succ u3) (succ u2)} α (Sigma.{u3, u2} ι (fun (i : ι) => ι' i)) (iInf.{u1, succ u3} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) ι (fun (i : ι) => iInf.{u1, 0} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i dom) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i dom) => l i))) (fun (ii' : Sigma.{u3, u2} ι (fun (i : ι) => ι' i)) => And (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) (Sigma.fst.{u3, u2} ι (fun (i : ι) => ι' i) ii') dom) (p (Sigma.fst.{u3, u2} ι (fun (i : ι) => ι' i) ii') (Sigma.snd.{u3, u2} ι (fun (i : ι) => ι' i) ii'))) (fun (ii' : Sigma.{u3, u2} ι (fun (i : ι) => ι' i)) => s (Sigma.fst.{u3, u2} ι (fun (i : ι) => ι' i) ii') (Sigma.snd.{u3, u2} ι (fun (i : ι) => ι' i) ii'))))
+Case conversion may be inaccurate. Consider using '#align filter.has_basis_binfi_of_directed' Filter.hasBasis_biInf_of_directed'ₓ'. -/
+theorem hasBasis_biInf_of_directed' {ι : Type _} {ι' : ι → Sort _} {dom : Set ι}
     (hdom : dom.Nonempty) {l : ι → Filter α} (s : ∀ i, ι' i → Set α) (p : ∀ i, ι' i → Prop)
     (hl : ∀ i ∈ dom, (l i).HasBasis (p i) (s i)) (h : DirectedOn (l ⁻¹'o GE.ge) dom) :
     (⨅ i ∈ dom, l i).HasBasis (fun ii' : Σi, ι' i => ii'.1 ∈ dom ∧ p ii'.1 ii'.2) fun ii' =>
@@ -832,15 +832,15 @@ theorem hasBasis_binfᵢ_of_directed' {ι : Type _} {ι' : ι → Sort _} {dom :
     exact ⟨b, ⟨hi, hb⟩, hbt⟩
   · rintro ⟨b, ⟨hi, hb⟩, hibt⟩
     exact ⟨hi, (hl i hi).mem_iff.mpr ⟨b, hb, hibt⟩⟩
-#align filter.has_basis_binfi_of_directed' Filter.hasBasis_binfᵢ_of_directed'
+#align filter.has_basis_binfi_of_directed' Filter.hasBasis_biInf_of_directed'
 
-/- warning: filter.has_basis_binfi_of_directed -> Filter.hasBasis_binfᵢ_of_directed is a dubious translation:
+/- warning: filter.has_basis_binfi_of_directed -> Filter.hasBasis_biInf_of_directed is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Type.{u2}} {ι' : Type.{u3}} {dom : Set.{u2} ι}, (Set.Nonempty.{u2} ι dom) -> (forall {l : ι -> (Filter.{u1} α)} (s : ι -> ι' -> (Set.{u1} α)) (p : ι -> ι' -> Prop), (forall (i : ι), (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i dom) -> (Filter.HasBasis.{u1, succ u3} α ι' (l i) (p i) (s i))) -> (DirectedOn.{u2} ι (Order.Preimage.{succ u2, succ u1} ι (Filter.{u1} α) l (GE.ge.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))))) dom) -> (Filter.HasBasis.{u1, max (succ u2) (succ u3)} α (Prod.{u2, u3} ι ι') (infᵢ.{u1, succ u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => infᵢ.{u1, 0} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i dom) (fun (H : Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i dom) => l i))) (fun (ii' : Prod.{u2, u3} ι ι') => And (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) (Prod.fst.{u2, u3} ι ι' ii') dom) (p (Prod.fst.{u2, u3} ι ι' ii') (Prod.snd.{u2, u3} ι ι' ii'))) (fun (ii' : Prod.{u2, u3} ι ι') => s (Prod.fst.{u2, u3} ι ι' ii') (Prod.snd.{u2, u3} ι ι' ii'))))
+  forall {α : Type.{u1}} {ι : Type.{u2}} {ι' : Type.{u3}} {dom : Set.{u2} ι}, (Set.Nonempty.{u2} ι dom) -> (forall {l : ι -> (Filter.{u1} α)} (s : ι -> ι' -> (Set.{u1} α)) (p : ι -> ι' -> Prop), (forall (i : ι), (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i dom) -> (Filter.HasBasis.{u1, succ u3} α ι' (l i) (p i) (s i))) -> (DirectedOn.{u2} ι (Order.Preimage.{succ u2, succ u1} ι (Filter.{u1} α) l (GE.ge.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))))) dom) -> (Filter.HasBasis.{u1, max (succ u2) (succ u3)} α (Prod.{u2, u3} ι ι') (iInf.{u1, succ u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => iInf.{u1, 0} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i dom) (fun (H : Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i dom) => l i))) (fun (ii' : Prod.{u2, u3} ι ι') => And (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) (Prod.fst.{u2, u3} ι ι' ii') dom) (p (Prod.fst.{u2, u3} ι ι' ii') (Prod.snd.{u2, u3} ι ι' ii'))) (fun (ii' : Prod.{u2, u3} ι ι') => s (Prod.fst.{u2, u3} ι ι' ii') (Prod.snd.{u2, u3} ι ι' ii'))))
 but is expected to have type
-  forall {α : Type.{u1}} {ι : Type.{u3}} {ι' : Type.{u2}} {dom : Set.{u3} ι}, (Set.Nonempty.{u3} ι dom) -> (forall {l : ι -> (Filter.{u1} α)} (s : ι -> ι' -> (Set.{u1} α)) (p : ι -> ι' -> Prop), (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i dom) -> (Filter.HasBasis.{u1, succ u2} α ι' (l i) (p i) (s i))) -> (DirectedOn.{u3} ι (Order.Preimage.{succ u3, succ u1} ι (Filter.{u1} α) l (GE.ge.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α))))) dom) -> (Filter.HasBasis.{u1, max (succ u3) (succ u2)} α (Prod.{u3, u2} ι ι') (infᵢ.{u1, succ u3} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) ι (fun (i : ι) => infᵢ.{u1, 0} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i dom) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i dom) => l i))) (fun (ii' : Prod.{u3, u2} ι ι') => And (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) (Prod.fst.{u3, u2} ι ι' ii') dom) (p (Prod.fst.{u3, u2} ι ι' ii') (Prod.snd.{u3, u2} ι ι' ii'))) (fun (ii' : Prod.{u3, u2} ι ι') => s (Prod.fst.{u3, u2} ι ι' ii') (Prod.snd.{u3, u2} ι ι' ii'))))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis_binfi_of_directed Filter.hasBasis_binfᵢ_of_directedₓ'. -/
-theorem hasBasis_binfᵢ_of_directed {ι : Type _} {ι' : Sort _} {dom : Set ι} (hdom : dom.Nonempty)
+  forall {α : Type.{u1}} {ι : Type.{u3}} {ι' : Type.{u2}} {dom : Set.{u3} ι}, (Set.Nonempty.{u3} ι dom) -> (forall {l : ι -> (Filter.{u1} α)} (s : ι -> ι' -> (Set.{u1} α)) (p : ι -> ι' -> Prop), (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i dom) -> (Filter.HasBasis.{u1, succ u2} α ι' (l i) (p i) (s i))) -> (DirectedOn.{u3} ι (Order.Preimage.{succ u3, succ u1} ι (Filter.{u1} α) l (GE.ge.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α))))) dom) -> (Filter.HasBasis.{u1, max (succ u3) (succ u2)} α (Prod.{u3, u2} ι ι') (iInf.{u1, succ u3} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) ι (fun (i : ι) => iInf.{u1, 0} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i dom) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i dom) => l i))) (fun (ii' : Prod.{u3, u2} ι ι') => And (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) (Prod.fst.{u3, u2} ι ι' ii') dom) (p (Prod.fst.{u3, u2} ι ι' ii') (Prod.snd.{u3, u2} ι ι' ii'))) (fun (ii' : Prod.{u3, u2} ι ι') => s (Prod.fst.{u3, u2} ι ι' ii') (Prod.snd.{u3, u2} ι ι' ii'))))
+Case conversion may be inaccurate. Consider using '#align filter.has_basis_binfi_of_directed Filter.hasBasis_biInf_of_directedₓ'. -/
+theorem hasBasis_biInf_of_directed {ι : Type _} {ι' : Sort _} {dom : Set ι} (hdom : dom.Nonempty)
     {l : ι → Filter α} (s : ι → ι' → Set α) (p : ι → ι' → Prop)
     (hl : ∀ i ∈ dom, (l i).HasBasis (p i) (s i)) (h : DirectedOn (l ⁻¹'o GE.ge) dom) :
     (⨅ i ∈ dom, l i).HasBasis (fun ii' : ι × ι' => ii'.1 ∈ dom ∧ p ii'.1 ii'.2) fun ii' =>
@@ -854,7 +854,7 @@ theorem hasBasis_binfᵢ_of_directed {ι : Type _} {ι' : Sort _} {dom : Set ι}
     exact ⟨b, ⟨hi, hb⟩, hbt⟩
   · rintro ⟨b, ⟨hi, hb⟩, hibt⟩
     exact ⟨hi, (hl i hi).mem_iff.mpr ⟨b, hb, hibt⟩⟩
-#align filter.has_basis_binfi_of_directed Filter.hasBasis_binfᵢ_of_directed
+#align filter.has_basis_binfi_of_directed Filter.hasBasis_biInf_of_directed
 
 #print Filter.hasBasis_principal /-
 theorem hasBasis_principal (t : Set α) : (𝓟 t).HasBasis (fun i : Unit => True) fun i => t :=
@@ -896,19 +896,19 @@ theorem HasBasis.sup {ι ι' : Type _} {p : ι → Prop} {s : ι → Set α} {p'
     ⟨⟨i.1, i.2⟩, hi, Subset.rfl⟩
 #align filter.has_basis.sup Filter.HasBasis.sup
 
-/- warning: filter.has_basis_supr -> Filter.hasBasis_supᵢ is a dubious translation:
+/- warning: filter.has_basis_supr -> Filter.hasBasis_iSup is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {ι' : ι -> Type.{u3}} {l : ι -> (Filter.{u1} α)} {p : forall (i : ι), (ι' i) -> Prop} {s : forall (i : ι), (ι' i) -> (Set.{u1} α)}, (forall (i : ι), Filter.HasBasis.{u1, succ u3} α (ι' i) (l i) (p i) (s i)) -> (Filter.HasBasis.{u1, max u2 (succ u3)} α (forall (i : ι), ι' i) (supᵢ.{u1, u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasSup.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => l i)) (fun (f : forall (i : ι), ι' i) => forall (i : ι), p i (f i)) (fun (f : forall (i : ι), ι' i) => Set.unionᵢ.{u1, u2} α ι (fun (i : ι) => s i (f i))))
+  forall {α : Type.{u1}} {ι : Sort.{u2}} {ι' : ι -> Type.{u3}} {l : ι -> (Filter.{u1} α)} {p : forall (i : ι), (ι' i) -> Prop} {s : forall (i : ι), (ι' i) -> (Set.{u1} α)}, (forall (i : ι), Filter.HasBasis.{u1, succ u3} α (ι' i) (l i) (p i) (s i)) -> (Filter.HasBasis.{u1, max u2 (succ u3)} α (forall (i : ι), ι' i) (iSup.{u1, u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasSup.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => l i)) (fun (f : forall (i : ι), ι' i) => forall (i : ι), p i (f i)) (fun (f : forall (i : ι), ι' i) => Set.iUnion.{u1, u2} α ι (fun (i : ι) => s i (f i))))
 but is expected to have type
-  forall {α : Type.{u1}} {ι : Sort.{u3}} {ι' : ι -> Type.{u2}} {l : ι -> (Filter.{u1} α)} {p : forall (i : ι), (ι' i) -> Prop} {s : forall (i : ι), (ι' i) -> (Set.{u1} α)}, (forall (i : ι), Filter.HasBasis.{u1, succ u2} α (ι' i) (l i) (p i) (s i)) -> (Filter.HasBasis.{u1, max u3 (succ u2)} α (forall (i : ι), ι' i) (supᵢ.{u1, u3} (Filter.{u1} α) (CompleteLattice.toSupSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) ι (fun (i : ι) => l i)) (fun (f : forall (i : ι), ι' i) => forall (i : ι), p i (f i)) (fun (f : forall (i : ι), ι' i) => Set.unionᵢ.{u1, u3} α ι (fun (i : ι) => s i (f i))))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis_supr Filter.hasBasis_supᵢₓ'. -/
-theorem hasBasis_supᵢ {ι : Sort _} {ι' : ι → Type _} {l : ι → Filter α} {p : ∀ i, ι' i → Prop}
+  forall {α : Type.{u1}} {ι : Sort.{u3}} {ι' : ι -> Type.{u2}} {l : ι -> (Filter.{u1} α)} {p : forall (i : ι), (ι' i) -> Prop} {s : forall (i : ι), (ι' i) -> (Set.{u1} α)}, (forall (i : ι), Filter.HasBasis.{u1, succ u2} α (ι' i) (l i) (p i) (s i)) -> (Filter.HasBasis.{u1, max u3 (succ u2)} α (forall (i : ι), ι' i) (iSup.{u1, u3} (Filter.{u1} α) (CompleteLattice.toSupSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) ι (fun (i : ι) => l i)) (fun (f : forall (i : ι), ι' i) => forall (i : ι), p i (f i)) (fun (f : forall (i : ι), ι' i) => Set.iUnion.{u1, u3} α ι (fun (i : ι) => s i (f i))))
+Case conversion may be inaccurate. Consider using '#align filter.has_basis_supr Filter.hasBasis_iSupₓ'. -/
+theorem hasBasis_iSup {ι : Sort _} {ι' : ι → Type _} {l : ι → Filter α} {p : ∀ i, ι' i → Prop}
     {s : ∀ i, ι' i → Set α} (hl : ∀ i, (l i).HasBasis (p i) (s i)) :
     (⨆ i, l i).HasBasis (fun f : ∀ i, ι' i => ∀ i, p i (f i)) fun f : ∀ i, ι' i => ⋃ i, s i (f i) :=
   hasBasis_iff.mpr fun t => by
     simp only [has_basis_iff, (hl _).mem_iff, Classical.skolem, forall_and, Union_subset_iff,
       mem_supr]
-#align filter.has_basis_supr Filter.hasBasis_supᵢ
+#align filter.has_basis_supr Filter.hasBasis_iSup
 
 /- warning: filter.has_basis.sup_principal -> Filter.HasBasis.sup_principal is a dubious translation:
 lean 3 declaration is
@@ -1188,83 +1188,83 @@ theorem inf_neBot_iff_frequently_right {f g : Filter α} :
   exact inf_ne_bot_iff_frequently_left
 #align filter.inf_ne_bot_iff_frequently_right Filter.inf_neBot_iff_frequently_right
 
-/- warning: filter.has_basis.eq_binfi -> Filter.HasBasis.eq_binfᵢ is a dubious translation:
+/- warning: filter.has_basis.eq_binfi -> Filter.HasBasis.eq_biInf is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (Eq.{succ u1} (Filter.{u1} α) l (infᵢ.{u1, u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => infᵢ.{u1, 0} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (p i) (fun (_x : p i) => Filter.principal.{u1} α (s i)))))
+  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (Eq.{succ u1} (Filter.{u1} α) l (iInf.{u1, u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => iInf.{u1, 0} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (p i) (fun (_x : p i) => Filter.principal.{u1} α (s i)))))
 but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι l p s) -> (Eq.{succ u2} (Filter.{u2} α) l (infᵢ.{u2, u1} (Filter.{u2} α) (CompleteLattice.toInfSet.{u2} (Filter.{u2} α) (Filter.instCompleteLatticeFilter.{u2} α)) ι (fun (i : ι) => infᵢ.{u2, 0} (Filter.{u2} α) (CompleteLattice.toInfSet.{u2} (Filter.{u2} α) (Filter.instCompleteLatticeFilter.{u2} α)) (p i) (fun (_x : p i) => Filter.principal.{u2} α (s i)))))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.eq_binfi Filter.HasBasis.eq_binfᵢₓ'. -/
-theorem HasBasis.eq_binfᵢ (h : l.HasBasis p s) : l = ⨅ (i) (_ : p i), 𝓟 (s i) :=
-  eq_binfᵢ_of_mem_iff_exists_mem fun t => by simp only [h.mem_iff, mem_principal]
-#align filter.has_basis.eq_binfi Filter.HasBasis.eq_binfᵢ
+  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι l p s) -> (Eq.{succ u2} (Filter.{u2} α) l (iInf.{u2, u1} (Filter.{u2} α) (CompleteLattice.toInfSet.{u2} (Filter.{u2} α) (Filter.instCompleteLatticeFilter.{u2} α)) ι (fun (i : ι) => iInf.{u2, 0} (Filter.{u2} α) (CompleteLattice.toInfSet.{u2} (Filter.{u2} α) (Filter.instCompleteLatticeFilter.{u2} α)) (p i) (fun (_x : p i) => Filter.principal.{u2} α (s i)))))
+Case conversion may be inaccurate. Consider using '#align filter.has_basis.eq_binfi Filter.HasBasis.eq_biInfₓ'. -/
+theorem HasBasis.eq_biInf (h : l.HasBasis p s) : l = ⨅ (i) (_ : p i), 𝓟 (s i) :=
+  eq_biInf_of_mem_iff_exists_mem fun t => by simp only [h.mem_iff, mem_principal]
+#align filter.has_basis.eq_binfi Filter.HasBasis.eq_biInf
 
-/- warning: filter.has_basis.eq_infi -> Filter.HasBasis.eq_infᵢ is a dubious translation:
+/- warning: filter.has_basis.eq_infi -> Filter.HasBasis.eq_iInf is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {s : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l (fun (_x : ι) => True) s) -> (Eq.{succ u1} (Filter.{u1} α) l (infᵢ.{u1, u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => Filter.principal.{u1} α (s i))))
+  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {s : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l (fun (_x : ι) => True) s) -> (Eq.{succ u1} (Filter.{u1} α) l (iInf.{u1, u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => Filter.principal.{u1} α (s i))))
 but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {s : ι -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι l (fun (_x : ι) => True) s) -> (Eq.{succ u2} (Filter.{u2} α) l (infᵢ.{u2, u1} (Filter.{u2} α) (CompleteLattice.toInfSet.{u2} (Filter.{u2} α) (Filter.instCompleteLatticeFilter.{u2} α)) ι (fun (i : ι) => Filter.principal.{u2} α (s i))))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.eq_infi Filter.HasBasis.eq_infᵢₓ'. -/
-theorem HasBasis.eq_infᵢ (h : l.HasBasis (fun _ => True) s) : l = ⨅ i, 𝓟 (s i) := by
-  simpa only [infᵢ_true] using h.eq_binfi
-#align filter.has_basis.eq_infi Filter.HasBasis.eq_infᵢ
+  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {s : ι -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι l (fun (_x : ι) => True) s) -> (Eq.{succ u2} (Filter.{u2} α) l (iInf.{u2, u1} (Filter.{u2} α) (CompleteLattice.toInfSet.{u2} (Filter.{u2} α) (Filter.instCompleteLatticeFilter.{u2} α)) ι (fun (i : ι) => Filter.principal.{u2} α (s i))))
+Case conversion may be inaccurate. Consider using '#align filter.has_basis.eq_infi Filter.HasBasis.eq_iInfₓ'. -/
+theorem HasBasis.eq_iInf (h : l.HasBasis (fun _ => True) s) : l = ⨅ i, 𝓟 (s i) := by
+  simpa only [iInf_true] using h.eq_binfi
+#align filter.has_basis.eq_infi Filter.HasBasis.eq_iInf
 
-/- warning: filter.has_basis_infi_principal -> Filter.hasBasis_infᵢ_principal is a dubious translation:
+/- warning: filter.has_basis_infi_principal -> Filter.hasBasis_iInf_principal is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {s : ι -> (Set.{u1} α)}, (Directed.{u1, u2} (Set.{u1} α) ι (GE.ge.{u1} (Set.{u1} α) (Set.hasLe.{u1} α)) s) -> (forall [_inst_1 : Nonempty.{u2} ι], Filter.HasBasis.{u1, u2} α ι (infᵢ.{u1, u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => Filter.principal.{u1} α (s i))) (fun (_x : ι) => True) s)
+  forall {α : Type.{u1}} {ι : Sort.{u2}} {s : ι -> (Set.{u1} α)}, (Directed.{u1, u2} (Set.{u1} α) ι (GE.ge.{u1} (Set.{u1} α) (Set.hasLe.{u1} α)) s) -> (forall [_inst_1 : Nonempty.{u2} ι], Filter.HasBasis.{u1, u2} α ι (iInf.{u1, u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => Filter.principal.{u1} α (s i))) (fun (_x : ι) => True) s)
 but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {s : ι -> (Set.{u2} α)}, (Directed.{u2, u1} (Set.{u2} α) ι (fun (x._@.Mathlib.Order.Filter.Bases._hyg.9263 : Set.{u2} α) (x._@.Mathlib.Order.Filter.Bases._hyg.9265 : Set.{u2} α) => GE.ge.{u2} (Set.{u2} α) (Set.instLESet.{u2} α) x._@.Mathlib.Order.Filter.Bases._hyg.9263 x._@.Mathlib.Order.Filter.Bases._hyg.9265) s) -> (forall [_inst_1 : Nonempty.{u1} ι], Filter.HasBasis.{u2, u1} α ι (infᵢ.{u2, u1} (Filter.{u2} α) (CompleteLattice.toInfSet.{u2} (Filter.{u2} α) (Filter.instCompleteLatticeFilter.{u2} α)) ι (fun (i : ι) => Filter.principal.{u2} α (s i))) (fun (_x : ι) => True) s)
-Case conversion may be inaccurate. Consider using '#align filter.has_basis_infi_principal Filter.hasBasis_infᵢ_principalₓ'. -/
-theorem hasBasis_infᵢ_principal {s : ι → Set α} (h : Directed (· ≥ ·) s) [Nonempty ι] :
+  forall {α : Type.{u2}} {ι : Sort.{u1}} {s : ι -> (Set.{u2} α)}, (Directed.{u2, u1} (Set.{u2} α) ι (fun (x._@.Mathlib.Order.Filter.Bases._hyg.9263 : Set.{u2} α) (x._@.Mathlib.Order.Filter.Bases._hyg.9265 : Set.{u2} α) => GE.ge.{u2} (Set.{u2} α) (Set.instLESet.{u2} α) x._@.Mathlib.Order.Filter.Bases._hyg.9263 x._@.Mathlib.Order.Filter.Bases._hyg.9265) s) -> (forall [_inst_1 : Nonempty.{u1} ι], Filter.HasBasis.{u2, u1} α ι (iInf.{u2, u1} (Filter.{u2} α) (CompleteLattice.toInfSet.{u2} (Filter.{u2} α) (Filter.instCompleteLatticeFilter.{u2} α)) ι (fun (i : ι) => Filter.principal.{u2} α (s i))) (fun (_x : ι) => True) s)
+Case conversion may be inaccurate. Consider using '#align filter.has_basis_infi_principal Filter.hasBasis_iInf_principalₓ'. -/
+theorem hasBasis_iInf_principal {s : ι → Set α} (h : Directed (· ≥ ·) s) [Nonempty ι] :
     (⨅ i, 𝓟 (s i)).HasBasis (fun _ => True) s :=
   ⟨by
     refine' fun t =>
       (mem_infi_of_directed (h.mono_comp _ _) t).trans <| by
         simp only [exists_prop, true_and_iff, mem_principal]
     exact fun _ _ => principal_mono.2⟩
-#align filter.has_basis_infi_principal Filter.hasBasis_infᵢ_principal
+#align filter.has_basis_infi_principal Filter.hasBasis_iInf_principal
 
-/- warning: filter.has_basis_infi_principal_finite -> Filter.hasBasis_infᵢ_principal_finite is a dubious translation:
+/- warning: filter.has_basis_infi_principal_finite -> Filter.hasBasis_iInf_principal_finite is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Type.{u2}} (s : ι -> (Set.{u1} α)), Filter.HasBasis.{u1, succ u2} α (Set.{u2} ι) (infᵢ.{u1, succ u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => Filter.principal.{u1} α (s i))) (fun (t : Set.{u2} ι) => Set.Finite.{u2} ι t) (fun (t : Set.{u2} ι) => Set.interᵢ.{u1, succ u2} α ι (fun (i : ι) => Set.interᵢ.{u1, 0} α (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i t) (fun (H : Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i t) => s i)))
+  forall {α : Type.{u1}} {ι : Type.{u2}} (s : ι -> (Set.{u1} α)), Filter.HasBasis.{u1, succ u2} α (Set.{u2} ι) (iInf.{u1, succ u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => Filter.principal.{u1} α (s i))) (fun (t : Set.{u2} ι) => Set.Finite.{u2} ι t) (fun (t : Set.{u2} ι) => Set.iInter.{u1, succ u2} α ι (fun (i : ι) => Set.iInter.{u1, 0} α (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i t) (fun (H : Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i t) => s i)))
 but is expected to have type
-  forall {α : Type.{u1}} {ι : Type.{u2}} (s : ι -> (Set.{u1} α)), Filter.HasBasis.{u1, succ u2} α (Set.{u2} ι) (infᵢ.{u1, succ u2} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) ι (fun (i : ι) => Filter.principal.{u1} α (s i))) (fun (t : Set.{u2} ι) => Set.Finite.{u2} ι t) (fun (t : Set.{u2} ι) => Set.interᵢ.{u1, succ u2} α ι (fun (i : ι) => Set.interᵢ.{u1, 0} α (Membership.mem.{u2, u2} ι (Set.{u2} ι) (Set.instMembershipSet.{u2} ι) i t) (fun (H : Membership.mem.{u2, u2} ι (Set.{u2} ι) (Set.instMembershipSet.{u2} ι) i t) => s i)))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis_infi_principal_finite Filter.hasBasis_infᵢ_principal_finiteₓ'. -/
+  forall {α : Type.{u1}} {ι : Type.{u2}} (s : ι -> (Set.{u1} α)), Filter.HasBasis.{u1, succ u2} α (Set.{u2} ι) (iInf.{u1, succ u2} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) ι (fun (i : ι) => Filter.principal.{u1} α (s i))) (fun (t : Set.{u2} ι) => Set.Finite.{u2} ι t) (fun (t : Set.{u2} ι) => Set.iInter.{u1, succ u2} α ι (fun (i : ι) => Set.iInter.{u1, 0} α (Membership.mem.{u2, u2} ι (Set.{u2} ι) (Set.instMembershipSet.{u2} ι) i t) (fun (H : Membership.mem.{u2, u2} ι (Set.{u2} ι) (Set.instMembershipSet.{u2} ι) i t) => s i)))
+Case conversion may be inaccurate. Consider using '#align filter.has_basis_infi_principal_finite Filter.hasBasis_iInf_principal_finiteₓ'. -/
 /-- If `s : ι → set α` is an indexed family of sets, then finite intersections of `s i` form a basis
 of `⨅ i, 𝓟 (s i)`.  -/
-theorem hasBasis_infᵢ_principal_finite {ι : Type _} (s : ι → Set α) :
+theorem hasBasis_iInf_principal_finite {ι : Type _} (s : ι → Set α) :
     (⨅ i, 𝓟 (s i)).HasBasis (fun t : Set ι => t.Finite) fun t => ⋂ i ∈ t, s i :=
   by
   refine' ⟨fun U => (mem_infi_finite _).trans _⟩
   simp only [infi_principal_finset, mem_Union, mem_principal, exists_prop, exists_finite_iff_finset,
-    Finset.set_binterᵢ_coe]
-#align filter.has_basis_infi_principal_finite Filter.hasBasis_infᵢ_principal_finite
+    Finset.set_biInter_coe]
+#align filter.has_basis_infi_principal_finite Filter.hasBasis_iInf_principal_finite
 
-/- warning: filter.has_basis_binfi_principal -> Filter.hasBasis_binfᵢ_principal is a dubious translation:
+/- warning: filter.has_basis_binfi_principal -> Filter.hasBasis_biInf_principal is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {s : β -> (Set.{u1} α)} {S : Set.{u2} β}, (DirectedOn.{u2} β (Order.Preimage.{succ u2, succ u1} β (Set.{u1} α) s (GE.ge.{u1} (Set.{u1} α) (Set.hasLe.{u1} α))) S) -> (Set.Nonempty.{u2} β S) -> (Filter.HasBasis.{u1, succ u2} α β (infᵢ.{u1, succ u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) β (fun (i : β) => infᵢ.{u1, 0} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) i S) (fun (H : Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) i S) => Filter.principal.{u1} α (s i)))) (fun (i : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) i S) s)
+  forall {α : Type.{u1}} {β : Type.{u2}} {s : β -> (Set.{u1} α)} {S : Set.{u2} β}, (DirectedOn.{u2} β (Order.Preimage.{succ u2, succ u1} β (Set.{u1} α) s (GE.ge.{u1} (Set.{u1} α) (Set.hasLe.{u1} α))) S) -> (Set.Nonempty.{u2} β S) -> (Filter.HasBasis.{u1, succ u2} α β (iInf.{u1, succ u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) β (fun (i : β) => iInf.{u1, 0} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) i S) (fun (H : Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) i S) => Filter.principal.{u1} α (s i)))) (fun (i : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) i S) s)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {s : β -> (Set.{u2} α)} {S : Set.{u1} β}, (DirectedOn.{u1} β (Order.Preimage.{succ u1, succ u2} β (Set.{u2} α) s (fun (x._@.Mathlib.Order.Filter.Bases._hyg.9496 : Set.{u2} α) (x._@.Mathlib.Order.Filter.Bases._hyg.9498 : Set.{u2} α) => GE.ge.{u2} (Set.{u2} α) (Set.instLESet.{u2} α) x._@.Mathlib.Order.Filter.Bases._hyg.9496 x._@.Mathlib.Order.Filter.Bases._hyg.9498)) S) -> (Set.Nonempty.{u1} β S) -> (Filter.HasBasis.{u2, succ u1} α β (infᵢ.{u2, succ u1} (Filter.{u2} α) (CompleteLattice.toInfSet.{u2} (Filter.{u2} α) (Filter.instCompleteLatticeFilter.{u2} α)) β (fun (i : β) => infᵢ.{u2, 0} (Filter.{u2} α) (CompleteLattice.toInfSet.{u2} (Filter.{u2} α) (Filter.instCompleteLatticeFilter.{u2} α)) (Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) i S) (fun (H : Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) i S) => Filter.principal.{u2} α (s i)))) (fun (i : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) i S) s)
-Case conversion may be inaccurate. Consider using '#align filter.has_basis_binfi_principal Filter.hasBasis_binfᵢ_principalₓ'. -/
-theorem hasBasis_binfᵢ_principal {s : β → Set α} {S : Set β} (h : DirectedOn (s ⁻¹'o (· ≥ ·)) S)
+  forall {α : Type.{u2}} {β : Type.{u1}} {s : β -> (Set.{u2} α)} {S : Set.{u1} β}, (DirectedOn.{u1} β (Order.Preimage.{succ u1, succ u2} β (Set.{u2} α) s (fun (x._@.Mathlib.Order.Filter.Bases._hyg.9496 : Set.{u2} α) (x._@.Mathlib.Order.Filter.Bases._hyg.9498 : Set.{u2} α) => GE.ge.{u2} (Set.{u2} α) (Set.instLESet.{u2} α) x._@.Mathlib.Order.Filter.Bases._hyg.9496 x._@.Mathlib.Order.Filter.Bases._hyg.9498)) S) -> (Set.Nonempty.{u1} β S) -> (Filter.HasBasis.{u2, succ u1} α β (iInf.{u2, succ u1} (Filter.{u2} α) (CompleteLattice.toInfSet.{u2} (Filter.{u2} α) (Filter.instCompleteLatticeFilter.{u2} α)) β (fun (i : β) => iInf.{u2, 0} (Filter.{u2} α) (CompleteLattice.toInfSet.{u2} (Filter.{u2} α) (Filter.instCompleteLatticeFilter.{u2} α)) (Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) i S) (fun (H : Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) i S) => Filter.principal.{u2} α (s i)))) (fun (i : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) i S) s)
+Case conversion may be inaccurate. Consider using '#align filter.has_basis_binfi_principal Filter.hasBasis_biInf_principalₓ'. -/
+theorem hasBasis_biInf_principal {s : β → Set α} {S : Set β} (h : DirectedOn (s ⁻¹'o (· ≥ ·)) S)
     (ne : S.Nonempty) : (⨅ i ∈ S, 𝓟 (s i)).HasBasis (fun i => i ∈ S) s :=
   ⟨by
     refine' fun t => (mem_binfi_of_directed _ Ne).trans <| by simp only [mem_principal]
     rw [directedOn_iff_directed, ← directed_comp, (· ∘ ·)] at h⊢
     apply h.mono_comp _ _
     exact fun _ _ => principal_mono.2⟩
-#align filter.has_basis_binfi_principal Filter.hasBasis_binfᵢ_principal
+#align filter.has_basis_binfi_principal Filter.hasBasis_biInf_principal
 
-/- warning: filter.has_basis_binfi_principal' -> Filter.hasBasis_binfᵢ_principal' is a dubious translation:
+/- warning: filter.has_basis_binfi_principal' -> Filter.hasBasis_biInf_principal' is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Type.{u2}} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (forall (i : ι), (p i) -> (forall (j : ι), (p j) -> (Exists.{succ u2} ι (fun (k : ι) => Exists.{0} (p k) (fun (h : p k) => And (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (s k) (s i)) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (s k) (s j))))))) -> (Exists.{succ u2} ι (fun (i : ι) => p i)) -> (Filter.HasBasis.{u1, succ u2} α ι (infᵢ.{u1, succ u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => infᵢ.{u1, 0} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (p i) (fun (h : p i) => Filter.principal.{u1} α (s i)))) p s)
+  forall {α : Type.{u1}} {ι : Type.{u2}} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (forall (i : ι), (p i) -> (forall (j : ι), (p j) -> (Exists.{succ u2} ι (fun (k : ι) => Exists.{0} (p k) (fun (h : p k) => And (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (s k) (s i)) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (s k) (s j))))))) -> (Exists.{succ u2} ι (fun (i : ι) => p i)) -> (Filter.HasBasis.{u1, succ u2} α ι (iInf.{u1, succ u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => iInf.{u1, 0} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (p i) (fun (h : p i) => Filter.principal.{u1} α (s i)))) p s)
 but is expected to have type
-  forall {α : Type.{u1}} {ι : Type.{u2}} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (forall (i : ι), (p i) -> (forall (j : ι), (p j) -> (Exists.{succ u2} ι (fun (k : ι) => And (p k) (And (HasSubset.Subset.{u1} (Set.{u1} α) (Set.instHasSubsetSet.{u1} α) (s k) (s i)) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.instHasSubsetSet.{u1} α) (s k) (s j))))))) -> (Exists.{succ u2} ι (fun (i : ι) => p i)) -> (Filter.HasBasis.{u1, succ u2} α ι (infᵢ.{u1, succ u2} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) ι (fun (i : ι) => infᵢ.{u1, 0} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) (p i) (fun (h : p i) => Filter.principal.{u1} α (s i)))) p s)
-Case conversion may be inaccurate. Consider using '#align filter.has_basis_binfi_principal' Filter.hasBasis_binfᵢ_principal'ₓ'. -/
-theorem hasBasis_binfᵢ_principal' {ι : Type _} {p : ι → Prop} {s : ι → Set α}
+  forall {α : Type.{u1}} {ι : Type.{u2}} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (forall (i : ι), (p i) -> (forall (j : ι), (p j) -> (Exists.{succ u2} ι (fun (k : ι) => And (p k) (And (HasSubset.Subset.{u1} (Set.{u1} α) (Set.instHasSubsetSet.{u1} α) (s k) (s i)) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.instHasSubsetSet.{u1} α) (s k) (s j))))))) -> (Exists.{succ u2} ι (fun (i : ι) => p i)) -> (Filter.HasBasis.{u1, succ u2} α ι (iInf.{u1, succ u2} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) ι (fun (i : ι) => iInf.{u1, 0} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) (p i) (fun (h : p i) => Filter.principal.{u1} α (s i)))) p s)
+Case conversion may be inaccurate. Consider using '#align filter.has_basis_binfi_principal' Filter.hasBasis_biInf_principal'ₓ'. -/
+theorem hasBasis_biInf_principal' {ι : Type _} {p : ι → Prop} {s : ι → Set α}
     (h : ∀ i, p i → ∀ j, p j → ∃ (k : _)(h : p k), s k ⊆ s i ∧ s k ⊆ s j) (ne : ∃ i, p i) :
     (⨅ (i) (h : p i), 𝓟 (s i)).HasBasis p s :=
-  Filter.hasBasis_binfᵢ_principal h Ne
-#align filter.has_basis_binfi_principal' Filter.hasBasis_binfᵢ_principal'
+  Filter.hasBasis_biInf_principal h Ne
+#align filter.has_basis_binfi_principal' Filter.hasBasis_biInf_principal'
 
 /- warning: filter.has_basis.map -> Filter.HasBasis.map is a dubious translation:
 lean 3 declaration is
@@ -1314,42 +1314,42 @@ theorem HasBasis.forall_mem_mem (h : HasBasis l p s) {x : α} :
   exact ⟨fun h i hi => h (s i) i hi subset.rfl, fun h t i hi ht => ht (h i hi)⟩
 #align filter.has_basis.forall_mem_mem Filter.HasBasis.forall_mem_mem
 
-/- warning: filter.has_basis.binfi_mem -> Filter.HasBasis.binfᵢ_mem is a dubious translation:
+/- warning: filter.has_basis.binfi_mem -> Filter.HasBasis.biInf_mem is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)} [_inst_1 : CompleteLattice.{u2} β] {f : (Set.{u1} α) -> β}, (Filter.HasBasis.{u1, u3} α ι l p s) -> (Monotone.{u1, u2} (Set.{u1} α) β (PartialOrder.toPreorder.{u1} (Set.{u1} α) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} α) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α))))))) (PartialOrder.toPreorder.{u2} β (CompleteSemilatticeInf.toPartialOrder.{u2} β (CompleteLattice.toCompleteSemilatticeInf.{u2} β _inst_1))) f) -> (Eq.{succ u2} β (infᵢ.{u2, succ u1} β (ConditionallyCompleteLattice.toHasInf.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_1)) (Set.{u1} α) (fun (t : Set.{u1} α) => infᵢ.{u2, 0} β (ConditionallyCompleteLattice.toHasInf.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_1)) (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) t l) (fun (H : Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) t l) => f t))) (infᵢ.{u2, u3} β (ConditionallyCompleteLattice.toHasInf.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_1)) ι (fun (i : ι) => infᵢ.{u2, 0} β (ConditionallyCompleteLattice.toHasInf.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_1)) (p i) (fun (hi : p i) => f (s i)))))
+  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)} [_inst_1 : CompleteLattice.{u2} β] {f : (Set.{u1} α) -> β}, (Filter.HasBasis.{u1, u3} α ι l p s) -> (Monotone.{u1, u2} (Set.{u1} α) β (PartialOrder.toPreorder.{u1} (Set.{u1} α) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} α) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α))))))) (PartialOrder.toPreorder.{u2} β (CompleteSemilatticeInf.toPartialOrder.{u2} β (CompleteLattice.toCompleteSemilatticeInf.{u2} β _inst_1))) f) -> (Eq.{succ u2} β (iInf.{u2, succ u1} β (ConditionallyCompleteLattice.toHasInf.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_1)) (Set.{u1} α) (fun (t : Set.{u1} α) => iInf.{u2, 0} β (ConditionallyCompleteLattice.toHasInf.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_1)) (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) t l) (fun (H : Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) t l) => f t))) (iInf.{u2, u3} β (ConditionallyCompleteLattice.toHasInf.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_1)) ι (fun (i : ι) => iInf.{u2, 0} β (ConditionallyCompleteLattice.toHasInf.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_1)) (p i) (fun (hi : p i) => f (s i)))))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}} {ι : Sort.{u1}} {l : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)} [_inst_1 : CompleteLattice.{u3} β] {f : (Set.{u2} α) -> β}, (Filter.HasBasis.{u2, u1} α ι l p s) -> (Monotone.{u2, u3} (Set.{u2} α) β (PartialOrder.toPreorder.{u2} (Set.{u2} α) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} α) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} α) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} α) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} α) (Set.instCompleteBooleanAlgebraSet.{u2} α))))))) (PartialOrder.toPreorder.{u3} β (CompleteSemilatticeInf.toPartialOrder.{u3} β (CompleteLattice.toCompleteSemilatticeInf.{u3} β _inst_1))) f) -> (Eq.{succ u3} β (infᵢ.{u3, succ u2} β (CompleteLattice.toInfSet.{u3} β _inst_1) (Set.{u2} α) (fun (t : Set.{u2} α) => infᵢ.{u3, 0} β (CompleteLattice.toInfSet.{u3} β _inst_1) (Membership.mem.{u2, u2} (Set.{u2} α) (Filter.{u2} α) (instMembershipSetFilter.{u2} α) t l) (fun (H : Membership.mem.{u2, u2} (Set.{u2} α) (Filter.{u2} α) (instMembershipSetFilter.{u2} α) t l) => f t))) (infᵢ.{u3, u1} β (CompleteLattice.toInfSet.{u3} β _inst_1) ι (fun (i : ι) => infᵢ.{u3, 0} β (CompleteLattice.toInfSet.{u3} β _inst_1) (p i) (fun (hi : p i) => f (s i)))))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.binfi_mem Filter.HasBasis.binfᵢ_memₓ'. -/
-protected theorem HasBasis.binfᵢ_mem [CompleteLattice β] {f : Set α → β} (h : HasBasis l p s)
+  forall {α : Type.{u2}} {β : Type.{u3}} {ι : Sort.{u1}} {l : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)} [_inst_1 : CompleteLattice.{u3} β] {f : (Set.{u2} α) -> β}, (Filter.HasBasis.{u2, u1} α ι l p s) -> (Monotone.{u2, u3} (Set.{u2} α) β (PartialOrder.toPreorder.{u2} (Set.{u2} α) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} α) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} α) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} α) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} α) (Set.instCompleteBooleanAlgebraSet.{u2} α))))))) (PartialOrder.toPreorder.{u3} β (CompleteSemilatticeInf.toPartialOrder.{u3} β (CompleteLattice.toCompleteSemilatticeInf.{u3} β _inst_1))) f) -> (Eq.{succ u3} β (iInf.{u3, succ u2} β (CompleteLattice.toInfSet.{u3} β _inst_1) (Set.{u2} α) (fun (t : Set.{u2} α) => iInf.{u3, 0} β (CompleteLattice.toInfSet.{u3} β _inst_1) (Membership.mem.{u2, u2} (Set.{u2} α) (Filter.{u2} α) (instMembershipSetFilter.{u2} α) t l) (fun (H : Membership.mem.{u2, u2} (Set.{u2} α) (Filter.{u2} α) (instMembershipSetFilter.{u2} α) t l) => f t))) (iInf.{u3, u1} β (CompleteLattice.toInfSet.{u3} β _inst_1) ι (fun (i : ι) => iInf.{u3, 0} β (CompleteLattice.toInfSet.{u3} β _inst_1) (p i) (fun (hi : p i) => f (s i)))))
+Case conversion may be inaccurate. Consider using '#align filter.has_basis.binfi_mem Filter.HasBasis.biInf_memₓ'. -/
+protected theorem HasBasis.biInf_mem [CompleteLattice β] {f : Set α → β} (h : HasBasis l p s)
     (hf : Monotone f) : (⨅ t ∈ l, f t) = ⨅ (i) (hi : p i), f (s i) :=
-  le_antisymm (le_infᵢ₂ fun i hi => infᵢ₂_le (s i) (h.mem_of_mem hi)) <|
-    le_infᵢ₂ fun t ht =>
+  le_antisymm (le_iInf₂ fun i hi => iInf₂_le (s i) (h.mem_of_mem hi)) <|
+    le_iInf₂ fun t ht =>
       let ⟨i, hpi, hi⟩ := h.mem_iff.1 ht
-      infᵢ₂_le_of_le i hpi (hf hi)
-#align filter.has_basis.binfi_mem Filter.HasBasis.binfᵢ_mem
+      iInf₂_le_of_le i hpi (hf hi)
+#align filter.has_basis.binfi_mem Filter.HasBasis.biInf_mem
 
-/- warning: filter.has_basis.bInter_mem -> Filter.HasBasis.binterᵢ_mem is a dubious translation:
+/- warning: filter.has_basis.bInter_mem -> Filter.HasBasis.biInter_mem is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)} {f : (Set.{u1} α) -> (Set.{u2} β)}, (Filter.HasBasis.{u1, u3} α ι l p s) -> (Monotone.{u1, u2} (Set.{u1} α) (Set.{u2} β) (PartialOrder.toPreorder.{u1} (Set.{u1} α) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} α) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) f) -> (Eq.{succ u2} (Set.{u2} β) (Set.interᵢ.{u2, succ u1} β (Set.{u1} α) (fun (t : Set.{u1} α) => Set.interᵢ.{u2, 0} β (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) t l) (fun (H : Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) t l) => f t))) (Set.interᵢ.{u2, u3} β ι (fun (i : ι) => Set.interᵢ.{u2, 0} β (p i) (fun (hi : p i) => f (s i)))))
+  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Sort.{u3}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)} {f : (Set.{u1} α) -> (Set.{u2} β)}, (Filter.HasBasis.{u1, u3} α ι l p s) -> (Monotone.{u1, u2} (Set.{u1} α) (Set.{u2} β) (PartialOrder.toPreorder.{u1} (Set.{u1} α) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} α) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) f) -> (Eq.{succ u2} (Set.{u2} β) (Set.iInter.{u2, succ u1} β (Set.{u1} α) (fun (t : Set.{u1} α) => Set.iInter.{u2, 0} β (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) t l) (fun (H : Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) t l) => f t))) (Set.iInter.{u2, u3} β ι (fun (i : ι) => Set.iInter.{u2, 0} β (p i) (fun (hi : p i) => f (s i)))))
 but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u3} α} {p : ι -> Prop} {s : ι -> (Set.{u3} α)} {f : (Set.{u3} α) -> (Set.{u2} β)}, (Filter.HasBasis.{u3, u1} α ι l p s) -> (Monotone.{u3, u2} (Set.{u3} α) (Set.{u2} β) (PartialOrder.toPreorder.{u3} (Set.{u3} α) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} α) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} α) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} α) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} α) (Set.instCompleteBooleanAlgebraSet.{u3} α))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) f) -> (Eq.{succ u2} (Set.{u2} β) (Set.interᵢ.{u2, succ u3} β (Set.{u3} α) (fun (t : Set.{u3} α) => Set.interᵢ.{u2, 0} β (Membership.mem.{u3, u3} (Set.{u3} α) (Filter.{u3} α) (instMembershipSetFilter.{u3} α) t l) (fun (H : Membership.mem.{u3, u3} (Set.{u3} α) (Filter.{u3} α) (instMembershipSetFilter.{u3} α) t l) => f t))) (Set.interᵢ.{u2, u1} β ι (fun (i : ι) => Set.interᵢ.{u2, 0} β (p i) (fun (hi : p i) => f (s i)))))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.bInter_mem Filter.HasBasis.binterᵢ_memₓ'. -/
-protected theorem HasBasis.binterᵢ_mem {f : Set α → Set β} (h : HasBasis l p s) (hf : Monotone f) :
+  forall {α : Type.{u3}} {β : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u3} α} {p : ι -> Prop} {s : ι -> (Set.{u3} α)} {f : (Set.{u3} α) -> (Set.{u2} β)}, (Filter.HasBasis.{u3, u1} α ι l p s) -> (Monotone.{u3, u2} (Set.{u3} α) (Set.{u2} β) (PartialOrder.toPreorder.{u3} (Set.{u3} α) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} α) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} α) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} α) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} α) (Set.instCompleteBooleanAlgebraSet.{u3} α))))))) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) f) -> (Eq.{succ u2} (Set.{u2} β) (Set.iInter.{u2, succ u3} β (Set.{u3} α) (fun (t : Set.{u3} α) => Set.iInter.{u2, 0} β (Membership.mem.{u3, u3} (Set.{u3} α) (Filter.{u3} α) (instMembershipSetFilter.{u3} α) t l) (fun (H : Membership.mem.{u3, u3} (Set.{u3} α) (Filter.{u3} α) (instMembershipSetFilter.{u3} α) t l) => f t))) (Set.iInter.{u2, u1} β ι (fun (i : ι) => Set.iInter.{u2, 0} β (p i) (fun (hi : p i) => f (s i)))))
+Case conversion may be inaccurate. Consider using '#align filter.has_basis.bInter_mem Filter.HasBasis.biInter_memₓ'. -/
+protected theorem HasBasis.biInter_mem {f : Set α → Set β} (h : HasBasis l p s) (hf : Monotone f) :
     (⋂ t ∈ l, f t) = ⋂ (i) (hi : p i), f (s i) :=
-  h.binfᵢ_mem hf
-#align filter.has_basis.bInter_mem Filter.HasBasis.binterᵢ_mem
+  h.biInf_mem hf
+#align filter.has_basis.bInter_mem Filter.HasBasis.biInter_mem
 
-/- warning: filter.has_basis.sInter_sets -> Filter.HasBasis.interₛ_sets is a dubious translation:
+/- warning: filter.has_basis.sInter_sets -> Filter.HasBasis.sInter_sets is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (Eq.{succ u1} (Set.{u1} α) (Set.interₛ.{u1} α (Filter.sets.{u1} α l)) (Set.interᵢ.{u1, u2} α ι (fun (i : ι) => Set.interᵢ.{u1, 0} α (p i) (fun (hi : p i) => s i))))
+  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (Eq.{succ u1} (Set.{u1} α) (Set.sInter.{u1} α (Filter.sets.{u1} α l)) (Set.iInter.{u1, u2} α ι (fun (i : ι) => Set.iInter.{u1, 0} α (p i) (fun (hi : p i) => s i))))
 but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι l p s) -> (Eq.{succ u2} (Set.{u2} α) (Set.interₛ.{u2} α (Filter.sets.{u2} α l)) (Set.interᵢ.{u2, u1} α ι (fun (i : ι) => Set.interᵢ.{u2, 0} α (p i) (fun (hi : p i) => s i))))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.sInter_sets Filter.HasBasis.interₛ_setsₓ'. -/
-theorem HasBasis.interₛ_sets (h : HasBasis l p s) : ⋂₀ l.sets = ⋂ (i) (hi : p i), s i :=
+  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι l p s) -> (Eq.{succ u2} (Set.{u2} α) (Set.sInter.{u2} α (Filter.sets.{u2} α l)) (Set.iInter.{u2, u1} α ι (fun (i : ι) => Set.iInter.{u2, 0} α (p i) (fun (hi : p i) => s i))))
+Case conversion may be inaccurate. Consider using '#align filter.has_basis.sInter_sets Filter.HasBasis.sInter_setsₓ'. -/
+theorem HasBasis.sInter_sets (h : HasBasis l p s) : ⋂₀ l.sets = ⋂ (i) (hi : p i), s i :=
   by
   rw [sInter_eq_bInter]
   exact h.bInter_mem monotone_id
-#align filter.has_basis.sInter_sets Filter.HasBasis.interₛ_sets
+#align filter.has_basis.sInter_sets Filter.HasBasis.sInter_sets
 
 variable {ι'' : Type _} [Preorder ι''] (l) (s'' : ι'' → Set α)
 
@@ -1641,22 +1641,22 @@ theorem HasCountableBasis.isCountablyGenerated {f : Filter α} {p : ι → Prop}
 
 /- warning: filter.antitone_seq_of_seq -> Filter.antitone_seq_of_seq is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} (s : Nat -> (Set.{u1} α)), Exists.{succ u1} (Nat -> (Set.{u1} α)) (fun (t : Nat -> (Set.{u1} α)) => And (Antitone.{0, u1} Nat (Set.{u1} α) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (PartialOrder.toPreorder.{u1} (Set.{u1} α) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} α) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α))))))) t) (Eq.{succ u1} (Filter.{u1} α) (infᵢ.{u1, 1} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) Nat (fun (i : Nat) => Filter.principal.{u1} α (s i))) (infᵢ.{u1, 1} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) Nat (fun (i : Nat) => Filter.principal.{u1} α (t i)))))
+  forall {α : Type.{u1}} (s : Nat -> (Set.{u1} α)), Exists.{succ u1} (Nat -> (Set.{u1} α)) (fun (t : Nat -> (Set.{u1} α)) => And (Antitone.{0, u1} Nat (Set.{u1} α) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (PartialOrder.toPreorder.{u1} (Set.{u1} α) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} α) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α))))))) t) (Eq.{succ u1} (Filter.{u1} α) (iInf.{u1, 1} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) Nat (fun (i : Nat) => Filter.principal.{u1} α (s i))) (iInf.{u1, 1} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) Nat (fun (i : Nat) => Filter.principal.{u1} α (t i)))))
 but is expected to have type
-  forall {α : Type.{u1}} (s : Nat -> (Set.{u1} α)), Exists.{succ u1} (Nat -> (Set.{u1} α)) (fun (t : Nat -> (Set.{u1} α)) => And (Antitone.{0, u1} Nat (Set.{u1} α) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (PartialOrder.toPreorder.{u1} (Set.{u1} α) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} α) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α))))))) t) (Eq.{succ u1} (Filter.{u1} α) (infᵢ.{u1, 1} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) Nat (fun (i : Nat) => Filter.principal.{u1} α (s i))) (infᵢ.{u1, 1} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) Nat (fun (i : Nat) => Filter.principal.{u1} α (t i)))))
+  forall {α : Type.{u1}} (s : Nat -> (Set.{u1} α)), Exists.{succ u1} (Nat -> (Set.{u1} α)) (fun (t : Nat -> (Set.{u1} α)) => And (Antitone.{0, u1} Nat (Set.{u1} α) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (PartialOrder.toPreorder.{u1} (Set.{u1} α) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} α) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α))))))) t) (Eq.{succ u1} (Filter.{u1} α) (iInf.{u1, 1} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) Nat (fun (i : Nat) => Filter.principal.{u1} α (s i))) (iInf.{u1, 1} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) Nat (fun (i : Nat) => Filter.principal.{u1} α (t i)))))
 Case conversion may be inaccurate. Consider using '#align filter.antitone_seq_of_seq Filter.antitone_seq_of_seqₓ'. -/
 theorem antitone_seq_of_seq (s : ℕ → Set α) :
     ∃ t : ℕ → Set α, Antitone t ∧ (⨅ i, 𝓟 <| s i) = ⨅ i, 𝓟 (t i) :=
   by
   use fun n => ⋂ m ≤ n, s m; constructor
   · exact fun i j hij => bInter_mono (Iic_subset_Iic.2 hij) fun n hn => subset.refl _
-  apply le_antisymm <;> rw [le_infᵢ_iff] <;> intro i
+  apply le_antisymm <;> rw [le_iInf_iff] <;> intro i
   · rw [le_principal_iff]
     refine' (bInter_mem (finite_le_nat _)).2 fun j hji => _
     rw [← le_principal_iff]
-    apply infᵢ_le_of_le j _
+    apply iInf_le_of_le j _
     exact le_rfl
-  · apply infᵢ_le_of_le i _
+  · apply iInf_le_of_le i _
     rw [principal_mono]
     intro a
     simp
@@ -1665,44 +1665,44 @@ theorem antitone_seq_of_seq (s : ℕ → Set α) :
     rfl
 #align filter.antitone_seq_of_seq Filter.antitone_seq_of_seq
 
-/- warning: filter.countable_binfi_eq_infi_seq -> Filter.countable_binfᵢ_eq_infᵢ_seq is a dubious translation:
+/- warning: filter.countable_binfi_eq_infi_seq -> Filter.countable_biInf_eq_iInf_seq is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Type.{u2}} [_inst_1 : CompleteLattice.{u1} α] {B : Set.{u2} ι}, (Set.Countable.{u2} ι B) -> (Set.Nonempty.{u2} ι B) -> (forall (f : ι -> α), Exists.{succ u2} (Nat -> ι) (fun (x : Nat -> ι) => Eq.{succ u1} α (infᵢ.{u1, succ u2} α (ConditionallyCompleteLattice.toHasInf.{u1} α (CompleteLattice.toConditionallyCompleteLattice.{u1} α _inst_1)) ι (fun (t : ι) => infᵢ.{u1, 0} α (ConditionallyCompleteLattice.toHasInf.{u1} α (CompleteLattice.toConditionallyCompleteLattice.{u1} α _inst_1)) (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) t B) (fun (H : Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) t B) => f t))) (infᵢ.{u1, 1} α (ConditionallyCompleteLattice.toHasInf.{u1} α (CompleteLattice.toConditionallyCompleteLattice.{u1} α _inst_1)) Nat (fun (i : Nat) => f (x i)))))
+  forall {α : Type.{u1}} {ι : Type.{u2}} [_inst_1 : CompleteLattice.{u1} α] {B : Set.{u2} ι}, (Set.Countable.{u2} ι B) -> (Set.Nonempty.{u2} ι B) -> (forall (f : ι -> α), Exists.{succ u2} (Nat -> ι) (fun (x : Nat -> ι) => Eq.{succ u1} α (iInf.{u1, succ u2} α (ConditionallyCompleteLattice.toHasInf.{u1} α (CompleteLattice.toConditionallyCompleteLattice.{u1} α _inst_1)) ι (fun (t : ι) => iInf.{u1, 0} α (ConditionallyCompleteLattice.toHasInf.{u1} α (CompleteLattice.toConditionallyCompleteLattice.{u1} α _inst_1)) (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) t B) (fun (H : Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) t B) => f t))) (iInf.{u1, 1} α (ConditionallyCompleteLattice.toHasInf.{u1} α (CompleteLattice.toConditionallyCompleteLattice.{u1} α _inst_1)) Nat (fun (i : Nat) => f (x i)))))
 but is expected to have type
-  forall {α : Type.{u2}} {ι : Type.{u1}} [_inst_1 : CompleteLattice.{u2} α] {B : Set.{u1} ι}, (Set.Countable.{u1} ι B) -> (Set.Nonempty.{u1} ι B) -> (forall (f : ι -> α), Exists.{succ u1} (Nat -> ι) (fun (x : Nat -> ι) => Eq.{succ u2} α (infᵢ.{u2, succ u1} α (CompleteLattice.toInfSet.{u2} α _inst_1) ι (fun (t : ι) => infᵢ.{u2, 0} α (CompleteLattice.toInfSet.{u2} α _inst_1) (Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) t B) (fun (H : Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) t B) => f t))) (infᵢ.{u2, 1} α (CompleteLattice.toInfSet.{u2} α _inst_1) Nat (fun (i : Nat) => f (x i)))))
-Case conversion may be inaccurate. Consider using '#align filter.countable_binfi_eq_infi_seq Filter.countable_binfᵢ_eq_infᵢ_seqₓ'. -/
-theorem countable_binfᵢ_eq_infᵢ_seq [CompleteLattice α] {B : Set ι} (Bcbl : B.Countable)
+  forall {α : Type.{u2}} {ι : Type.{u1}} [_inst_1 : CompleteLattice.{u2} α] {B : Set.{u1} ι}, (Set.Countable.{u1} ι B) -> (Set.Nonempty.{u1} ι B) -> (forall (f : ι -> α), Exists.{succ u1} (Nat -> ι) (fun (x : Nat -> ι) => Eq.{succ u2} α (iInf.{u2, succ u1} α (CompleteLattice.toInfSet.{u2} α _inst_1) ι (fun (t : ι) => iInf.{u2, 0} α (CompleteLattice.toInfSet.{u2} α _inst_1) (Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) t B) (fun (H : Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) t B) => f t))) (iInf.{u2, 1} α (CompleteLattice.toInfSet.{u2} α _inst_1) Nat (fun (i : Nat) => f (x i)))))
+Case conversion may be inaccurate. Consider using '#align filter.countable_binfi_eq_infi_seq Filter.countable_biInf_eq_iInf_seqₓ'. -/
+theorem countable_biInf_eq_iInf_seq [CompleteLattice α] {B : Set ι} (Bcbl : B.Countable)
     (Bne : B.Nonempty) (f : ι → α) : ∃ x : ℕ → ι, (⨅ t ∈ B, f t) = ⨅ i, f (x i) :=
   let ⟨g, hg⟩ := Bcbl.exists_eq_range Bne
-  ⟨g, hg.symm ▸ infᵢ_range⟩
-#align filter.countable_binfi_eq_infi_seq Filter.countable_binfᵢ_eq_infᵢ_seq
+  ⟨g, hg.symm ▸ iInf_range⟩
+#align filter.countable_binfi_eq_infi_seq Filter.countable_biInf_eq_iInf_seq
 
-/- warning: filter.countable_binfi_eq_infi_seq' -> Filter.countable_binfᵢ_eq_infᵢ_seq' is a dubious translation:
+/- warning: filter.countable_binfi_eq_infi_seq' -> Filter.countable_biInf_eq_iInf_seq' is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Type.{u2}} [_inst_1 : CompleteLattice.{u1} α] {B : Set.{u2} ι}, (Set.Countable.{u2} ι B) -> (forall (f : ι -> α) {i₀ : ι}, (Eq.{succ u1} α (f i₀) (Top.top.{u1} α (CompleteLattice.toHasTop.{u1} α _inst_1))) -> (Exists.{succ u2} (Nat -> ι) (fun (x : Nat -> ι) => Eq.{succ u1} α (infᵢ.{u1, succ u2} α (ConditionallyCompleteLattice.toHasInf.{u1} α (CompleteLattice.toConditionallyCompleteLattice.{u1} α _inst_1)) ι (fun (t : ι) => infᵢ.{u1, 0} α (ConditionallyCompleteLattice.toHasInf.{u1} α (CompleteLattice.toConditionallyCompleteLattice.{u1} α _inst_1)) (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) t B) (fun (H : Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) t B) => f t))) (infᵢ.{u1, 1} α (ConditionallyCompleteLattice.toHasInf.{u1} α (CompleteLattice.toConditionallyCompleteLattice.{u1} α _inst_1)) Nat (fun (i : Nat) => f (x i))))))
+  forall {α : Type.{u1}} {ι : Type.{u2}} [_inst_1 : CompleteLattice.{u1} α] {B : Set.{u2} ι}, (Set.Countable.{u2} ι B) -> (forall (f : ι -> α) {i₀ : ι}, (Eq.{succ u1} α (f i₀) (Top.top.{u1} α (CompleteLattice.toHasTop.{u1} α _inst_1))) -> (Exists.{succ u2} (Nat -> ι) (fun (x : Nat -> ι) => Eq.{succ u1} α (iInf.{u1, succ u2} α (ConditionallyCompleteLattice.toHasInf.{u1} α (CompleteLattice.toConditionallyCompleteLattice.{u1} α _inst_1)) ι (fun (t : ι) => iInf.{u1, 0} α (ConditionallyCompleteLattice.toHasInf.{u1} α (CompleteLattice.toConditionallyCompleteLattice.{u1} α _inst_1)) (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) t B) (fun (H : Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) t B) => f t))) (iInf.{u1, 1} α (ConditionallyCompleteLattice.toHasInf.{u1} α (CompleteLattice.toConditionallyCompleteLattice.{u1} α _inst_1)) Nat (fun (i : Nat) => f (x i))))))
 but is expected to have type
-  forall {α : Type.{u2}} {ι : Type.{u1}} [_inst_1 : CompleteLattice.{u2} α] {B : Set.{u1} ι}, (Set.Countable.{u1} ι B) -> (forall (f : ι -> α) {i₀ : ι}, (Eq.{succ u2} α (f i₀) (Top.top.{u2} α (CompleteLattice.toTop.{u2} α _inst_1))) -> (Exists.{succ u1} (Nat -> ι) (fun (x : Nat -> ι) => Eq.{succ u2} α (infᵢ.{u2, succ u1} α (CompleteLattice.toInfSet.{u2} α _inst_1) ι (fun (t : ι) => infᵢ.{u2, 0} α (CompleteLattice.toInfSet.{u2} α _inst_1) (Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) t B) (fun (H : Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) t B) => f t))) (infᵢ.{u2, 1} α (CompleteLattice.toInfSet.{u2} α _inst_1) Nat (fun (i : Nat) => f (x i))))))
-Case conversion may be inaccurate. Consider using '#align filter.countable_binfi_eq_infi_seq' Filter.countable_binfᵢ_eq_infᵢ_seq'ₓ'. -/
-theorem countable_binfᵢ_eq_infᵢ_seq' [CompleteLattice α] {B : Set ι} (Bcbl : B.Countable)
+  forall {α : Type.{u2}} {ι : Type.{u1}} [_inst_1 : CompleteLattice.{u2} α] {B : Set.{u1} ι}, (Set.Countable.{u1} ι B) -> (forall (f : ι -> α) {i₀ : ι}, (Eq.{succ u2} α (f i₀) (Top.top.{u2} α (CompleteLattice.toTop.{u2} α _inst_1))) -> (Exists.{succ u1} (Nat -> ι) (fun (x : Nat -> ι) => Eq.{succ u2} α (iInf.{u2, succ u1} α (CompleteLattice.toInfSet.{u2} α _inst_1) ι (fun (t : ι) => iInf.{u2, 0} α (CompleteLattice.toInfSet.{u2} α _inst_1) (Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) t B) (fun (H : Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) t B) => f t))) (iInf.{u2, 1} α (CompleteLattice.toInfSet.{u2} α _inst_1) Nat (fun (i : Nat) => f (x i))))))
+Case conversion may be inaccurate. Consider using '#align filter.countable_binfi_eq_infi_seq' Filter.countable_biInf_eq_iInf_seq'ₓ'. -/
+theorem countable_biInf_eq_iInf_seq' [CompleteLattice α] {B : Set ι} (Bcbl : B.Countable)
     (f : ι → α) {i₀ : ι} (h : f i₀ = ⊤) : ∃ x : ℕ → ι, (⨅ t ∈ B, f t) = ⨅ i, f (x i) :=
   by
   cases' B.eq_empty_or_nonempty with hB Bnonempty
-  · rw [hB, infᵢ_emptyset]
+  · rw [hB, iInf_emptyset]
     use fun n => i₀
     simp [h]
   · exact countable_binfi_eq_infi_seq Bcbl Bnonempty f
-#align filter.countable_binfi_eq_infi_seq' Filter.countable_binfᵢ_eq_infᵢ_seq'
+#align filter.countable_binfi_eq_infi_seq' Filter.countable_biInf_eq_iInf_seq'
 
-/- warning: filter.countable_binfi_principal_eq_seq_infi -> Filter.countable_binfᵢ_principal_eq_seq_infᵢ is a dubious translation:
+/- warning: filter.countable_binfi_principal_eq_seq_infi -> Filter.countable_biInf_principal_eq_seq_iInf is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {B : Set.{u1} (Set.{u1} α)}, (Set.Countable.{u1} (Set.{u1} α) B) -> (Exists.{succ u1} (Nat -> (Set.{u1} α)) (fun (x : Nat -> (Set.{u1} α)) => Eq.{succ u1} (Filter.{u1} α) (infᵢ.{u1, succ u1} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (Set.{u1} α) (fun (t : Set.{u1} α) => infᵢ.{u1, 0} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) t B) (fun (H : Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) t B) => Filter.principal.{u1} α t))) (infᵢ.{u1, 1} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) Nat (fun (i : Nat) => Filter.principal.{u1} α (x i)))))
+  forall {α : Type.{u1}} {B : Set.{u1} (Set.{u1} α)}, (Set.Countable.{u1} (Set.{u1} α) B) -> (Exists.{succ u1} (Nat -> (Set.{u1} α)) (fun (x : Nat -> (Set.{u1} α)) => Eq.{succ u1} (Filter.{u1} α) (iInf.{u1, succ u1} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (Set.{u1} α) (fun (t : Set.{u1} α) => iInf.{u1, 0} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) t B) (fun (H : Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) t B) => Filter.principal.{u1} α t))) (iInf.{u1, 1} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) Nat (fun (i : Nat) => Filter.principal.{u1} α (x i)))))
 but is expected to have type
-  forall {α : Type.{u1}} {B : Set.{u1} (Set.{u1} α)}, (Set.Countable.{u1} (Set.{u1} α) B) -> (Exists.{succ u1} (Nat -> (Set.{u1} α)) (fun (x : Nat -> (Set.{u1} α)) => Eq.{succ u1} (Filter.{u1} α) (infᵢ.{u1, succ u1} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) (Set.{u1} α) (fun (t : Set.{u1} α) => infᵢ.{u1, 0} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) (Membership.mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.instMembershipSet.{u1} (Set.{u1} α)) t B) (fun (H : Membership.mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.instMembershipSet.{u1} (Set.{u1} α)) t B) => Filter.principal.{u1} α t))) (infᵢ.{u1, 1} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) Nat (fun (i : Nat) => Filter.principal.{u1} α (x i)))))
-Case conversion may be inaccurate. Consider using '#align filter.countable_binfi_principal_eq_seq_infi Filter.countable_binfᵢ_principal_eq_seq_infᵢₓ'. -/
-theorem countable_binfᵢ_principal_eq_seq_infᵢ {B : Set (Set α)} (Bcbl : B.Countable) :
+  forall {α : Type.{u1}} {B : Set.{u1} (Set.{u1} α)}, (Set.Countable.{u1} (Set.{u1} α) B) -> (Exists.{succ u1} (Nat -> (Set.{u1} α)) (fun (x : Nat -> (Set.{u1} α)) => Eq.{succ u1} (Filter.{u1} α) (iInf.{u1, succ u1} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) (Set.{u1} α) (fun (t : Set.{u1} α) => iInf.{u1, 0} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) (Membership.mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.instMembershipSet.{u1} (Set.{u1} α)) t B) (fun (H : Membership.mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.instMembershipSet.{u1} (Set.{u1} α)) t B) => Filter.principal.{u1} α t))) (iInf.{u1, 1} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) Nat (fun (i : Nat) => Filter.principal.{u1} α (x i)))))
+Case conversion may be inaccurate. Consider using '#align filter.countable_binfi_principal_eq_seq_infi Filter.countable_biInf_principal_eq_seq_iInfₓ'. -/
+theorem countable_biInf_principal_eq_seq_iInf {B : Set (Set α)} (Bcbl : B.Countable) :
     ∃ x : ℕ → Set α, (⨅ t ∈ B, 𝓟 t) = ⨅ i, 𝓟 (x i) :=
-  countable_binfᵢ_eq_infᵢ_seq' Bcbl 𝓟 principal_univ
-#align filter.countable_binfi_principal_eq_seq_infi Filter.countable_binfᵢ_principal_eq_seq_infᵢ
+  countable_biInf_eq_iInf_seq' Bcbl 𝓟 principal_univ
+#align filter.countable_binfi_principal_eq_seq_infi Filter.countable_biInf_principal_eq_seq_iInf
 
 section IsCountablyGenerated
 
@@ -1747,7 +1747,7 @@ theorem HasBasis.exists_antitone_subbasis {f : Filter α} [h : f.IsCountablyGene
     rcases h with ⟨s, hsc, rfl⟩
     rw [generate_eq_binfi]
     exact countable_binfi_principal_eq_seq_infi hsc
-  have : ∀ i, x' i ∈ f := fun i => hx'.symm ▸ (infᵢ_le (fun i => 𝓟 (x' i)) i) (mem_principal_self _)
+  have : ∀ i, x' i ∈ f := fun i => hx'.symm ▸ (iInf_le (fun i => 𝓟 (x' i)) i) (mem_principal_self _)
   let x : ℕ → { i : ι' // p i } := fun n =>
     Nat.recOn n (hs.index _ <| this 0) fun n xn =>
       hs.index _ <| inter_mem (this <| n + 1) (hs.mem_of_mem xn.2)
@@ -1763,9 +1763,9 @@ theorem HasBasis.exists_antitone_subbasis {f : Filter α} [h : f.IsCountablyGene
     ⟨has_basis_infi_principal (directed_of_sup x_mono), x_mono⟩
   convert this
   exact
-    le_antisymm (le_infᵢ fun i => le_principal_iff.2 <| by cases i <;> apply hs.set_index_mem)
+    le_antisymm (le_iInf fun i => le_principal_iff.2 <| by cases i <;> apply hs.set_index_mem)
       (hx'.symm ▸
-        le_infᵢ fun i => le_principal_iff.2 <| this.to_has_basis.mem_iff.2 ⟨i, trivial, x_subset i⟩)
+        le_iInf fun i => le_principal_iff.2 <| this.to_has_basis.mem_iff.2 ⟨i, trivial, x_subset i⟩)
 #align filter.has_basis.exists_antitone_subbasis Filter.HasBasis.exists_antitone_subbasis
 
 #print Filter.exists_antitone_basis /-
@@ -1855,22 +1855,22 @@ end IsCountablyGenerated
 
 /- warning: filter.is_countably_generated_seq -> Filter.isCountablyGenerated_seq is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Countable.{succ u2} β] (x : β -> (Set.{u1} α)), Filter.IsCountablyGenerated.{u1} α (infᵢ.{u1, succ u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) β (fun (i : β) => Filter.principal.{u1} α (x i)))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Countable.{succ u2} β] (x : β -> (Set.{u1} α)), Filter.IsCountablyGenerated.{u1} α (iInf.{u1, succ u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) β (fun (i : β) => Filter.principal.{u1} α (x i)))
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Countable.{succ u2} β] (x : β -> (Set.{u1} α)), Filter.IsCountablyGenerated.{u1} α (infᵢ.{u1, succ u2} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) β (fun (i : β) => Filter.principal.{u1} α (x i)))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Countable.{succ u2} β] (x : β -> (Set.{u1} α)), Filter.IsCountablyGenerated.{u1} α (iInf.{u1, succ u2} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) β (fun (i : β) => Filter.principal.{u1} α (x i)))
 Case conversion may be inaccurate. Consider using '#align filter.is_countably_generated_seq Filter.isCountablyGenerated_seqₓ'. -/
 theorem isCountablyGenerated_seq [Countable β] (x : β → Set α) :
     IsCountablyGenerated (⨅ i, 𝓟 <| x i) :=
   by
   use range x, countable_range x
-  rw [generate_eq_binfi, infᵢ_range]
+  rw [generate_eq_binfi, iInf_range]
 #align filter.is_countably_generated_seq Filter.isCountablyGenerated_seq
 
 /- warning: filter.is_countably_generated_of_seq -> Filter.isCountablyGenerated_of_seq is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {f : Filter.{u1} α}, (Exists.{succ u1} (Nat -> (Set.{u1} α)) (fun (x : Nat -> (Set.{u1} α)) => Eq.{succ u1} (Filter.{u1} α) f (infᵢ.{u1, 1} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) Nat (fun (i : Nat) => Filter.principal.{u1} α (x i))))) -> (Filter.IsCountablyGenerated.{u1} α f)
+  forall {α : Type.{u1}} {f : Filter.{u1} α}, (Exists.{succ u1} (Nat -> (Set.{u1} α)) (fun (x : Nat -> (Set.{u1} α)) => Eq.{succ u1} (Filter.{u1} α) f (iInf.{u1, 1} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) Nat (fun (i : Nat) => Filter.principal.{u1} α (x i))))) -> (Filter.IsCountablyGenerated.{u1} α f)
 but is expected to have type
-  forall {α : Type.{u1}} {f : Filter.{u1} α}, (Exists.{succ u1} (Nat -> (Set.{u1} α)) (fun (x : Nat -> (Set.{u1} α)) => Eq.{succ u1} (Filter.{u1} α) f (infᵢ.{u1, 1} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) Nat (fun (i : Nat) => Filter.principal.{u1} α (x i))))) -> (Filter.IsCountablyGenerated.{u1} α f)
+  forall {α : Type.{u1}} {f : Filter.{u1} α}, (Exists.{succ u1} (Nat -> (Set.{u1} α)) (fun (x : Nat -> (Set.{u1} α)) => Eq.{succ u1} (Filter.{u1} α) f (iInf.{u1, 1} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) Nat (fun (i : Nat) => Filter.principal.{u1} α (x i))))) -> (Filter.IsCountablyGenerated.{u1} α f)
 Case conversion may be inaccurate. Consider using '#align filter.is_countably_generated_of_seq Filter.isCountablyGenerated_of_seqₓ'. -/
 theorem isCountablyGenerated_of_seq {f : Filter α} (h : ∃ x : ℕ → Set α, f = ⨅ i, 𝓟 <| x i) :
     f.IsCountablyGenerated := by
@@ -1878,16 +1878,16 @@ theorem isCountablyGenerated_of_seq {f : Filter α} (h : ∃ x : ℕ → Set α,
   rw [h] <;> apply is_countably_generated_seq
 #align filter.is_countably_generated_of_seq Filter.isCountablyGenerated_of_seq
 
-/- warning: filter.is_countably_generated_binfi_principal -> Filter.isCountablyGenerated_binfᵢ_principal is a dubious translation:
+/- warning: filter.is_countably_generated_binfi_principal -> Filter.isCountablyGenerated_biInf_principal is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {B : Set.{u1} (Set.{u1} α)}, (Set.Countable.{u1} (Set.{u1} α) B) -> (Filter.IsCountablyGenerated.{u1} α (infᵢ.{u1, succ u1} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (Set.{u1} α) (fun (s : Set.{u1} α) => infᵢ.{u1, 0} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) s B) (fun (H : Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) s B) => Filter.principal.{u1} α s))))
+  forall {α : Type.{u1}} {B : Set.{u1} (Set.{u1} α)}, (Set.Countable.{u1} (Set.{u1} α) B) -> (Filter.IsCountablyGenerated.{u1} α (iInf.{u1, succ u1} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (Set.{u1} α) (fun (s : Set.{u1} α) => iInf.{u1, 0} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) s B) (fun (H : Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) s B) => Filter.principal.{u1} α s))))
 but is expected to have type
-  forall {α : Type.{u1}} {B : Set.{u1} (Set.{u1} α)}, (Set.Countable.{u1} (Set.{u1} α) B) -> (Filter.IsCountablyGenerated.{u1} α (infᵢ.{u1, succ u1} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) (Set.{u1} α) (fun (s : Set.{u1} α) => infᵢ.{u1, 0} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) (Membership.mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.instMembershipSet.{u1} (Set.{u1} α)) s B) (fun (H : Membership.mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.instMembershipSet.{u1} (Set.{u1} α)) s B) => Filter.principal.{u1} α s))))
-Case conversion may be inaccurate. Consider using '#align filter.is_countably_generated_binfi_principal Filter.isCountablyGenerated_binfᵢ_principalₓ'. -/
-theorem isCountablyGenerated_binfᵢ_principal {B : Set <| Set α} (h : B.Countable) :
+  forall {α : Type.{u1}} {B : Set.{u1} (Set.{u1} α)}, (Set.Countable.{u1} (Set.{u1} α) B) -> (Filter.IsCountablyGenerated.{u1} α (iInf.{u1, succ u1} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) (Set.{u1} α) (fun (s : Set.{u1} α) => iInf.{u1, 0} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) (Membership.mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.instMembershipSet.{u1} (Set.{u1} α)) s B) (fun (H : Membership.mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.instMembershipSet.{u1} (Set.{u1} α)) s B) => Filter.principal.{u1} α s))))
+Case conversion may be inaccurate. Consider using '#align filter.is_countably_generated_binfi_principal Filter.isCountablyGenerated_biInf_principalₓ'. -/
+theorem isCountablyGenerated_biInf_principal {B : Set <| Set α} (h : B.Countable) :
     IsCountablyGenerated (⨅ s ∈ B, 𝓟 s) :=
-  isCountablyGenerated_of_seq (countable_binfᵢ_principal_eq_seq_infᵢ h)
-#align filter.is_countably_generated_binfi_principal Filter.isCountablyGenerated_binfᵢ_principal
+  isCountablyGenerated_of_seq (countable_biInf_principal_eq_seq_iInf h)
+#align filter.is_countably_generated_binfi_principal Filter.isCountablyGenerated_biInf_principal
 
 #print Filter.isCountablyGenerated_iff_exists_antitone_basis /-
 theorem isCountablyGenerated_iff_exists_antitone_basis {f : Filter α} :
@@ -1905,7 +1905,7 @@ theorem isCountablyGenerated_iff_exists_antitone_basis {f : Filter α} :
 #print Filter.isCountablyGenerated_principal /-
 @[instance]
 theorem isCountablyGenerated_principal (s : Set α) : IsCountablyGenerated (𝓟 s) :=
-  isCountablyGenerated_of_seq ⟨fun _ => s, infᵢ_const.symm⟩
+  isCountablyGenerated_of_seq ⟨fun _ => s, iInf_const.symm⟩
 #align filter.is_countably_generated_principal Filter.isCountablyGenerated_principal
 -/
 
@@ -1940,13 +1940,13 @@ theorem isCountablyGenerated_top : IsCountablyGenerated (⊤ : Filter α) :=
   @principal_univ α ▸ isCountablyGenerated_principal _
 #align filter.is_countably_generated_top Filter.isCountablyGenerated_top
 
-/- warning: filter.infi.is_countably_generated -> Filter.infᵢ.isCountablyGenerated is a dubious translation:
+/- warning: filter.infi.is_countably_generated -> Filter.iInf.isCountablyGenerated is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} [_inst_1 : Countable.{u2} ι] (f : ι -> (Filter.{u1} α)) [_inst_2 : forall (i : ι), Filter.IsCountablyGenerated.{u1} α (f i)], Filter.IsCountablyGenerated.{u1} α (infᵢ.{u1, u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => f i))
+  forall {α : Type.{u1}} {ι : Sort.{u2}} [_inst_1 : Countable.{u2} ι] (f : ι -> (Filter.{u1} α)) [_inst_2 : forall (i : ι), Filter.IsCountablyGenerated.{u1} α (f i)], Filter.IsCountablyGenerated.{u1} α (iInf.{u1, u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => f i))
 but is expected to have type
-  forall {α : Sort.{u1}} {ι : Type.{u2}} [_inst_1 : Countable.{u1} α] (f : α -> (Filter.{u2} ι)) [_inst_2 : forall (i : α), Filter.IsCountablyGenerated.{u2} ι (f i)], Filter.IsCountablyGenerated.{u2} ι (infᵢ.{u2, u1} (Filter.{u2} ι) (CompleteLattice.toInfSet.{u2} (Filter.{u2} ι) (Filter.instCompleteLatticeFilter.{u2} ι)) α (fun (i : α) => f i))
-Case conversion may be inaccurate. Consider using '#align filter.infi.is_countably_generated Filter.infᵢ.isCountablyGeneratedₓ'. -/
-instance infᵢ.isCountablyGenerated {ι : Sort _} [Countable ι] (f : ι → Filter α)
+  forall {α : Sort.{u1}} {ι : Type.{u2}} [_inst_1 : Countable.{u1} α] (f : α -> (Filter.{u2} ι)) [_inst_2 : forall (i : α), Filter.IsCountablyGenerated.{u2} ι (f i)], Filter.IsCountablyGenerated.{u2} ι (iInf.{u2, u1} (Filter.{u2} ι) (CompleteLattice.toInfSet.{u2} (Filter.{u2} ι) (Filter.instCompleteLatticeFilter.{u2} ι)) α (fun (i : α) => f i))
+Case conversion may be inaccurate. Consider using '#align filter.infi.is_countably_generated Filter.iInf.isCountablyGeneratedₓ'. -/
+instance iInf.isCountablyGenerated {ι : Sort _} [Countable ι] (f : ι → Filter α)
     [∀ i, IsCountablyGenerated (f i)] : IsCountablyGenerated (⨅ i, f i) :=
   by
   choose s hs using fun i => exists_antitone_basis (f i)
@@ -1956,7 +1956,7 @@ instance infᵢ.isCountablyGenerated {ι : Sort _} [Countable ι] (f : ι → Fi
   rintro ⟨I, f⟩ ⟨hI, -⟩
   lift I to Finset (PLift ι) using hI
   exact ⟨⟨I, f⟩, rfl⟩
-#align filter.infi.is_countably_generated Filter.infᵢ.isCountablyGenerated
+#align filter.infi.is_countably_generated Filter.iInf.isCountablyGenerated
 
 end Filter
 
Diff
@@ -1212,7 +1212,7 @@ theorem HasBasis.eq_infᵢ (h : l.HasBasis (fun _ => True) s) : l = ⨅ i, 𝓟
 lean 3 declaration is
   forall {α : Type.{u1}} {ι : Sort.{u2}} {s : ι -> (Set.{u1} α)}, (Directed.{u1, u2} (Set.{u1} α) ι (GE.ge.{u1} (Set.{u1} α) (Set.hasLe.{u1} α)) s) -> (forall [_inst_1 : Nonempty.{u2} ι], Filter.HasBasis.{u1, u2} α ι (infᵢ.{u1, u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => Filter.principal.{u1} α (s i))) (fun (_x : ι) => True) s)
 but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {s : ι -> (Set.{u2} α)}, (Directed.{u2, u1} (Set.{u2} α) ι (fun (x._@.Mathlib.Order.Filter.Bases._hyg.9265 : Set.{u2} α) (x._@.Mathlib.Order.Filter.Bases._hyg.9267 : Set.{u2} α) => GE.ge.{u2} (Set.{u2} α) (Set.instLESet.{u2} α) x._@.Mathlib.Order.Filter.Bases._hyg.9265 x._@.Mathlib.Order.Filter.Bases._hyg.9267) s) -> (forall [_inst_1 : Nonempty.{u1} ι], Filter.HasBasis.{u2, u1} α ι (infᵢ.{u2, u1} (Filter.{u2} α) (CompleteLattice.toInfSet.{u2} (Filter.{u2} α) (Filter.instCompleteLatticeFilter.{u2} α)) ι (fun (i : ι) => Filter.principal.{u2} α (s i))) (fun (_x : ι) => True) s)
+  forall {α : Type.{u2}} {ι : Sort.{u1}} {s : ι -> (Set.{u2} α)}, (Directed.{u2, u1} (Set.{u2} α) ι (fun (x._@.Mathlib.Order.Filter.Bases._hyg.9263 : Set.{u2} α) (x._@.Mathlib.Order.Filter.Bases._hyg.9265 : Set.{u2} α) => GE.ge.{u2} (Set.{u2} α) (Set.instLESet.{u2} α) x._@.Mathlib.Order.Filter.Bases._hyg.9263 x._@.Mathlib.Order.Filter.Bases._hyg.9265) s) -> (forall [_inst_1 : Nonempty.{u1} ι], Filter.HasBasis.{u2, u1} α ι (infᵢ.{u2, u1} (Filter.{u2} α) (CompleteLattice.toInfSet.{u2} (Filter.{u2} α) (Filter.instCompleteLatticeFilter.{u2} α)) ι (fun (i : ι) => Filter.principal.{u2} α (s i))) (fun (_x : ι) => True) s)
 Case conversion may be inaccurate. Consider using '#align filter.has_basis_infi_principal Filter.hasBasis_infᵢ_principalₓ'. -/
 theorem hasBasis_infᵢ_principal {s : ι → Set α} (h : Directed (· ≥ ·) s) [Nonempty ι] :
     (⨅ i, 𝓟 (s i)).HasBasis (fun _ => True) s :=
@@ -1243,7 +1243,7 @@ theorem hasBasis_infᵢ_principal_finite {ι : Type _} (s : ι → Set α) :
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} {s : β -> (Set.{u1} α)} {S : Set.{u2} β}, (DirectedOn.{u2} β (Order.Preimage.{succ u2, succ u1} β (Set.{u1} α) s (GE.ge.{u1} (Set.{u1} α) (Set.hasLe.{u1} α))) S) -> (Set.Nonempty.{u2} β S) -> (Filter.HasBasis.{u1, succ u2} α β (infᵢ.{u1, succ u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) β (fun (i : β) => infᵢ.{u1, 0} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) i S) (fun (H : Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) i S) => Filter.principal.{u1} α (s i)))) (fun (i : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) i S) s)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {s : β -> (Set.{u2} α)} {S : Set.{u1} β}, (DirectedOn.{u1} β (Order.Preimage.{succ u1, succ u2} β (Set.{u2} α) s (fun (x._@.Mathlib.Order.Filter.Bases._hyg.9498 : Set.{u2} α) (x._@.Mathlib.Order.Filter.Bases._hyg.9500 : Set.{u2} α) => GE.ge.{u2} (Set.{u2} α) (Set.instLESet.{u2} α) x._@.Mathlib.Order.Filter.Bases._hyg.9498 x._@.Mathlib.Order.Filter.Bases._hyg.9500)) S) -> (Set.Nonempty.{u1} β S) -> (Filter.HasBasis.{u2, succ u1} α β (infᵢ.{u2, succ u1} (Filter.{u2} α) (CompleteLattice.toInfSet.{u2} (Filter.{u2} α) (Filter.instCompleteLatticeFilter.{u2} α)) β (fun (i : β) => infᵢ.{u2, 0} (Filter.{u2} α) (CompleteLattice.toInfSet.{u2} (Filter.{u2} α) (Filter.instCompleteLatticeFilter.{u2} α)) (Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) i S) (fun (H : Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) i S) => Filter.principal.{u2} α (s i)))) (fun (i : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) i S) s)
+  forall {α : Type.{u2}} {β : Type.{u1}} {s : β -> (Set.{u2} α)} {S : Set.{u1} β}, (DirectedOn.{u1} β (Order.Preimage.{succ u1, succ u2} β (Set.{u2} α) s (fun (x._@.Mathlib.Order.Filter.Bases._hyg.9496 : Set.{u2} α) (x._@.Mathlib.Order.Filter.Bases._hyg.9498 : Set.{u2} α) => GE.ge.{u2} (Set.{u2} α) (Set.instLESet.{u2} α) x._@.Mathlib.Order.Filter.Bases._hyg.9496 x._@.Mathlib.Order.Filter.Bases._hyg.9498)) S) -> (Set.Nonempty.{u1} β S) -> (Filter.HasBasis.{u2, succ u1} α β (infᵢ.{u2, succ u1} (Filter.{u2} α) (CompleteLattice.toInfSet.{u2} (Filter.{u2} α) (Filter.instCompleteLatticeFilter.{u2} α)) β (fun (i : β) => infᵢ.{u2, 0} (Filter.{u2} α) (CompleteLattice.toInfSet.{u2} (Filter.{u2} α) (Filter.instCompleteLatticeFilter.{u2} α)) (Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) i S) (fun (H : Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) i S) => Filter.principal.{u2} α (s i)))) (fun (i : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) i S) s)
 Case conversion may be inaccurate. Consider using '#align filter.has_basis_binfi_principal Filter.hasBasis_binfᵢ_principalₓ'. -/
 theorem hasBasis_binfᵢ_principal {s : β → Set α} {S : Set β} (h : DirectedOn (s ⁻¹'o (· ≥ ·)) S)
     (ne : S.Nonempty) : (⨅ i ∈ S, 𝓟 (s i)).HasBasis (fun i => i ∈ S) s :=
Diff
@@ -1588,7 +1588,7 @@ namespace Filter
 variable {α β γ ι : Type _} {ι' : Sort _}
 
 #print Filter.IsCountablyGenerated /-
-/- ./././Mathport/Syntax/Translate/Command.lean:388:30: infer kinds are unsupported in Lean 4: #[`out] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`out] [] -/
 /-- `is_countably_generated f` means `f = generate s` for some countable `s`. -/
 class IsCountablyGenerated (f : Filter α) : Prop where
   out : ∃ s : Set (Set α), s.Countable ∧ f = generate s
Diff
@@ -1574,7 +1574,7 @@ theorem map_sigma_mk_comap {π : α → Type _} {π' : β → Type _} {f : α 
     map (Sigma.mk a) (comap (g a) l) = comap (Sigma.map f g) (map (Sigma.mk (f a)) l) :=
   by
   refine' (((basis_sets _).comap _).map _).eq_of_same_basis _
-  convert ((basis_sets _).map _).comap _
+  convert((basis_sets _).map _).comap _
   ext1 s
   apply image_sigma_mk_preimage_sigma_map hf
 #align filter.map_sigma_mk_comap Filter.map_sigma_mk_comap
Diff
@@ -630,7 +630,7 @@ theorem HasBasis.comp_surjective (h : l.HasBasis p s) {g : ι' → ι} (hg : Fun
 lean 3 declaration is
   forall {α : Type.{u1}} {ι : Sort.{u2}} {ι' : Sort.{u3}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (forall (e : Equiv.{u3, u2} ι' ι), Filter.HasBasis.{u1, u3} α ι' l (Function.comp.{u3, u2, 1} ι' ι Prop p (coeFn.{max 1 (imax u3 u2) (imax u2 u3), imax u3 u2} (Equiv.{u3, u2} ι' ι) (fun (_x : Equiv.{u3, u2} ι' ι) => ι' -> ι) (Equiv.hasCoeToFun.{u3, u2} ι' ι) e)) (Function.comp.{u3, u2, succ u1} ι' ι (Set.{u1} α) s (coeFn.{max 1 (imax u3 u2) (imax u2 u3), imax u3 u2} (Equiv.{u3, u2} ι' ι) (fun (_x : Equiv.{u3, u2} ι' ι) => ι' -> ι) (Equiv.hasCoeToFun.{u3, u2} ι' ι) e)))
 but is expected to have type
-  forall {α : Type.{u3}} {ι : Sort.{u2}} {ι' : Sort.{u1}} {l : Filter.{u3} α} {p : ι -> Prop} {s : ι -> (Set.{u3} α)}, (Filter.HasBasis.{u3, u2} α ι l p s) -> (forall (e : Equiv.{u1, u2} ι' ι), Filter.HasBasis.{u3, u1} α ι' l (Function.comp.{u1, u2, 1} ι' ι Prop p (FunLike.coe.{max (max 1 u2) u1, u1, u2} (Equiv.{u1, u2} ι' ι) ι' (fun (_x : ι') => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : ι') => ι) _x) (Equiv.instFunLikeEquiv.{u1, u2} ι' ι) e)) (Function.comp.{u1, u2, succ u3} ι' ι (Set.{u3} α) s (FunLike.coe.{max (max 1 u2) u1, u1, u2} (Equiv.{u1, u2} ι' ι) ι' (fun (_x : ι') => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : ι') => ι) _x) (Equiv.instFunLikeEquiv.{u1, u2} ι' ι) e)))
+  forall {α : Type.{u3}} {ι : Sort.{u2}} {ι' : Sort.{u1}} {l : Filter.{u3} α} {p : ι -> Prop} {s : ι -> (Set.{u3} α)}, (Filter.HasBasis.{u3, u2} α ι l p s) -> (forall (e : Equiv.{u1, u2} ι' ι), Filter.HasBasis.{u3, u1} α ι' l (Function.comp.{u1, u2, 1} ι' ι Prop p (FunLike.coe.{max (max 1 u2) u1, u1, u2} (Equiv.{u1, u2} ι' ι) ι' (fun (_x : ι') => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : ι') => ι) _x) (Equiv.instFunLikeEquiv.{u1, u2} ι' ι) e)) (Function.comp.{u1, u2, succ u3} ι' ι (Set.{u3} α) s (FunLike.coe.{max (max 1 u2) u1, u1, u2} (Equiv.{u1, u2} ι' ι) ι' (fun (_x : ι') => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : ι') => ι) _x) (Equiv.instFunLikeEquiv.{u1, u2} ι' ι) e)))
 Case conversion may be inaccurate. Consider using '#align filter.has_basis.comp_equiv Filter.HasBasis.comp_equivₓ'. -/
 theorem HasBasis.comp_equiv (h : l.HasBasis p s) (e : ι' ≃ ι) : l.HasBasis (p ∘ e) (s ∘ e) :=
   h.comp_surjective e.Surjective
@@ -784,7 +784,7 @@ theorem hasBasis_infᵢ {ι : Type _} {ι' : ι → Type _} {l : ι → Filter 
 lean 3 declaration is
   forall {α : Type.{u1}} {ι : Type.{u2}} {ι' : ι -> Type.{u3}} [_inst_1 : Nonempty.{succ u2} ι] {l : ι -> (Filter.{u1} α)} (s : forall (i : ι), (ι' i) -> (Set.{u1} α)) (p : forall (i : ι), (ι' i) -> Prop), (forall (i : ι), Filter.HasBasis.{u1, succ u3} α (ι' i) (l i) (p i) (s i)) -> (Directed.{u1, succ u2} (Filter.{u1} α) ι (GE.ge.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α)))) l) -> (Filter.HasBasis.{u1, max (succ u2) (succ u3)} α (Sigma.{u2, u3} ι (fun (i : ι) => ι' i)) (infᵢ.{u1, succ u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => l i)) (fun (ii' : Sigma.{u2, u3} ι (fun (i : ι) => ι' i)) => p (Sigma.fst.{u2, u3} ι (fun (i : ι) => ι' i) ii') (Sigma.snd.{u2, u3} ι (fun (i : ι) => ι' i) ii')) (fun (ii' : Sigma.{u2, u3} ι (fun (i : ι) => ι' i)) => s (Sigma.fst.{u2, u3} ι (fun (i : ι) => ι' i) ii') (Sigma.snd.{u2, u3} ι (fun (i : ι) => ι' i) ii')))
 but is expected to have type
-  forall {α : Type.{u1}} {ι : Type.{u3}} {ι' : ι -> Type.{u2}} [_inst_1 : Nonempty.{succ u3} ι] {l : ι -> (Filter.{u1} α)} (s : forall (i : ι), (ι' i) -> (Set.{u1} α)) (p : forall (i : ι), (ι' i) -> Prop), (forall (i : ι), Filter.HasBasis.{u1, succ u2} α (ι' i) (l i) (p i) (s i)) -> (Directed.{u1, succ u3} (Filter.{u1} α) ι (fun (x._@.Mathlib.Order.Filter.Bases._hyg.5721 : Filter.{u1} α) (x._@.Mathlib.Order.Filter.Bases._hyg.5723 : Filter.{u1} α) => GE.ge.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α))) x._@.Mathlib.Order.Filter.Bases._hyg.5721 x._@.Mathlib.Order.Filter.Bases._hyg.5723) l) -> (Filter.HasBasis.{u1, max (succ u3) (succ u2)} α (Sigma.{u3, u2} ι (fun (i : ι) => ι' i)) (infᵢ.{u1, succ u3} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) ι (fun (i : ι) => l i)) (fun (ii' : Sigma.{u3, u2} ι (fun (i : ι) => ι' i)) => p (Sigma.fst.{u3, u2} ι (fun (i : ι) => ι' i) ii') (Sigma.snd.{u3, u2} ι (fun (i : ι) => ι' i) ii')) (fun (ii' : Sigma.{u3, u2} ι (fun (i : ι) => ι' i)) => s (Sigma.fst.{u3, u2} ι (fun (i : ι) => ι' i) ii') (Sigma.snd.{u3, u2} ι (fun (i : ι) => ι' i) ii')))
+  forall {α : Type.{u1}} {ι : Type.{u3}} {ι' : ι -> Type.{u2}} [_inst_1 : Nonempty.{succ u3} ι] {l : ι -> (Filter.{u1} α)} (s : forall (i : ι), (ι' i) -> (Set.{u1} α)) (p : forall (i : ι), (ι' i) -> Prop), (forall (i : ι), Filter.HasBasis.{u1, succ u2} α (ι' i) (l i) (p i) (s i)) -> (Directed.{u1, succ u3} (Filter.{u1} α) ι (fun (x._@.Mathlib.Order.Filter.Bases._hyg.5723 : Filter.{u1} α) (x._@.Mathlib.Order.Filter.Bases._hyg.5725 : Filter.{u1} α) => GE.ge.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α))) x._@.Mathlib.Order.Filter.Bases._hyg.5723 x._@.Mathlib.Order.Filter.Bases._hyg.5725) l) -> (Filter.HasBasis.{u1, max (succ u3) (succ u2)} α (Sigma.{u3, u2} ι (fun (i : ι) => ι' i)) (infᵢ.{u1, succ u3} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) ι (fun (i : ι) => l i)) (fun (ii' : Sigma.{u3, u2} ι (fun (i : ι) => ι' i)) => p (Sigma.fst.{u3, u2} ι (fun (i : ι) => ι' i) ii') (Sigma.snd.{u3, u2} ι (fun (i : ι) => ι' i) ii')) (fun (ii' : Sigma.{u3, u2} ι (fun (i : ι) => ι' i)) => s (Sigma.fst.{u3, u2} ι (fun (i : ι) => ι' i) ii') (Sigma.snd.{u3, u2} ι (fun (i : ι) => ι' i) ii')))
 Case conversion may be inaccurate. Consider using '#align filter.has_basis_infi_of_directed' Filter.hasBasis_infᵢ_of_directed'ₓ'. -/
 theorem hasBasis_infᵢ_of_directed' {ι : Type _} {ι' : ι → Sort _} [Nonempty ι] {l : ι → Filter α}
     (s : ∀ i, ι' i → Set α) (p : ∀ i, ι' i → Prop) (hl : ∀ i, (l i).HasBasis (p i) (s i))
@@ -800,7 +800,7 @@ theorem hasBasis_infᵢ_of_directed' {ι : Type _} {ι' : ι → Sort _} [Nonemp
 lean 3 declaration is
   forall {α : Type.{u1}} {ι : Type.{u2}} {ι' : Type.{u3}} [_inst_1 : Nonempty.{succ u2} ι] {l : ι -> (Filter.{u1} α)} (s : ι -> ι' -> (Set.{u1} α)) (p : ι -> ι' -> Prop), (forall (i : ι), Filter.HasBasis.{u1, succ u3} α ι' (l i) (p i) (s i)) -> (Directed.{u1, succ u2} (Filter.{u1} α) ι (GE.ge.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α)))) l) -> (Filter.HasBasis.{u1, max (succ u2) (succ u3)} α (Prod.{u2, u3} ι ι') (infᵢ.{u1, succ u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => l i)) (fun (ii' : Prod.{u2, u3} ι ι') => p (Prod.fst.{u2, u3} ι ι' ii') (Prod.snd.{u2, u3} ι ι' ii')) (fun (ii' : Prod.{u2, u3} ι ι') => s (Prod.fst.{u2, u3} ι ι' ii') (Prod.snd.{u2, u3} ι ι' ii')))
 but is expected to have type
-  forall {α : Type.{u1}} {ι : Type.{u3}} {ι' : Type.{u2}} [_inst_1 : Nonempty.{succ u3} ι] {l : ι -> (Filter.{u1} α)} (s : ι -> ι' -> (Set.{u1} α)) (p : ι -> ι' -> Prop), (forall (i : ι), Filter.HasBasis.{u1, succ u2} α ι' (l i) (p i) (s i)) -> (Directed.{u1, succ u3} (Filter.{u1} α) ι (fun (x._@.Mathlib.Order.Filter.Bases._hyg.5898 : Filter.{u1} α) (x._@.Mathlib.Order.Filter.Bases._hyg.5900 : Filter.{u1} α) => GE.ge.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α))) x._@.Mathlib.Order.Filter.Bases._hyg.5898 x._@.Mathlib.Order.Filter.Bases._hyg.5900) l) -> (Filter.HasBasis.{u1, max (succ u3) (succ u2)} α (Prod.{u3, u2} ι ι') (infᵢ.{u1, succ u3} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) ι (fun (i : ι) => l i)) (fun (ii' : Prod.{u3, u2} ι ι') => p (Prod.fst.{u3, u2} ι ι' ii') (Prod.snd.{u3, u2} ι ι' ii')) (fun (ii' : Prod.{u3, u2} ι ι') => s (Prod.fst.{u3, u2} ι ι' ii') (Prod.snd.{u3, u2} ι ι' ii')))
+  forall {α : Type.{u1}} {ι : Type.{u3}} {ι' : Type.{u2}} [_inst_1 : Nonempty.{succ u3} ι] {l : ι -> (Filter.{u1} α)} (s : ι -> ι' -> (Set.{u1} α)) (p : ι -> ι' -> Prop), (forall (i : ι), Filter.HasBasis.{u1, succ u2} α ι' (l i) (p i) (s i)) -> (Directed.{u1, succ u3} (Filter.{u1} α) ι (fun (x._@.Mathlib.Order.Filter.Bases._hyg.5900 : Filter.{u1} α) (x._@.Mathlib.Order.Filter.Bases._hyg.5902 : Filter.{u1} α) => GE.ge.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α))) x._@.Mathlib.Order.Filter.Bases._hyg.5900 x._@.Mathlib.Order.Filter.Bases._hyg.5902) l) -> (Filter.HasBasis.{u1, max (succ u3) (succ u2)} α (Prod.{u3, u2} ι ι') (infᵢ.{u1, succ u3} (Filter.{u1} α) (CompleteLattice.toInfSet.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)) ι (fun (i : ι) => l i)) (fun (ii' : Prod.{u3, u2} ι ι') => p (Prod.fst.{u3, u2} ι ι' ii') (Prod.snd.{u3, u2} ι ι' ii')) (fun (ii' : Prod.{u3, u2} ι ι') => s (Prod.fst.{u3, u2} ι ι' ii') (Prod.snd.{u3, u2} ι ι' ii')))
 Case conversion may be inaccurate. Consider using '#align filter.has_basis_infi_of_directed Filter.hasBasis_infᵢ_of_directedₓ'. -/
 theorem hasBasis_infᵢ_of_directed {ι : Type _} {ι' : Sort _} [Nonempty ι] {l : ι → Filter α}
     (s : ι → ι' → Set α) (p : ι → ι' → Prop) (hl : ∀ i, (l i).HasBasis (p i) (s i))
@@ -1212,7 +1212,7 @@ theorem HasBasis.eq_infᵢ (h : l.HasBasis (fun _ => True) s) : l = ⨅ i, 𝓟
 lean 3 declaration is
   forall {α : Type.{u1}} {ι : Sort.{u2}} {s : ι -> (Set.{u1} α)}, (Directed.{u1, u2} (Set.{u1} α) ι (GE.ge.{u1} (Set.{u1} α) (Set.hasLe.{u1} α)) s) -> (forall [_inst_1 : Nonempty.{u2} ι], Filter.HasBasis.{u1, u2} α ι (infᵢ.{u1, u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) ι (fun (i : ι) => Filter.principal.{u1} α (s i))) (fun (_x : ι) => True) s)
 but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {s : ι -> (Set.{u2} α)}, (Directed.{u2, u1} (Set.{u2} α) ι (fun (x._@.Mathlib.Order.Filter.Bases._hyg.9263 : Set.{u2} α) (x._@.Mathlib.Order.Filter.Bases._hyg.9265 : Set.{u2} α) => GE.ge.{u2} (Set.{u2} α) (Set.instLESet.{u2} α) x._@.Mathlib.Order.Filter.Bases._hyg.9263 x._@.Mathlib.Order.Filter.Bases._hyg.9265) s) -> (forall [_inst_1 : Nonempty.{u1} ι], Filter.HasBasis.{u2, u1} α ι (infᵢ.{u2, u1} (Filter.{u2} α) (CompleteLattice.toInfSet.{u2} (Filter.{u2} α) (Filter.instCompleteLatticeFilter.{u2} α)) ι (fun (i : ι) => Filter.principal.{u2} α (s i))) (fun (_x : ι) => True) s)
+  forall {α : Type.{u2}} {ι : Sort.{u1}} {s : ι -> (Set.{u2} α)}, (Directed.{u2, u1} (Set.{u2} α) ι (fun (x._@.Mathlib.Order.Filter.Bases._hyg.9265 : Set.{u2} α) (x._@.Mathlib.Order.Filter.Bases._hyg.9267 : Set.{u2} α) => GE.ge.{u2} (Set.{u2} α) (Set.instLESet.{u2} α) x._@.Mathlib.Order.Filter.Bases._hyg.9265 x._@.Mathlib.Order.Filter.Bases._hyg.9267) s) -> (forall [_inst_1 : Nonempty.{u1} ι], Filter.HasBasis.{u2, u1} α ι (infᵢ.{u2, u1} (Filter.{u2} α) (CompleteLattice.toInfSet.{u2} (Filter.{u2} α) (Filter.instCompleteLatticeFilter.{u2} α)) ι (fun (i : ι) => Filter.principal.{u2} α (s i))) (fun (_x : ι) => True) s)
 Case conversion may be inaccurate. Consider using '#align filter.has_basis_infi_principal Filter.hasBasis_infᵢ_principalₓ'. -/
 theorem hasBasis_infᵢ_principal {s : ι → Set α} (h : Directed (· ≥ ·) s) [Nonempty ι] :
     (⨅ i, 𝓟 (s i)).HasBasis (fun _ => True) s :=
@@ -1243,7 +1243,7 @@ theorem hasBasis_infᵢ_principal_finite {ι : Type _} (s : ι → Set α) :
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} {s : β -> (Set.{u1} α)} {S : Set.{u2} β}, (DirectedOn.{u2} β (Order.Preimage.{succ u2, succ u1} β (Set.{u1} α) s (GE.ge.{u1} (Set.{u1} α) (Set.hasLe.{u1} α))) S) -> (Set.Nonempty.{u2} β S) -> (Filter.HasBasis.{u1, succ u2} α β (infᵢ.{u1, succ u2} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) β (fun (i : β) => infᵢ.{u1, 0} (Filter.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))) (Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) i S) (fun (H : Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) i S) => Filter.principal.{u1} α (s i)))) (fun (i : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) i S) s)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {s : β -> (Set.{u2} α)} {S : Set.{u1} β}, (DirectedOn.{u1} β (Order.Preimage.{succ u1, succ u2} β (Set.{u2} α) s (fun (x._@.Mathlib.Order.Filter.Bases._hyg.9496 : Set.{u2} α) (x._@.Mathlib.Order.Filter.Bases._hyg.9498 : Set.{u2} α) => GE.ge.{u2} (Set.{u2} α) (Set.instLESet.{u2} α) x._@.Mathlib.Order.Filter.Bases._hyg.9496 x._@.Mathlib.Order.Filter.Bases._hyg.9498)) S) -> (Set.Nonempty.{u1} β S) -> (Filter.HasBasis.{u2, succ u1} α β (infᵢ.{u2, succ u1} (Filter.{u2} α) (CompleteLattice.toInfSet.{u2} (Filter.{u2} α) (Filter.instCompleteLatticeFilter.{u2} α)) β (fun (i : β) => infᵢ.{u2, 0} (Filter.{u2} α) (CompleteLattice.toInfSet.{u2} (Filter.{u2} α) (Filter.instCompleteLatticeFilter.{u2} α)) (Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) i S) (fun (H : Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) i S) => Filter.principal.{u2} α (s i)))) (fun (i : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) i S) s)
+  forall {α : Type.{u2}} {β : Type.{u1}} {s : β -> (Set.{u2} α)} {S : Set.{u1} β}, (DirectedOn.{u1} β (Order.Preimage.{succ u1, succ u2} β (Set.{u2} α) s (fun (x._@.Mathlib.Order.Filter.Bases._hyg.9498 : Set.{u2} α) (x._@.Mathlib.Order.Filter.Bases._hyg.9500 : Set.{u2} α) => GE.ge.{u2} (Set.{u2} α) (Set.instLESet.{u2} α) x._@.Mathlib.Order.Filter.Bases._hyg.9498 x._@.Mathlib.Order.Filter.Bases._hyg.9500)) S) -> (Set.Nonempty.{u1} β S) -> (Filter.HasBasis.{u2, succ u1} α β (infᵢ.{u2, succ u1} (Filter.{u2} α) (CompleteLattice.toInfSet.{u2} (Filter.{u2} α) (Filter.instCompleteLatticeFilter.{u2} α)) β (fun (i : β) => infᵢ.{u2, 0} (Filter.{u2} α) (CompleteLattice.toInfSet.{u2} (Filter.{u2} α) (Filter.instCompleteLatticeFilter.{u2} α)) (Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) i S) (fun (H : Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) i S) => Filter.principal.{u2} α (s i)))) (fun (i : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) i S) s)
 Case conversion may be inaccurate. Consider using '#align filter.has_basis_binfi_principal Filter.hasBasis_binfᵢ_principalₓ'. -/
 theorem hasBasis_binfᵢ_principal {s : β → Set α} {S : Set β} (h : DirectedOn (s ⁻¹'o (· ≥ ·)) S)
     (ne : S.Nonempty) : (⨅ i ∈ S, 𝓟 (s i)).HasBasis (fun i => i ∈ S) s :=
Diff
@@ -580,7 +580,7 @@ theorem HasBasis.eq_bot_iff (hl : l.HasBasis p s) : l = ⊥ ↔ ∃ i, p i ∧ s
       hl.neBot_iff.trans <| by simp only [not_exists, not_and, nonempty_iff_ne_empty]
 #align filter.has_basis.eq_bot_iff Filter.HasBasis.eq_bot_iff
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:628:2: warning: expanding binder collection (t «expr ⊆ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (t «expr ⊆ » s) -/
 #print Filter.generate_neBot_iff /-
 theorem generate_neBot_iff {s : Set (Set α)} :
     NeBot (generate s) ↔ ∀ (t) (_ : t ⊆ s), t.Finite → (⋂₀ t).Nonempty :=
Diff
@@ -707,9 +707,9 @@ theorem HasBasis.ext (hl : l.HasBasis p s) (hl' : l'.HasBasis p' s')
 
 /- warning: filter.has_basis.inf' -> Filter.HasBasis.inf' is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {ι' : Sort.{u3}} {l : Filter.{u1} α} {l' : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)} {p' : ι' -> Prop} {s' : ι' -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (Filter.HasBasis.{u1, u3} α ι' l' p' s') -> (Filter.HasBasis.{u1, max 1 u2 u3} α (PProd.{u2, u3} ι ι') (HasInf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) l l') (fun (i : PProd.{u2, u3} ι ι') => And (p (PProd.fst.{u2, u3} ι ι' i)) (p' (PProd.snd.{u2, u3} ι ι' i))) (fun (i : PProd.{u2, u3} ι ι') => Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) (s (PProd.fst.{u2, u3} ι ι' i)) (s' (PProd.snd.{u2, u3} ι ι' i))))
+  forall {α : Type.{u1}} {ι : Sort.{u2}} {ι' : Sort.{u3}} {l : Filter.{u1} α} {l' : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)} {p' : ι' -> Prop} {s' : ι' -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (Filter.HasBasis.{u1, u3} α ι' l' p' s') -> (Filter.HasBasis.{u1, max 1 u2 u3} α (PProd.{u2, u3} ι ι') (Inf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) l l') (fun (i : PProd.{u2, u3} ι ι') => And (p (PProd.fst.{u2, u3} ι ι' i)) (p' (PProd.snd.{u2, u3} ι ι' i))) (fun (i : PProd.{u2, u3} ι ι') => Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) (s (PProd.fst.{u2, u3} ι ι' i)) (s' (PProd.snd.{u2, u3} ι ι' i))))
 but is expected to have type
-  forall {α : Type.{u3}} {ι : Sort.{u2}} {ι' : Sort.{u1}} {l : Filter.{u3} α} {l' : Filter.{u3} α} {p : ι -> Prop} {s : ι -> (Set.{u3} α)} {p' : ι' -> Prop} {s' : ι' -> (Set.{u3} α)}, (Filter.HasBasis.{u3, u2} α ι l p s) -> (Filter.HasBasis.{u3, u1} α ι' l' p' s') -> (Filter.HasBasis.{u3, max (max 1 u2) u1} α (PProd.{u2, u1} ι ι') (HasInf.inf.{u3} (Filter.{u3} α) (Filter.instHasInfFilter.{u3} α) l l') (fun (i : PProd.{u2, u1} ι ι') => And (p (PProd.fst.{u2, u1} ι ι' i)) (p' (PProd.snd.{u2, u1} ι ι' i))) (fun (i : PProd.{u2, u1} ι ι') => Inter.inter.{u3} (Set.{u3} α) (Set.instInterSet.{u3} α) (s (PProd.fst.{u2, u1} ι ι' i)) (s' (PProd.snd.{u2, u1} ι ι' i))))
+  forall {α : Type.{u3}} {ι : Sort.{u2}} {ι' : Sort.{u1}} {l : Filter.{u3} α} {l' : Filter.{u3} α} {p : ι -> Prop} {s : ι -> (Set.{u3} α)} {p' : ι' -> Prop} {s' : ι' -> (Set.{u3} α)}, (Filter.HasBasis.{u3, u2} α ι l p s) -> (Filter.HasBasis.{u3, u1} α ι' l' p' s') -> (Filter.HasBasis.{u3, max (max 1 u2) u1} α (PProd.{u2, u1} ι ι') (Inf.inf.{u3} (Filter.{u3} α) (Filter.instInfFilter.{u3} α) l l') (fun (i : PProd.{u2, u1} ι ι') => And (p (PProd.fst.{u2, u1} ι ι' i)) (p' (PProd.snd.{u2, u1} ι ι' i))) (fun (i : PProd.{u2, u1} ι ι') => Inter.inter.{u3} (Set.{u3} α) (Set.instInterSet.{u3} α) (s (PProd.fst.{u2, u1} ι ι' i)) (s' (PProd.snd.{u2, u1} ι ι' i))))
 Case conversion may be inaccurate. Consider using '#align filter.has_basis.inf' Filter.HasBasis.inf'ₓ'. -/
 theorem HasBasis.inf' (hl : l.HasBasis p s) (hl' : l'.HasBasis p' s') :
     (l ⊓ l').HasBasis (fun i : PProd ι ι' => p i.1 ∧ p' i.2) fun i => s i.1 ∩ s' i.2 :=
@@ -725,9 +725,9 @@ theorem HasBasis.inf' (hl : l.HasBasis p s) (hl' : l'.HasBasis p' s') :
 
 /- warning: filter.has_basis.inf -> Filter.HasBasis.inf is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {l : Filter.{u1} α} {l' : Filter.{u1} α} {ι : Type.{u2}} {ι' : Type.{u3}} {p : ι -> Prop} {s : ι -> (Set.{u1} α)} {p' : ι' -> Prop} {s' : ι' -> (Set.{u1} α)}, (Filter.HasBasis.{u1, succ u2} α ι l p s) -> (Filter.HasBasis.{u1, succ u3} α ι' l' p' s') -> (Filter.HasBasis.{u1, max (succ u2) (succ u3)} α (Prod.{u2, u3} ι ι') (HasInf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) l l') (fun (i : Prod.{u2, u3} ι ι') => And (p (Prod.fst.{u2, u3} ι ι' i)) (p' (Prod.snd.{u2, u3} ι ι' i))) (fun (i : Prod.{u2, u3} ι ι') => Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) (s (Prod.fst.{u2, u3} ι ι' i)) (s' (Prod.snd.{u2, u3} ι ι' i))))
+  forall {α : Type.{u1}} {l : Filter.{u1} α} {l' : Filter.{u1} α} {ι : Type.{u2}} {ι' : Type.{u3}} {p : ι -> Prop} {s : ι -> (Set.{u1} α)} {p' : ι' -> Prop} {s' : ι' -> (Set.{u1} α)}, (Filter.HasBasis.{u1, succ u2} α ι l p s) -> (Filter.HasBasis.{u1, succ u3} α ι' l' p' s') -> (Filter.HasBasis.{u1, max (succ u2) (succ u3)} α (Prod.{u2, u3} ι ι') (Inf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) l l') (fun (i : Prod.{u2, u3} ι ι') => And (p (Prod.fst.{u2, u3} ι ι' i)) (p' (Prod.snd.{u2, u3} ι ι' i))) (fun (i : Prod.{u2, u3} ι ι') => Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) (s (Prod.fst.{u2, u3} ι ι' i)) (s' (Prod.snd.{u2, u3} ι ι' i))))
 but is expected to have type
-  forall {α : Type.{u1}} {l : Filter.{u1} α} {l' : Filter.{u1} α} {ι : Type.{u3}} {ι' : Type.{u2}} {p : ι -> Prop} {s : ι -> (Set.{u1} α)} {p' : ι' -> Prop} {s' : ι' -> (Set.{u1} α)}, (Filter.HasBasis.{u1, succ u3} α ι l p s) -> (Filter.HasBasis.{u1, succ u2} α ι' l' p' s') -> (Filter.HasBasis.{u1, max (succ u3) (succ u2)} α (Prod.{u3, u2} ι ι') (HasInf.inf.{u1} (Filter.{u1} α) (Filter.instHasInfFilter.{u1} α) l l') (fun (i : Prod.{u3, u2} ι ι') => And (p (Prod.fst.{u3, u2} ι ι' i)) (p' (Prod.snd.{u3, u2} ι ι' i))) (fun (i : Prod.{u3, u2} ι ι') => Inter.inter.{u1} (Set.{u1} α) (Set.instInterSet.{u1} α) (s (Prod.fst.{u3, u2} ι ι' i)) (s' (Prod.snd.{u3, u2} ι ι' i))))
+  forall {α : Type.{u1}} {l : Filter.{u1} α} {l' : Filter.{u1} α} {ι : Type.{u3}} {ι' : Type.{u2}} {p : ι -> Prop} {s : ι -> (Set.{u1} α)} {p' : ι' -> Prop} {s' : ι' -> (Set.{u1} α)}, (Filter.HasBasis.{u1, succ u3} α ι l p s) -> (Filter.HasBasis.{u1, succ u2} α ι' l' p' s') -> (Filter.HasBasis.{u1, max (succ u3) (succ u2)} α (Prod.{u3, u2} ι ι') (Inf.inf.{u1} (Filter.{u1} α) (Filter.instInfFilter.{u1} α) l l') (fun (i : Prod.{u3, u2} ι ι') => And (p (Prod.fst.{u3, u2} ι ι' i)) (p' (Prod.snd.{u3, u2} ι ι' i))) (fun (i : Prod.{u3, u2} ι ι') => Inter.inter.{u1} (Set.{u1} α) (Set.instInterSet.{u1} α) (s (Prod.fst.{u3, u2} ι ι' i)) (s' (Prod.snd.{u3, u2} ι ι' i))))
 Case conversion may be inaccurate. Consider using '#align filter.has_basis.inf Filter.HasBasis.infₓ'. -/
 theorem HasBasis.inf {ι ι' : Type _} {p : ι → Prop} {s : ι → Set α} {p' : ι' → Prop}
     {s' : ι' → Set α} (hl : l.HasBasis p s) (hl' : l'.HasBasis p' s') :
@@ -870,9 +870,9 @@ theorem hasBasis_pure (x : α) : (pure x : Filter α).HasBasis (fun i : Unit =>
 
 /- warning: filter.has_basis.sup' -> Filter.HasBasis.sup' is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {ι' : Sort.{u3}} {l : Filter.{u1} α} {l' : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)} {p' : ι' -> Prop} {s' : ι' -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (Filter.HasBasis.{u1, u3} α ι' l' p' s') -> (Filter.HasBasis.{u1, max 1 u2 u3} α (PProd.{u2, u3} ι ι') (HasSup.sup.{u1} (Filter.{u1} α) (SemilatticeSup.toHasSup.{u1} (Filter.{u1} α) (Lattice.toSemilatticeSup.{u1} (Filter.{u1} α) (ConditionallyCompleteLattice.toLattice.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))))) l l') (fun (i : PProd.{u2, u3} ι ι') => And (p (PProd.fst.{u2, u3} ι ι' i)) (p' (PProd.snd.{u2, u3} ι ι' i))) (fun (i : PProd.{u2, u3} ι ι') => Union.union.{u1} (Set.{u1} α) (Set.hasUnion.{u1} α) (s (PProd.fst.{u2, u3} ι ι' i)) (s' (PProd.snd.{u2, u3} ι ι' i))))
+  forall {α : Type.{u1}} {ι : Sort.{u2}} {ι' : Sort.{u3}} {l : Filter.{u1} α} {l' : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)} {p' : ι' -> Prop} {s' : ι' -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (Filter.HasBasis.{u1, u3} α ι' l' p' s') -> (Filter.HasBasis.{u1, max 1 u2 u3} α (PProd.{u2, u3} ι ι') (Sup.sup.{u1} (Filter.{u1} α) (SemilatticeSup.toHasSup.{u1} (Filter.{u1} α) (Lattice.toSemilatticeSup.{u1} (Filter.{u1} α) (ConditionallyCompleteLattice.toLattice.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))))) l l') (fun (i : PProd.{u2, u3} ι ι') => And (p (PProd.fst.{u2, u3} ι ι' i)) (p' (PProd.snd.{u2, u3} ι ι' i))) (fun (i : PProd.{u2, u3} ι ι') => Union.union.{u1} (Set.{u1} α) (Set.hasUnion.{u1} α) (s (PProd.fst.{u2, u3} ι ι' i)) (s' (PProd.snd.{u2, u3} ι ι' i))))
 but is expected to have type
-  forall {α : Type.{u3}} {ι : Sort.{u2}} {ι' : Sort.{u1}} {l : Filter.{u3} α} {l' : Filter.{u3} α} {p : ι -> Prop} {s : ι -> (Set.{u3} α)} {p' : ι' -> Prop} {s' : ι' -> (Set.{u3} α)}, (Filter.HasBasis.{u3, u2} α ι l p s) -> (Filter.HasBasis.{u3, u1} α ι' l' p' s') -> (Filter.HasBasis.{u3, max (max 1 u2) u1} α (PProd.{u2, u1} ι ι') (HasSup.sup.{u3} (Filter.{u3} α) (SemilatticeSup.toHasSup.{u3} (Filter.{u3} α) (Lattice.toSemilatticeSup.{u3} (Filter.{u3} α) (CompleteLattice.toLattice.{u3} (Filter.{u3} α) (Filter.instCompleteLatticeFilter.{u3} α)))) l l') (fun (i : PProd.{u2, u1} ι ι') => And (p (PProd.fst.{u2, u1} ι ι' i)) (p' (PProd.snd.{u2, u1} ι ι' i))) (fun (i : PProd.{u2, u1} ι ι') => Union.union.{u3} (Set.{u3} α) (Set.instUnionSet.{u3} α) (s (PProd.fst.{u2, u1} ι ι' i)) (s' (PProd.snd.{u2, u1} ι ι' i))))
+  forall {α : Type.{u3}} {ι : Sort.{u2}} {ι' : Sort.{u1}} {l : Filter.{u3} α} {l' : Filter.{u3} α} {p : ι -> Prop} {s : ι -> (Set.{u3} α)} {p' : ι' -> Prop} {s' : ι' -> (Set.{u3} α)}, (Filter.HasBasis.{u3, u2} α ι l p s) -> (Filter.HasBasis.{u3, u1} α ι' l' p' s') -> (Filter.HasBasis.{u3, max (max 1 u2) u1} α (PProd.{u2, u1} ι ι') (Sup.sup.{u3} (Filter.{u3} α) (SemilatticeSup.toSup.{u3} (Filter.{u3} α) (Lattice.toSemilatticeSup.{u3} (Filter.{u3} α) (CompleteLattice.toLattice.{u3} (Filter.{u3} α) (Filter.instCompleteLatticeFilter.{u3} α)))) l l') (fun (i : PProd.{u2, u1} ι ι') => And (p (PProd.fst.{u2, u1} ι ι' i)) (p' (PProd.snd.{u2, u1} ι ι' i))) (fun (i : PProd.{u2, u1} ι ι') => Union.union.{u3} (Set.{u3} α) (Set.instUnionSet.{u3} α) (s (PProd.fst.{u2, u1} ι ι' i)) (s' (PProd.snd.{u2, u1} ι ι' i))))
 Case conversion may be inaccurate. Consider using '#align filter.has_basis.sup' Filter.HasBasis.sup'ₓ'. -/
 theorem HasBasis.sup' (hl : l.HasBasis p s) (hl' : l'.HasBasis p' s') :
     (l ⊔ l').HasBasis (fun i : PProd ι ι' => p i.1 ∧ p' i.2) fun i => s i.1 ∪ s' i.2 :=
@@ -885,9 +885,9 @@ theorem HasBasis.sup' (hl : l.HasBasis p s) (hl' : l'.HasBasis p' s') :
 
 /- warning: filter.has_basis.sup -> Filter.HasBasis.sup is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {l : Filter.{u1} α} {l' : Filter.{u1} α} {ι : Type.{u2}} {ι' : Type.{u3}} {p : ι -> Prop} {s : ι -> (Set.{u1} α)} {p' : ι' -> Prop} {s' : ι' -> (Set.{u1} α)}, (Filter.HasBasis.{u1, succ u2} α ι l p s) -> (Filter.HasBasis.{u1, succ u3} α ι' l' p' s') -> (Filter.HasBasis.{u1, max (succ u2) (succ u3)} α (Prod.{u2, u3} ι ι') (HasSup.sup.{u1} (Filter.{u1} α) (SemilatticeSup.toHasSup.{u1} (Filter.{u1} α) (Lattice.toSemilatticeSup.{u1} (Filter.{u1} α) (ConditionallyCompleteLattice.toLattice.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))))) l l') (fun (i : Prod.{u2, u3} ι ι') => And (p (Prod.fst.{u2, u3} ι ι' i)) (p' (Prod.snd.{u2, u3} ι ι' i))) (fun (i : Prod.{u2, u3} ι ι') => Union.union.{u1} (Set.{u1} α) (Set.hasUnion.{u1} α) (s (Prod.fst.{u2, u3} ι ι' i)) (s' (Prod.snd.{u2, u3} ι ι' i))))
+  forall {α : Type.{u1}} {l : Filter.{u1} α} {l' : Filter.{u1} α} {ι : Type.{u2}} {ι' : Type.{u3}} {p : ι -> Prop} {s : ι -> (Set.{u1} α)} {p' : ι' -> Prop} {s' : ι' -> (Set.{u1} α)}, (Filter.HasBasis.{u1, succ u2} α ι l p s) -> (Filter.HasBasis.{u1, succ u3} α ι' l' p' s') -> (Filter.HasBasis.{u1, max (succ u2) (succ u3)} α (Prod.{u2, u3} ι ι') (Sup.sup.{u1} (Filter.{u1} α) (SemilatticeSup.toHasSup.{u1} (Filter.{u1} α) (Lattice.toSemilatticeSup.{u1} (Filter.{u1} α) (ConditionallyCompleteLattice.toLattice.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))))) l l') (fun (i : Prod.{u2, u3} ι ι') => And (p (Prod.fst.{u2, u3} ι ι' i)) (p' (Prod.snd.{u2, u3} ι ι' i))) (fun (i : Prod.{u2, u3} ι ι') => Union.union.{u1} (Set.{u1} α) (Set.hasUnion.{u1} α) (s (Prod.fst.{u2, u3} ι ι' i)) (s' (Prod.snd.{u2, u3} ι ι' i))))
 but is expected to have type
-  forall {α : Type.{u1}} {l : Filter.{u1} α} {l' : Filter.{u1} α} {ι : Type.{u3}} {ι' : Type.{u2}} {p : ι -> Prop} {s : ι -> (Set.{u1} α)} {p' : ι' -> Prop} {s' : ι' -> (Set.{u1} α)}, (Filter.HasBasis.{u1, succ u3} α ι l p s) -> (Filter.HasBasis.{u1, succ u2} α ι' l' p' s') -> (Filter.HasBasis.{u1, max (succ u3) (succ u2)} α (Prod.{u3, u2} ι ι') (HasSup.sup.{u1} (Filter.{u1} α) (SemilatticeSup.toHasSup.{u1} (Filter.{u1} α) (Lattice.toSemilatticeSup.{u1} (Filter.{u1} α) (CompleteLattice.toLattice.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)))) l l') (fun (i : Prod.{u3, u2} ι ι') => And (p (Prod.fst.{u3, u2} ι ι' i)) (p' (Prod.snd.{u3, u2} ι ι' i))) (fun (i : Prod.{u3, u2} ι ι') => Union.union.{u1} (Set.{u1} α) (Set.instUnionSet.{u1} α) (s (Prod.fst.{u3, u2} ι ι' i)) (s' (Prod.snd.{u3, u2} ι ι' i))))
+  forall {α : Type.{u1}} {l : Filter.{u1} α} {l' : Filter.{u1} α} {ι : Type.{u3}} {ι' : Type.{u2}} {p : ι -> Prop} {s : ι -> (Set.{u1} α)} {p' : ι' -> Prop} {s' : ι' -> (Set.{u1} α)}, (Filter.HasBasis.{u1, succ u3} α ι l p s) -> (Filter.HasBasis.{u1, succ u2} α ι' l' p' s') -> (Filter.HasBasis.{u1, max (succ u3) (succ u2)} α (Prod.{u3, u2} ι ι') (Sup.sup.{u1} (Filter.{u1} α) (SemilatticeSup.toSup.{u1} (Filter.{u1} α) (Lattice.toSemilatticeSup.{u1} (Filter.{u1} α) (CompleteLattice.toLattice.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)))) l l') (fun (i : Prod.{u3, u2} ι ι') => And (p (Prod.fst.{u3, u2} ι ι' i)) (p' (Prod.snd.{u3, u2} ι ι' i))) (fun (i : Prod.{u3, u2} ι ι') => Union.union.{u1} (Set.{u1} α) (Set.instUnionSet.{u1} α) (s (Prod.fst.{u3, u2} ι ι' i)) (s' (Prod.snd.{u3, u2} ι ι' i))))
 Case conversion may be inaccurate. Consider using '#align filter.has_basis.sup Filter.HasBasis.supₓ'. -/
 theorem HasBasis.sup {ι ι' : Type _} {p : ι → Prop} {s : ι → Set α} {p' : ι' → Prop}
     {s' : ι' → Set α} (hl : l.HasBasis p s) (hl' : l'.HasBasis p' s') :
@@ -912,9 +912,9 @@ theorem hasBasis_supᵢ {ι : Sort _} {ι' : ι → Type _} {l : ι → Filter 
 
 /- warning: filter.has_basis.sup_principal -> Filter.HasBasis.sup_principal is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (forall (t : Set.{u1} α), Filter.HasBasis.{u1, u2} α ι (HasSup.sup.{u1} (Filter.{u1} α) (SemilatticeSup.toHasSup.{u1} (Filter.{u1} α) (Lattice.toSemilatticeSup.{u1} (Filter.{u1} α) (ConditionallyCompleteLattice.toLattice.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))))) l (Filter.principal.{u1} α t)) p (fun (i : ι) => Union.union.{u1} (Set.{u1} α) (Set.hasUnion.{u1} α) (s i) t))
+  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (forall (t : Set.{u1} α), Filter.HasBasis.{u1, u2} α ι (Sup.sup.{u1} (Filter.{u1} α) (SemilatticeSup.toHasSup.{u1} (Filter.{u1} α) (Lattice.toSemilatticeSup.{u1} (Filter.{u1} α) (ConditionallyCompleteLattice.toLattice.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))))) l (Filter.principal.{u1} α t)) p (fun (i : ι) => Union.union.{u1} (Set.{u1} α) (Set.hasUnion.{u1} α) (s i) t))
 but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι l p s) -> (forall (t : Set.{u2} α), Filter.HasBasis.{u2, u1} α ι (HasSup.sup.{u2} (Filter.{u2} α) (SemilatticeSup.toHasSup.{u2} (Filter.{u2} α) (Lattice.toSemilatticeSup.{u2} (Filter.{u2} α) (CompleteLattice.toLattice.{u2} (Filter.{u2} α) (Filter.instCompleteLatticeFilter.{u2} α)))) l (Filter.principal.{u2} α t)) p (fun (i : ι) => Union.union.{u2} (Set.{u2} α) (Set.instUnionSet.{u2} α) (s i) t))
+  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι l p s) -> (forall (t : Set.{u2} α), Filter.HasBasis.{u2, u1} α ι (Sup.sup.{u2} (Filter.{u2} α) (SemilatticeSup.toSup.{u2} (Filter.{u2} α) (Lattice.toSemilatticeSup.{u2} (Filter.{u2} α) (CompleteLattice.toLattice.{u2} (Filter.{u2} α) (Filter.instCompleteLatticeFilter.{u2} α)))) l (Filter.principal.{u2} α t)) p (fun (i : ι) => Union.union.{u2} (Set.{u2} α) (Set.instUnionSet.{u2} α) (s i) t))
 Case conversion may be inaccurate. Consider using '#align filter.has_basis.sup_principal Filter.HasBasis.sup_principalₓ'. -/
 theorem HasBasis.sup_principal (hl : l.HasBasis p s) (t : Set α) :
     (l ⊔ 𝓟 t).HasBasis p fun i => s i ∪ t :=
@@ -925,9 +925,9 @@ theorem HasBasis.sup_principal (hl : l.HasBasis p s) (t : Set α) :
 
 /- warning: filter.has_basis.sup_pure -> Filter.HasBasis.sup_pure is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (forall (x : α), Filter.HasBasis.{u1, u2} α ι (HasSup.sup.{u1} (Filter.{u1} α) (SemilatticeSup.toHasSup.{u1} (Filter.{u1} α) (Lattice.toSemilatticeSup.{u1} (Filter.{u1} α) (ConditionallyCompleteLattice.toLattice.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))))) l (Pure.pure.{u1, u1} Filter.{u1} Filter.hasPure.{u1} α x)) p (fun (i : ι) => Union.union.{u1} (Set.{u1} α) (Set.hasUnion.{u1} α) (s i) (Singleton.singleton.{u1, u1} α (Set.{u1} α) (Set.hasSingleton.{u1} α) x)))
+  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (forall (x : α), Filter.HasBasis.{u1, u2} α ι (Sup.sup.{u1} (Filter.{u1} α) (SemilatticeSup.toHasSup.{u1} (Filter.{u1} α) (Lattice.toSemilatticeSup.{u1} (Filter.{u1} α) (ConditionallyCompleteLattice.toLattice.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))))) l (Pure.pure.{u1, u1} Filter.{u1} Filter.hasPure.{u1} α x)) p (fun (i : ι) => Union.union.{u1} (Set.{u1} α) (Set.hasUnion.{u1} α) (s i) (Singleton.singleton.{u1, u1} α (Set.{u1} α) (Set.hasSingleton.{u1} α) x)))
 but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι l p s) -> (forall (x : α), Filter.HasBasis.{u2, u1} α ι (HasSup.sup.{u2} (Filter.{u2} α) (SemilatticeSup.toHasSup.{u2} (Filter.{u2} α) (Lattice.toSemilatticeSup.{u2} (Filter.{u2} α) (CompleteLattice.toLattice.{u2} (Filter.{u2} α) (Filter.instCompleteLatticeFilter.{u2} α)))) l (Pure.pure.{u2, u2} Filter.{u2} Filter.instPureFilter.{u2} α x)) p (fun (i : ι) => Union.union.{u2} (Set.{u2} α) (Set.instUnionSet.{u2} α) (s i) (Singleton.singleton.{u2, u2} α (Set.{u2} α) (Set.instSingletonSet.{u2} α) x)))
+  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι l p s) -> (forall (x : α), Filter.HasBasis.{u2, u1} α ι (Sup.sup.{u2} (Filter.{u2} α) (SemilatticeSup.toSup.{u2} (Filter.{u2} α) (Lattice.toSemilatticeSup.{u2} (Filter.{u2} α) (CompleteLattice.toLattice.{u2} (Filter.{u2} α) (Filter.instCompleteLatticeFilter.{u2} α)))) l (Pure.pure.{u2, u2} Filter.{u2} Filter.instPureFilter.{u2} α x)) p (fun (i : ι) => Union.union.{u2} (Set.{u2} α) (Set.instUnionSet.{u2} α) (s i) (Singleton.singleton.{u2, u2} α (Set.{u2} α) (Set.instSingletonSet.{u2} α) x)))
 Case conversion may be inaccurate. Consider using '#align filter.has_basis.sup_pure Filter.HasBasis.sup_pureₓ'. -/
 theorem HasBasis.sup_pure (hl : l.HasBasis p s) (x : α) :
     (l ⊔ pure x).HasBasis p fun i => s i ∪ {x} := by
@@ -936,9 +936,9 @@ theorem HasBasis.sup_pure (hl : l.HasBasis p s) (x : α) :
 
 /- warning: filter.has_basis.inf_principal -> Filter.HasBasis.inf_principal is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (forall (s' : Set.{u1} α), Filter.HasBasis.{u1, u2} α ι (HasInf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) l (Filter.principal.{u1} α s')) p (fun (i : ι) => Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) (s i) s'))
+  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (forall (s' : Set.{u1} α), Filter.HasBasis.{u1, u2} α ι (Inf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) l (Filter.principal.{u1} α s')) p (fun (i : ι) => Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) (s i) s'))
 but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι l p s) -> (forall (s' : Set.{u2} α), Filter.HasBasis.{u2, u1} α ι (HasInf.inf.{u2} (Filter.{u2} α) (Filter.instHasInfFilter.{u2} α) l (Filter.principal.{u2} α s')) p (fun (i : ι) => Inter.inter.{u2} (Set.{u2} α) (Set.instInterSet.{u2} α) (s i) s'))
+  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι l p s) -> (forall (s' : Set.{u2} α), Filter.HasBasis.{u2, u1} α ι (Inf.inf.{u2} (Filter.{u2} α) (Filter.instInfFilter.{u2} α) l (Filter.principal.{u2} α s')) p (fun (i : ι) => Inter.inter.{u2} (Set.{u2} α) (Set.instInterSet.{u2} α) (s i) s'))
 Case conversion may be inaccurate. Consider using '#align filter.has_basis.inf_principal Filter.HasBasis.inf_principalₓ'. -/
 theorem HasBasis.inf_principal (hl : l.HasBasis p s) (s' : Set α) :
     (l ⊓ 𝓟 s').HasBasis p fun i => s i ∩ s' :=
@@ -948,9 +948,9 @@ theorem HasBasis.inf_principal (hl : l.HasBasis p s) (s' : Set α) :
 
 /- warning: filter.has_basis.principal_inf -> Filter.HasBasis.principal_inf is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (forall (s' : Set.{u1} α), Filter.HasBasis.{u1, u2} α ι (HasInf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) (Filter.principal.{u1} α s') l) p (fun (i : ι) => Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) s' (s i)))
+  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (forall (s' : Set.{u1} α), Filter.HasBasis.{u1, u2} α ι (Inf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) (Filter.principal.{u1} α s') l) p (fun (i : ι) => Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) s' (s i)))
 but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι l p s) -> (forall (s' : Set.{u2} α), Filter.HasBasis.{u2, u1} α ι (HasInf.inf.{u2} (Filter.{u2} α) (Filter.instHasInfFilter.{u2} α) (Filter.principal.{u2} α s') l) p (fun (i : ι) => Inter.inter.{u2} (Set.{u2} α) (Set.instInterSet.{u2} α) s' (s i)))
+  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι l p s) -> (forall (s' : Set.{u2} α), Filter.HasBasis.{u2, u1} α ι (Inf.inf.{u2} (Filter.{u2} α) (Filter.instInfFilter.{u2} α) (Filter.principal.{u2} α s') l) p (fun (i : ι) => Inter.inter.{u2} (Set.{u2} α) (Set.instInterSet.{u2} α) s' (s i)))
 Case conversion may be inaccurate. Consider using '#align filter.has_basis.principal_inf Filter.HasBasis.principal_infₓ'. -/
 theorem HasBasis.principal_inf (hl : l.HasBasis p s) (s' : Set α) :
     (𝓟 s' ⊓ l).HasBasis p fun i => s' ∩ s i := by
@@ -959,9 +959,9 @@ theorem HasBasis.principal_inf (hl : l.HasBasis p s) (s' : Set α) :
 
 /- warning: filter.has_basis.inf_basis_ne_bot_iff -> Filter.HasBasis.inf_basis_neBot_iff is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {ι' : Sort.{u3}} {l : Filter.{u1} α} {l' : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)} {p' : ι' -> Prop} {s' : ι' -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (Filter.HasBasis.{u1, u3} α ι' l' p' s') -> (Iff (Filter.NeBot.{u1} α (HasInf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) l l')) (forall {{i : ι}}, (p i) -> (forall {{i' : ι'}}, (p' i') -> (Set.Nonempty.{u1} α (Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) (s i) (s' i'))))))
+  forall {α : Type.{u1}} {ι : Sort.{u2}} {ι' : Sort.{u3}} {l : Filter.{u1} α} {l' : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)} {p' : ι' -> Prop} {s' : ι' -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (Filter.HasBasis.{u1, u3} α ι' l' p' s') -> (Iff (Filter.NeBot.{u1} α (Inf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) l l')) (forall {{i : ι}}, (p i) -> (forall {{i' : ι'}}, (p' i') -> (Set.Nonempty.{u1} α (Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) (s i) (s' i'))))))
 but is expected to have type
-  forall {α : Type.{u3}} {ι : Sort.{u2}} {ι' : Sort.{u1}} {l : Filter.{u3} α} {l' : Filter.{u3} α} {p : ι -> Prop} {s : ι -> (Set.{u3} α)} {p' : ι' -> Prop} {s' : ι' -> (Set.{u3} α)}, (Filter.HasBasis.{u3, u2} α ι l p s) -> (Filter.HasBasis.{u3, u1} α ι' l' p' s') -> (Iff (Filter.NeBot.{u3} α (HasInf.inf.{u3} (Filter.{u3} α) (Filter.instHasInfFilter.{u3} α) l l')) (forall {{i : ι}}, (p i) -> (forall {{i' : ι'}}, (p' i') -> (Set.Nonempty.{u3} α (Inter.inter.{u3} (Set.{u3} α) (Set.instInterSet.{u3} α) (s i) (s' i'))))))
+  forall {α : Type.{u3}} {ι : Sort.{u2}} {ι' : Sort.{u1}} {l : Filter.{u3} α} {l' : Filter.{u3} α} {p : ι -> Prop} {s : ι -> (Set.{u3} α)} {p' : ι' -> Prop} {s' : ι' -> (Set.{u3} α)}, (Filter.HasBasis.{u3, u2} α ι l p s) -> (Filter.HasBasis.{u3, u1} α ι' l' p' s') -> (Iff (Filter.NeBot.{u3} α (Inf.inf.{u3} (Filter.{u3} α) (Filter.instInfFilter.{u3} α) l l')) (forall {{i : ι}}, (p i) -> (forall {{i' : ι'}}, (p' i') -> (Set.Nonempty.{u3} α (Inter.inter.{u3} (Set.{u3} α) (Set.instInterSet.{u3} α) (s i) (s' i'))))))
 Case conversion may be inaccurate. Consider using '#align filter.has_basis.inf_basis_ne_bot_iff Filter.HasBasis.inf_basis_neBot_iffₓ'. -/
 theorem HasBasis.inf_basis_neBot_iff (hl : l.HasBasis p s) (hl' : l'.HasBasis p' s') :
     NeBot (l ⊓ l') ↔ ∀ ⦃i⦄ (hi : p i) ⦃i'⦄ (hi' : p' i'), (s i ∩ s' i').Nonempty :=
@@ -970,9 +970,9 @@ theorem HasBasis.inf_basis_neBot_iff (hl : l.HasBasis p s) (hl' : l'.HasBasis p'
 
 /- warning: filter.has_basis.inf_ne_bot_iff -> Filter.HasBasis.inf_neBot_iff is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {l' : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (Iff (Filter.NeBot.{u1} α (HasInf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) l l')) (forall {{i : ι}}, (p i) -> (forall {{s' : Set.{u1} α}}, (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) s' l') -> (Set.Nonempty.{u1} α (Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) (s i) s')))))
+  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {l' : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (Iff (Filter.NeBot.{u1} α (Inf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) l l')) (forall {{i : ι}}, (p i) -> (forall {{s' : Set.{u1} α}}, (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) s' l') -> (Set.Nonempty.{u1} α (Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) (s i) s')))))
 but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {l' : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι l p s) -> (Iff (Filter.NeBot.{u2} α (HasInf.inf.{u2} (Filter.{u2} α) (Filter.instHasInfFilter.{u2} α) l l')) (forall {{i : ι}}, (p i) -> (forall {{s' : Set.{u2} α}}, (Membership.mem.{u2, u2} (Set.{u2} α) (Filter.{u2} α) (instMembershipSetFilter.{u2} α) s' l') -> (Set.Nonempty.{u2} α (Inter.inter.{u2} (Set.{u2} α) (Set.instInterSet.{u2} α) (s i) s')))))
+  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {l' : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι l p s) -> (Iff (Filter.NeBot.{u2} α (Inf.inf.{u2} (Filter.{u2} α) (Filter.instInfFilter.{u2} α) l l')) (forall {{i : ι}}, (p i) -> (forall {{s' : Set.{u2} α}}, (Membership.mem.{u2, u2} (Set.{u2} α) (Filter.{u2} α) (instMembershipSetFilter.{u2} α) s' l') -> (Set.Nonempty.{u2} α (Inter.inter.{u2} (Set.{u2} α) (Set.instInterSet.{u2} α) (s i) s')))))
 Case conversion may be inaccurate. Consider using '#align filter.has_basis.inf_ne_bot_iff Filter.HasBasis.inf_neBot_iffₓ'. -/
 theorem HasBasis.inf_neBot_iff (hl : l.HasBasis p s) :
     NeBot (l ⊓ l') ↔ ∀ ⦃i⦄ (hi : p i) ⦃s'⦄ (hs' : s' ∈ l'), (s i ∩ s').Nonempty :=
@@ -981,9 +981,9 @@ theorem HasBasis.inf_neBot_iff (hl : l.HasBasis p s) :
 
 /- warning: filter.has_basis.inf_principal_ne_bot_iff -> Filter.HasBasis.inf_principal_neBot_iff is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (forall {t : Set.{u1} α}, Iff (Filter.NeBot.{u1} α (HasInf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) l (Filter.principal.{u1} α t))) (forall {{i : ι}}, (p i) -> (Set.Nonempty.{u1} α (Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) (s i) t))))
+  forall {α : Type.{u1}} {ι : Sort.{u2}} {l : Filter.{u1} α} {p : ι -> Prop} {s : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι l p s) -> (forall {t : Set.{u1} α}, Iff (Filter.NeBot.{u1} α (Inf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) l (Filter.principal.{u1} α t))) (forall {{i : ι}}, (p i) -> (Set.Nonempty.{u1} α (Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) (s i) t))))
 but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι l p s) -> (forall {t : Set.{u2} α}, Iff (Filter.NeBot.{u2} α (HasInf.inf.{u2} (Filter.{u2} α) (Filter.instHasInfFilter.{u2} α) l (Filter.principal.{u2} α t))) (forall {{i : ι}}, (p i) -> (Set.Nonempty.{u2} α (Inter.inter.{u2} (Set.{u2} α) (Set.instInterSet.{u2} α) (s i) t))))
+  forall {α : Type.{u2}} {ι : Sort.{u1}} {l : Filter.{u2} α} {p : ι -> Prop} {s : ι -> (Set.{u2} α)}, (Filter.HasBasis.{u2, u1} α ι l p s) -> (forall {t : Set.{u2} α}, Iff (Filter.NeBot.{u2} α (Inf.inf.{u2} (Filter.{u2} α) (Filter.instInfFilter.{u2} α) l (Filter.principal.{u2} α t))) (forall {{i : ι}}, (p i) -> (Set.Nonempty.{u2} α (Inter.inter.{u2} (Set.{u2} α) (Set.instInterSet.{u2} α) (s i) t))))
 Case conversion may be inaccurate. Consider using '#align filter.has_basis.inf_principal_ne_bot_iff Filter.HasBasis.inf_principal_neBot_iffₓ'. -/
 theorem HasBasis.inf_principal_neBot_iff (hl : l.HasBasis p s) {t : Set α} :
     NeBot (l ⊓ 𝓟 t) ↔ ∀ ⦃i⦄ (hi : p i), (s i ∩ t).Nonempty :=
@@ -1036,9 +1036,9 @@ theorem Set.PairwiseDisjoint.exists_mem_filter_basis {I : Type _} {l : I → Fil
 
 /- warning: filter.inf_ne_bot_iff -> Filter.inf_neBot_iff is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {l : Filter.{u1} α} {l' : Filter.{u1} α}, Iff (Filter.NeBot.{u1} α (HasInf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) l l')) (forall {{s : Set.{u1} α}}, (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) s l) -> (forall {{s' : Set.{u1} α}}, (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) s' l') -> (Set.Nonempty.{u1} α (Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) s s'))))
+  forall {α : Type.{u1}} {l : Filter.{u1} α} {l' : Filter.{u1} α}, Iff (Filter.NeBot.{u1} α (Inf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) l l')) (forall {{s : Set.{u1} α}}, (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) s l) -> (forall {{s' : Set.{u1} α}}, (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) s' l') -> (Set.Nonempty.{u1} α (Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) s s'))))
 but is expected to have type
-  forall {α : Type.{u1}} {l : Filter.{u1} α} {l' : Filter.{u1} α}, Iff (Filter.NeBot.{u1} α (HasInf.inf.{u1} (Filter.{u1} α) (Filter.instHasInfFilter.{u1} α) l l')) (forall {{s : Set.{u1} α}}, (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) s l) -> (forall {{s' : Set.{u1} α}}, (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) s' l') -> (Set.Nonempty.{u1} α (Inter.inter.{u1} (Set.{u1} α) (Set.instInterSet.{u1} α) s s'))))
+  forall {α : Type.{u1}} {l : Filter.{u1} α} {l' : Filter.{u1} α}, Iff (Filter.NeBot.{u1} α (Inf.inf.{u1} (Filter.{u1} α) (Filter.instInfFilter.{u1} α) l l')) (forall {{s : Set.{u1} α}}, (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) s l) -> (forall {{s' : Set.{u1} α}}, (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) s' l') -> (Set.Nonempty.{u1} α (Inter.inter.{u1} (Set.{u1} α) (Set.instInterSet.{u1} α) s s'))))
 Case conversion may be inaccurate. Consider using '#align filter.inf_ne_bot_iff Filter.inf_neBot_iffₓ'. -/
 theorem inf_neBot_iff :
     NeBot (l ⊓ l') ↔ ∀ ⦃s : Set α⦄ (hs : s ∈ l) ⦃s'⦄ (hs' : s' ∈ l'), (s ∩ s').Nonempty :=
@@ -1047,9 +1047,9 @@ theorem inf_neBot_iff :
 
 /- warning: filter.inf_principal_ne_bot_iff -> Filter.inf_principal_neBot_iff is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {l : Filter.{u1} α} {s : Set.{u1} α}, Iff (Filter.NeBot.{u1} α (HasInf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) l (Filter.principal.{u1} α s))) (forall (U : Set.{u1} α), (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) U l) -> (Set.Nonempty.{u1} α (Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) U s)))
+  forall {α : Type.{u1}} {l : Filter.{u1} α} {s : Set.{u1} α}, Iff (Filter.NeBot.{u1} α (Inf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) l (Filter.principal.{u1} α s))) (forall (U : Set.{u1} α), (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) U l) -> (Set.Nonempty.{u1} α (Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) U s)))
 but is expected to have type
-  forall {α : Type.{u1}} {l : Filter.{u1} α} {s : Set.{u1} α}, Iff (Filter.NeBot.{u1} α (HasInf.inf.{u1} (Filter.{u1} α) (Filter.instHasInfFilter.{u1} α) l (Filter.principal.{u1} α s))) (forall (U : Set.{u1} α), (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) U l) -> (Set.Nonempty.{u1} α (Inter.inter.{u1} (Set.{u1} α) (Set.instInterSet.{u1} α) U s)))
+  forall {α : Type.{u1}} {l : Filter.{u1} α} {s : Set.{u1} α}, Iff (Filter.NeBot.{u1} α (Inf.inf.{u1} (Filter.{u1} α) (Filter.instInfFilter.{u1} α) l (Filter.principal.{u1} α s))) (forall (U : Set.{u1} α), (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) U l) -> (Set.Nonempty.{u1} α (Inter.inter.{u1} (Set.{u1} α) (Set.instInterSet.{u1} α) U s)))
 Case conversion may be inaccurate. Consider using '#align filter.inf_principal_ne_bot_iff Filter.inf_principal_neBot_iffₓ'. -/
 theorem inf_principal_neBot_iff {s : Set α} : NeBot (l ⊓ 𝓟 s) ↔ ∀ U ∈ l, (U ∩ s).Nonempty :=
   l.basis_sets.inf_principal_neBot_iff
@@ -1057,9 +1057,9 @@ theorem inf_principal_neBot_iff {s : Set α} : NeBot (l ⊓ 𝓟 s) ↔ ∀ U 
 
 /- warning: filter.mem_iff_inf_principal_compl -> Filter.mem_iff_inf_principal_compl is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {f : Filter.{u1} α} {s : Set.{u1} α}, Iff (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) s f) (Eq.{succ u1} (Filter.{u1} α) (HasInf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) f (Filter.principal.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s))) (Bot.bot.{u1} (Filter.{u1} α) (CompleteLattice.toHasBot.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))))
+  forall {α : Type.{u1}} {f : Filter.{u1} α} {s : Set.{u1} α}, Iff (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) s f) (Eq.{succ u1} (Filter.{u1} α) (Inf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) f (Filter.principal.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s))) (Bot.bot.{u1} (Filter.{u1} α) (CompleteLattice.toHasBot.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))))
 but is expected to have type
-  forall {α : Type.{u1}} {f : Filter.{u1} α} {s : Set.{u1} α}, Iff (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) s f) (Eq.{succ u1} (Filter.{u1} α) (HasInf.inf.{u1} (Filter.{u1} α) (Filter.instHasInfFilter.{u1} α) f (Filter.principal.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s))) (Bot.bot.{u1} (Filter.{u1} α) (CompleteLattice.toBot.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α))))
+  forall {α : Type.{u1}} {f : Filter.{u1} α} {s : Set.{u1} α}, Iff (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) s f) (Eq.{succ u1} (Filter.{u1} α) (Inf.inf.{u1} (Filter.{u1} α) (Filter.instInfFilter.{u1} α) f (Filter.principal.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s))) (Bot.bot.{u1} (Filter.{u1} α) (CompleteLattice.toBot.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α))))
 Case conversion may be inaccurate. Consider using '#align filter.mem_iff_inf_principal_compl Filter.mem_iff_inf_principal_complₓ'. -/
 theorem mem_iff_inf_principal_compl {f : Filter α} {s : Set α} : s ∈ f ↔ f ⊓ 𝓟 (sᶜ) = ⊥ :=
   by
@@ -1071,9 +1071,9 @@ theorem mem_iff_inf_principal_compl {f : Filter α} {s : Set α} : s ∈ f ↔ f
 
 /- warning: filter.not_mem_iff_inf_principal_compl -> Filter.not_mem_iff_inf_principal_compl is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {f : Filter.{u1} α} {s : Set.{u1} α}, Iff (Not (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) s f)) (Filter.NeBot.{u1} α (HasInf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) f (Filter.principal.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s))))
+  forall {α : Type.{u1}} {f : Filter.{u1} α} {s : Set.{u1} α}, Iff (Not (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) s f)) (Filter.NeBot.{u1} α (Inf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) f (Filter.principal.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s))))
 but is expected to have type
-  forall {α : Type.{u1}} {f : Filter.{u1} α} {s : Set.{u1} α}, Iff (Not (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) s f)) (Filter.NeBot.{u1} α (HasInf.inf.{u1} (Filter.{u1} α) (Filter.instHasInfFilter.{u1} α) f (Filter.principal.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s))))
+  forall {α : Type.{u1}} {f : Filter.{u1} α} {s : Set.{u1} α}, Iff (Not (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) s f)) (Filter.NeBot.{u1} α (Inf.inf.{u1} (Filter.{u1} α) (Filter.instInfFilter.{u1} α) f (Filter.principal.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s))))
 Case conversion may be inaccurate. Consider using '#align filter.not_mem_iff_inf_principal_compl Filter.not_mem_iff_inf_principal_complₓ'. -/
 theorem not_mem_iff_inf_principal_compl {f : Filter α} {s : Set α} : s ∉ f ↔ NeBot (f ⊓ 𝓟 (sᶜ)) :=
   (not_congr mem_iff_inf_principal_compl).trans neBot_iff.symm
@@ -1156,9 +1156,9 @@ theorem HasBasis.disjoint_iff_right (h : l.HasBasis p s) :
 
 /- warning: filter.le_iff_forall_inf_principal_compl -> Filter.le_iff_forall_inf_principal_compl is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {f : Filter.{u1} α} {g : Filter.{u1} α}, Iff (LE.le.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))) f g) (forall (V : Set.{u1} α), (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) V g) -> (Eq.{succ u1} (Filter.{u1} α) (HasInf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) f (Filter.principal.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) V))) (Bot.bot.{u1} (Filter.{u1} α) (CompleteLattice.toHasBot.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α)))))
+  forall {α : Type.{u1}} {f : Filter.{u1} α} {g : Filter.{u1} α}, Iff (LE.le.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))) f g) (forall (V : Set.{u1} α), (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) V g) -> (Eq.{succ u1} (Filter.{u1} α) (Inf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) f (Filter.principal.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) V))) (Bot.bot.{u1} (Filter.{u1} α) (CompleteLattice.toHasBot.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α)))))
 but is expected to have type
-  forall {α : Type.{u1}} {f : Filter.{u1} α} {g : Filter.{u1} α}, Iff (LE.le.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α))) f g) (forall (V : Set.{u1} α), (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) V g) -> (Eq.{succ u1} (Filter.{u1} α) (HasInf.inf.{u1} (Filter.{u1} α) (Filter.instHasInfFilter.{u1} α) f (Filter.principal.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) V))) (Bot.bot.{u1} (Filter.{u1} α) (CompleteLattice.toBot.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)))))
+  forall {α : Type.{u1}} {f : Filter.{u1} α} {g : Filter.{u1} α}, Iff (LE.le.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α))) f g) (forall (V : Set.{u1} α), (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) V g) -> (Eq.{succ u1} (Filter.{u1} α) (Inf.inf.{u1} (Filter.{u1} α) (Filter.instInfFilter.{u1} α) f (Filter.principal.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) V))) (Bot.bot.{u1} (Filter.{u1} α) (CompleteLattice.toBot.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)))))
 Case conversion may be inaccurate. Consider using '#align filter.le_iff_forall_inf_principal_compl Filter.le_iff_forall_inf_principal_complₓ'. -/
 theorem le_iff_forall_inf_principal_compl {f g : Filter α} : f ≤ g ↔ ∀ V ∈ g, f ⊓ 𝓟 (Vᶜ) = ⊥ :=
   forall₂_congr fun _ _ => mem_iff_inf_principal_compl
@@ -1166,9 +1166,9 @@ theorem le_iff_forall_inf_principal_compl {f g : Filter α} : f ≤ g ↔ ∀ V
 
 /- warning: filter.inf_ne_bot_iff_frequently_left -> Filter.inf_neBot_iff_frequently_left is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {f : Filter.{u1} α} {g : Filter.{u1} α}, Iff (Filter.NeBot.{u1} α (HasInf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) f g)) (forall {p : α -> Prop}, (Filter.Eventually.{u1} α (fun (x : α) => p x) f) -> (Filter.Frequently.{u1} α (fun (x : α) => p x) g))
+  forall {α : Type.{u1}} {f : Filter.{u1} α} {g : Filter.{u1} α}, Iff (Filter.NeBot.{u1} α (Inf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) f g)) (forall {p : α -> Prop}, (Filter.Eventually.{u1} α (fun (x : α) => p x) f) -> (Filter.Frequently.{u1} α (fun (x : α) => p x) g))
 but is expected to have type
-  forall {α : Type.{u1}} {f : Filter.{u1} α} {g : Filter.{u1} α}, Iff (Filter.NeBot.{u1} α (HasInf.inf.{u1} (Filter.{u1} α) (Filter.instHasInfFilter.{u1} α) f g)) (forall {p : α -> Prop}, (Filter.Eventually.{u1} α (fun (x : α) => p x) f) -> (Filter.Frequently.{u1} α (fun (x : α) => p x) g))
+  forall {α : Type.{u1}} {f : Filter.{u1} α} {g : Filter.{u1} α}, Iff (Filter.NeBot.{u1} α (Inf.inf.{u1} (Filter.{u1} α) (Filter.instInfFilter.{u1} α) f g)) (forall {p : α -> Prop}, (Filter.Eventually.{u1} α (fun (x : α) => p x) f) -> (Filter.Frequently.{u1} α (fun (x : α) => p x) g))
 Case conversion may be inaccurate. Consider using '#align filter.inf_ne_bot_iff_frequently_left Filter.inf_neBot_iff_frequently_leftₓ'. -/
 theorem inf_neBot_iff_frequently_left {f g : Filter α} :
     NeBot (f ⊓ g) ↔ ∀ {p : α → Prop}, (∀ᶠ x in f, p x) → ∃ᶠ x in g, p x := by
@@ -1177,9 +1177,9 @@ theorem inf_neBot_iff_frequently_left {f g : Filter α} :
 
 /- warning: filter.inf_ne_bot_iff_frequently_right -> Filter.inf_neBot_iff_frequently_right is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {f : Filter.{u1} α} {g : Filter.{u1} α}, Iff (Filter.NeBot.{u1} α (HasInf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) f g)) (forall {p : α -> Prop}, (Filter.Eventually.{u1} α (fun (x : α) => p x) g) -> (Filter.Frequently.{u1} α (fun (x : α) => p x) f))
+  forall {α : Type.{u1}} {f : Filter.{u1} α} {g : Filter.{u1} α}, Iff (Filter.NeBot.{u1} α (Inf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) f g)) (forall {p : α -> Prop}, (Filter.Eventually.{u1} α (fun (x : α) => p x) g) -> (Filter.Frequently.{u1} α (fun (x : α) => p x) f))
 but is expected to have type
-  forall {α : Type.{u1}} {f : Filter.{u1} α} {g : Filter.{u1} α}, Iff (Filter.NeBot.{u1} α (HasInf.inf.{u1} (Filter.{u1} α) (Filter.instHasInfFilter.{u1} α) f g)) (forall {p : α -> Prop}, (Filter.Eventually.{u1} α (fun (x : α) => p x) g) -> (Filter.Frequently.{u1} α (fun (x : α) => p x) f))
+  forall {α : Type.{u1}} {f : Filter.{u1} α} {g : Filter.{u1} α}, Iff (Filter.NeBot.{u1} α (Inf.inf.{u1} (Filter.{u1} α) (Filter.instInfFilter.{u1} α) f g)) (forall {p : α -> Prop}, (Filter.Eventually.{u1} α (fun (x : α) => p x) g) -> (Filter.Frequently.{u1} α (fun (x : α) => p x) f))
 Case conversion may be inaccurate. Consider using '#align filter.inf_ne_bot_iff_frequently_right Filter.inf_neBot_iff_frequently_rightₓ'. -/
 theorem inf_neBot_iff_frequently_right {f g : Filter α} :
     NeBot (f ⊓ g) ↔ ∀ {p : α → Prop}, (∀ᶠ x in g, p x) → ∃ᶠ x in f, p x :=
@@ -1791,9 +1791,9 @@ theorem exists_antitone_seq (f : Filter α) [f.IsCountablyGenerated] :
 
 /- warning: filter.inf.is_countably_generated -> Filter.Inf.isCountablyGenerated is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} (f : Filter.{u1} α) (g : Filter.{u1} α) [_inst_1 : Filter.IsCountablyGenerated.{u1} α f] [_inst_2 : Filter.IsCountablyGenerated.{u1} α g], Filter.IsCountablyGenerated.{u1} α (HasInf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) f g)
+  forall {α : Type.{u1}} (f : Filter.{u1} α) (g : Filter.{u1} α) [_inst_1 : Filter.IsCountablyGenerated.{u1} α f] [_inst_2 : Filter.IsCountablyGenerated.{u1} α g], Filter.IsCountablyGenerated.{u1} α (Inf.inf.{u1} (Filter.{u1} α) (Filter.hasInf.{u1} α) f g)
 but is expected to have type
-  forall {α : Type.{u1}} (f : Filter.{u1} α) (g : Filter.{u1} α) [_inst_1 : Filter.IsCountablyGenerated.{u1} α f] [_inst_2 : Filter.IsCountablyGenerated.{u1} α g], Filter.IsCountablyGenerated.{u1} α (HasInf.inf.{u1} (Filter.{u1} α) (Filter.instHasInfFilter.{u1} α) f g)
+  forall {α : Type.{u1}} (f : Filter.{u1} α) (g : Filter.{u1} α) [_inst_1 : Filter.IsCountablyGenerated.{u1} α f] [_inst_2 : Filter.IsCountablyGenerated.{u1} α g], Filter.IsCountablyGenerated.{u1} α (Inf.inf.{u1} (Filter.{u1} α) (Filter.instInfFilter.{u1} α) f g)
 Case conversion may be inaccurate. Consider using '#align filter.inf.is_countably_generated Filter.Inf.isCountablyGeneratedₓ'. -/
 instance Inf.isCountablyGenerated (f g : Filter α) [IsCountablyGenerated f]
     [IsCountablyGenerated g] : IsCountablyGenerated (f ⊓ g) :=
@@ -1823,9 +1823,9 @@ instance comap.isCountablyGenerated (l : Filter β) [l.IsCountablyGenerated] (f
 
 /- warning: filter.sup.is_countably_generated -> Filter.Sup.isCountablyGenerated is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} (f : Filter.{u1} α) (g : Filter.{u1} α) [_inst_1 : Filter.IsCountablyGenerated.{u1} α f] [_inst_2 : Filter.IsCountablyGenerated.{u1} α g], Filter.IsCountablyGenerated.{u1} α (HasSup.sup.{u1} (Filter.{u1} α) (SemilatticeSup.toHasSup.{u1} (Filter.{u1} α) (Lattice.toSemilatticeSup.{u1} (Filter.{u1} α) (ConditionallyCompleteLattice.toLattice.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))))) f g)
+  forall {α : Type.{u1}} (f : Filter.{u1} α) (g : Filter.{u1} α) [_inst_1 : Filter.IsCountablyGenerated.{u1} α f] [_inst_2 : Filter.IsCountablyGenerated.{u1} α g], Filter.IsCountablyGenerated.{u1} α (Sup.sup.{u1} (Filter.{u1} α) (SemilatticeSup.toHasSup.{u1} (Filter.{u1} α) (Lattice.toSemilatticeSup.{u1} (Filter.{u1} α) (ConditionallyCompleteLattice.toLattice.{u1} (Filter.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Filter.{u1} α) (Filter.completeLattice.{u1} α))))) f g)
 but is expected to have type
-  forall {α : Type.{u1}} (f : Filter.{u1} α) (g : Filter.{u1} α) [_inst_1 : Filter.IsCountablyGenerated.{u1} α f] [_inst_2 : Filter.IsCountablyGenerated.{u1} α g], Filter.IsCountablyGenerated.{u1} α (HasSup.sup.{u1} (Filter.{u1} α) (SemilatticeSup.toHasSup.{u1} (Filter.{u1} α) (Lattice.toSemilatticeSup.{u1} (Filter.{u1} α) (CompleteLattice.toLattice.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)))) f g)
+  forall {α : Type.{u1}} (f : Filter.{u1} α) (g : Filter.{u1} α) [_inst_1 : Filter.IsCountablyGenerated.{u1} α f] [_inst_2 : Filter.IsCountablyGenerated.{u1} α g], Filter.IsCountablyGenerated.{u1} α (Sup.sup.{u1} (Filter.{u1} α) (SemilatticeSup.toSup.{u1} (Filter.{u1} α) (Lattice.toSemilatticeSup.{u1} (Filter.{u1} α) (CompleteLattice.toLattice.{u1} (Filter.{u1} α) (Filter.instCompleteLatticeFilter.{u1} α)))) f g)
 Case conversion may be inaccurate. Consider using '#align filter.sup.is_countably_generated Filter.Sup.isCountablyGeneratedₓ'. -/
 instance Sup.isCountablyGenerated (f g : Filter α) [IsCountablyGenerated f]
     [IsCountablyGenerated g] : IsCountablyGenerated (f ⊔ g) :=

Changes in mathlib4

mathlib3
mathlib4
feat: review and expand API on behavior of topological bases under some constructions (#10732)

The main addition is IsTopologicalBasis.inf (see https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Inf.20of.20a.20pair.20of.20topologies/near/419989448), and I also reordered things to be in the more typical order (deducing the Pi version from the iInf version rather than the converse).

Also a few extra golfs and variations.

Co-authored-by: Yury G. Kudryashov <urkud@urkud.name> Co-authored-by: Christopher Hoskin <christopher.hoskin@gmail.com> Co-authored-by: Christopher Hoskin <christopher.hoskin@overleaf.com>

Diff
@@ -432,6 +432,13 @@ theorem HasBasis.comp_equiv (h : l.HasBasis p s) (e : ι' ≃ ι) : l.HasBasis (
   h.comp_surjective e.surjective
 #align filter.has_basis.comp_equiv Filter.HasBasis.comp_equiv
 
+theorem HasBasis.to_image_id' (h : l.HasBasis p s) : l.HasBasis (fun t ↦ ∃ i, p i ∧ s i = t) id :=
+  ⟨fun _ ↦ by simp [h.mem_iff]⟩
+
+theorem HasBasis.to_image_id {ι : Type*} {p : ι → Prop} {s : ι → Set α} (h : l.HasBasis p s) :
+    l.HasBasis (· ∈ s '' {i | p i}) id :=
+  h.to_image_id'
+
 /-- If `{s i | p i}` is a basis of a filter `l` and each `s i` includes `s j` such that
 `p j ∧ q j`, then `{s j | p j ∧ q j}` is a basis of `l`. -/
 theorem HasBasis.restrict (h : l.HasBasis p s) {q : ι → Prop}
feat(UniformSpace/CompactConvergence): prove metrizability (#10942)
Diff
@@ -850,11 +850,15 @@ structure HasAntitoneBasis (l : Filter α) (s : ι'' → Set α)
   protected antitone : Antitone s
 #align filter.has_antitone_basis Filter.HasAntitoneBasis
 
-theorem HasAntitoneBasis.map {l : Filter α} {s : ι'' → Set α} {m : α → β}
-    (hf : HasAntitoneBasis l s) : HasAntitoneBasis (map m l) fun n => m '' s n :=
+protected theorem HasAntitoneBasis.map {l : Filter α} {s : ι'' → Set α}
+    (hf : HasAntitoneBasis l s) (m : α → β) : HasAntitoneBasis (map m l) (m '' s ·) :=
   ⟨HasBasis.map _ hf.toHasBasis, fun _ _ h => image_subset _ <| hf.2 h⟩
 #align filter.has_antitone_basis.map Filter.HasAntitoneBasis.map
 
+protected theorem HasAntitoneBasis.comap {l : Filter α} {s : ι'' → Set α}
+    (hf : HasAntitoneBasis l s) (m : β → α) : HasAntitoneBasis (comap m l) (m ⁻¹' s ·) :=
+  ⟨hf.1.comap _, fun _ _ h ↦ preimage_mono (hf.2 h)⟩
+
 lemma HasAntitoneBasis.iInf_principal {ι : Type*} [Preorder ι] [Nonempty ι] [IsDirected ι (· ≤ ·)]
     {s : ι → Set α} (hs : Antitone s) : (⨅ i, 𝓟 (s i)).HasAntitoneBasis s :=
   ⟨hasBasis_iInf_principal hs.directed_ge, hs⟩
@@ -1026,6 +1030,10 @@ theorem HasCountableBasis.isCountablyGenerated {f : Filter α} {p : ι → Prop}
   ⟨⟨{ t | ∃ i, p i ∧ s i = t }, h.countable.image s, h.toHasBasis.eq_generate⟩⟩
 #align filter.has_countable_basis.is_countably_generated Filter.HasCountableBasis.isCountablyGenerated
 
+theorem HasBasis.isCountablyGenerated [Countable ι] {f : Filter α} {p : ι → Prop} {s : ι → Set α}
+    (h : f.HasBasis p s) : f.IsCountablyGenerated :=
+  HasCountableBasis.isCountablyGenerated ⟨h, to_countable _⟩
+
 theorem antitone_seq_of_seq (s : ℕ → Set α) :
     ∃ t : ℕ → Set α, Antitone t ∧ ⨅ i, 𝓟 (s i) = ⨅ i, 𝓟 (t i) := by
   use fun n => ⋂ m ≤ n, s m; constructor
@@ -1128,21 +1136,20 @@ instance Inf.isCountablyGenerated (f g : Filter α) [IsCountablyGenerated f]
 instance map.isCountablyGenerated (l : Filter α) [l.IsCountablyGenerated] (f : α → β) :
     (map f l).IsCountablyGenerated :=
   let ⟨_x, hxl⟩ := l.exists_antitone_basis
-  HasCountableBasis.isCountablyGenerated ⟨hxl.map.1, to_countable _⟩
+  (hxl.map _).isCountablyGenerated
 #align filter.map.is_countably_generated Filter.map.isCountablyGenerated
 
 instance comap.isCountablyGenerated (l : Filter β) [l.IsCountablyGenerated] (f : α → β) :
     (comap f l).IsCountablyGenerated :=
   let ⟨_x, hxl⟩ := l.exists_antitone_basis
-  HasCountableBasis.isCountablyGenerated ⟨hxl.1.comap _, to_countable _⟩
+  (hxl.comap _).isCountablyGenerated
 #align filter.comap.is_countably_generated Filter.comap.isCountablyGenerated
 
 instance Sup.isCountablyGenerated (f g : Filter α) [IsCountablyGenerated f]
     [IsCountablyGenerated g] : IsCountablyGenerated (f ⊔ g) := by
   rcases f.exists_antitone_basis with ⟨s, hs⟩
   rcases g.exists_antitone_basis with ⟨t, ht⟩
-  exact
-    HasCountableBasis.isCountablyGenerated ⟨hs.1.sup ht.1, Set.to_countable _⟩
+  exact HasCountableBasis.isCountablyGenerated ⟨hs.1.sup ht.1, Set.to_countable _⟩
 #align filter.sup.is_countably_generated Filter.Sup.isCountablyGenerated
 
 instance prod.isCountablyGenerated (la : Filter α) (lb : Filter β) [IsCountablyGenerated la]
@@ -1157,7 +1164,7 @@ instance coprod.isCountablyGenerated (la : Filter α) (lb : Filter β) [IsCounta
 
 end IsCountablyGenerated
 
-theorem isCountablyGenerated_seq [Countable β] (x : β → Set α) :
+theorem isCountablyGenerated_seq [Countable ι'] (x : ι' → Set α) :
     IsCountablyGenerated (⨅ i, 𝓟 (x i)) := by
   use range x, countable_range x
   rw [generate_eq_biInf, iInf_range]
chore: scope open Classical (#11199)

We remove all but one open Classicals, instead preferring to use open scoped Classical. The only real side-effect this led to is moving a couple declarations to use Exists.choose instead of Classical.choose.

The first few commits are explicitly labelled regex replaces for ease of review.

Diff
@@ -83,7 +83,8 @@ set_option autoImplicit true
 
 open Set Filter
 
-open Filter Classical
+open scoped Classical
+open Filter
 
 section sort
 
style: homogenise porting notes (#11145)

Homogenises porting notes via capitalisation and addition of whitespace.

It makes the following changes:

  • converts "--porting note" into "-- Porting note";
  • converts "porting note" into "Porting note".
Diff
@@ -105,7 +105,7 @@ instance FilterBasis.nonempty_sets (B : FilterBasis α) : Nonempty B.sets :=
   B.nonempty.to_subtype
 #align filter_basis.nonempty_sets FilterBasis.nonempty_sets
 
--- porting note: this instance was reducible but it doesn't work the same way in Lean 4
+-- Porting note: this instance was reducible but it doesn't work the same way in Lean 4
 /-- If `B` is a filter basis on `α`, and `U` a subset of `α` then we can write `U ∈ B` as
 on paper. -/
 instance {α : Type*} : Membership (Set α) (FilterBasis α) :=
@@ -126,7 +126,7 @@ def Filter.asBasis (f : Filter α) : FilterBasis α :=
   ⟨f.sets, ⟨univ, univ_mem⟩, fun {x y} hx hy => ⟨x ∩ y, inter_mem hx hy, subset_rfl⟩⟩
 #align filter.as_basis Filter.asBasis
 
--- porting note: was `protected` in Lean 3 but `protected` didn't work; removed
+-- Porting note: was `protected` in Lean 3 but `protected` didn't work; removed
 /-- `is_basis p s` means the image of `s` bounded by `p` is a filter basis. -/
 structure Filter.IsBasis (p : ι → Prop) (s : ι → Set α) : Prop where
   /-- There exists at least one `i` that satisfies `p`. -/
@@ -226,7 +226,7 @@ theorem filter_eq_generate (h : IsBasis p s) : h.filter = generate { U | ∃ i,
 
 end IsBasis
 
--- porting note: was `protected` in Lean 3 but `protected` didn't work; removed
+-- Porting note: was `protected` in Lean 3 but `protected` didn't work; removed
 /-- We say that a filter `l` has a basis `s : ι → Set α` bounded by `p : ι → Prop`,
 if `t ∈ l` if and only if `t` includes `s i` for some `i` such that `p i`. -/
 structure HasBasis (l : Filter α) (p : ι → Prop) (s : ι → Set α) : Prop where
@@ -258,7 +258,7 @@ lemma FilterBasis.ofSets_sets (s : Set (Set α)) :
     (FilterBasis.ofSets s).sets = sInter '' { t | Set.Finite t ∧ t ⊆ s } :=
   rfl
 
--- porting note: use `∃ i, p i ∧ _` instead of `∃ i (hi : p i), _`.
+-- Porting note: use `∃ i, p i ∧ _` instead of `∃ i (hi : p i), _`.
 /-- Definition of `HasBasis` unfolded with implicit set argument. -/
 theorem HasBasis.mem_iff (hl : l.HasBasis p s) : t ∈ l ↔ ∃ i, p i ∧ s i ⊆ t :=
   hl.mem_iff' t
@@ -269,7 +269,7 @@ theorem HasBasis.eq_of_same_basis (hl : l.HasBasis p s) (hl' : l'.HasBasis p s)
   rw [hl.mem_iff, hl'.mem_iff]
 #align filter.has_basis.eq_of_same_basis Filter.HasBasis.eq_of_same_basis
 
--- porting note: use `∃ i, p i ∧ _` instead of `∃ i (hi : p i), _`.
+-- Porting note: use `∃ i, p i ∧ _` instead of `∃ i (hi : p i), _`.
 theorem hasBasis_iff : l.HasBasis p s ↔ ∀ t, t ∈ l ↔ ∃ i, p i ∧ s i ⊆ t :=
   ⟨fun ⟨h⟩ => h, fun h => ⟨h⟩⟩
 #align filter.has_basis_iff Filter.hasBasis_iffₓ
@@ -376,7 +376,7 @@ theorem HasBasis.frequently_iff (hl : l.HasBasis p s) {q : α → Prop} :
   simp only [Filter.Frequently, hl.eventually_iff]; push_neg; rfl
 #align filter.has_basis.frequently_iff Filter.HasBasis.frequently_iff
 
--- porting note: use `∃ i, p i ∧ _` instead of `∃ i (hi : p i), _`.
+-- Porting note: use `∃ i, p i ∧ _` instead of `∃ i (hi : p i), _`.
 theorem HasBasis.exists_iff (hl : l.HasBasis p s) {P : Set α → Prop}
     (mono : ∀ ⦃s t⦄, s ⊆ t → P t → P s) : (∃ s ∈ l, P s) ↔ ∃ i, p i ∧ P (s i) :=
   ⟨fun ⟨_s, hs, hP⟩ =>
@@ -460,18 +460,18 @@ theorem HasBasis.ge_iff (hl' : l'.HasBasis p' s') : l ≤ l' ↔ ∀ i', p' i' 
     mem_of_superset (h _ hi') hs⟩
 #align filter.has_basis.ge_iff Filter.HasBasis.ge_iff
 
--- porting note: use `∃ i, p i ∧ _` instead of `∃ i (hi : p i), _`.
+-- Porting note: use `∃ i, p i ∧ _` instead of `∃ i (hi : p i), _`.
 theorem HasBasis.le_iff (hl : l.HasBasis p s) : l ≤ l' ↔ ∀ t ∈ l', ∃ i, p i ∧ s i ⊆ t := by
   simp only [le_def, hl.mem_iff]
 #align filter.has_basis.le_iff Filter.HasBasis.le_iffₓ
 
--- porting note: use `∃ i, p i ∧ _` instead of `∃ i (hi : p i), _`.
+-- Porting note: use `∃ i, p i ∧ _` instead of `∃ i (hi : p i), _`.
 theorem HasBasis.le_basis_iff (hl : l.HasBasis p s) (hl' : l'.HasBasis p' s') :
     l ≤ l' ↔ ∀ i', p' i' → ∃ i, p i ∧ s i ⊆ s' i' := by
   simp only [hl'.ge_iff, hl.mem_iff]
 #align filter.has_basis.le_basis_iff Filter.HasBasis.le_basis_iffₓ
 
--- porting note: use `∃ i, p i ∧ _` instead of `∃ i (hi : p i), _`.
+-- Porting note: use `∃ i, p i ∧ _` instead of `∃ i (hi : p i), _`.
 theorem HasBasis.ext (hl : l.HasBasis p s) (hl' : l'.HasBasis p' s')
     (h : ∀ i, p i → ∃ i', p' i' ∧ s' i' ⊆ s i) (h' : ∀ i', p' i' → ∃ i, p i ∧ s i ⊆ s' i') :
     l = l' := by
@@ -648,14 +648,14 @@ theorem HasBasis.inf_principal_neBot_iff (hl : l.HasBasis p s) {t : Set α} :
   (hl.inf_principal t).neBot_iff
 #align filter.has_basis.inf_principal_ne_bot_iff Filter.HasBasis.inf_principal_neBot_iff
 
--- porting note: use `∃ i, p i ∧ _` instead of `∃ i (hi : p i), _`.
+-- Porting note: use `∃ i, p i ∧ _` instead of `∃ i (hi : p i), _`.
 theorem HasBasis.disjoint_iff (hl : l.HasBasis p s) (hl' : l'.HasBasis p' s') :
     Disjoint l l' ↔ ∃ i, p i ∧ ∃ i', p' i' ∧ Disjoint (s i) (s' i') :=
   not_iff_not.mp <| by simp only [_root_.disjoint_iff, ← Ne.def, ← neBot_iff, inf_eq_inter,
     hl.inf_basis_neBot_iff hl', not_exists, not_and, bot_eq_empty, ← nonempty_iff_ne_empty]
 #align filter.has_basis.disjoint_iff Filter.HasBasis.disjoint_iffₓ
 
--- porting note: use `∃ i, p i ∧ _` instead of `∃ i (hi : p i), _`.
+-- Porting note: use `∃ i, p i ∧ _` instead of `∃ i (hi : p i), _`.
 theorem _root_.Disjoint.exists_mem_filter_basis (h : Disjoint l l') (hl : l.HasBasis p s)
     (hl' : l'.HasBasis p' s') : ∃ i, p i ∧ ∃ i', p' i' ∧ Disjoint (s i) (s' i') :=
   (hl.disjoint_iff hl').1 h
@@ -709,7 +709,7 @@ theorem disjoint_principal_left {f : Filter α} {s : Set α} : Disjoint (𝓟 s)
   rw [disjoint_comm, disjoint_principal_right]
 #align filter.disjoint_principal_left Filter.disjoint_principal_left
 
-@[simp 1100] -- porting note: higher priority for linter
+@[simp 1100] -- Porting note: higher priority for linter
 theorem disjoint_principal_principal {s t : Set α} : Disjoint (𝓟 s) (𝓟 t) ↔ Disjoint s t := by
   rw [← subset_compl_iff_disjoint_left, disjoint_principal_left, mem_principal]
 #align filter.disjoint_principal_principal Filter.disjoint_principal_principal
@@ -727,14 +727,14 @@ theorem compl_diagonal_mem_prod {l₁ l₂ : Filter α} : (diagonal α)ᶜ ∈ l
   simp only [mem_prod_iff, Filter.disjoint_iff, prod_subset_compl_diagonal_iff_disjoint]
 #align filter.compl_diagonal_mem_prod Filter.compl_diagonal_mem_prod
 
--- porting note: use `∃ i, p i ∧ _` instead of `∃ i (hi : p i), _`.
+-- Porting note: use `∃ i, p i ∧ _` instead of `∃ i (hi : p i), _`.
 theorem HasBasis.disjoint_iff_left (h : l.HasBasis p s) :
     Disjoint l l' ↔ ∃ i, p i ∧ (s i)ᶜ ∈ l' := by
   simp only [h.disjoint_iff l'.basis_sets, id, ← disjoint_principal_left,
     (hasBasis_principal _).disjoint_iff l'.basis_sets, true_and, Unique.exists_iff]
 #align filter.has_basis.disjoint_iff_left Filter.HasBasis.disjoint_iff_leftₓ
 
--- porting note: use `∃ i, p i ∧ _` instead of `∃ i (hi : p i), _`.
+-- Porting note: use `∃ i, p i ∧ _` instead of `∃ i (hi : p i), _`.
 theorem HasBasis.disjoint_iff_right (h : l.HasBasis p s) :
     Disjoint l' l ↔ ∃ i, p i ∧ (s i)ᶜ ∈ l' :=
   disjoint_comm.trans h.disjoint_iff_left
@@ -865,7 +865,7 @@ section TwoTypes
 variable {la : Filter α} {pa : ι → Prop} {sa : ι → Set α} {lb : Filter β} {pb : ι' → Prop}
   {sb : ι' → Set β} {f : α → β}
 
--- porting note: use `∃ i, p i ∧ _` instead of `∃ i (hi : p i), _`.
+-- Porting note: use `∃ i, p i ∧ _` instead of `∃ i (hi : p i), _`.
 theorem HasBasis.tendsto_left_iff (hla : la.HasBasis pa sa) :
     Tendsto f la lb ↔ ∀ t ∈ lb, ∃ i, pa i ∧ MapsTo f (sa i) t := by
   simp only [Tendsto, (hla.map f).le_iff, image_subset_iff]
@@ -877,13 +877,13 @@ theorem HasBasis.tendsto_right_iff (hlb : lb.HasBasis pb sb) :
   simp only [Tendsto, hlb.ge_iff, mem_map', Filter.Eventually]
 #align filter.has_basis.tendsto_right_iff Filter.HasBasis.tendsto_right_iff
 
--- porting note: use `∃ i, p i ∧ _` instead of `∃ i (hi : p i), _`.
+-- Porting note: use `∃ i, p i ∧ _` instead of `∃ i (hi : p i), _`.
 theorem HasBasis.tendsto_iff (hla : la.HasBasis pa sa) (hlb : lb.HasBasis pb sb) :
     Tendsto f la lb ↔ ∀ ib, pb ib → ∃ ia, pa ia ∧ ∀ x ∈ sa ia, f x ∈ sb ib := by
   simp [hlb.tendsto_right_iff, hla.eventually_iff]
 #align filter.has_basis.tendsto_iff Filter.HasBasis.tendsto_iffₓ
 
--- porting note: use `∃ i, p i ∧ _` instead of `∃ i (hi : p i), _`.
+-- Porting note: use `∃ i, p i ∧ _` instead of `∃ i (hi : p i), _`.
 theorem Tendsto.basis_left (H : Tendsto f la lb) (hla : la.HasBasis pa sa) :
     ∀ t ∈ lb, ∃ i, pa i ∧ MapsTo f (sa i) t :=
   hla.tendsto_left_iff.1 H
@@ -894,7 +894,7 @@ theorem Tendsto.basis_right (H : Tendsto f la lb) (hlb : lb.HasBasis pb sb) :
   hlb.tendsto_right_iff.1 H
 #align filter.tendsto.basis_right Filter.Tendsto.basis_right
 
--- porting note: use `∃ i, p i ∧ _` instead of `∃ i (hi : p i), _`.
+-- Porting note: use `∃ i, p i ∧ _` instead of `∃ i (hi : p i), _`.
 theorem Tendsto.basis_both (H : Tendsto f la lb) (hla : la.HasBasis pa sa)
     (hlb : lb.HasBasis pb sb) :
     ∀ ib, pb ib → ∃ ia, pa ia ∧ MapsTo f (sa ia) (sb ib) :=
@@ -1204,7 +1204,7 @@ theorem isCountablyGenerated_top : IsCountablyGenerated (⊤ : Filter α) :=
   @principal_univ α ▸ isCountablyGenerated_principal _
 #align filter.is_countably_generated_top Filter.isCountablyGenerated_top
 
--- porting note: without explicit `Sort u` and `Type v`, Lean 4 uses `ι : Prop`
+-- Porting note: without explicit `Sort u` and `Type v`, Lean 4 uses `ι : Prop`
 universe u v
 
 instance iInf.isCountablyGenerated {ι : Sort u} {α : Type v} [Countable ι] (f : ι → Filter α)
chore(Filter/Ker): move from Filter.Basic to a new file (#10023)

Start moving parts of >3K lines long Filter.Basic to new files.

Diff
@@ -6,6 +6,7 @@ Authors: Yury Kudryashov, Johannes Hölzl, Mario Carneiro, Patrick Massot
 import Mathlib.Data.Prod.PProd
 import Mathlib.Data.Set.Countable
 import Mathlib.Order.Filter.Prod
+import Mathlib.Order.Filter.Ker
 
 #align_import order.filter.bases from "leanprover-community/mathlib"@"996b0ff959da753a555053a480f36e5f264d4207"
 
chore(*): replace $ with <| (#9319)

See Zulip thread for the discussion.

Diff
@@ -829,7 +829,7 @@ protected theorem HasBasis.biInter_mem {f : Set α → Set β} (h : HasBasis l p
 #align filter.has_basis.bInter_mem Filter.HasBasis.biInter_mem
 
 protected theorem HasBasis.ker (h : HasBasis l p s) : l.ker = ⋂ (i) (_ : p i), s i :=
-  l.ker_def.trans $ h.biInter_mem monotone_id
+  l.ker_def.trans <| h.biInter_mem monotone_id
 #align filter.has_basis.sInter_sets Filter.HasBasis.ker
 
 variable {ι'' : Type*} [Preorder ι''] (l) (s'' : ι'' → Set α)
chore(*): drop $/<| before fun (#9361)

Subset of #9319

Diff
@@ -165,7 +165,7 @@ namespace FilterBasis
 /-- The filter associated to a filter basis. -/
 protected def filter (B : FilterBasis α) : Filter α where
   sets := { s | ∃ t ∈ B, t ⊆ s }
-  univ_sets := B.nonempty.imp <| fun s s_in => ⟨s_in, s.subset_univ⟩
+  univ_sets := B.nonempty.imp fun s s_in => ⟨s_in, s.subset_univ⟩
   sets_of_superset := fun ⟨s, s_in, h⟩ hxy => ⟨s, s_in, Set.Subset.trans h hxy⟩
   inter_sets := fun ⟨_s, s_in, hs⟩ ⟨_t, t_in, ht⟩ =>
     let ⟨u, u_in, u_sub⟩ := B.inter_sets s_in t_in
@@ -274,7 +274,7 @@ theorem hasBasis_iff : l.HasBasis p s ↔ ∀ t, t ∈ l ↔ ∃ i, p i ∧ s i
 #align filter.has_basis_iff Filter.hasBasis_iffₓ
 
 theorem HasBasis.ex_mem (h : l.HasBasis p s) : ∃ i, p i :=
-  (h.mem_iff.mp univ_mem).imp <| fun _ => And.left
+  (h.mem_iff.mp univ_mem).imp fun _ => And.left
 #align filter.has_basis.ex_mem Filter.HasBasis.ex_mem
 
 protected theorem HasBasis.nonempty (h : l.HasBasis p s) : Nonempty ι :=
@@ -755,7 +755,7 @@ theorem inf_neBot_iff_frequently_right {f g : Filter α} :
 #align filter.inf_ne_bot_iff_frequently_right Filter.inf_neBot_iff_frequently_right
 
 theorem HasBasis.eq_biInf (h : l.HasBasis p s) : l = ⨅ (i) (_ : p i), 𝓟 (s i) :=
-  eq_biInf_of_mem_iff_exists_mem <| fun {_} => by simp only [h.mem_iff, mem_principal, exists_prop]
+  eq_biInf_of_mem_iff_exists_mem fun {_} => by simp only [h.mem_iff, mem_principal, exists_prop]
 #align filter.has_basis.eq_binfi Filter.HasBasis.eq_biInf
 
 theorem HasBasis.eq_iInf (h : l.HasBasis (fun _ => True) s) : l = ⨅ i, 𝓟 (s i) := by
chore: remove uses of cases' (#9171)

I literally went through and regex'd some uses of cases', replacing them with rcases; this is meant to be a low effort PR as I hope that tools can do this in the future.

rcases is an easier replacement than cases, though with better tools we could in future do a second pass converting simple rcases added here (and existing ones) to cases.

Diff
@@ -1044,7 +1044,7 @@ theorem countable_biInf_eq_iInf_seq [CompleteLattice α] {B : Set ι} (Bcbl : B.
 
 theorem countable_biInf_eq_iInf_seq' [CompleteLattice α] {B : Set ι} (Bcbl : B.Countable)
     (f : ι → α) {i₀ : ι} (h : f i₀ = ⊤) : ∃ x : ℕ → ι, ⨅ t ∈ B, f t = ⨅ i, f (x i) := by
-  cases' B.eq_empty_or_nonempty with hB Bnonempty
+  rcases B.eq_empty_or_nonempty with hB | Bnonempty
   · rw [hB, iInf_emptyset]
     use fun _ => i₀
     simp [h]
style: cleanup by putting by on the same line as := (#8407)

Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Diff
@@ -460,8 +460,8 @@ theorem HasBasis.ge_iff (hl' : l'.HasBasis p' s') : l ≤ l' ↔ ∀ i', p' i' 
 #align filter.has_basis.ge_iff Filter.HasBasis.ge_iff
 
 -- porting note: use `∃ i, p i ∧ _` instead of `∃ i (hi : p i), _`.
-theorem HasBasis.le_iff (hl : l.HasBasis p s) : l ≤ l' ↔ ∀ t ∈ l', ∃ i, p i ∧ s i ⊆ t :=
-  by simp only [le_def, hl.mem_iff]
+theorem HasBasis.le_iff (hl : l.HasBasis p s) : l ≤ l' ↔ ∀ t ∈ l', ∃ i, p i ∧ s i ⊆ t := by
+  simp only [le_def, hl.mem_iff]
 #align filter.has_basis.le_iff Filter.HasBasis.le_iffₓ
 
 -- porting note: use `∃ i, p i ∧ _` instead of `∃ i (hi : p i), _`.
@@ -581,8 +581,9 @@ theorem hasBasis_principal (t : Set α) : (𝓟 t).HasBasis (fun _ : Unit => Tru
   ⟨fun U => by simp⟩
 #align filter.has_basis_principal Filter.hasBasis_principal
 
-theorem hasBasis_pure (x : α) : (pure x : Filter α).HasBasis (fun _ : Unit => True) fun _ => {x} :=
-  by simp only [← principal_singleton, hasBasis_principal]
+theorem hasBasis_pure (x : α) :
+    (pure x : Filter α).HasBasis (fun _ : Unit => True) fun _ => {x} := by
+  simp only [← principal_singleton, hasBasis_principal]
 #align filter.has_basis_pure Filter.hasBasis_pure
 
 theorem HasBasis.sup' (hl : l.HasBasis p s) (hl' : l'.HasBasis p' s') :
feat: inv interchanges cobounded and 𝓝[≠] 0 in normed division rings (#8234)

Co-authored-by: Yury G. Kudryashov <urkud@urkud.name>

Diff
@@ -356,6 +356,11 @@ theorem HasBasis.to_hasBasis (hl : l.HasBasis p s) (h : ∀ i, p i → ∃ i', p
     hl.mem_iff.2 ⟨i, hi, hss'⟩
 #align filter.has_basis.to_has_basis Filter.HasBasis.to_hasBasis
 
+protected lemma HasBasis.congr (hl : l.HasBasis p s) {p' s'} (hp : ∀ i, p i ↔ p' i)
+    (hs : ∀ i, p i → s i = s' i) : l.HasBasis p' s' :=
+  ⟨fun t ↦ by simp only [hl.mem_iff, ← hp]; exact exists_congr fun i ↦
+    and_congr_right fun hi ↦ hs i hi ▸ Iff.rfl⟩
+
 theorem HasBasis.to_subset (hl : l.HasBasis p s) {t : ι → Set α} (h : ∀ i, p i → t i ⊆ s i)
     (ht : ∀ i, p i → t i ∈ l) : l.HasBasis p t :=
   hl.to_hasBasis' (fun i hi => ⟨i, hi, h i hi⟩) ht
feat: add Set.InjOn.exists_mem_nhdsSet (#7947)

A continuous function injective on a compact set and injective on a neighborhood of each point of this set is injective on a neighborhood of this set.

From the Mandelbrot set connectedness project.

Co-authored-by: @girving

Diff
@@ -944,6 +944,10 @@ theorem mem_prod_self_iff {s} : s ∈ la ×ˢ la ↔ ∃ t ∈ la, t ×ˢ t ⊆
   la.basis_sets.prod_self.mem_iff
 #align filter.mem_prod_self_iff Filter.mem_prod_self_iff
 
+lemma eventually_prod_self_iff {r : α → α → Prop} :
+    (∀ᶠ x in la ×ˢ la, r x.1 x.2) ↔ ∃ t ∈ la, ∀ x ∈ t, ∀ y ∈ t, r x y :=
+  mem_prod_self_iff.trans <| by simp only [prod_subset_iff, mem_setOf_eq]
+
 theorem HasAntitoneBasis.prod {ι : Type*} [LinearOrder ι] {f : Filter α} {g : Filter β}
     {s : ι → Set α} {t : ι → Set β} (hf : HasAntitoneBasis f s) (hg : HasAntitoneBasis g t) :
     HasAntitoneBasis (f ×ˢ g) fun n => s n ×ˢ t n :=
feat: generalize some lemmas to directed types (#7852)

New lemmas / instances

  • An archimedean ordered semiring is directed upwards.
  • Filter.hasAntitoneBasis_atTop;
  • Filter.HasAntitoneBasis.iInf_principal;

Fix typos

  • Docstrings: "if the agree" -> "if they agree".
  • ProbabilityTheory.measure_eq_zero_or_one_of_indepSetCat_self -> ProbabilityTheory.measure_eq_zero_or_one_of_indepSet_self.

Weaken typeclass assumptions

From a semilattice to a directed type

  • MeasureTheory.tendsto_measure_iUnion;
  • MeasureTheory.tendsto_measure_iInter;
  • Monotone.directed_le, Monotone.directed_ge;
  • Antitone.directed_le, Antitone.directed_ge;
  • directed_of_sup, renamed to directed_of_isDirected_le;
  • directed_of_inf, renamed to directed_of_isDirected_ge;

From a strict ordered semiring to an ordered semiring

  • tendsto_nat_cast_atTop_atTop;
  • Filter.Eventually.nat_cast_atTop;
  • atTop_hasAntitoneBasis_of_archimedean;
Diff
@@ -847,6 +847,10 @@ theorem HasAntitoneBasis.map {l : Filter α} {s : ι'' → Set α} {m : α → 
   ⟨HasBasis.map _ hf.toHasBasis, fun _ _ h => image_subset _ <| hf.2 h⟩
 #align filter.has_antitone_basis.map Filter.HasAntitoneBasis.map
 
+lemma HasAntitoneBasis.iInf_principal {ι : Type*} [Preorder ι] [Nonempty ι] [IsDirected ι (· ≤ ·)]
+    {s : ι → Set α} (hs : Antitone s) : (⨅ i, 𝓟 (s i)).HasAntitoneBasis s :=
+  ⟨hasBasis_iInf_principal hs.directed_ge, hs⟩
+
 end SameType
 
 section TwoTypes
@@ -1075,14 +1079,13 @@ theorem HasBasis.exists_antitone_subbasis {f : Filter α} [h : f.IsCountablyGene
   let x : ℕ → { i : ι' // p i } := fun n =>
     Nat.recOn n (hs.index _ <| this 0) fun n xn =>
       hs.index _ <| inter_mem (this <| n + 1) (hs.mem_of_mem xn.2)
-  have x_mono : Antitone fun i => s (x i).1 :=
+  have x_anti : Antitone fun i => s (x i).1 :=
     antitone_nat_of_succ_le fun i => (hs.set_index_subset _).trans (inter_subset_right _ _)
   have x_subset : ∀ i, s (x i).1 ⊆ x' i := by
     rintro (_ | i)
     exacts [hs.set_index_subset _, (hs.set_index_subset _).trans (inter_subset_left _ _)]
   refine' ⟨fun i => (x i).1, fun i => (x i).2, _⟩
-  have : (⨅ i, 𝓟 (s (x i).1)).HasAntitoneBasis fun i => s (x i).1 :=
-    ⟨hasBasis_iInf_principal (directed_of_sup x_mono), x_mono⟩
+  have : (⨅ i, 𝓟 (s (x i).1)).HasAntitoneBasis fun i => s (x i).1 := .iInf_principal x_anti
   convert this
   exact
     le_antisymm (le_iInf fun i => le_principal_iff.2 <| by cases i <;> apply hs.set_index_mem)
chore: remove trailing space in backticks (#7617)

This will improve spaces in the mathlib4 docs.

Diff
@@ -59,7 +59,7 @@ and consequences are derived.
 * `isCountablyGenerated_iff_exists_antitone_basis` : proves a filter is countably generated if and
   only if it admits a basis parametrized by a decreasing sequence of sets indexed by `ℕ`.
 
-* `tendsto_iff_seq_tendsto ` : an abstract version of "sequentially continuous implies continuous".
+* `tendsto_iff_seq_tendsto` : an abstract version of "sequentially continuous implies continuous".
 
 ## Implementation notes
 
chore: exactly 4 spaces in subsequent lines (#7296)

Co-authored-by: Moritz Firsching <firsching@google.com>

Diff
@@ -286,7 +286,7 @@ protected theorem IsBasis.hasBasis (h : IsBasis p s) : HasBasis h.filter p s :=
 #align filter.is_basis.has_basis Filter.IsBasis.hasBasis
 
 protected theorem HasBasis.mem_of_superset (hl : l.HasBasis p s) (hi : p i) (ht : s i ⊆ t) :
-     t ∈ l :=
+    t ∈ l :=
   hl.mem_iff.2 ⟨i, hi, ht⟩
 #align filter.has_basis.mem_of_superset Filter.HasBasis.mem_of_superset
 
feat: Exterior of a set (#6982)

In an Alexandrov-discrete space, every set has a smallest neighborhood. We call this neighborhood the exterior of the set. It is completely analogous to the interior, except that all inclusions are reversed.

Diff
@@ -822,10 +822,9 @@ protected theorem HasBasis.biInter_mem {f : Set α → Set β} (h : HasBasis l p
   h.biInf_mem hf
 #align filter.has_basis.bInter_mem Filter.HasBasis.biInter_mem
 
-theorem HasBasis.sInter_sets (h : HasBasis l p s) : ⋂₀ l.sets = ⋂ (i) (_ : p i), s i := by
-  rw [sInter_eq_biInter]
-  exact h.biInter_mem monotone_id
-#align filter.has_basis.sInter_sets Filter.HasBasis.sInter_sets
+protected theorem HasBasis.ker (h : HasBasis l p s) : l.ker = ⋂ (i) (_ : p i), s i :=
+  l.ker_def.trans $ h.biInter_mem monotone_id
+#align filter.has_basis.sInter_sets Filter.HasBasis.ker
 
 variable {ι'' : Type*} [Preorder ι''] (l) (s'' : ι'' → Set α)
 
chore: tidy various files (#7081)
Diff
@@ -21,7 +21,7 @@ to `B.filter` if and only if it contains an element of `B`.
 
 Given an indexing type `ι`, a predicate `p : ι → Prop`, and a map `s : ι → Set α`,
 the proposition `h : Filter.IsBasis p s` makes sure the range of `s` bounded by `p`
-(ie. `s '' setOf p`) defines a filter basis `h.filter_basis`.
+(ie. `s '' setOf p`) defines a filter basis `h.filterBasis`.
 
 If one already has a filter `l` on `α`, `Filter.HasBasis l p s` (where `p : ι → Prop`
 and `s : ι → Set α` as above) means that a set belongs to `l` if and
@@ -54,9 +54,9 @@ and consequences are derived.
   `l ≤ l'` in terms of bases.
 
 * `Filter.HasBasis.tendsto_right_iff`, `Filter.HasBasis.tendsto_left_iff`,
-  `Filter.HasBasis.tendsto_iff` : restate `tendsto f l l'` in terms of bases.
+  `Filter.HasBasis.tendsto_iff` : restate `Tendsto f l l'` in terms of bases.
 
-* `is_countably_generated_iff_exists_antitone_basis` : proves a filter is countably generated if and
+* `isCountablyGenerated_iff_exists_antitone_basis` : proves a filter is countably generated if and
   only if it admits a basis parametrized by a decreasing sequence of sets indexed by `ℕ`.
 
 * `tendsto_iff_seq_tendsto ` : an abstract version of "sequentially continuous implies continuous".
@@ -112,7 +112,7 @@ instance {α : Type*} : Membership (Set α) (FilterBasis α) :=
 
 @[simp] theorem FilterBasis.mem_sets {s : Set α} {B : FilterBasis α} : s ∈ B.sets ↔ s ∈ B := Iff.rfl
 
--- For illustration purposes, the filter basis defining (at_top : filter ℕ)
+-- For illustration purposes, the filter basis defining `(atTop : Filter ℕ)`
 instance : Inhabited (FilterBasis ℕ) :=
   ⟨{  sets := range Ici
       nonempty := ⟨Ici 0, mem_range_self 0⟩
@@ -163,8 +163,7 @@ end Filter
 namespace FilterBasis
 
 /-- The filter associated to a filter basis. -/
-protected def filter (B : FilterBasis α) : Filter α
-    where
+protected def filter (B : FilterBasis α) : Filter α where
   sets := { s | ∃ t ∈ B, t ⊆ s }
   univ_sets := B.nonempty.imp <| fun s s_in => ⟨s_in, s.subset_univ⟩
   sets_of_superset := fun ⟨s, s_in, h⟩ hxy => ⟨s, s_in, Set.Subset.trans h hxy⟩
@@ -314,7 +313,7 @@ theorem HasBasis.set_index_subset (h : l.HasBasis p s) (ht : t ∈ l) : s (h.ind
 
 theorem HasBasis.isBasis (h : l.HasBasis p s) : IsBasis p s where
   nonempty := h.ex_mem
-  inter := fun hi hj => by
+  inter hi hj := by
     simpa only [h.mem_iff] using inter_mem (h.mem_of_mem hi) (h.mem_of_mem hj)
 #align filter.has_basis.is_basis Filter.HasBasis.isBasis
 
@@ -342,24 +341,24 @@ protected theorem _root_.FilterBasis.hasBasis (B : FilterBasis α) :
   ⟨fun _ => B.mem_filter_iff⟩
 #align filter_basis.has_basis FilterBasis.hasBasis
 
-theorem HasBasis.to_has_basis' (hl : l.HasBasis p s) (h : ∀ i, p i → ∃ i', p' i' ∧ s' i' ⊆ s i)
+theorem HasBasis.to_hasBasis' (hl : l.HasBasis p s) (h : ∀ i, p i → ∃ i', p' i' ∧ s' i' ⊆ s i)
     (h' : ∀ i', p' i' → s' i' ∈ l) : l.HasBasis p' s' := by
   refine' ⟨fun t => ⟨fun ht => _, fun ⟨i', hi', ht⟩ => mem_of_superset (h' i' hi') ht⟩⟩
   rcases hl.mem_iff.1 ht with ⟨i, hi, ht⟩
   rcases h i hi with ⟨i', hi', hs's⟩
   exact ⟨i', hi', hs's.trans ht⟩
-#align filter.has_basis.to_has_basis' Filter.HasBasis.to_has_basis'
+#align filter.has_basis.to_has_basis' Filter.HasBasis.to_hasBasis'
 
 theorem HasBasis.to_hasBasis (hl : l.HasBasis p s) (h : ∀ i, p i → ∃ i', p' i' ∧ s' i' ⊆ s i)
     (h' : ∀ i', p' i' → ∃ i, p i ∧ s i ⊆ s' i') : l.HasBasis p' s' :=
-  hl.to_has_basis' h fun i' hi' =>
+  hl.to_hasBasis' h fun i' hi' =>
     let ⟨i, hi, hss'⟩ := h' i' hi'
     hl.mem_iff.2 ⟨i, hi, hss'⟩
 #align filter.has_basis.to_has_basis Filter.HasBasis.to_hasBasis
 
 theorem HasBasis.to_subset (hl : l.HasBasis p s) {t : ι → Set α} (h : ∀ i, p i → t i ⊆ s i)
     (ht : ∀ i, p i → t i ∈ l) : l.HasBasis p t :=
-  hl.to_has_basis' (fun i hi => ⟨i, hi, h i hi⟩) ht
+  hl.to_hasBasis' (fun i hi => ⟨i, hi, h i hi⟩) ht
 #align filter.has_basis.to_subset Filter.HasBasis.to_subset
 
 theorem HasBasis.eventually_iff (hl : l.HasBasis p s) {q : α → Prop} :
@@ -552,7 +551,7 @@ theorem hasBasis_biInf_of_directed' {ι : Type*} {ι' : ι → Sort _} {dom : Se
   rw [mem_biInf_of_directed h hdom, Sigma.exists]
   refine' exists_congr fun i => ⟨_, _⟩
   · rintro ⟨hi, hti⟩
-    rcases(hl i hi).mem_iff.mp hti with ⟨b, hb, hbt⟩
+    rcases (hl i hi).mem_iff.mp hti with ⟨b, hb, hbt⟩
     exact ⟨b, ⟨hi, hb⟩, hbt⟩
   · rintro ⟨b, ⟨hi, hb⟩, hibt⟩
     exact ⟨hi, (hl i hi).mem_iff.mpr ⟨b, hb, hibt⟩⟩
@@ -567,7 +566,7 @@ theorem hasBasis_biInf_of_directed {ι : Type*} {ι' : Sort _} {dom : Set ι} (h
   rw [mem_biInf_of_directed h hdom, Prod.exists]
   refine' exists_congr fun i => ⟨_, _⟩
   · rintro ⟨hi, hti⟩
-    rcases(hl i hi).mem_iff.mp hti with ⟨b, hb, hbt⟩
+    rcases (hl i hi).mem_iff.mp hti with ⟨b, hb, hbt⟩
     exact ⟨b, ⟨hi, hb⟩, hbt⟩
   · rintro ⟨b, ⟨hi, hb⟩, hibt⟩
     exact ⟨hi, (hl i hi).mem_iff.mpr ⟨b, hb, hibt⟩⟩
@@ -1002,7 +1001,7 @@ structure CountableFilterBasis (α : Type*) extends FilterBasis α where
   countable : sets.Countable
 #align filter.countable_filter_basis Filter.CountableFilterBasis
 
--- For illustration purposes, the countable filter basis defining `(AtTop : Filter ℕ)`
+-- For illustration purposes, the countable filter basis defining `(atTop : Filter ℕ)`
 instance Nat.inhabitedCountableFilterBasis : Inhabited (CountableFilterBasis ℕ) :=
   ⟨⟨default, countable_range fun n => Ici n⟩⟩
 #align filter.nat.inhabited_countable_filter_basis Filter.Nat.inhabitedCountableFilterBasis
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.

Diff
@@ -1192,12 +1192,6 @@ theorem isCountablyGenerated_top : IsCountablyGenerated (⊤ : Filter α) :=
   @principal_univ α ▸ isCountablyGenerated_principal _
 #align filter.is_countably_generated_top Filter.isCountablyGenerated_top
 
-lemma isCountablyGenerated_of_subsingleton_mem {l : Filter α} {s : Set α} (hs : s.Subsingleton)
-    (h's : s ∈ l) : IsCountablyGenerated l := by
-  rcases eq_bot_or_pure_of_subsingleton_mem hs h's with rfl|⟨x, rfl⟩
-  · exact isCountablyGenerated_bot
-  · exact isCountablyGenerated_pure x
-
 -- porting note: without explicit `Sort u` and `Type v`, Lean 4 uses `ι : Prop`
 universe u v
 
feat: the atTop filter is countably generated in a second-countable topology (#6864)
Diff
@@ -1192,6 +1192,12 @@ theorem isCountablyGenerated_top : IsCountablyGenerated (⊤ : Filter α) :=
   @principal_univ α ▸ isCountablyGenerated_principal _
 #align filter.is_countably_generated_top Filter.isCountablyGenerated_top
 
+lemma isCountablyGenerated_of_subsingleton_mem {l : Filter α} {s : Set α} (hs : s.Subsingleton)
+    (h's : s ∈ l) : IsCountablyGenerated l := by
+  rcases eq_bot_or_pure_of_subsingleton_mem hs h's with rfl|⟨x, rfl⟩
+  · exact isCountablyGenerated_bot
+  · exact isCountablyGenerated_pure x
+
 -- porting note: without explicit `Sort u` and `Type v`, Lean 4 uses `ι : Prop`
 universe u v
 
feat: patch for new alias command (#6172)
Diff
@@ -708,7 +708,7 @@ theorem disjoint_principal_principal {s t : Set α} : Disjoint (𝓟 s) (𝓟 t)
   rw [← subset_compl_iff_disjoint_left, disjoint_principal_left, mem_principal]
 #align filter.disjoint_principal_principal Filter.disjoint_principal_principal
 
-alias disjoint_principal_principal ↔ _ _root_.Disjoint.filter_principal
+alias ⟨_, _root_.Disjoint.filter_principal⟩ := disjoint_principal_principal
 #align disjoint.filter_principal Disjoint.filter_principal
 
 @[simp]
fix: disable autoImplicit globally (#6528)

Autoimplicits are highly controversial and also defeat the performance-improving work in #6474.

The intent of this PR is to make autoImplicit opt-in on a per-file basis, by disabling it in the lakefile and enabling it again with set_option autoImplicit true in the few files that rely on it.

That also keeps this PR small, as opposed to attempting to "fix" files to not need it any more.

I claim that many of the uses of autoImplicit in these files are accidental; situations such as:

  • Assuming variables are in scope, but pasting the lemma in the wrong section
  • Pasting in a lemma from a scratch file without checking to see if the variable names are consistent with the rest of the file
  • Making a copy-paste error between lemmas and forgetting to add an explicit arguments.

Having set_option autoImplicit false as the default prevents these types of mistake being made in the 90% of files where autoImplicits are not used at all, and causes them to be caught by CI during review.

I think there were various points during the port where we encouraged porters to delete the universes u v lines; I think having autoparams for universe variables only would cover a lot of the cases we actually use them, while avoiding any real shortcomings.

A Zulip poll (after combining overlapping votes accordingly) was in favor of this change with 5:5:18 as the no:dontcare:yes vote ratio.

While this PR was being reviewed, a handful of files gained some more likely-accidental autoImplicits. In these places, set_option autoImplicit true has been placed locally within a section, rather than at the top of the file.

Diff
@@ -77,6 +77,8 @@ machinery, e.g., `simp only [true_and]` or `simp only [forall_const]` can help w
 `p = fun _ ↦ True`.
 -/
 
+set_option autoImplicit true
+
 
 open Set Filter
 
chore: banish Type _ and Sort _ (#6499)

We remove all possible occurences of Type _ and Sort _ in favor of Type* and Sort*.

This has nice performance benefits.

Diff
@@ -84,12 +84,12 @@ open Filter Classical
 
 section sort
 
-variable {α β γ : Type _} {ι ι' : Sort _}
+variable {α β γ : Type*} {ι ι' : Sort*}
 
 /-- A filter basis `B` on a type `α` is a nonempty collection of sets of `α`
 such that the intersection of two elements of this collection contains some element
 of the collection. -/
-structure FilterBasis (α : Type _) where
+structure FilterBasis (α : Type*) where
   /-- Sets of a filter basis. -/
   sets : Set (Set α)
   /-- The set of filter basis sets is nonempty. -/
@@ -105,7 +105,7 @@ instance FilterBasis.nonempty_sets (B : FilterBasis α) : Nonempty B.sets :=
 -- porting note: this instance was reducible but it doesn't work the same way in Lean 4
 /-- If `B` is a filter basis on `α`, and `U` a subset of `α` then we can write `U ∈ B` as
 on paper. -/
-instance {α : Type _} : Membership (Set α) (FilterBasis α) :=
+instance {α : Type*} : Membership (Set α) (FilterBasis α) :=
   ⟨fun U B => U ∈ B.sets⟩
 
 @[simp] theorem FilterBasis.mem_sets {s : Set α} {B : FilterBasis α} : s ∈ B.sets ↔ s ∈ B := Iff.rfl
@@ -487,13 +487,13 @@ theorem HasBasis.inf' (hl : l.HasBasis p s) (hl' : l'.HasBasis p' s') :
       exact mem_inf_of_inter (hl.mem_of_mem hi) (hl'.mem_of_mem hi') H⟩
 #align filter.has_basis.inf' Filter.HasBasis.inf'
 
-theorem HasBasis.inf {ι ι' : Type _} {p : ι → Prop} {s : ι → Set α} {p' : ι' → Prop}
+theorem HasBasis.inf {ι ι' : Type*} {p : ι → Prop} {s : ι → Set α} {p' : ι' → Prop}
     {s' : ι' → Set α} (hl : l.HasBasis p s) (hl' : l'.HasBasis p' s') :
     (l ⊓ l').HasBasis (fun i : ι × ι' => p i.1 ∧ p' i.2) fun i => s i.1 ∩ s' i.2 :=
   (hl.inf' hl').comp_equiv Equiv.pprodEquivProd.symm
 #align filter.has_basis.inf Filter.HasBasis.inf
 
-theorem hasBasis_iInf' {ι : Type _} {ι' : ι → Type _} {l : ι → Filter α} {p : ∀ i, ι' i → Prop}
+theorem hasBasis_iInf' {ι : Type*} {ι' : ι → Type*} {l : ι → Filter α} {p : ∀ i, ι' i → Prop}
     {s : ∀ i, ι' i → Set α} (hl : ∀ i, (l i).HasBasis (p i) (s i)) :
     (⨅ i, l i).HasBasis (fun If : Set ι × ∀ i, ι' i => If.1.Finite ∧ ∀ i ∈ If.1, p i (If.2 i))
       fun If : Set ι × ∀ i, ι' i => ⋂ i ∈ If.1, s i (If.2 i) :=
@@ -509,7 +509,7 @@ theorem hasBasis_iInf' {ι : Type _} {ι' : ι → Type _} {l : ι → Filter α
       exact (biInter_mem hI₁).mpr fun i hi => mem_iInf_of_mem i <| (hl i).mem_of_mem <| hI₂ _ hi⟩
 #align filter.has_basis_infi' Filter.hasBasis_iInf'
 
-theorem hasBasis_iInf {ι : Type _} {ι' : ι → Type _} {l : ι → Filter α} {p : ∀ i, ι' i → Prop}
+theorem hasBasis_iInf {ι : Type*} {ι' : ι → Type*} {l : ι → Filter α} {p : ∀ i, ι' i → Prop}
     {s : ∀ i, ι' i → Set α} (hl : ∀ i, (l i).HasBasis (p i) (s i)) :
     (⨅ i, l i).HasBasis
       (fun If : Σ I : Set ι, ∀ i : I, ι' i => If.1.Finite ∧ ∀ i : If.1, p i (If.2 i)) fun If =>
@@ -523,7 +523,7 @@ theorem hasBasis_iInf {ι : Type _} {ι' : ι → Type _} {l : ι → Filter α}
     exact iInter_mem.2 fun i => mem_iInf_of_mem ↑i <| (hl i).mem_of_mem <| hf _
 #align filter.has_basis_infi Filter.hasBasis_iInf
 
-theorem hasBasis_iInf_of_directed' {ι : Type _} {ι' : ι → Sort _} [Nonempty ι] {l : ι → Filter α}
+theorem hasBasis_iInf_of_directed' {ι : Type*} {ι' : ι → Sort _} [Nonempty ι] {l : ι → Filter α}
     (s : ∀ i, ι' i → Set α) (p : ∀ i, ι' i → Prop) (hl : ∀ i, (l i).HasBasis (p i) (s i))
     (h : Directed (· ≥ ·) l) :
     (⨅ i, l i).HasBasis (fun ii' : Σi, ι' i => p ii'.1 ii'.2) fun ii' => s ii'.1 ii'.2 := by
@@ -532,7 +532,7 @@ theorem hasBasis_iInf_of_directed' {ι : Type _} {ι' : ι → Sort _} [Nonempty
   exact exists_congr fun i => (hl i).mem_iff
 #align filter.has_basis_infi_of_directed' Filter.hasBasis_iInf_of_directed'
 
-theorem hasBasis_iInf_of_directed {ι : Type _} {ι' : Sort _} [Nonempty ι] {l : ι → Filter α}
+theorem hasBasis_iInf_of_directed {ι : Type*} {ι' : Sort _} [Nonempty ι] {l : ι → Filter α}
     (s : ι → ι' → Set α) (p : ι → ι' → Prop) (hl : ∀ i, (l i).HasBasis (p i) (s i))
     (h : Directed (· ≥ ·) l) :
     (⨅ i, l i).HasBasis (fun ii' : ι × ι' => p ii'.1 ii'.2) fun ii' => s ii'.1 ii'.2 := by
@@ -541,7 +541,7 @@ theorem hasBasis_iInf_of_directed {ι : Type _} {ι' : Sort _} [Nonempty ι] {l
   exact exists_congr fun i => (hl i).mem_iff
 #align filter.has_basis_infi_of_directed Filter.hasBasis_iInf_of_directed
 
-theorem hasBasis_biInf_of_directed' {ι : Type _} {ι' : ι → Sort _} {dom : Set ι}
+theorem hasBasis_biInf_of_directed' {ι : Type*} {ι' : ι → Sort _} {dom : Set ι}
     (hdom : dom.Nonempty) {l : ι → Filter α} (s : ∀ i, ι' i → Set α) (p : ∀ i, ι' i → Prop)
     (hl : ∀ i ∈ dom, (l i).HasBasis (p i) (s i)) (h : DirectedOn (l ⁻¹'o GE.ge) dom) :
     (⨅ i ∈ dom, l i).HasBasis (fun ii' : Σi, ι' i => ii'.1 ∈ dom ∧ p ii'.1 ii'.2) fun ii' =>
@@ -556,7 +556,7 @@ theorem hasBasis_biInf_of_directed' {ι : Type _} {ι' : ι → Sort _} {dom : S
     exact ⟨hi, (hl i hi).mem_iff.mpr ⟨b, hb, hibt⟩⟩
 #align filter.has_basis_binfi_of_directed' Filter.hasBasis_biInf_of_directed'
 
-theorem hasBasis_biInf_of_directed {ι : Type _} {ι' : Sort _} {dom : Set ι} (hdom : dom.Nonempty)
+theorem hasBasis_biInf_of_directed {ι : Type*} {ι' : Sort _} {dom : Set ι} (hdom : dom.Nonempty)
     {l : ι → Filter α} (s : ι → ι' → Set α) (p : ι → ι' → Prop)
     (hl : ∀ i ∈ dom, (l i).HasBasis (p i) (s i)) (h : DirectedOn (l ⁻¹'o GE.ge) dom) :
     (⨅ i ∈ dom, l i).HasBasis (fun ii' : ι × ι' => ii'.1 ∈ dom ∧ p ii'.1 ii'.2) fun ii' =>
@@ -588,13 +588,13 @@ theorem HasBasis.sup' (hl : l.HasBasis p s) (hl' : l'.HasBasis p' s') :
     simp only [and_assoc, and_left_comm]⟩
 #align filter.has_basis.sup' Filter.HasBasis.sup'
 
-theorem HasBasis.sup {ι ι' : Type _} {p : ι → Prop} {s : ι → Set α} {p' : ι' → Prop}
+theorem HasBasis.sup {ι ι' : Type*} {p : ι → Prop} {s : ι → Set α} {p' : ι' → Prop}
     {s' : ι' → Set α} (hl : l.HasBasis p s) (hl' : l'.HasBasis p' s') :
     (l ⊔ l').HasBasis (fun i : ι × ι' => p i.1 ∧ p' i.2) fun i => s i.1 ∪ s' i.2 :=
   (hl.sup' hl').comp_equiv Equiv.pprodEquivProd.symm
 #align filter.has_basis.sup Filter.HasBasis.sup
 
-theorem hasBasis_iSup {ι : Sort _} {ι' : ι → Type _} {l : ι → Filter α} {p : ∀ i, ι' i → Prop}
+theorem hasBasis_iSup {ι : Sort*} {ι' : ι → Type*} {l : ι → Filter α} {p : ∀ i, ι' i → Prop}
     {s : ∀ i, ι' i → Set α} (hl : ∀ i, (l i).HasBasis (p i) (s i)) :
     (⨆ i, l i).HasBasis (fun f : ∀ i, ι' i => ∀ i, p i (f i)) fun f : ∀ i, ι' i => ⋃ i, s i (f i) :=
   hasBasis_iff.mpr fun t => by
@@ -654,7 +654,7 @@ theorem _root_.Disjoint.exists_mem_filter_basis (h : Disjoint l l') (hl : l.HasB
 #align disjoint.exists_mem_filter_basis Disjoint.exists_mem_filter_basisₓ
 
 theorem _root_.Pairwise.exists_mem_filter_basis_of_disjoint {I} [Finite I] {l : I → Filter α}
-    {ι : I → Sort _} {p : ∀ i, ι i → Prop} {s : ∀ i, ι i → Set α} (hd : Pairwise (Disjoint on l))
+    {ι : I → Sort*} {p : ∀ i, ι i → Prop} {s : ∀ i, ι i → Set α} (hd : Pairwise (Disjoint on l))
     (h : ∀ i, (l i).HasBasis (p i) (s i)) :
     ∃ ind : ∀ i, ι i, (∀ i, p i (ind i)) ∧ Pairwise (Disjoint on fun i => s i (ind i)) := by
   rcases hd.exists_mem_filter_of_disjoint with ⟨t, htl, hd⟩
@@ -662,8 +662,8 @@ theorem _root_.Pairwise.exists_mem_filter_basis_of_disjoint {I} [Finite I] {l :
   exact ⟨ind, hp, hd.mono fun i j hij => hij.mono (ht _) (ht _)⟩
 #align pairwise.exists_mem_filter_basis_of_disjoint Pairwise.exists_mem_filter_basis_of_disjoint
 
-theorem _root_.Set.PairwiseDisjoint.exists_mem_filter_basis {I : Type _} {l : I → Filter α}
-    {ι : I → Sort _} {p : ∀ i, ι i → Prop} {s : ∀ i, ι i → Set α} {S : Set I}
+theorem _root_.Set.PairwiseDisjoint.exists_mem_filter_basis {I : Type*} {l : I → Filter α}
+    {ι : I → Sort*} {p : ∀ i, ι i → Prop} {s : ∀ i, ι i → Set α} {S : Set I}
     (hd : S.PairwiseDisjoint l) (hS : S.Finite) (h : ∀ i, (l i).HasBasis (p i) (s i)) :
     ∃ ind : ∀ i, ι i, (∀ i, p i (ind i)) ∧ S.PairwiseDisjoint fun i => s i (ind i) := by
   rcases hd.exists_mem_filter hS with ⟨t, htl, hd⟩
@@ -763,7 +763,7 @@ theorem hasBasis_iInf_principal {s : ι → Set α} (h : Directed (· ≥ ·) s)
 
 /-- If `s : ι → Set α` is an indexed family of sets, then finite intersections of `s i` form a basis
 of `⨅ i, 𝓟 (s i)`.  -/
-theorem hasBasis_iInf_principal_finite {ι : Type _} (s : ι → Set α) :
+theorem hasBasis_iInf_principal_finite {ι : Type*} (s : ι → Set α) :
     (⨅ i, 𝓟 (s i)).HasBasis (fun t : Set ι => t.Finite) fun t => ⋂ i ∈ t, s i := by
   refine' ⟨fun U => (mem_iInf_finite _).trans _⟩
   simp only [iInf_principal_finset, mem_iUnion, mem_principal, exists_prop,
@@ -779,7 +779,7 @@ theorem hasBasis_biInf_principal {s : β → Set α} {S : Set β} (h : DirectedO
     exact fun _ _ => principal_mono.2⟩
 #align filter.has_basis_binfi_principal Filter.hasBasis_biInf_principal
 
-theorem hasBasis_biInf_principal' {ι : Type _} {p : ι → Prop} {s : ι → Set α}
+theorem hasBasis_biInf_principal' {ι : Type*} {p : ι → Prop} {s : ι → Set α}
     (h : ∀ i, p i → ∀ j, p j → ∃ k, p k ∧ s k ⊆ s i ∧ s k ⊆ s j) (ne : ∃ i, p i) :
     (⨅ (i) (_ : p i), 𝓟 (s i)).HasBasis p s :=
   Filter.hasBasis_biInf_principal h ne
@@ -826,7 +826,7 @@ theorem HasBasis.sInter_sets (h : HasBasis l p s) : ⋂₀ l.sets = ⋂ (i) (_ :
   exact h.biInter_mem monotone_id
 #align filter.has_basis.sInter_sets Filter.HasBasis.sInter_sets
 
-variable {ι'' : Type _} [Preorder ι''] (l) (s'' : ι'' → Set α)
+variable {ι'' : Type*} [Preorder ι''] (l) (s'' : ι'' → Set α)
 
 /-- `IsAntitoneBasis s` means the image of `s` is a filter basis such that `s` is decreasing. -/
 structure IsAntitoneBasis extends IsBasis (fun _ => True) s'' : Prop where
@@ -895,7 +895,7 @@ theorem HasBasis.prod_pprod (hla : la.HasBasis pa sa) (hlb : lb.HasBasis pb sb)
   (hla.comap Prod.fst).inf' (hlb.comap Prod.snd)
 #align filter.has_basis.prod_pprod Filter.HasBasis.prod_pprod
 
-theorem HasBasis.prod {ι ι' : Type _} {pa : ι → Prop} {sa : ι → Set α} {pb : ι' → Prop}
+theorem HasBasis.prod {ι ι' : Type*} {pa : ι → Prop} {sa : ι → Set α} {pb : ι' → Prop}
     {sb : ι' → Set β} (hla : la.HasBasis pa sa) (hlb : lb.HasBasis pb sb) :
     (la ×ˢ lb).HasBasis (fun i : ι × ι' => pa i.1 ∧ pb i.2) fun i => sa i.1 ×ˢ sb i.2 :=
   (hla.comap Prod.fst).inf (hlb.comap Prod.snd)
@@ -913,7 +913,7 @@ theorem HasBasis.prod_same_index {p : ι → Prop} {sb : ι → Set β} (hla : l
     exact ⟨⟨i, i⟩, ⟨hi, hi⟩, h⟩
 #align filter.has_basis.prod_same_index Filter.HasBasis.prod_same_index
 
-theorem HasBasis.prod_same_index_mono {ι : Type _} [LinearOrder ι] {p : ι → Prop} {sa : ι → Set α}
+theorem HasBasis.prod_same_index_mono {ι : Type*} [LinearOrder ι] {p : ι → Prop} {sa : ι → Set α}
     {sb : ι → Set β} (hla : la.HasBasis p sa) (hlb : lb.HasBasis p sb)
     (hsa : MonotoneOn sa { i | p i }) (hsb : MonotoneOn sb { i | p i }) :
     (la ×ˢ lb).HasBasis p fun i => sa i ×ˢ sb i :=
@@ -922,7 +922,7 @@ theorem HasBasis.prod_same_index_mono {ι : Type _} [LinearOrder ι] {p : ι →
     ⟨min i j, this, hsa this hi <| min_le_left _ _, hsb this hj <| min_le_right _ _⟩
 #align filter.has_basis.prod_same_index_mono Filter.HasBasis.prod_same_index_mono
 
-theorem HasBasis.prod_same_index_anti {ι : Type _} [LinearOrder ι] {p : ι → Prop} {sa : ι → Set α}
+theorem HasBasis.prod_same_index_anti {ι : Type*} [LinearOrder ι] {p : ι → Prop} {sa : ι → Set α}
     {sb : ι → Set β} (hla : la.HasBasis p sa) (hlb : lb.HasBasis p sb)
     (hsa : AntitoneOn sa { i | p i }) (hsb : AntitoneOn sb { i | p i }) :
     (la ×ˢ lb).HasBasis p fun i => sa i ×ˢ sb i :=
@@ -940,13 +940,13 @@ theorem mem_prod_self_iff {s} : s ∈ la ×ˢ la ↔ ∃ t ∈ la, t ×ˢ t ⊆
   la.basis_sets.prod_self.mem_iff
 #align filter.mem_prod_self_iff Filter.mem_prod_self_iff
 
-theorem HasAntitoneBasis.prod {ι : Type _} [LinearOrder ι] {f : Filter α} {g : Filter β}
+theorem HasAntitoneBasis.prod {ι : Type*} [LinearOrder ι] {f : Filter α} {g : Filter β}
     {s : ι → Set α} {t : ι → Set β} (hf : HasAntitoneBasis f s) (hg : HasAntitoneBasis g t) :
     HasAntitoneBasis (f ×ˢ g) fun n => s n ×ˢ t n :=
   ⟨hf.1.prod_same_index_anti hg.1 (hf.2.antitoneOn _) (hg.2.antitoneOn _), hf.2.set_prod hg.2⟩
 #align filter.has_antitone_basis.prod Filter.HasAntitoneBasis.prod
 
-theorem HasBasis.coprod {ι ι' : Type _} {pa : ι → Prop} {sa : ι → Set α} {pb : ι' → Prop}
+theorem HasBasis.coprod {ι ι' : Type*} {pa : ι → Prop} {sa : ι → Set α} {pb : ι' → Prop}
     {sb : ι' → Set β} (hla : la.HasBasis pa sa) (hlb : lb.HasBasis pb sb) :
     (la.coprod lb).HasBasis (fun i : ι × ι' => pa i.1 ∧ pb i.2) fun i =>
       Prod.fst ⁻¹' sa i.1 ∪ Prod.snd ⁻¹' sb i.2 :=
@@ -955,7 +955,7 @@ theorem HasBasis.coprod {ι ι' : Type _} {pa : ι → Prop} {sa : ι → Set α
 
 end TwoTypes
 
-theorem map_sigma_mk_comap {π : α → Type _} {π' : β → Type _} {f : α → β}
+theorem map_sigma_mk_comap {π : α → Type*} {π' : β → Type*} {f : α → β}
     (hf : Function.Injective f) (g : ∀ a, π a → π' (f a)) (a : α) (l : Filter (π' (f a))) :
     map (Sigma.mk a) (comap (g a) l) = comap (Sigma.map f g) (map (Sigma.mk (f a)) l) := by
   refine' (((basis_sets _).comap _).map _).eq_of_same_basis _
@@ -969,7 +969,7 @@ end sort
 
 namespace Filter
 
-variable {α β γ ι : Type _} {ι' : Sort _}
+variable {α β γ ι : Type*} {ι' : Sort*}
 
 /-- `IsCountablyGenerated f` means `f = generate s` for some countable `s`. -/
 class IsCountablyGenerated (f : Filter α) : Prop where
@@ -995,7 +995,7 @@ structure HasCountableBasis (l : Filter α) (p : ι → Prop) (s : ι → Set α
 /-- A countable filter basis `B` on a type `α` is a nonempty countable collection of sets of `α`
 such that the intersection of two elements of this collection contains some element
 of the collection. -/
-structure CountableFilterBasis (α : Type _) extends FilterBasis α where
+structure CountableFilterBasis (α : Type*) extends FilterBasis α where
   /-- The set of sets of the filter basis is countable. -/
   countable : sets.Countable
 #align filter.countable_filter_basis Filter.CountableFilterBasis
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -2,16 +2,13 @@
 Copyright (c) 2020 Yury Kudryashov. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov, Johannes Hölzl, Mario Carneiro, Patrick Massot
-
-! This file was ported from Lean 3 source module order.filter.bases
-! leanprover-community/mathlib commit 996b0ff959da753a555053a480f36e5f264d4207
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Data.Prod.PProd
 import Mathlib.Data.Set.Countable
 import Mathlib.Order.Filter.Prod
 
+#align_import order.filter.bases from "leanprover-community/mathlib"@"996b0ff959da753a555053a480f36e5f264d4207"
+
 /-!
 # Filter bases
 
fix: precedences of ⨆⋃⋂⨅ (#5614)
Diff
@@ -812,7 +812,7 @@ theorem HasBasis.forall_mem_mem (h : HasBasis l p s) {x : α} :
 #align filter.has_basis.forall_mem_mem Filter.HasBasis.forall_mem_mem
 
 protected theorem HasBasis.biInf_mem [CompleteLattice β] {f : Set α → β} (h : HasBasis l p s)
-    (hf : Monotone f) : (⨅ t ∈ l, f t) = ⨅ (i) (_ : p i), f (s i) :=
+    (hf : Monotone f) : ⨅ t ∈ l, f t = ⨅ (i) (_ : p i), f (s i) :=
   le_antisymm (le_iInf₂ fun i hi => iInf₂_le (s i) (h.mem_of_mem hi)) <|
     le_iInf₂ fun _t ht =>
       let ⟨i, hpi, hi⟩ := h.mem_iff.1 ht
@@ -820,7 +820,7 @@ protected theorem HasBasis.biInf_mem [CompleteLattice β] {f : Set α → β} (h
 #align filter.has_basis.binfi_mem Filter.HasBasis.biInf_mem
 
 protected theorem HasBasis.biInter_mem {f : Set α → Set β} (h : HasBasis l p s) (hf : Monotone f) :
-    (⋂ t ∈ l, f t) = ⋂ (i) (_ : p i), f (s i) :=
+    ⋂ t ∈ l, f t = ⋂ (i) (_ : p i), f (s i) :=
   h.biInf_mem hf
 #align filter.has_basis.bInter_mem Filter.HasBasis.biInter_mem
 
@@ -1014,7 +1014,7 @@ theorem HasCountableBasis.isCountablyGenerated {f : Filter α} {p : ι → Prop}
 #align filter.has_countable_basis.is_countably_generated Filter.HasCountableBasis.isCountablyGenerated
 
 theorem antitone_seq_of_seq (s : ℕ → Set α) :
-    ∃ t : ℕ → Set α, Antitone t ∧ (⨅ i, 𝓟 <| s i) = ⨅ i, 𝓟 (t i) := by
+    ∃ t : ℕ → Set α, Antitone t ∧ ⨅ i, 𝓟 (s i) = ⨅ i, 𝓟 (t i) := by
   use fun n => ⋂ m ≤ n, s m; constructor
   · exact fun i j hij => biInter_mono (Iic_subset_Iic.2 hij) fun n _ => Subset.rfl
   apply le_antisymm <;> rw [le_iInf_iff] <;> intro i
@@ -1026,13 +1026,13 @@ theorem antitone_seq_of_seq (s : ℕ → Set α) :
 #align filter.antitone_seq_of_seq Filter.antitone_seq_of_seq
 
 theorem countable_biInf_eq_iInf_seq [CompleteLattice α] {B : Set ι} (Bcbl : B.Countable)
-    (Bne : B.Nonempty) (f : ι → α) : ∃ x : ℕ → ι, (⨅ t ∈ B, f t) = ⨅ i, f (x i) :=
+    (Bne : B.Nonempty) (f : ι → α) : ∃ x : ℕ → ι, ⨅ t ∈ B, f t = ⨅ i, f (x i) :=
   let ⟨g, hg⟩ := Bcbl.exists_eq_range Bne
   ⟨g, hg.symm ▸ iInf_range⟩
 #align filter.countable_binfi_eq_infi_seq Filter.countable_biInf_eq_iInf_seq
 
 theorem countable_biInf_eq_iInf_seq' [CompleteLattice α] {B : Set ι} (Bcbl : B.Countable)
-    (f : ι → α) {i₀ : ι} (h : f i₀ = ⊤) : ∃ x : ℕ → ι, (⨅ t ∈ B, f t) = ⨅ i, f (x i) := by
+    (f : ι → α) {i₀ : ι} (h : f i₀ = ⊤) : ∃ x : ℕ → ι, ⨅ t ∈ B, f t = ⨅ i, f (x i) := by
   cases' B.eq_empty_or_nonempty with hB Bnonempty
   · rw [hB, iInf_emptyset]
     use fun _ => i₀
@@ -1041,7 +1041,7 @@ theorem countable_biInf_eq_iInf_seq' [CompleteLattice α] {B : Set ι} (Bcbl : B
 #align filter.countable_binfi_eq_infi_seq' Filter.countable_biInf_eq_iInf_seq'
 
 theorem countable_biInf_principal_eq_seq_iInf {B : Set (Set α)} (Bcbl : B.Countable) :
-    ∃ x : ℕ → Set α, (⨅ t ∈ B, 𝓟 t) = ⨅ i, 𝓟 (x i) :=
+    ∃ x : ℕ → Set α, ⨅ t ∈ B, 𝓟 t = ⨅ i, 𝓟 (x i) :=
   countable_biInf_eq_iInf_seq' Bcbl 𝓟 principal_univ
 #align filter.countable_binfi_principal_eq_seq_infi Filter.countable_biInf_principal_eq_seq_iInf
 
@@ -1146,12 +1146,12 @@ instance coprod.isCountablyGenerated (la : Filter α) (lb : Filter β) [IsCounta
 end IsCountablyGenerated
 
 theorem isCountablyGenerated_seq [Countable β] (x : β → Set α) :
-    IsCountablyGenerated (⨅ i, 𝓟 <| x i) := by
+    IsCountablyGenerated (⨅ i, 𝓟 (x i)) := by
   use range x, countable_range x
   rw [generate_eq_biInf, iInf_range]
 #align filter.is_countably_generated_seq Filter.isCountablyGenerated_seq
 
-theorem isCountablyGenerated_of_seq {f : Filter α} (h : ∃ x : ℕ → Set α, f = ⨅ i, 𝓟 <| x i) :
+theorem isCountablyGenerated_of_seq {f : Filter α} (h : ∃ x : ℕ → Set α, f = ⨅ i, 𝓟 (x i)) :
     f.IsCountablyGenerated := by
   rcases h with ⟨x, rfl⟩
   apply isCountablyGenerated_seq
fix: change compl precedence (#5586)

Co-authored-by: Yury G. Kudryashov <urkud@urkud.name>

Diff
@@ -683,14 +683,14 @@ theorem inf_principal_neBot_iff {s : Set α} : NeBot (l ⊓ 𝓟 s) ↔ ∀ U 
   l.basis_sets.inf_principal_neBot_iff
 #align filter.inf_principal_ne_bot_iff Filter.inf_principal_neBot_iff
 
-theorem mem_iff_inf_principal_compl {f : Filter α} {s : Set α} : s ∈ f ↔ f ⊓ 𝓟 (sᶜ) = ⊥ := by
+theorem mem_iff_inf_principal_compl {f : Filter α} {s : Set α} : s ∈ f ↔ f ⊓ 𝓟 sᶜ = ⊥ := by
   refine' not_iff_not.1 ((inf_principal_neBot_iff.trans _).symm.trans neBot_iff)
   exact
     ⟨fun h hs => by simpa [Set.not_nonempty_empty] using h s hs, fun hs t ht =>
       inter_compl_nonempty_iff.2 fun hts => hs <| mem_of_superset ht hts⟩
 #align filter.mem_iff_inf_principal_compl Filter.mem_iff_inf_principal_compl
 
-theorem not_mem_iff_inf_principal_compl {f : Filter α} {s : Set α} : s ∉ f ↔ NeBot (f ⊓ 𝓟 (sᶜ)) :=
+theorem not_mem_iff_inf_principal_compl {f : Filter α} {s : Set α} : s ∉ f ↔ NeBot (f ⊓ 𝓟 sᶜ) :=
   (not_congr mem_iff_inf_principal_compl).trans neBot_iff.symm
 #align filter.not_mem_iff_inf_principal_compl Filter.not_mem_iff_inf_principal_compl
 
@@ -718,24 +718,24 @@ theorem disjoint_pure_pure {x y : α} : Disjoint (pure x : Filter α) (pure y) 
 #align filter.disjoint_pure_pure Filter.disjoint_pure_pure
 
 @[simp]
-theorem compl_diagonal_mem_prod {l₁ l₂ : Filter α} : diagonal αᶜ ∈ l₁ ×ˢ l₂ ↔ Disjoint l₁ l₂ := by
+theorem compl_diagonal_mem_prod {l₁ l₂ : Filter α} : (diagonal α)ᶜ ∈ l₁ ×ˢ l₂ ↔ Disjoint l₁ l₂ := by
   simp only [mem_prod_iff, Filter.disjoint_iff, prod_subset_compl_diagonal_iff_disjoint]
 #align filter.compl_diagonal_mem_prod Filter.compl_diagonal_mem_prod
 
 -- porting note: use `∃ i, p i ∧ _` instead of `∃ i (hi : p i), _`.
 theorem HasBasis.disjoint_iff_left (h : l.HasBasis p s) :
-    Disjoint l l' ↔ ∃ i, p i ∧ s iᶜ ∈ l' := by
+    Disjoint l l' ↔ ∃ i, p i ∧ (s i)ᶜ ∈ l' := by
   simp only [h.disjoint_iff l'.basis_sets, id, ← disjoint_principal_left,
     (hasBasis_principal _).disjoint_iff l'.basis_sets, true_and, Unique.exists_iff]
 #align filter.has_basis.disjoint_iff_left Filter.HasBasis.disjoint_iff_leftₓ
 
 -- porting note: use `∃ i, p i ∧ _` instead of `∃ i (hi : p i), _`.
 theorem HasBasis.disjoint_iff_right (h : l.HasBasis p s) :
-    Disjoint l' l ↔ ∃ i, p i ∧ s iᶜ ∈ l' :=
+    Disjoint l' l ↔ ∃ i, p i ∧ (s i)ᶜ ∈ l' :=
   disjoint_comm.trans h.disjoint_iff_left
 #align filter.has_basis.disjoint_iff_right Filter.HasBasis.disjoint_iff_rightₓ
 
-theorem le_iff_forall_inf_principal_compl {f g : Filter α} : f ≤ g ↔ ∀ V ∈ g, f ⊓ 𝓟 (Vᶜ) = ⊥ :=
+theorem le_iff_forall_inf_principal_compl {f g : Filter α} : f ≤ g ↔ ∀ V ∈ g, f ⊓ 𝓟 Vᶜ = ⊥ :=
   forall₂_congr fun _ _ => mem_iff_inf_principal_compl
 #align filter.le_iff_forall_inf_principal_compl Filter.le_iff_forall_inf_principal_compl
 
chore: convert lambda in docs to fun (#5045)

Found with git grep -n "λ [a-zA-Z_ ]*,"

Diff
@@ -73,11 +73,11 @@ As with `Set.iUnion`/`biUnion`/`Set.sUnion`, there are three different approache
 * `Filter.HasBasis l p s`, `p : ι → Prop`, `s : ι → Set α`.
 
 We use the latter one because, e.g., `𝓝 x` in an `EMetricSpace` or in a `MetricSpace` has a basis
-of this form. The other two can be emulated using `s = id` or `p = λ _, True`.
+of this form. The other two can be emulated using `s = id` or `p = fun _ ↦ True`.
 
 With this approach sometimes one needs to `simp` the statement provided by the `Filter.HasBasis`
 machinery, e.g., `simp only [true_and]` or `simp only [forall_const]` can help with the case
-`p = λ _, True`.
+`p = fun _ ↦ True`.
 -/
 
 
style: allow _ for an argument in notation3 & replace _foo with _ in notation3 (#4652)
Diff
@@ -750,7 +750,7 @@ theorem inf_neBot_iff_frequently_right {f g : Filter α} :
   exact inf_neBot_iff_frequently_left
 #align filter.inf_ne_bot_iff_frequently_right Filter.inf_neBot_iff_frequently_right
 
-theorem HasBasis.eq_biInf (h : l.HasBasis p s) : l = ⨅ (i) (_hi : p i), 𝓟 (s i) :=
+theorem HasBasis.eq_biInf (h : l.HasBasis p s) : l = ⨅ (i) (_ : p i), 𝓟 (s i) :=
   eq_biInf_of_mem_iff_exists_mem <| fun {_} => by simp only [h.mem_iff, mem_principal, exists_prop]
 #align filter.has_basis.eq_binfi Filter.HasBasis.eq_biInf
 
@@ -784,7 +784,7 @@ theorem hasBasis_biInf_principal {s : β → Set α} {S : Set β} (h : DirectedO
 
 theorem hasBasis_biInf_principal' {ι : Type _} {p : ι → Prop} {s : ι → Set α}
     (h : ∀ i, p i → ∀ j, p j → ∃ k, p k ∧ s k ⊆ s i ∧ s k ⊆ s j) (ne : ∃ i, p i) :
-    (⨅ (i) (_h : p i), 𝓟 (s i)).HasBasis p s :=
+    (⨅ (i) (_ : p i), 𝓟 (s i)).HasBasis p s :=
   Filter.hasBasis_biInf_principal h ne
 #align filter.has_basis_binfi_principal' Filter.hasBasis_biInf_principal'
 
@@ -812,7 +812,7 @@ theorem HasBasis.forall_mem_mem (h : HasBasis l p s) {x : α} :
 #align filter.has_basis.forall_mem_mem Filter.HasBasis.forall_mem_mem
 
 protected theorem HasBasis.biInf_mem [CompleteLattice β] {f : Set α → β} (h : HasBasis l p s)
-    (hf : Monotone f) : (⨅ t ∈ l, f t) = ⨅ (i) (_hi : p i), f (s i) :=
+    (hf : Monotone f) : (⨅ t ∈ l, f t) = ⨅ (i) (_ : p i), f (s i) :=
   le_antisymm (le_iInf₂ fun i hi => iInf₂_le (s i) (h.mem_of_mem hi)) <|
     le_iInf₂ fun _t ht =>
       let ⟨i, hpi, hi⟩ := h.mem_iff.1 ht
@@ -820,11 +820,11 @@ protected theorem HasBasis.biInf_mem [CompleteLattice β] {f : Set α → β} (h
 #align filter.has_basis.binfi_mem Filter.HasBasis.biInf_mem
 
 protected theorem HasBasis.biInter_mem {f : Set α → Set β} (h : HasBasis l p s) (hf : Monotone f) :
-    (⋂ t ∈ l, f t) = ⋂ (i) (_hi : p i), f (s i) :=
+    (⋂ t ∈ l, f t) = ⋂ (i) (_ : p i), f (s i) :=
   h.biInf_mem hf
 #align filter.has_basis.bInter_mem Filter.HasBasis.biInter_mem
 
-theorem HasBasis.sInter_sets (h : HasBasis l p s) : ⋂₀ l.sets = ⋂ (i) (_hi : p i), s i := by
+theorem HasBasis.sInter_sets (h : HasBasis l p s) : ⋂₀ l.sets = ⋂ (i) (_ : p i), s i := by
   rw [sInter_eq_biInter]
   exact h.biInter_mem monotone_id
 #align filter.has_basis.sInter_sets Filter.HasBasis.sInter_sets
refactor: use the typeclass SProd to implement overloaded notation · ×ˢ · (#4200)

Currently, the following notations are changed from · ×ˢ · because Lean 4 can't deal with ambiguous notations. | Definition | Notation | | :

Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com> Co-authored-by: Kyle Miller <kmill31415@gmail.com> Co-authored-by: Chris Hughes <chrishughes24@gmail.com>

Diff
@@ -50,7 +50,7 @@ and consequences are derived.
 
 * `Filter.HasBasis.inf`, `Filter.HasBasis.inf_principal`, `Filter.HasBasis.prod`,
   `Filter.HasBasis.prod_self`, `Filter.HasBasis.map`, `Filter.HasBasis.comap` : combinators to
-  construct filters of `l ⊓ l'`, `l ⊓ 𝓟 t`, `l ×ᶠ l'`, `l ×ᶠ l`, `l.map f`, `l.comap f`
+  construct filters of `l ⊓ l'`, `l ⊓ 𝓟 t`, `l ×ˢ l'`, `l ×ˢ l`, `l.map f`, `l.comap f`
   respectively;
 
 * `Filter.HasBasis.le_iff`, `Filter.HasBasis.ge_iff`, `Filter.HasBasis.le_basis_iff` : restate
@@ -718,7 +718,7 @@ theorem disjoint_pure_pure {x y : α} : Disjoint (pure x : Filter α) (pure y) 
 #align filter.disjoint_pure_pure Filter.disjoint_pure_pure
 
 @[simp]
-theorem compl_diagonal_mem_prod {l₁ l₂ : Filter α} : diagonal αᶜ ∈ l₁ ×ᶠ l₂ ↔ Disjoint l₁ l₂ := by
+theorem compl_diagonal_mem_prod {l₁ l₂ : Filter α} : diagonal αᶜ ∈ l₁ ×ˢ l₂ ↔ Disjoint l₁ l₂ := by
   simp only [mem_prod_iff, Filter.disjoint_iff, prod_subset_compl_diagonal_iff_disjoint]
 #align filter.compl_diagonal_mem_prod Filter.compl_diagonal_mem_prod
 
@@ -894,19 +894,19 @@ theorem Tendsto.basis_both (H : Tendsto f la lb) (hla : la.HasBasis pa sa)
 #align filter.tendsto.basis_both Filter.Tendsto.basis_bothₓ
 
 theorem HasBasis.prod_pprod (hla : la.HasBasis pa sa) (hlb : lb.HasBasis pb sb) :
-    (la ×ᶠ lb).HasBasis (fun i : PProd ι ι' => pa i.1 ∧ pb i.2) fun i => sa i.1 ×ˢ sb i.2 :=
+    (la ×ˢ lb).HasBasis (fun i : PProd ι ι' => pa i.1 ∧ pb i.2) fun i => sa i.1 ×ˢ sb i.2 :=
   (hla.comap Prod.fst).inf' (hlb.comap Prod.snd)
 #align filter.has_basis.prod_pprod Filter.HasBasis.prod_pprod
 
 theorem HasBasis.prod {ι ι' : Type _} {pa : ι → Prop} {sa : ι → Set α} {pb : ι' → Prop}
     {sb : ι' → Set β} (hla : la.HasBasis pa sa) (hlb : lb.HasBasis pb sb) :
-    (la ×ᶠ lb).HasBasis (fun i : ι × ι' => pa i.1 ∧ pb i.2) fun i => sa i.1 ×ˢ sb i.2 :=
+    (la ×ˢ lb).HasBasis (fun i : ι × ι' => pa i.1 ∧ pb i.2) fun i => sa i.1 ×ˢ sb i.2 :=
   (hla.comap Prod.fst).inf (hlb.comap Prod.snd)
 #align filter.has_basis.prod Filter.HasBasis.prod
 
 theorem HasBasis.prod_same_index {p : ι → Prop} {sb : ι → Set β} (hla : la.HasBasis p sa)
     (hlb : lb.HasBasis p sb) (h_dir : ∀ {i j}, p i → p j → ∃ k, p k ∧ sa k ⊆ sa i ∧ sb k ⊆ sb j) :
-    (la ×ᶠ lb).HasBasis p fun i => sa i ×ˢ sb i := by
+    (la ×ˢ lb).HasBasis p fun i => sa i ×ˢ sb i := by
   simp only [hasBasis_iff, (hla.prod_pprod hlb).mem_iff]
   refine' fun t => ⟨_, _⟩
   · rintro ⟨⟨i, j⟩, ⟨hi, hj⟩, hsub : sa i ×ˢ sb j ⊆ t⟩
@@ -919,7 +919,7 @@ theorem HasBasis.prod_same_index {p : ι → Prop} {sb : ι → Set β} (hla : l
 theorem HasBasis.prod_same_index_mono {ι : Type _} [LinearOrder ι] {p : ι → Prop} {sa : ι → Set α}
     {sb : ι → Set β} (hla : la.HasBasis p sa) (hlb : lb.HasBasis p sb)
     (hsa : MonotoneOn sa { i | p i }) (hsb : MonotoneOn sb { i | p i }) :
-    (la ×ᶠ lb).HasBasis p fun i => sa i ×ˢ sb i :=
+    (la ×ˢ lb).HasBasis p fun i => sa i ×ˢ sb i :=
   hla.prod_same_index hlb fun {i j} hi hj =>
     have : p (min i j) := min_rec' _ hi hj
     ⟨min i j, this, hsa this hi <| min_le_left _ _, hsb this hj <| min_le_right _ _⟩
@@ -928,24 +928,24 @@ theorem HasBasis.prod_same_index_mono {ι : Type _} [LinearOrder ι] {p : ι →
 theorem HasBasis.prod_same_index_anti {ι : Type _} [LinearOrder ι] {p : ι → Prop} {sa : ι → Set α}
     {sb : ι → Set β} (hla : la.HasBasis p sa) (hlb : lb.HasBasis p sb)
     (hsa : AntitoneOn sa { i | p i }) (hsb : AntitoneOn sb { i | p i }) :
-    (la ×ᶠ lb).HasBasis p fun i => sa i ×ˢ sb i :=
+    (la ×ˢ lb).HasBasis p fun i => sa i ×ˢ sb i :=
   @HasBasis.prod_same_index_mono _ _ _ _ ιᵒᵈ _ _ _ _ hla hlb hsa.dual_left hsb.dual_left
 #align filter.has_basis.prod_same_index_anti Filter.HasBasis.prod_same_index_anti
 
 theorem HasBasis.prod_self (hl : la.HasBasis pa sa) :
-    (la ×ᶠ la).HasBasis pa fun i => sa i ×ˢ sa i :=
+    (la ×ˢ la).HasBasis pa fun i => sa i ×ˢ sa i :=
   hl.prod_same_index hl fun {i j} hi hj => by
     simpa only [exists_prop, subset_inter_iff] using
       hl.mem_iff.1 (inter_mem (hl.mem_of_mem hi) (hl.mem_of_mem hj))
 #align filter.has_basis.prod_self Filter.HasBasis.prod_self
 
-theorem mem_prod_self_iff {s} : s ∈ la ×ᶠ la ↔ ∃ t ∈ la, t ×ˢ t ⊆ s :=
+theorem mem_prod_self_iff {s} : s ∈ la ×ˢ la ↔ ∃ t ∈ la, t ×ˢ t ⊆ s :=
   la.basis_sets.prod_self.mem_iff
 #align filter.mem_prod_self_iff Filter.mem_prod_self_iff
 
 theorem HasAntitoneBasis.prod {ι : Type _} [LinearOrder ι] {f : Filter α} {g : Filter β}
     {s : ι → Set α} {t : ι → Set β} (hf : HasAntitoneBasis f s) (hg : HasAntitoneBasis g t) :
-    HasAntitoneBasis (f ×ᶠ g) fun n => s n ×ˢ t n :=
+    HasAntitoneBasis (f ×ˢ g) fun n => s n ×ˢ t n :=
   ⟨hf.1.prod_same_index_anti hg.1 (hf.2.antitoneOn _) (hg.2.antitoneOn _), hf.2.set_prod hg.2⟩
 #align filter.has_antitone_basis.prod Filter.HasAntitoneBasis.prod
 
@@ -1134,7 +1134,7 @@ instance Sup.isCountablyGenerated (f g : Filter α) [IsCountablyGenerated f]
 #align filter.sup.is_countably_generated Filter.Sup.isCountablyGenerated
 
 instance prod.isCountablyGenerated (la : Filter α) (lb : Filter β) [IsCountablyGenerated la]
-    [IsCountablyGenerated lb] : IsCountablyGenerated (la ×ᶠ lb) :=
+    [IsCountablyGenerated lb] : IsCountablyGenerated (la ×ˢ lb) :=
   Filter.Inf.isCountablyGenerated _ _
 #align filter.prod.is_countably_generated Filter.prod.isCountablyGenerated
 
chore: fix upper/lowercase in comments (#4360)
  • Run a non-interactive version of fix-comments.py on all files.
  • Go through the diff and manually add/discard/edit chunks.
Diff
@@ -22,12 +22,12 @@ an element of `B` belongs to `B`.
 A filter basis `B` can be used to construct `B.filter : Filter α` such that a set belongs
 to `B.filter` if and only if it contains an element of `B`.
 
-Given an indexing type `ι`, a predicate `p : ι → Prop`, and a map `s : ι → set α`,
+Given an indexing type `ι`, a predicate `p : ι → Prop`, and a map `s : ι → Set α`,
 the proposition `h : Filter.IsBasis p s` makes sure the range of `s` bounded by `p`
-(ie. `s '' set_of p`) defines a filter basis `h.filter_basis`.
+(ie. `s '' setOf p`) defines a filter basis `h.filter_basis`.
 
 If one already has a filter `l` on `α`, `Filter.HasBasis l p s` (where `p : ι → Prop`
-and `s : ι → set α` as above) means that a set belongs to `l` if and
+and `s : ι → Set α` as above) means that a set belongs to `l` if and
 only if it contains some `s i` with `p i`. It implies `h : Filter.IsBasis p s`, and
 `l = h.filterBasis.filter`. The point of this definition is that checking statements
 involving elements of `l` often reduces to checking them on the basis elements.
@@ -68,16 +68,16 @@ and consequences are derived.
 
 As with `Set.iUnion`/`biUnion`/`Set.sUnion`, there are three different approaches to filter bases:
 
-* `Filter.HasBasis l s`, `s : set (set α)`;
-* `Filter.HasBasis l s`, `s : ι → set α`;
-* `Filter.HasBasis l p s`, `p : ι → Prop`, `s : ι → set α`.
+* `Filter.HasBasis l s`, `s : Set (Set α)`;
+* `Filter.HasBasis l s`, `s : ι → Set α`;
+* `Filter.HasBasis l p s`, `p : ι → Prop`, `s : ι → Set α`.
 
-We use the latter one because, e.g., `𝓝 x` in an `emetric_space` or in a `metric_space` has a basis
-of this form. The other two can be emulated using `s = id` or `p = λ _, true`.
+We use the latter one because, e.g., `𝓝 x` in an `EMetricSpace` or in a `MetricSpace` has a basis
+of this form. The other two can be emulated using `s = id` or `p = λ _, True`.
 
 With this approach sometimes one needs to `simp` the statement provided by the `Filter.HasBasis`
 machinery, e.g., `simp only [true_and]` or `simp only [forall_const]` can help with the case
-`p = λ _, true`.
+`p = λ _, True`.
 -/
 
 
@@ -228,7 +228,7 @@ theorem filter_eq_generate (h : IsBasis p s) : h.filter = generate { U | ∃ i,
 end IsBasis
 
 -- porting note: was `protected` in Lean 3 but `protected` didn't work; removed
-/-- We say that a filter `l` has a basis `s : ι → set α` bounded by `p : ι → Prop`,
+/-- We say that a filter `l` has a basis `s : ι → Set α` bounded by `p : ι → Prop`,
 if `t ∈ l` if and only if `t` includes `s i` for some `i` such that `p i`. -/
 structure HasBasis (l : Filter α) (p : ι → Prop) (s : ι → Set α) : Prop where
   /-- A set `t` belongs to a filter `l` iff it includes an element of the basis. -/
@@ -296,7 +296,7 @@ theorem HasBasis.mem_of_mem (hl : l.HasBasis p s) (hi : p i) : s i ∈ l :=
   hl.mem_of_superset hi Subset.rfl
 #align filter.has_basis.mem_of_mem Filter.HasBasis.mem_of_mem
 
-/-- Index of a basis set such that `s i ⊆ t` as an element of `subtype p`. -/
+/-- Index of a basis set such that `s i ⊆ t` as an element of `Subtype p`. -/
 noncomputable def HasBasis.index (h : l.HasBasis p s) (t : Set α) (ht : t ∈ l) : { i : ι // p i } :=
   ⟨(h.mem_iff.1 ht).choose, (h.mem_iff.1 ht).choose_spec.1⟩
 #align filter.has_basis.index Filter.HasBasis.index
@@ -986,7 +986,7 @@ structure IsCountableBasis (p : ι → Prop) (s : ι → Set α) extends IsBasis
   countable : (setOf p).Countable
 #align filter.is_countable_basis Filter.IsCountableBasis
 
-/-- We say that a filter `l` has a countable basis `s : ι → set α` bounded by `p : ι → Prop`,
+/-- We say that a filter `l` has a countable basis `s : ι → Set α` bounded by `p : ι → Prop`,
 if `t ∈ l` if and only if `t` includes `s i` for some `i` such that `p i`, and the set
 defined by `p` is countable. -/
 structure HasCountableBasis (l : Filter α) (p : ι → Prop) (s : ι → Set α)
chore: Rename to sSup/iSup (#3938)

As discussed on Zulip

Renames

  • supₛsSup
  • infₛsInf
  • supᵢiSup
  • infᵢiInf
  • bsupₛbsSup
  • binfₛbsInf
  • bsupᵢbiSup
  • binfᵢbiInf
  • csupₛcsSup
  • cinfₛcsInf
  • csupᵢciSup
  • cinfᵢciInf
  • unionₛsUnion
  • interₛsInter
  • unionᵢiUnion
  • interᵢiInter
  • bunionₛbsUnion
  • binterₛbsInter
  • bunionᵢbiUnion
  • binterᵢbiInter

Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>

Diff
@@ -66,7 +66,7 @@ and consequences are derived.
 
 ## Implementation notes
 
-As with `Set.unionᵢ`/`bunionᵢ`/`Set.unionₛ`, there are three different approaches to filter bases:
+As with `Set.iUnion`/`biUnion`/`Set.sUnion`, there are three different approaches to filter bases:
 
 * `Filter.HasBasis l s`, `s : set (set α)`;
 * `Filter.HasBasis l s`, `s : ι → set α`;
@@ -182,7 +182,7 @@ theorem mem_filter_of_mem (B : FilterBasis α) {U : Set α} : U ∈ B → U ∈
   ⟨U, U_in, Subset.refl _⟩
 #align filter_basis.mem_filter_of_mem FilterBasis.mem_filter_of_mem
 
-theorem eq_infᵢ_principal (B : FilterBasis α) : B.filter = ⨅ s : B.sets, 𝓟 s := by
+theorem eq_iInf_principal (B : FilterBasis α) : B.filter = ⨅ s : B.sets, 𝓟 s := by
   have : Directed (· ≥ ·) fun s : B.sets => 𝓟 (s : Set α) := by
     rintro ⟨U, U_in⟩ ⟨V, V_in⟩
     rcases B.inter_sets U_in V_in with ⟨W, W_in, W_sub⟩
@@ -190,8 +190,8 @@ theorem eq_infᵢ_principal (B : FilterBasis α) : B.filter = ⨅ s : B.sets, 
     simp only [ge_iff_le, le_principal_iff, mem_principal, Subtype.coe_mk]
     exact subset_inter_iff.mp W_sub
   ext U
-  simp [mem_filter_iff, mem_infᵢ_of_directed this]
-#align filter_basis.eq_infi_principal FilterBasis.eq_infᵢ_principal
+  simp [mem_filter_iff, mem_iInf_of_directed this]
+#align filter_basis.eq_infi_principal FilterBasis.eq_iInf_principal
 
 protected theorem generate (B : FilterBasis α) : generate B.sets = B.filter := by
   apply le_antisymm
@@ -247,16 +247,16 @@ theorem hasBasis_generate (s : Set (Set α)) :
 
 /-- The smallest filter basis containing a given collection of sets. -/
 def FilterBasis.ofSets (s : Set (Set α)) : FilterBasis α where
-  sets := interₛ '' { t | Set.Finite t ∧ t ⊆ s }
-  nonempty := ⟨univ, ∅, ⟨⟨finite_empty, empty_subset s⟩, interₛ_empty⟩⟩
+  sets := sInter '' { t | Set.Finite t ∧ t ⊆ s }
+  nonempty := ⟨univ, ∅, ⟨⟨finite_empty, empty_subset s⟩, sInter_empty⟩⟩
   inter_sets := by
     rintro _ _ ⟨a, ⟨fina, suba⟩, rfl⟩ ⟨b, ⟨finb, subb⟩, rfl⟩
     exact ⟨⋂₀ (a ∪ b), mem_image_of_mem _ ⟨fina.union finb, union_subset suba subb⟩,
-        (interₛ_union _ _).subset⟩
+        (sInter_union _ _).subset⟩
 #align filter.filter_basis.of_sets Filter.FilterBasis.ofSets
 
 lemma FilterBasis.ofSets_sets (s : Set (Set α)) :
-    (FilterBasis.ofSets s).sets = interₛ '' { t | Set.Finite t ∧ t ⊆ s } :=
+    (FilterBasis.ofSets s).sets = sInter '' { t | Set.Finite t ∧ t ⊆ s } :=
   rfl
 
 -- porting note: use `∃ i, p i ∧ _` instead of `∃ i (hi : p i), _`.
@@ -329,7 +329,7 @@ theorem HasBasis.eq_generate (h : l.HasBasis p s) : l = generate { U | ∃ i, p
 #align filter.has_basis.eq_generate Filter.HasBasis.eq_generate
 
 theorem generate_eq_generate_inter (s : Set (Set α)) :
-    generate s = generate (interₛ '' { t | Set.Finite t ∧ t ⊆ s }) := by
+    generate s = generate (sInter '' { t | Set.Finite t ∧ t ⊆ s }) := by
   rw [← FilterBasis.ofSets_sets, FilterBasis.generate, ← (hasBasis_generate s).filter_eq]; rfl
 #align filter.generate_eq_generate_inter Filter.generate_eq_generate_inter
 
@@ -496,83 +496,83 @@ theorem HasBasis.inf {ι ι' : Type _} {p : ι → Prop} {s : ι → Set α} {p'
   (hl.inf' hl').comp_equiv Equiv.pprodEquivProd.symm
 #align filter.has_basis.inf Filter.HasBasis.inf
 
-theorem hasBasis_infᵢ' {ι : Type _} {ι' : ι → Type _} {l : ι → Filter α} {p : ∀ i, ι' i → Prop}
+theorem hasBasis_iInf' {ι : Type _} {ι' : ι → Type _} {l : ι → Filter α} {p : ∀ i, ι' i → Prop}
     {s : ∀ i, ι' i → Set α} (hl : ∀ i, (l i).HasBasis (p i) (s i)) :
     (⨅ i, l i).HasBasis (fun If : Set ι × ∀ i, ι' i => If.1.Finite ∧ ∀ i ∈ If.1, p i (If.2 i))
       fun If : Set ι × ∀ i, ι' i => ⋂ i ∈ If.1, s i (If.2 i) :=
   ⟨by
     intro t
     constructor
-    · simp only [mem_infᵢ', (hl _).mem_iff]
+    · simp only [mem_iInf', (hl _).mem_iff]
       rintro ⟨I, hI, V, hV, -, rfl, -⟩
       choose u hu using hV
-      exact ⟨⟨I, u⟩, ⟨hI, fun i _ => (hu i).1⟩, interᵢ₂_mono fun i _ => (hu i).2⟩
+      exact ⟨⟨I, u⟩, ⟨hI, fun i _ => (hu i).1⟩, iInter₂_mono fun i _ => (hu i).2⟩
     · rintro ⟨⟨I, f⟩, ⟨hI₁, hI₂⟩, hsub⟩
       refine' mem_of_superset _ hsub
-      exact (binterᵢ_mem hI₁).mpr fun i hi => mem_infᵢ_of_mem i <| (hl i).mem_of_mem <| hI₂ _ hi⟩
-#align filter.has_basis_infi' Filter.hasBasis_infᵢ'
+      exact (biInter_mem hI₁).mpr fun i hi => mem_iInf_of_mem i <| (hl i).mem_of_mem <| hI₂ _ hi⟩
+#align filter.has_basis_infi' Filter.hasBasis_iInf'
 
-theorem hasBasis_infᵢ {ι : Type _} {ι' : ι → Type _} {l : ι → Filter α} {p : ∀ i, ι' i → Prop}
+theorem hasBasis_iInf {ι : Type _} {ι' : ι → Type _} {l : ι → Filter α} {p : ∀ i, ι' i → Prop}
     {s : ∀ i, ι' i → Set α} (hl : ∀ i, (l i).HasBasis (p i) (s i)) :
     (⨅ i, l i).HasBasis
       (fun If : Σ I : Set ι, ∀ i : I, ι' i => If.1.Finite ∧ ∀ i : If.1, p i (If.2 i)) fun If =>
       ⋂ i : If.1, s i (If.2 i) := by
   refine' ⟨fun t => ⟨fun ht => _, _⟩⟩
-  · rcases (hasBasis_infᵢ' hl).mem_iff.mp ht with ⟨⟨I, f⟩, ⟨hI, hf⟩, hsub⟩
-    exact ⟨⟨I, fun i => f i⟩, ⟨hI, Subtype.forall.mpr hf⟩, trans (interᵢ_subtype _ _) hsub⟩
+  · rcases (hasBasis_iInf' hl).mem_iff.mp ht with ⟨⟨I, f⟩, ⟨hI, hf⟩, hsub⟩
+    exact ⟨⟨I, fun i => f i⟩, ⟨hI, Subtype.forall.mpr hf⟩, trans (iInter_subtype _ _) hsub⟩
   · rintro ⟨⟨I, f⟩, ⟨hI, hf⟩, hsub⟩
     refine' mem_of_superset _ hsub
     cases hI.nonempty_fintype
-    exact interᵢ_mem.2 fun i => mem_infᵢ_of_mem ↑i <| (hl i).mem_of_mem <| hf _
-#align filter.has_basis_infi Filter.hasBasis_infᵢ
+    exact iInter_mem.2 fun i => mem_iInf_of_mem ↑i <| (hl i).mem_of_mem <| hf _
+#align filter.has_basis_infi Filter.hasBasis_iInf
 
-theorem hasBasis_infᵢ_of_directed' {ι : Type _} {ι' : ι → Sort _} [Nonempty ι] {l : ι → Filter α}
+theorem hasBasis_iInf_of_directed' {ι : Type _} {ι' : ι → Sort _} [Nonempty ι] {l : ι → Filter α}
     (s : ∀ i, ι' i → Set α) (p : ∀ i, ι' i → Prop) (hl : ∀ i, (l i).HasBasis (p i) (s i))
     (h : Directed (· ≥ ·) l) :
     (⨅ i, l i).HasBasis (fun ii' : Σi, ι' i => p ii'.1 ii'.2) fun ii' => s ii'.1 ii'.2 := by
   refine' ⟨fun t => _⟩
-  rw [mem_infᵢ_of_directed h, Sigma.exists]
+  rw [mem_iInf_of_directed h, Sigma.exists]
   exact exists_congr fun i => (hl i).mem_iff
-#align filter.has_basis_infi_of_directed' Filter.hasBasis_infᵢ_of_directed'
+#align filter.has_basis_infi_of_directed' Filter.hasBasis_iInf_of_directed'
 
-theorem hasBasis_infᵢ_of_directed {ι : Type _} {ι' : Sort _} [Nonempty ι] {l : ι → Filter α}
+theorem hasBasis_iInf_of_directed {ι : Type _} {ι' : Sort _} [Nonempty ι] {l : ι → Filter α}
     (s : ι → ι' → Set α) (p : ι → ι' → Prop) (hl : ∀ i, (l i).HasBasis (p i) (s i))
     (h : Directed (· ≥ ·) l) :
     (⨅ i, l i).HasBasis (fun ii' : ι × ι' => p ii'.1 ii'.2) fun ii' => s ii'.1 ii'.2 := by
   refine' ⟨fun t => _⟩
-  rw [mem_infᵢ_of_directed h, Prod.exists]
+  rw [mem_iInf_of_directed h, Prod.exists]
   exact exists_congr fun i => (hl i).mem_iff
-#align filter.has_basis_infi_of_directed Filter.hasBasis_infᵢ_of_directed
+#align filter.has_basis_infi_of_directed Filter.hasBasis_iInf_of_directed
 
-theorem hasBasis_binfᵢ_of_directed' {ι : Type _} {ι' : ι → Sort _} {dom : Set ι}
+theorem hasBasis_biInf_of_directed' {ι : Type _} {ι' : ι → Sort _} {dom : Set ι}
     (hdom : dom.Nonempty) {l : ι → Filter α} (s : ∀ i, ι' i → Set α) (p : ∀ i, ι' i → Prop)
     (hl : ∀ i ∈ dom, (l i).HasBasis (p i) (s i)) (h : DirectedOn (l ⁻¹'o GE.ge) dom) :
     (⨅ i ∈ dom, l i).HasBasis (fun ii' : Σi, ι' i => ii'.1 ∈ dom ∧ p ii'.1 ii'.2) fun ii' =>
       s ii'.1 ii'.2 := by
   refine' ⟨fun t => _⟩
-  rw [mem_binfᵢ_of_directed h hdom, Sigma.exists]
+  rw [mem_biInf_of_directed h hdom, Sigma.exists]
   refine' exists_congr fun i => ⟨_, _⟩
   · rintro ⟨hi, hti⟩
     rcases(hl i hi).mem_iff.mp hti with ⟨b, hb, hbt⟩
     exact ⟨b, ⟨hi, hb⟩, hbt⟩
   · rintro ⟨b, ⟨hi, hb⟩, hibt⟩
     exact ⟨hi, (hl i hi).mem_iff.mpr ⟨b, hb, hibt⟩⟩
-#align filter.has_basis_binfi_of_directed' Filter.hasBasis_binfᵢ_of_directed'
+#align filter.has_basis_binfi_of_directed' Filter.hasBasis_biInf_of_directed'
 
-theorem hasBasis_binfᵢ_of_directed {ι : Type _} {ι' : Sort _} {dom : Set ι} (hdom : dom.Nonempty)
+theorem hasBasis_biInf_of_directed {ι : Type _} {ι' : Sort _} {dom : Set ι} (hdom : dom.Nonempty)
     {l : ι → Filter α} (s : ι → ι' → Set α) (p : ι → ι' → Prop)
     (hl : ∀ i ∈ dom, (l i).HasBasis (p i) (s i)) (h : DirectedOn (l ⁻¹'o GE.ge) dom) :
     (⨅ i ∈ dom, l i).HasBasis (fun ii' : ι × ι' => ii'.1 ∈ dom ∧ p ii'.1 ii'.2) fun ii' =>
       s ii'.1 ii'.2 := by
   refine' ⟨fun t => _⟩
-  rw [mem_binfᵢ_of_directed h hdom, Prod.exists]
+  rw [mem_biInf_of_directed h hdom, Prod.exists]
   refine' exists_congr fun i => ⟨_, _⟩
   · rintro ⟨hi, hti⟩
     rcases(hl i hi).mem_iff.mp hti with ⟨b, hb, hbt⟩
     exact ⟨b, ⟨hi, hb⟩, hbt⟩
   · rintro ⟨b, ⟨hi, hb⟩, hibt⟩
     exact ⟨hi, (hl i hi).mem_iff.mpr ⟨b, hb, hibt⟩⟩
-#align filter.has_basis_binfi_of_directed Filter.hasBasis_binfᵢ_of_directed
+#align filter.has_basis_binfi_of_directed Filter.hasBasis_biInf_of_directed
 
 theorem hasBasis_principal (t : Set α) : (𝓟 t).HasBasis (fun _ : Unit => True) fun _ => t :=
   ⟨fun U => by simp⟩
@@ -597,13 +597,13 @@ theorem HasBasis.sup {ι ι' : Type _} {p : ι → Prop} {s : ι → Set α} {p'
   (hl.sup' hl').comp_equiv Equiv.pprodEquivProd.symm
 #align filter.has_basis.sup Filter.HasBasis.sup
 
-theorem hasBasis_supᵢ {ι : Sort _} {ι' : ι → Type _} {l : ι → Filter α} {p : ∀ i, ι' i → Prop}
+theorem hasBasis_iSup {ι : Sort _} {ι' : ι → Type _} {l : ι → Filter α} {p : ∀ i, ι' i → Prop}
     {s : ∀ i, ι' i → Set α} (hl : ∀ i, (l i).HasBasis (p i) (s i)) :
     (⨆ i, l i).HasBasis (fun f : ∀ i, ι' i => ∀ i, p i (f i)) fun f : ∀ i, ι' i => ⋃ i, s i (f i) :=
   hasBasis_iff.mpr fun t => by
-    simp only [hasBasis_iff, (hl _).mem_iff, Classical.skolem, forall_and, unionᵢ_subset_iff,
-      mem_supᵢ]
-#align filter.has_basis_supr Filter.hasBasis_supᵢ
+    simp only [hasBasis_iff, (hl _).mem_iff, Classical.skolem, forall_and, iUnion_subset_iff,
+      mem_iSup]
+#align filter.has_basis_supr Filter.hasBasis_iSup
 
 theorem HasBasis.sup_principal (hl : l.HasBasis p s) (t : Set α) :
     (l ⊔ 𝓟 t).HasBasis p fun i => s i ∪ t :=
@@ -750,43 +750,43 @@ theorem inf_neBot_iff_frequently_right {f g : Filter α} :
   exact inf_neBot_iff_frequently_left
 #align filter.inf_ne_bot_iff_frequently_right Filter.inf_neBot_iff_frequently_right
 
-theorem HasBasis.eq_binfᵢ (h : l.HasBasis p s) : l = ⨅ (i) (_hi : p i), 𝓟 (s i) :=
-  eq_binfᵢ_of_mem_iff_exists_mem <| fun {_} => by simp only [h.mem_iff, mem_principal, exists_prop]
-#align filter.has_basis.eq_binfi Filter.HasBasis.eq_binfᵢ
+theorem HasBasis.eq_biInf (h : l.HasBasis p s) : l = ⨅ (i) (_hi : p i), 𝓟 (s i) :=
+  eq_biInf_of_mem_iff_exists_mem <| fun {_} => by simp only [h.mem_iff, mem_principal, exists_prop]
+#align filter.has_basis.eq_binfi Filter.HasBasis.eq_biInf
 
-theorem HasBasis.eq_infᵢ (h : l.HasBasis (fun _ => True) s) : l = ⨅ i, 𝓟 (s i) := by
-  simpa only [infᵢ_true] using h.eq_binfᵢ
-#align filter.has_basis.eq_infi Filter.HasBasis.eq_infᵢ
+theorem HasBasis.eq_iInf (h : l.HasBasis (fun _ => True) s) : l = ⨅ i, 𝓟 (s i) := by
+  simpa only [iInf_true] using h.eq_biInf
+#align filter.has_basis.eq_infi Filter.HasBasis.eq_iInf
 
-theorem hasBasis_infᵢ_principal {s : ι → Set α} (h : Directed (· ≥ ·) s) [Nonempty ι] :
+theorem hasBasis_iInf_principal {s : ι → Set α} (h : Directed (· ≥ ·) s) [Nonempty ι] :
     (⨅ i, 𝓟 (s i)).HasBasis (fun _ => True) s :=
   ⟨fun t => by
-    simpa only [true_and] using mem_infᵢ_of_directed (h.mono_comp monotone_principal.dual) t⟩
-#align filter.has_basis_infi_principal Filter.hasBasis_infᵢ_principal
+    simpa only [true_and] using mem_iInf_of_directed (h.mono_comp monotone_principal.dual) t⟩
+#align filter.has_basis_infi_principal Filter.hasBasis_iInf_principal
 
 /-- If `s : ι → Set α` is an indexed family of sets, then finite intersections of `s i` form a basis
 of `⨅ i, 𝓟 (s i)`.  -/
-theorem hasBasis_infᵢ_principal_finite {ι : Type _} (s : ι → Set α) :
+theorem hasBasis_iInf_principal_finite {ι : Type _} (s : ι → Set α) :
     (⨅ i, 𝓟 (s i)).HasBasis (fun t : Set ι => t.Finite) fun t => ⋂ i ∈ t, s i := by
-  refine' ⟨fun U => (mem_infᵢ_finite _).trans _⟩
-  simp only [infᵢ_principal_finset, mem_unionᵢ, mem_principal, exists_prop,
-    exists_finite_iff_finset, Finset.set_binterᵢ_coe]
-#align filter.has_basis_infi_principal_finite Filter.hasBasis_infᵢ_principal_finite
+  refine' ⟨fun U => (mem_iInf_finite _).trans _⟩
+  simp only [iInf_principal_finset, mem_iUnion, mem_principal, exists_prop,
+    exists_finite_iff_finset, Finset.set_biInter_coe]
+#align filter.has_basis_infi_principal_finite Filter.hasBasis_iInf_principal_finite
 
-theorem hasBasis_binfᵢ_principal {s : β → Set α} {S : Set β} (h : DirectedOn (s ⁻¹'o (· ≥ ·)) S)
+theorem hasBasis_biInf_principal {s : β → Set α} {S : Set β} (h : DirectedOn (s ⁻¹'o (· ≥ ·)) S)
     (ne : S.Nonempty) : (⨅ i ∈ S, 𝓟 (s i)).HasBasis (fun i => i ∈ S) s :=
   ⟨fun t => by
-    refine' mem_binfᵢ_of_directed _ ne
+    refine' mem_biInf_of_directed _ ne
     rw [directedOn_iff_directed, ← directed_comp] at h ⊢
     refine' h.mono_comp _
     exact fun _ _ => principal_mono.2⟩
-#align filter.has_basis_binfi_principal Filter.hasBasis_binfᵢ_principal
+#align filter.has_basis_binfi_principal Filter.hasBasis_biInf_principal
 
-theorem hasBasis_binfᵢ_principal' {ι : Type _} {p : ι → Prop} {s : ι → Set α}
+theorem hasBasis_biInf_principal' {ι : Type _} {p : ι → Prop} {s : ι → Set α}
     (h : ∀ i, p i → ∀ j, p j → ∃ k, p k ∧ s k ⊆ s i ∧ s k ⊆ s j) (ne : ∃ i, p i) :
     (⨅ (i) (_h : p i), 𝓟 (s i)).HasBasis p s :=
-  Filter.hasBasis_binfᵢ_principal h ne
-#align filter.has_basis_binfi_principal' Filter.hasBasis_binfᵢ_principal'
+  Filter.hasBasis_biInf_principal h ne
+#align filter.has_basis_binfi_principal' Filter.hasBasis_biInf_principal'
 
 theorem HasBasis.map (f : α → β) (hl : l.HasBasis p s) : (l.map f).HasBasis p fun i => f '' s i :=
   ⟨fun t => by simp only [mem_map, image_subset_iff, hl.mem_iff, preimage]⟩
@@ -811,23 +811,23 @@ theorem HasBasis.forall_mem_mem (h : HasBasis l p s) {x : α} :
   exact ⟨fun h i hi => h (s i) i hi Subset.rfl, fun h t i hi ht => ht (h i hi)⟩
 #align filter.has_basis.forall_mem_mem Filter.HasBasis.forall_mem_mem
 
-protected theorem HasBasis.binfᵢ_mem [CompleteLattice β] {f : Set α → β} (h : HasBasis l p s)
+protected theorem HasBasis.biInf_mem [CompleteLattice β] {f : Set α → β} (h : HasBasis l p s)
     (hf : Monotone f) : (⨅ t ∈ l, f t) = ⨅ (i) (_hi : p i), f (s i) :=
-  le_antisymm (le_infᵢ₂ fun i hi => infᵢ₂_le (s i) (h.mem_of_mem hi)) <|
-    le_infᵢ₂ fun _t ht =>
+  le_antisymm (le_iInf₂ fun i hi => iInf₂_le (s i) (h.mem_of_mem hi)) <|
+    le_iInf₂ fun _t ht =>
       let ⟨i, hpi, hi⟩ := h.mem_iff.1 ht
-      infᵢ₂_le_of_le i hpi (hf hi)
-#align filter.has_basis.binfi_mem Filter.HasBasis.binfᵢ_mem
+      iInf₂_le_of_le i hpi (hf hi)
+#align filter.has_basis.binfi_mem Filter.HasBasis.biInf_mem
 
-protected theorem HasBasis.binterᵢ_mem {f : Set α → Set β} (h : HasBasis l p s) (hf : Monotone f) :
+protected theorem HasBasis.biInter_mem {f : Set α → Set β} (h : HasBasis l p s) (hf : Monotone f) :
     (⋂ t ∈ l, f t) = ⋂ (i) (_hi : p i), f (s i) :=
-  h.binfᵢ_mem hf
-#align filter.has_basis.bInter_mem Filter.HasBasis.binterᵢ_mem
+  h.biInf_mem hf
+#align filter.has_basis.bInter_mem Filter.HasBasis.biInter_mem
 
-theorem HasBasis.interₛ_sets (h : HasBasis l p s) : ⋂₀ l.sets = ⋂ (i) (_hi : p i), s i := by
-  rw [interₛ_eq_binterᵢ]
-  exact h.binterᵢ_mem monotone_id
-#align filter.has_basis.sInter_sets Filter.HasBasis.interₛ_sets
+theorem HasBasis.sInter_sets (h : HasBasis l p s) : ⋂₀ l.sets = ⋂ (i) (_hi : p i), s i := by
+  rw [sInter_eq_biInter]
+  exact h.biInter_mem monotone_id
+#align filter.has_basis.sInter_sets Filter.HasBasis.sInter_sets
 
 variable {ι'' : Type _} [Preorder ι''] (l) (s'' : ι'' → Set α)
 
@@ -1016,34 +1016,34 @@ theorem HasCountableBasis.isCountablyGenerated {f : Filter α} {p : ι → Prop}
 theorem antitone_seq_of_seq (s : ℕ → Set α) :
     ∃ t : ℕ → Set α, Antitone t ∧ (⨅ i, 𝓟 <| s i) = ⨅ i, 𝓟 (t i) := by
   use fun n => ⋂ m ≤ n, s m; constructor
-  · exact fun i j hij => binterᵢ_mono (Iic_subset_Iic.2 hij) fun n _ => Subset.rfl
-  apply le_antisymm <;> rw [le_infᵢ_iff] <;> intro i
+  · exact fun i j hij => biInter_mono (Iic_subset_Iic.2 hij) fun n _ => Subset.rfl
+  apply le_antisymm <;> rw [le_iInf_iff] <;> intro i
   · rw [le_principal_iff]
-    refine' (binterᵢ_mem (finite_le_nat _)).2 fun j _ => _
-    exact mem_infᵢ_of_mem j (mem_principal_self _)
-  · refine infᵢ_le_of_le i (principal_mono.2 <| interᵢ₂_subset i ?_)
+    refine' (biInter_mem (finite_le_nat _)).2 fun j _ => _
+    exact mem_iInf_of_mem j (mem_principal_self _)
+  · refine iInf_le_of_le i (principal_mono.2 <| iInter₂_subset i ?_)
     rfl
 #align filter.antitone_seq_of_seq Filter.antitone_seq_of_seq
 
-theorem countable_binfᵢ_eq_infᵢ_seq [CompleteLattice α] {B : Set ι} (Bcbl : B.Countable)
+theorem countable_biInf_eq_iInf_seq [CompleteLattice α] {B : Set ι} (Bcbl : B.Countable)
     (Bne : B.Nonempty) (f : ι → α) : ∃ x : ℕ → ι, (⨅ t ∈ B, f t) = ⨅ i, f (x i) :=
   let ⟨g, hg⟩ := Bcbl.exists_eq_range Bne
-  ⟨g, hg.symm ▸ infᵢ_range⟩
-#align filter.countable_binfi_eq_infi_seq Filter.countable_binfᵢ_eq_infᵢ_seq
+  ⟨g, hg.symm ▸ iInf_range⟩
+#align filter.countable_binfi_eq_infi_seq Filter.countable_biInf_eq_iInf_seq
 
-theorem countable_binfᵢ_eq_infᵢ_seq' [CompleteLattice α] {B : Set ι} (Bcbl : B.Countable)
+theorem countable_biInf_eq_iInf_seq' [CompleteLattice α] {B : Set ι} (Bcbl : B.Countable)
     (f : ι → α) {i₀ : ι} (h : f i₀ = ⊤) : ∃ x : ℕ → ι, (⨅ t ∈ B, f t) = ⨅ i, f (x i) := by
   cases' B.eq_empty_or_nonempty with hB Bnonempty
-  · rw [hB, infᵢ_emptyset]
+  · rw [hB, iInf_emptyset]
     use fun _ => i₀
     simp [h]
-  · exact countable_binfᵢ_eq_infᵢ_seq Bcbl Bnonempty f
-#align filter.countable_binfi_eq_infi_seq' Filter.countable_binfᵢ_eq_infᵢ_seq'
+  · exact countable_biInf_eq_iInf_seq Bcbl Bnonempty f
+#align filter.countable_binfi_eq_infi_seq' Filter.countable_biInf_eq_iInf_seq'
 
-theorem countable_binfᵢ_principal_eq_seq_infᵢ {B : Set (Set α)} (Bcbl : B.Countable) :
+theorem countable_biInf_principal_eq_seq_iInf {B : Set (Set α)} (Bcbl : B.Countable) :
     ∃ x : ℕ → Set α, (⨅ t ∈ B, 𝓟 t) = ⨅ i, 𝓟 (x i) :=
-  countable_binfᵢ_eq_infᵢ_seq' Bcbl 𝓟 principal_univ
-#align filter.countable_binfi_principal_eq_seq_infi Filter.countable_binfᵢ_principal_eq_seq_infᵢ
+  countable_biInf_eq_iInf_seq' Bcbl 𝓟 principal_univ
+#align filter.countable_binfi_principal_eq_seq_infi Filter.countable_biInf_principal_eq_seq_iInf
 
 section IsCountablyGenerated
 
@@ -1072,9 +1072,9 @@ theorem HasBasis.exists_antitone_subbasis {f : Filter α} [h : f.IsCountablyGene
     ∃ x : ℕ → ι', (∀ i, p (x i)) ∧ f.HasAntitoneBasis fun i => s (x i) := by
   obtain ⟨x', hx'⟩ : ∃ x : ℕ → Set α, f = ⨅ i, 𝓟 (x i) := by
     rcases h with ⟨s, hsc, rfl⟩
-    rw [generate_eq_binfᵢ]
-    exact countable_binfᵢ_principal_eq_seq_infᵢ hsc
-  have : ∀ i, x' i ∈ f := fun i => hx'.symm ▸ (infᵢ_le (fun i => 𝓟 (x' i)) i) (mem_principal_self _)
+    rw [generate_eq_biInf]
+    exact countable_biInf_principal_eq_seq_iInf hsc
+  have : ∀ i, x' i ∈ f := fun i => hx'.symm ▸ (iInf_le (fun i => 𝓟 (x' i)) i) (mem_principal_self _)
   let x : ℕ → { i : ι' // p i } := fun n =>
     Nat.recOn n (hs.index _ <| this 0) fun n xn =>
       hs.index _ <| inter_mem (this <| n + 1) (hs.mem_of_mem xn.2)
@@ -1085,12 +1085,12 @@ theorem HasBasis.exists_antitone_subbasis {f : Filter α} [h : f.IsCountablyGene
     exacts [hs.set_index_subset _, (hs.set_index_subset _).trans (inter_subset_left _ _)]
   refine' ⟨fun i => (x i).1, fun i => (x i).2, _⟩
   have : (⨅ i, 𝓟 (s (x i).1)).HasAntitoneBasis fun i => s (x i).1 :=
-    ⟨hasBasis_infᵢ_principal (directed_of_sup x_mono), x_mono⟩
+    ⟨hasBasis_iInf_principal (directed_of_sup x_mono), x_mono⟩
   convert this
   exact
-    le_antisymm (le_infᵢ fun i => le_principal_iff.2 <| by cases i <;> apply hs.set_index_mem)
+    le_antisymm (le_iInf fun i => le_principal_iff.2 <| by cases i <;> apply hs.set_index_mem)
       (hx'.symm ▸
-        le_infᵢ fun i => le_principal_iff.2 <| this.1.mem_iff.2 ⟨i, trivial, x_subset i⟩)
+        le_iInf fun i => le_principal_iff.2 <| this.1.mem_iff.2 ⟨i, trivial, x_subset i⟩)
 #align filter.has_basis.exists_antitone_subbasis Filter.HasBasis.exists_antitone_subbasis
 
 /-- A countably generated filter admits a basis formed by an antitone sequence of sets. -/
@@ -1148,7 +1148,7 @@ end IsCountablyGenerated
 theorem isCountablyGenerated_seq [Countable β] (x : β → Set α) :
     IsCountablyGenerated (⨅ i, 𝓟 <| x i) := by
   use range x, countable_range x
-  rw [generate_eq_binfᵢ, infᵢ_range]
+  rw [generate_eq_biInf, iInf_range]
 #align filter.is_countably_generated_seq Filter.isCountablyGenerated_seq
 
 theorem isCountablyGenerated_of_seq {f : Filter α} (h : ∃ x : ℕ → Set α, f = ⨅ i, 𝓟 <| x i) :
@@ -1157,10 +1157,10 @@ theorem isCountablyGenerated_of_seq {f : Filter α} (h : ∃ x : ℕ → Set α,
   apply isCountablyGenerated_seq
 #align filter.is_countably_generated_of_seq Filter.isCountablyGenerated_of_seq
 
-theorem isCountablyGenerated_binfᵢ_principal {B : Set (Set α)} (h : B.Countable) :
+theorem isCountablyGenerated_biInf_principal {B : Set (Set α)} (h : B.Countable) :
     IsCountablyGenerated (⨅ s ∈ B, 𝓟 s) :=
-  isCountablyGenerated_of_seq (countable_binfᵢ_principal_eq_seq_infᵢ h)
-#align filter.is_countably_generated_binfi_principal Filter.isCountablyGenerated_binfᵢ_principal
+  isCountablyGenerated_of_seq (countable_biInf_principal_eq_seq_iInf h)
+#align filter.is_countably_generated_binfi_principal Filter.isCountablyGenerated_biInf_principal
 
 theorem isCountablyGenerated_iff_exists_antitone_basis {f : Filter α} :
     IsCountablyGenerated f ↔ ∃ x : ℕ → Set α, f.HasAntitoneBasis x := by
@@ -1168,13 +1168,13 @@ theorem isCountablyGenerated_iff_exists_antitone_basis {f : Filter α} :
   · intro h
     exact f.exists_antitone_basis
   · rintro ⟨x, h⟩
-    rw [h.1.eq_infᵢ]
+    rw [h.1.eq_iInf]
     exact isCountablyGenerated_seq x
 #align filter.is_countably_generated_iff_exists_antitone_basis Filter.isCountablyGenerated_iff_exists_antitone_basis
 
 @[instance]
 theorem isCountablyGenerated_principal (s : Set α) : IsCountablyGenerated (𝓟 s) :=
-  isCountablyGenerated_of_seq ⟨fun _ => s, infᵢ_const.symm⟩
+  isCountablyGenerated_of_seq ⟨fun _ => s, iInf_const.symm⟩
 #align filter.is_countably_generated_principal Filter.isCountablyGenerated_principal
 
 @[instance]
@@ -1196,15 +1196,15 @@ theorem isCountablyGenerated_top : IsCountablyGenerated (⊤ : Filter α) :=
 -- porting note: without explicit `Sort u` and `Type v`, Lean 4 uses `ι : Prop`
 universe u v
 
-instance infᵢ.isCountablyGenerated {ι : Sort u} {α : Type v} [Countable ι] (f : ι → Filter α)
+instance iInf.isCountablyGenerated {ι : Sort u} {α : Type v} [Countable ι] (f : ι → Filter α)
     [∀ i, IsCountablyGenerated (f i)] : IsCountablyGenerated (⨅ i, f i) := by
   choose s hs using fun i => exists_antitone_basis (f i)
-  rw [← PLift.down_surjective.infᵢ_comp]
-  refine' HasCountableBasis.isCountablyGenerated ⟨hasBasis_infᵢ fun n => (hs _).1, _⟩
+  rw [← PLift.down_surjective.iInf_comp]
+  refine' HasCountableBasis.isCountablyGenerated ⟨hasBasis_iInf fun n => (hs _).1, _⟩
   refine' (countable_range <| Sigma.map ((↑) : Finset (PLift ι) → Set (PLift ι)) fun _ => id).mono _
   rintro ⟨I, f⟩ ⟨hI, -⟩
   lift I to Finset (PLift ι) using hI
   exact ⟨⟨I, f⟩, rfl⟩
-#align filter.infi.is_countably_generated Filter.infᵢ.isCountablyGenerated
+#align filter.infi.is_countably_generated Filter.iInf.isCountablyGenerated
 
 end Filter
chore: bye-bye, solo bys! (#3825)

This PR puts, with one exception, every single remaining by that lies all by itself on its own line to the previous line, thus matching the current behaviour of start-port.sh. The exception is when the by begins the second or later argument to a tuple or anonymous constructor; see https://github.com/leanprover-community/mathlib4/pull/3825#discussion_r1186702599.

Essentially this is s/\n *by$/ by/g, but with manual editing to satisfy the linter's max-100-char-line requirement. The Python style linter is also modified to catch these "isolated bys".

Diff
@@ -183,8 +183,7 @@ theorem mem_filter_of_mem (B : FilterBasis α) {U : Set α} : U ∈ B → U ∈
 #align filter_basis.mem_filter_of_mem FilterBasis.mem_filter_of_mem
 
 theorem eq_infᵢ_principal (B : FilterBasis α) : B.filter = ⨅ s : B.sets, 𝓟 s := by
-  have : Directed (· ≥ ·) fun s : B.sets => 𝓟 (s : Set α) :=
-    by
+  have : Directed (· ≥ ·) fun s : B.sets => 𝓟 (s : Set α) := by
     rintro ⟨U, U_in⟩ ⟨V, V_in⟩
     rcases B.inter_sets U_in V_in with ⟨W, W_in, W_sub⟩
     use ⟨W, W_in⟩
chore: fix align linebreaks (#3103)

Apparently we have CI scripts that assume those fall on a single line. The command line used to fix the aligns was:

find . -type f -name "*.lean" -exec sed -i -E 'N;s/^#align ([^[:space:]]+)\n *([^[:space:]]+)$/#align \1 \2/' {} \;

Co-authored-by: Moritz Firsching <firsching@google.com>

Diff
@@ -1012,8 +1012,7 @@ instance Nat.inhabitedCountableFilterBasis : Inhabited (CountableFilterBasis ℕ
 theorem HasCountableBasis.isCountablyGenerated {f : Filter α} {p : ι → Prop} {s : ι → Set α}
     (h : f.HasCountableBasis p s) : f.IsCountablyGenerated :=
   ⟨⟨{ t | ∃ i, p i ∧ s i = t }, h.countable.image s, h.toHasBasis.eq_generate⟩⟩
-#align filter.has_countable_basis.is_countably_generated
-  Filter.HasCountableBasis.isCountablyGenerated
+#align filter.has_countable_basis.is_countably_generated Filter.HasCountableBasis.isCountablyGenerated
 
 theorem antitone_seq_of_seq (s : ℕ → Set α) :
     ∃ t : ℕ → Set α, Antitone t ∧ (⨅ i, 𝓟 <| s i) = ⨅ i, 𝓟 (t i) := by
@@ -1172,8 +1171,7 @@ theorem isCountablyGenerated_iff_exists_antitone_basis {f : Filter α} :
   · rintro ⟨x, h⟩
     rw [h.1.eq_infᵢ]
     exact isCountablyGenerated_seq x
-#align filter.is_countably_generated_iff_exists_antitone_basis
-  Filter.isCountablyGenerated_iff_exists_antitone_basis
+#align filter.is_countably_generated_iff_exists_antitone_basis Filter.isCountablyGenerated_iff_exists_antitone_basis
 
 @[instance]
 theorem isCountablyGenerated_principal (s : Set α) : IsCountablyGenerated (𝓟 s) :=
feat: tactic congr! and improvement to convert (#2566)

This introduces a tactic congr! that is an analogue to mathlib 3's congr'. It is a more insistent version of congr that makes use of more congruence lemmas (including user congruence lemmas), propext, funext, and Subsingleton instances. It also has a feature to lift reflexive relations to equalities. Along with funext, the tactic does intros, allowing congr! to get access to function bodies; the introduced variables can be named using rename_i if needed.

This also modifies convert to use congr! rather than congr, which makes it work more like the mathlib3 version of the tactic.

Diff
@@ -964,7 +964,6 @@ theorem map_sigma_mk_comap {π : α → Type _} {π' : β → Type _} {f : α 
     map (Sigma.mk a) (comap (g a) l) = comap (Sigma.map f g) (map (Sigma.mk (f a)) l) := by
   refine' (((basis_sets _).comap _).map _).eq_of_same_basis _
   convert ((basis_sets l).map (Sigma.mk (f a))).comap (Sigma.map f g)
-  ext1 s
   apply image_sigmaMk_preimage_sigmaMap hf
 #align filter.map_sigma_mk_comap Filter.map_sigma_mk_comap
 
feat: port Topology.UniformSpace.Basic (#1993)

Co-authored-by: Johan Commelin <johan@commelin.net>

Diff
@@ -820,14 +820,14 @@ protected theorem HasBasis.binfᵢ_mem [CompleteLattice β] {f : Set α → β}
       infᵢ₂_le_of_le i hpi (hf hi)
 #align filter.has_basis.binfi_mem Filter.HasBasis.binfᵢ_mem
 
-protected theorem HasBasis.bInter_mem {f : Set α → Set β} (h : HasBasis l p s) (hf : Monotone f) :
+protected theorem HasBasis.binterᵢ_mem {f : Set α → Set β} (h : HasBasis l p s) (hf : Monotone f) :
     (⋂ t ∈ l, f t) = ⋂ (i) (_hi : p i), f (s i) :=
   h.binfᵢ_mem hf
-#align filter.has_basis.bInter_mem Filter.HasBasis.bInter_mem
+#align filter.has_basis.bInter_mem Filter.HasBasis.binterᵢ_mem
 
 theorem HasBasis.interₛ_sets (h : HasBasis l p s) : ⋂₀ l.sets = ⋂ (i) (_hi : p i), s i := by
   rw [interₛ_eq_binterᵢ]
-  exact h.bInter_mem monotone_id
+  exact h.binterᵢ_mem monotone_id
 #align filter.has_basis.sInter_sets Filter.HasBasis.interₛ_sets
 
 variable {ι'' : Type _} [Preorder ι''] (l) (s'' : ι'' → Set α)
Feat: add lemmas about Set.diagonal (#1438)

This is a partial forward-port of leanprover-community/mathlib#18111

Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov, Johannes Hölzl, Mario Carneiro, Patrick Massot
 
 ! This file was ported from Lean 3 source module order.filter.bases
-! leanprover-community/mathlib commit d6fad0e5bf2d6f48da9175d25c3dc5706b3834ce
+! leanprover-community/mathlib commit 996b0ff959da753a555053a480f36e5f264d4207
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -419,13 +419,13 @@ theorem hasBasis_self {l : Filter α} {P : Set α → Prop} :
     ⟨fun h => h.1, fun h => ⟨h, fun ⟨t, hl, _, hts⟩ => mem_of_superset hl hts⟩⟩
 #align filter.has_basis_self Filter.hasBasis_self
 
-theorem HasBasis.comp_of_surjective (h : l.HasBasis p s) {g : ι' → ι} (hg : Function.Surjective g) :
+theorem HasBasis.comp_surjective (h : l.HasBasis p s) {g : ι' → ι} (hg : Function.Surjective g) :
     l.HasBasis (p ∘ g) (s ∘ g) :=
   ⟨fun _ => h.mem_iff.trans hg.exists⟩
-#align filter.has_basis.comp_of_surjective Filter.HasBasis.comp_of_surjective
+#align filter.has_basis.comp_surjective Filter.HasBasis.comp_surjective
 
 theorem HasBasis.comp_equiv (h : l.HasBasis p s) (e : ι' ≃ ι) : l.HasBasis (p ∘ e) (s ∘ e) :=
-  h.comp_of_surjective e.surjective
+  h.comp_surjective e.surjective
 #align filter.has_basis.comp_equiv Filter.HasBasis.comp_equiv
 
 /-- If `{s i | p i}` is a basis of a filter `l` and each `s i` includes `s j` such that
Feat: port Order.Filter.Bases (#1791)

Dependencies 6 + 239

240 files ported (97.6%)
105282 lines ported (98.0%)
Show graph

The unported dependencies are