data.set.finiteMathlib.Data.Set.Finite

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

(last sync)

feat(data/{list,multiset,finset}/*): attach and filter lemmas (#18087)

Left commutativity and cardinality of list.filter/multiset.filter/finset.filter. Interaction of count/countp and attach.

Diff
@@ -927,8 +927,7 @@ eq.trans (by congr) empty_card
 
 theorem card_fintype_insert_of_not_mem {a : α} (s : set α) [fintype s] (h : a ∉ s) :
   @fintype.card _ (fintype_insert_of_not_mem s h) = fintype.card s + 1 :=
-by rw [fintype_insert_of_not_mem, fintype.card_of_finset];
-   simp [finset.card, to_finset]; refl
+by simp [fintype_insert_of_not_mem, fintype.card_of_finset]
 
 @[simp] theorem card_insert {a : α} (s : set α)
   [fintype s] (h : a ∉ s) {d : fintype.{u} (insert a s : set α)} :

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

chore(order/liminf_limsup): Generalise and move lemmas (#18628)

Generalise lemmas from semilattices to codirected orders. Move topology-less lemmas from topology.algebra.order.liminf_limsup to order.liminf_limsup. Also turn arguments to bdd_above_insert and friends implicit.

Diff
@@ -1280,7 +1280,7 @@ end
 
 section
 
-variables [semilattice_sup α] [nonempty α] {s : set α}
+variables [preorder α] [is_directed α (≤)] [nonempty α] {s : set α}
 
 /--A finite set is bounded above.-/
 protected lemma finite.bdd_above (hs : s.finite) : bdd_above s :=
@@ -1288,7 +1288,7 @@ finite.induction_on hs bdd_above_empty $ λ a s _ _ h, h.insert a
 
 /--A finite union of sets which are all bounded above is still bounded above.-/
 lemma finite.bdd_above_bUnion {I : set β} {S : β → set α} (H : I.finite) :
-  (bdd_above (⋃i∈I, S i)) ↔ (∀i ∈ I, bdd_above (S i)) :=
+  bdd_above (⋃ i ∈ I, S i) ↔ ∀ i ∈ I, bdd_above (S i) :=
 finite.induction_on H
   (by simp only [bUnion_empty, bdd_above_empty, ball_empty_iff])
   (λ a s ha _ hs, by simp only [bUnion_insert, ball_insert_iff, bdd_above_union, hs])
@@ -1299,22 +1299,17 @@ end
 
 section
 
-variables [semilattice_inf α] [nonempty α] {s : set α}
+variables [preorder α] [is_directed α (≥)] [nonempty α] {s : set α}
 
 /--A finite set is bounded below.-/
-protected lemma finite.bdd_below (hs : s.finite) : bdd_below s := @finite.bdd_above αᵒᵈ _ _ _ hs
+protected lemma finite.bdd_below (hs : s.finite) : bdd_below s := @finite.bdd_above αᵒᵈ _ _ _ _ hs
 
 /--A finite union of sets which are all bounded below is still bounded below.-/
 lemma finite.bdd_below_bUnion {I : set β} {S : β → set α} (H : I.finite) :
   bdd_below (⋃ i ∈ I, S i) ↔ ∀ i ∈ I, bdd_below (S i) :=
-@finite.bdd_above_bUnion αᵒᵈ _ _ _ _ _ H
+@finite.bdd_above_bUnion αᵒᵈ _ _ _ _ _ _ H
 
-lemma infinite_of_not_bdd_below : ¬ bdd_below s → s.infinite :=
-begin
-  contrapose!,
-  rw not_infinite,
-  apply finite.bdd_below,
-end
+lemma infinite_of_not_bdd_below : ¬ bdd_below s → s.infinite := mt finite.bdd_below
 
 end
 

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

refactor(data/nat/nth): redefine, review API (#18760)

Redefine nat.nth in terms of already available definitions, review API, generalize some lemmas. Also fix some typos in data/set/intervals/monotone.

Diff
@@ -98,6 +98,14 @@ h.nonempty_fintype.some
 protected noncomputable def finite.to_finset {s : set α} (h : s.finite) : finset α :=
 @set.to_finset _ _ h.fintype
 
+theorem finite.to_finset_eq_to_finset {s : set α} [fintype s] (h : s.finite) :
+  h.to_finset = s.to_finset :=
+by { rw [finite.to_finset], congr }
+
+@[simp]
+theorem to_finite_to_finset (s : set α) [fintype s] : s.to_finite.to_finset = s.to_finset :=
+s.to_finite.to_finset_eq_to_finset
+
 theorem finite.exists_finset {s : set α} (h : s.finite) :
   ∃ s' : finset α, ∀ a : α, a ∈ s' ↔ a ∈ s :=
 by { casesI h, exact ⟨s.to_finset, λ _, mem_to_finset⟩ }

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

feat(data/set/finite): add a version of set.finite.bUnion (#19098)

Add set.finite.Union and equiv.set_finite_iff.

From the sphere eversion project.

Diff
@@ -393,6 +393,10 @@ end fintype_instances
 
 end set
 
+lemma equiv.set_finite_iff {s : set α} {t : set β} (hst : s ≃ t) :
+  s.finite ↔ t.finite :=
+by simp_rw [← set.finite_coe_iff, hst.finite_iff]
+
 /-! ### Finset -/
 
 namespace finset
@@ -594,6 +598,21 @@ theorem finite.sInter {α : Type*} {s : set (set α)} {t : set α} (ht : t ∈ s
   (hf : t.finite) : (⋂₀ s).finite :=
 hf.subset (sInter_subset_of_mem ht)
 
+/-- If sets `s i` are finite for all `i` from a finite set `t` and are empty for `i ∉ t`, then the
+union `⋃ i, s i` is a finite set. -/
+lemma finite.Union {ι : Type*} {s : ι → set α} {t : set ι} (ht : t.finite)
+  (hs : ∀ i ∈ t, (s i).finite) (he : ∀ i ∉ t, s i = ∅) :
+  (⋃ i, s i).finite :=
+begin
+  suffices : (⋃ i, s i) ⊆ (⋃ i ∈ t, s i),
+  { exact (ht.bUnion hs).subset this, },
+  refine Union_subset (λ i x hx, _),
+  by_cases hi : i ∈ t,
+  { exact mem_bUnion hi hx },
+  { rw [he i hi, mem_empty_iff_false] at hx,
+    contradiction, },
+end
+
 theorem finite.bind {α β} {s : set α} {f : α → set β} (h : s.finite) (hf : ∀ a ∈ s, (f a).finite) :
   (s >>= f).finite :=
 h.bUnion hf

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

feat(data/set/finite): Add lemmas relating definitions of infinite sets (#18620)

Prove the following lemmas (and their dual)

  • set.infinite_of_forall_exists_lt: (∀ a, ∃ b ∈ s, a < b) → s.infinite in a nonempty preorder
  • set.infinite_iff_exists_lt: (∀ a, ∃ b ∈ s, a < b) ↔ s.infinite in a locally finite order with a bottom element

Co-authored-by: Yaël Dillies <yael.dillies@gmail.com> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Diff
@@ -1054,9 +1054,6 @@ theorem infinite_of_injective_forall_mem [infinite α] {s : set β} {f : α →
   (hi : injective f) (hf : ∀ x : α, f x ∈ s) : s.infinite :=
 by { rw ←range_subset_iff at hf, exact (infinite_range_of_injective hi).mono hf }
 
-lemma infinite.exists_nat_lt {s : set ℕ} (hs : s.infinite) (n : ℕ) : ∃ m ∈ s, n < m :=
-let ⟨m, hm⟩ := (hs.diff $ set.finite_le_nat n).nonempty in ⟨m, by simpa using hm⟩
-
 lemma infinite.exists_not_mem_finset {s : set α} (hs : s.infinite) (f : finset α) :
   ∃ a ∈ s, a ∉ f :=
 let ⟨a, has, haf⟩ := (hs.diff (to_finite f)).nonempty
@@ -1076,6 +1073,23 @@ end
 
 /-! ### Order properties -/
 
+section preorder
+variables [preorder α] [nonempty α] {s : set α}
+
+lemma infinite_of_forall_exists_gt (h : ∀ a, ∃ b ∈ s, a < b) : s.infinite :=
+begin
+  inhabit α,
+  set f : ℕ → α := λ n, nat.rec_on n (h default).some (λ n a, (h a).some),
+  have hf : ∀ n, f n ∈ s := by rintro (_ | _); exact (h _).some_spec.some,
+  refine infinite_of_injective_forall_mem (strict_mono_nat_of_lt_succ $ λ n, _).injective hf,
+  exact (h _).some_spec.some_spec,
+end
+
+lemma infinite_of_forall_exists_lt (h : ∀ a, ∃ b ∈ s, b < a) : s.infinite :=
+@infinite_of_forall_exists_gt αᵒᵈ _ _ _ h
+
+end preorder
+
 lemma finite_is_top (α : Type*) [partial_order α] : {x : α | is_top x}.finite :=
 (subsingleton_is_top α).finite
 

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

feat(data/set/finite): When s ×ˢ t is finite (#18674)

The one non-trivial result is infinite_image2, because it requires only injectivity of the f a and λ a, f a b rather than of the uncurrying of f.

Diff
@@ -117,8 +117,13 @@ protected def infinite (s : set α) : Prop := ¬ s.finite
 
 @[simp] lemma not_infinite {s : set α} : ¬ s.infinite ↔ s.finite := not_not
 
+alias not_infinite ↔ _ finite.not_infinite
+
+attribute [simp] finite.not_infinite
+
 /-- See also `finite_or_infinite`, `fintype_or_infinite`. -/
 protected lemma finite_or_infinite (s : set α) : s.finite ∨ s.infinite := em _
+protected lemma infinite_or_finite (s : set α) : s.infinite ∨ s.finite := em' _
 
 /-! ### Basic properties of `set.finite.to_finset` -/
 
@@ -595,6 +600,9 @@ h.bUnion hf
 
 @[simp] theorem finite_empty : (∅ : set α).finite := to_finite _
 
+protected lemma infinite.nonempty {s : set α} (h : s.infinite) : s.nonempty :=
+nonempty_iff_ne_empty.2 $ by { rintro rfl, exact h finite_empty }
+
 @[simp] theorem finite_singleton (a : α) : ({a} : set α).finite := to_finite _
 
 theorem finite_pure (a : α) : (pure a : set α).finite := to_finite _
@@ -639,17 +647,49 @@ lemma finite_lt_nat (n : ℕ) : set.finite {i | i < n} := to_finite _
 
 lemma finite_le_nat (n : ℕ) : set.finite {i | i ≤ n} := to_finite _
 
-lemma finite.prod {s : set α} {t : set β} (hs : s.finite) (ht : t.finite) :
-  (s ×ˢ t : set (α × β)).finite :=
+section prod
+variables {s : set α} {t : set β}
+
+protected lemma finite.prod (hs : s.finite) (ht : t.finite) : (s ×ˢ t : set (α × β)).finite :=
 by { casesI hs, casesI ht, apply to_finite }
 
-lemma finite.off_diag {s : set α} (hs : s.finite) : s.off_diag.finite :=
+lemma finite.of_prod_left (h : (s ×ˢ t : set (α × β)).finite) : t.nonempty → s.finite :=
+λ ⟨b, hb⟩, (h.image prod.fst).subset $ λ a ha, ⟨(a, b), ⟨ha, hb⟩, rfl⟩
+
+lemma finite.of_prod_right (h : (s ×ˢ t : set (α × β)).finite) : s.nonempty → t.finite :=
+λ ⟨a, ha⟩, (h.image prod.snd).subset $ λ b hb, ⟨(a, b), ⟨ha, hb⟩, rfl⟩
+
+protected lemma infinite.prod_left (hs : s.infinite) (ht : t.nonempty) : (s ×ˢ t).infinite :=
+λ h, hs $ h.of_prod_left ht
+
+protected lemma infinite.prod_right (ht : t.infinite) (hs : s.nonempty) : (s ×ˢ t).infinite :=
+λ h, ht $ h.of_prod_right hs
+
+protected lemma infinite_prod :
+  (s ×ˢ t).infinite ↔ s.infinite ∧ t.nonempty ∨ t.infinite ∧ s.nonempty :=
+begin
+  refine ⟨λ h, _, _⟩,
+  { simp_rw [set.infinite, and_comm (¬ _), ←not_imp],
+    by_contra',
+    exact h ((this.1 h.nonempty.snd).prod $ this.2 h.nonempty.fst) },
+  { rintro (h | h),
+    { exact h.1.prod_left h.2 },
+    { exact h.1.prod_right h.2 } }
+end
+
+lemma finite_prod : (s ×ˢ t).finite ↔ (s.finite ∨ t = ∅) ∧ (t.finite ∨ s = ∅) :=
+by simp only [←not_infinite, set.infinite_prod, not_or_distrib, not_and_distrib,
+  not_nonempty_iff_eq_empty]
+
+protected lemma finite.off_diag (hs : s.finite) : s.off_diag.finite :=
 by { classical, casesI hs, apply set.to_finite }
 
-lemma finite.image2 (f : α → β → γ) {s : set α} {t : set β} (hs : s.finite) (ht : t.finite) :
+protected lemma finite.image2 (f : α → β → γ) (hs : s.finite) (ht : t.finite) :
   (image2 f s t).finite :=
 by { casesI hs, casesI ht, apply to_finite }
 
+end prod
+
 theorem finite.seq {f : set (α → β)} {s : set α} (hf : f.finite) (hs : s.finite) :
   (f.seq s).finite :=
 by { classical, casesI hf, casesI hs, apply to_finite }
@@ -944,9 +984,6 @@ lemma infinite.exists_subset_card_eq {s : set α} (hs : s.infinite) (n : ℕ) :
   ∃ t : finset α, ↑t ⊆ s ∧ t.card = n :=
 ⟨((finset.range n).map (hs.nat_embedding _)).map (embedding.subtype _), by simp⟩
 
-lemma infinite.nonempty {s : set α} (h : s.infinite) : s.nonempty :=
-let a := infinite.nat_embedding s h 37 in ⟨a.1, a.2⟩
-
 lemma infinite_of_finite_compl [infinite α] {s : set α} (hs : sᶜ.finite) : s.infinite :=
 λ h, set.infinite_univ (by simpa using hs.union h)
 
@@ -962,14 +999,41 @@ lemma infinite.diff {s t : set α} (hs : s.infinite) (ht : t.finite) : (s \ t).i
 @[simp] lemma infinite_union {s t : set α} : (s ∪ t).infinite ↔ s.infinite ∨ t.infinite :=
 by simp only [set.infinite, finite_union, not_and_distrib]
 
-theorem infinite_of_infinite_image (f : α → β) {s : set α} (hs : (f '' s).infinite) :
-  s.infinite :=
+theorem infinite.of_image (f : α → β) {s : set α} (hs : (f '' s).infinite) : s.infinite :=
 mt (finite.image f) hs
 
 theorem infinite_image_iff {s : set α} {f : α → β} (hi : inj_on f s) :
   (f '' s).infinite ↔ s.infinite :=
 not_congr $ finite_image_iff hi
 
+alias infinite_image_iff ↔ _ infinite.image
+
+attribute [protected] infinite.image
+
+section image2
+variables {f : α → β → γ} {s : set α} {t : set β} {a : α} {b : β}
+
+protected lemma infinite.image2_left (hs : s.infinite) (hb : b ∈ t) (hf : inj_on (λ a, f a b) s) :
+  (image2 f s t).infinite :=
+(hs.image hf).mono $ image_subset_image2_left hb
+
+protected lemma infinite.image2_right (ht : t.infinite) (ha : a ∈ s) (hf : inj_on (f a) t) :
+  (image2 f s t).infinite :=
+(ht.image hf).mono $ image_subset_image2_right ha
+
+theorem infinite_image2 (hfs : ∀ b ∈ t, inj_on (λ a, f a b) s) (hft : ∀ a ∈ s, inj_on (f a) t) :
+  (image2 f s t).infinite ↔ s.infinite ∧ t.nonempty ∨ t.infinite ∧ s.nonempty :=
+begin
+  refine ⟨λ h, set.infinite_prod.1 _, _⟩,
+  { rw ←image_uncurry_prod at h,
+    exact h.of_image _ },
+  { rintro (⟨hs, b, hb⟩ | ⟨ht, a, ha⟩),
+    { exact hs.image2_left hb (hfs _ hb) },
+    { exact ht.image2_right ha (hft _ ha) } }
+end
+
+end image2
+
 theorem infinite_of_inj_on_maps_to {s : set α} {t : set β} {f : α → β}
   (hi : inj_on f s) (hm : maps_to f s t) (hs : s.infinite) : t.infinite :=
 ((infinite_image_iff hi).2 hs).mono (maps_to'.mp hm)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

feat(data/finset/pointwise): s ∩ t * s ∪ t ⊆ s * t (#17961)

and distributivity of set.to_finset/set.finite.to_finset over algebraic operations.

Diff
@@ -196,7 +196,6 @@ by { ext, simp }
 @[simp] protected lemma to_finset_empty (h : (∅ : set α).finite) : h.to_finset = ∅ :=
 by { ext, simp }
 
--- Note: Not `simp` because `set.finite.to_finset_set_of` already proves it
 @[simp] protected lemma to_finset_univ [fintype α] (h : (set.univ : set α).finite) :
   h.to_finset = finset.univ :=
 by { ext, simp }

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

refactor(data/set/finite): reduce imports (#18245)
  • Add eq_or_eq_or_eq_of_forall_not_lt_lt, finite.of_forall_not_lt_lt, set.finite_of_forall_not_lt_lt (replacing set.finite_of_forall_between_eq_endpoints), and set.finite_of_forall_not_lt_lt'.
  • Import data.finset.basic instead of data.finset.sort in data.set.finite.
  • Forward-ported in leanprover-community/mathlib4#1738
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2017 Johannes Hölzl. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Mario Carneiro, Kyle Miller
 -/
-import data.finset.sort
+import data.finset.basic
 import data.set.functor
 import data.finite.basic
 
@@ -1227,27 +1227,27 @@ s.finite_to_set.bdd_below
 
 end finset
 
-/--
-If a set `s` does not contain any elements between any pair of elements `x, z ∈ s` with `x ≤ z`
-(i.e if given `x, y, z ∈ s` such that `x ≤ y ≤ z`, then `y` is either `x` or `z`), then `s` is
-finite.
--/
-lemma set.finite_of_forall_between_eq_endpoints {α : Type*} [linear_order α] (s : set α)
-  (h : ∀ (x ∈ s) (y ∈ s) (z ∈ s), x ≤ y → y ≤ z → x = y ∨ y = z) :
-  set.finite s :=
+variables [linear_order α]
+
+/-- If a linear order does not contain any triple of elements `x < y < z`, then this type
+is finite. -/
+lemma finite.of_forall_not_lt_lt (h : ∀ ⦃x y z : α⦄, x < y → y < z → false) :
+  finite α :=
 begin
-  by_contra hinf,
-  change s.infinite at hinf,
-  rcases hinf.exists_subset_card_eq 3 with ⟨t, hts, ht⟩,
-  let f := t.order_iso_of_fin ht,
-  let x := f 0,
-  let y := f 1,
-  let z := f 2,
-  have := h x (hts x.2) y (hts y.2) z (hts z.2)
-    (f.monotone $ by dec_trivial) (f.monotone $ by dec_trivial),
-  have key₁ : (0 : fin 3) ≠ 1 := by dec_trivial,
-  have key₂ : (1 : fin 3) ≠ 2 := by dec_trivial,
-  cases this,
-  { dsimp only [x, y] at this, exact key₁ (f.injective $ subtype.coe_injective this) },
-  { dsimp only [y, z] at this, exact key₂ (f.injective $ subtype.coe_injective this) }
+  nontriviality α,
+  rcases exists_pair_ne α with ⟨x, y, hne⟩,
+  refine @finite.of_fintype α ⟨{x, y}, λ z , _⟩,
+  simpa [hne] using eq_or_eq_or_eq_of_forall_not_lt_lt h z x y
 end
+
+/-- If a set `s` does not contain any triple of elements `x < y < z`, then `s` is finite. -/
+lemma set.finite_of_forall_not_lt_lt {s : set α} (h : ∀ (x y z ∈ s), x < y → y < z → false) :
+  set.finite s :=
+@set.to_finite _ s $ finite.of_forall_not_lt_lt $ by simpa only [set_coe.forall'] using h
+
+lemma set.finite_diff_Union_Ioo (s : set α) : (s \ ⋃ (x ∈ s) (y ∈ s), Ioo x y).finite :=
+set.finite_of_forall_not_lt_lt $ λ x hx y hy z hz hxy hyz, hy.2 $ mem_Union₂_of_mem hx.1 $
+  mem_Union₂_of_mem hz.1 ⟨hxy, hyz⟩
+
+lemma set.finite_diff_Union_Ioo' (s : set α) : (s \ ⋃ x : s × s, Ioo x.1 x.2).finite :=
+by simpa only [Union, supr_prod, supr_subtype] using s.finite_diff_Union_Ioo

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(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
@@ -425,7 +425,7 @@ instance fintypeInterOfLeft (s t : Set α) [Fintype s] [DecidablePred (· ∈ t)
 /-- A `fintype` instance for set intersection where the right set has a `fintype` instance. -/
 instance fintypeInterOfRight (s t : Set α) [Fintype t] [DecidablePred (· ∈ s)] :
     Fintype (s ∩ t : Set α) :=
-  Fintype.ofFinset (t.toFinset.filterₓ (· ∈ s)) <| by simp [and_comm']
+  Fintype.ofFinset (t.toFinset.filterₓ (· ∈ s)) <| by simp [and_comm]
 #align set.fintype_inter_of_right Set.fintypeInterOfRight
 -/
 
@@ -1184,7 +1184,7 @@ protected theorem infinite_prod :
     (s ×ˢ t).Infinite ↔ s.Infinite ∧ t.Nonempty ∨ t.Infinite ∧ s.Nonempty :=
   by
   refine' ⟨fun h => _, _⟩
-  · simp_rw [Set.Infinite, and_comm' ¬_, ← not_imp]
+  · simp_rw [Set.Infinite, and_comm ¬_, ← not_imp]
     by_contra!
     exact h ((this.1 h.nonempty.snd).Prod <| this.2 h.nonempty.fst)
   · rintro (h | h)
Diff
@@ -1010,7 +1010,7 @@ theorem Finite.sInter {α : Type _} {s : Set (Set α)} {t : Set α} (ht : t ∈
 #align set.finite.sInter Set.Finite.sInter
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (i «expr ∉ » t) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:642:2: warning: expanding binder collection (i «expr ∉ » t) -/
 #print Set.Finite.iUnion /-
 /-- If sets `s i` are finite for all `i` from a finite set `t` and are empty for `i ∉ t`, then the
 union `⋃ i, s i` is a finite set. -/
@@ -2133,7 +2133,7 @@ theorem Finite.of_forall_not_lt_lt (h : ∀ ⦃x y z : α⦄, x < y → y < z 
 #align finite.of_forall_not_lt_lt Finite.of_forall_not_lt_lt
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (x y z «expr ∈ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:642:2: warning: expanding binder collection (x y z «expr ∈ » s) -/
 #print Set.finite_of_forall_not_lt_lt /-
 /-- If a set `s` does not contain any triple of elements `x < y < z`, then `s` is finite. -/
 theorem Set.finite_of_forall_not_lt_lt {s : Set α}
Diff
@@ -1021,7 +1021,7 @@ theorem Finite.iUnion {ι : Type _} {s : ι → Set α} {t : Set ι} (ht : t.Fin
   refine' Union_subset fun i x hx => _
   by_cases hi : i ∈ t
   · exact mem_bUnion hi hx
-  · rw [he i hi, mem_empty_iff_false] at hx 
+  · rw [he i hi, mem_empty_iff_false] at hx
     contradiction
 #align set.finite.Union Set.Finite.iUnion
 -/
@@ -1461,7 +1461,7 @@ theorem Finite.induction_on' {C : Set α → Prop} {S : Set α} (h : S.Finite) (
   by
   refine' @Set.Finite.induction_on α (fun s => s ⊆ S → C s) S h (fun _ => H0) _ subset.rfl
   intro a s has hsf hCs haS
-  rw [insert_subset] at haS 
+  rw [insert_subset] at haS
   exact H1 haS.1 haS.2 has (hCs haS.2)
 #align set.finite.induction_on' Set.Finite.induction_on'
 -/
@@ -1727,7 +1727,7 @@ theorem infinite_image2 (hfs : ∀ b ∈ t, InjOn (fun a => f a b) s) (hft : ∀
     (image2 f s t).Infinite ↔ s.Infinite ∧ t.Nonempty ∨ t.Infinite ∧ s.Nonempty :=
   by
   refine' ⟨fun h => Set.infinite_prod.1 _, _⟩
-  · rw [← image_uncurry_prod] at h 
+  · rw [← image_uncurry_prod] at h
     exact h.of_image _
   · rintro (⟨hs, b, hb⟩ | ⟨ht, a, ha⟩)
     · exact hs.image2_left hb (hfs _ hb)
@@ -1762,7 +1762,7 @@ theorem infinite_range_of_injective [Infinite α] {f : α → β} (hi : Injectiv
 
 #print Set.infinite_of_injective_forall_mem /-
 theorem infinite_of_injective_forall_mem [Infinite α] {s : Set β} {f : α → β} (hi : Injective f)
-    (hf : ∀ x : α, f x ∈ s) : s.Infinite := by rw [← range_subset_iff] at hf ;
+    (hf : ∀ x : α, f x ∈ s) : s.Infinite := by rw [← range_subset_iff] at hf;
   exact (infinite_range_of_injective hi).mono hf
 #align set.infinite_of_injective_forall_mem Set.infinite_of_injective_forall_mem
 -/
@@ -1839,7 +1839,7 @@ theorem Infinite.exists_lt_map_eq_of_mapsTo [LinearOrder α] {s : Set α} {t : S
 theorem Finite.exists_lt_map_eq_of_forall_mem [LinearOrder α] [Infinite α] {t : Set β} {f : α → β}
     (hf : ∀ a, f a ∈ t) (ht : t.Finite) : ∃ a b, a < b ∧ f a = f b :=
   by
-  rw [← maps_univ_to] at hf 
+  rw [← maps_univ_to] at hf
   obtain ⟨a, -, b, -, h⟩ := (@infinite_univ α _).exists_lt_map_eq_of_mapsTo hf ht
   exact ⟨a, b, h⟩
 #align set.finite.exists_lt_map_eq_of_forall_mem Set.Finite.exists_lt_map_eq_of_forall_mem
@@ -1898,7 +1898,7 @@ theorem Finite.iSup_biInf_of_monotone {ι ι' α : Type _} [Preorder ι'] [Nonem
   refine' hs.induction_on _ _
   · intro hf; simp [iSup_const]
   · intro a s has hs ihs hf
-    rw [ball_insert_iff] at hf 
+    rw [ball_insert_iff] at hf
     simp only [iInf_insert, ← ihs hf.2]
     exact iSup_inf_of_monotone hf.1 fun j₁ j₂ hj => iInf₂_mono fun i hi => hf.2 i hi hj
 #align set.finite.supr_binfi_of_monotone Set.Finite.iSup_biInf_of_monotone
Diff
@@ -55,7 +55,6 @@ variable {α : Type u} {β : Type v} {ι : Sort w} {γ : Type x}
 
 namespace Set
 
-#print Set.Finite /-
 /-- A set is finite if there is a `finset` with the same elements.
 This is represented as there being a `fintype` instance for the set
 coerced to a type.
@@ -65,8 +64,7 @@ so that it won't be frozen as a local instance. -/
 @[protected]
 inductive Finite (s : Set α) : Prop
   | intro : Fintype s → Finite
-#align set.finite Set.Finite
--/
+#align set.finite Set.Finiteₓ
 
 -- The `protected` attribute does not take effect within the same namespace block.
 end Set
Diff
@@ -694,7 +694,8 @@ namespace Multiset
 
 #print Multiset.finite_toSet /-
 @[simp]
-theorem finite_toSet (s : Multiset α) : {x | x ∈ s}.Finite := by classical
+theorem finite_toSet (s : Multiset α) : {x | x ∈ s}.Finite := by
+  classical simpa only [← Multiset.mem_toFinset] using s.to_finset.finite_to_set
 #align multiset.finite_to_set Multiset.finite_toSet
 -/
 
@@ -988,7 +989,11 @@ theorem Finite.sUnion {s : Set (Set α)} (hs : s.Finite) (H : ∀ t ∈ s, Set.F
 
 #print Set.Finite.biUnion /-
 theorem Finite.biUnion {ι} {s : Set ι} (hs : s.Finite) {t : ι → Set α}
-    (ht : ∀ i ∈ s, (t i).Finite) : (⋃ i ∈ s, t i).Finite := by classical
+    (ht : ∀ i ∈ s, (t i).Finite) : (⋃ i ∈ s, t i).Finite := by
+  classical
+  cases hs
+  haveI := fintype_bUnion s t fun i hi => (ht i hi).Fintype
+  apply to_finite
 #align set.finite.bUnion Set.Finite.biUnion
 -/
 
@@ -1198,7 +1203,10 @@ theorem finite_prod : (s ×ˢ t).Finite ↔ (s.Finite ∨ t = ∅) ∧ (t.Finite
 -/
 
 #print Set.Finite.offDiag /-
-protected theorem Finite.offDiag (hs : s.Finite) : s.offDiag.Finite := by classical
+protected theorem Finite.offDiag (hs : s.Finite) : s.offDiag.Finite := by
+  classical
+  cases hs
+  apply Set.toFinite
 #align set.finite.off_diag Set.Finite.offDiag
 -/
 
@@ -1212,7 +1220,11 @@ end Prod
 
 #print Set.Finite.seq /-
 theorem Finite.seq {f : Set (α → β)} {s : Set α} (hf : f.Finite) (hs : s.Finite) :
-    (f.seq s).Finite := by classical
+    (f.seq s).Finite := by
+  classical
+  cases hf
+  cases hs
+  apply to_finite
 #align set.finite.seq Set.Finite.seq
 -/
 
@@ -1268,6 +1280,8 @@ theorem Finite.pi {δ : Type _} [Finite δ] {κ : δ → Type _} {t : ∀ d, Set
   cases nonempty_fintype δ
   lift t to ∀ d, Finset (κ d) using ht
   classical
+  rw [← Fintype.coe_piFinset]
+  apply Finset.finite_toSet
 #align set.finite.pi Set.Finite.pi
 -/
 
@@ -1483,7 +1497,15 @@ theorem seq_of_forall_finite_exists {γ : Type _} {P : γ → Set γ → Prop}
   ⟨fun n =>
     @Nat.strongRecOn' (fun _ => γ) n fun n ih =>
       Classical.choose <| h (range fun m : Iio n => ih m.1 m.2) (finite_range _),
-    fun n => by classical⟩
+    fun n => by
+    classical
+    refine' Nat.strongRecOn' n fun n ih => _
+    rw [Nat.strongRecOn'_beta]
+    convert Classical.choose_spec (h _ _)
+    ext x
+    constructor
+    · rintro ⟨m, hmn, rfl⟩; exact ⟨⟨m, hmn⟩, rfl⟩
+    · rintro ⟨⟨m, hmn⟩, rfl⟩; exact ⟨m, hmn, rfl⟩⟩
 #align set.seq_of_forall_finite_exists Set.seq_of_forall_finite_exists
 -/
 
Diff
@@ -694,8 +694,7 @@ namespace Multiset
 
 #print Multiset.finite_toSet /-
 @[simp]
-theorem finite_toSet (s : Multiset α) : {x | x ∈ s}.Finite := by
-  classical simpa only [← Multiset.mem_toFinset] using s.to_finset.finite_to_set
+theorem finite_toSet (s : Multiset α) : {x | x ∈ s}.Finite := by classical
 #align multiset.finite_to_set Multiset.finite_toSet
 -/
 
@@ -989,11 +988,7 @@ theorem Finite.sUnion {s : Set (Set α)} (hs : s.Finite) (H : ∀ t ∈ s, Set.F
 
 #print Set.Finite.biUnion /-
 theorem Finite.biUnion {ι} {s : Set ι} (hs : s.Finite) {t : ι → Set α}
-    (ht : ∀ i ∈ s, (t i).Finite) : (⋃ i ∈ s, t i).Finite := by
-  classical
-  cases hs
-  haveI := fintype_bUnion s t fun i hi => (ht i hi).Fintype
-  apply to_finite
+    (ht : ∀ i ∈ s, (t i).Finite) : (⋃ i ∈ s, t i).Finite := by classical
 #align set.finite.bUnion Set.Finite.biUnion
 -/
 
@@ -1203,10 +1198,7 @@ theorem finite_prod : (s ×ˢ t).Finite ↔ (s.Finite ∨ t = ∅) ∧ (t.Finite
 -/
 
 #print Set.Finite.offDiag /-
-protected theorem Finite.offDiag (hs : s.Finite) : s.offDiag.Finite := by
-  classical
-  cases hs
-  apply Set.toFinite
+protected theorem Finite.offDiag (hs : s.Finite) : s.offDiag.Finite := by classical
 #align set.finite.off_diag Set.Finite.offDiag
 -/
 
@@ -1220,11 +1212,7 @@ end Prod
 
 #print Set.Finite.seq /-
 theorem Finite.seq {f : Set (α → β)} {s : Set α} (hf : f.Finite) (hs : s.Finite) :
-    (f.seq s).Finite := by
-  classical
-  cases hf
-  cases hs
-  apply to_finite
+    (f.seq s).Finite := by classical
 #align set.finite.seq Set.Finite.seq
 -/
 
@@ -1280,8 +1268,6 @@ theorem Finite.pi {δ : Type _} [Finite δ] {κ : δ → Type _} {t : ∀ d, Set
   cases nonempty_fintype δ
   lift t to ∀ d, Finset (κ d) using ht
   classical
-  rw [← Fintype.coe_piFinset]
-  apply Finset.finite_toSet
 #align set.finite.pi Set.Finite.pi
 -/
 
@@ -1497,15 +1483,7 @@ theorem seq_of_forall_finite_exists {γ : Type _} {P : γ → Set γ → Prop}
   ⟨fun n =>
     @Nat.strongRecOn' (fun _ => γ) n fun n ih =>
       Classical.choose <| h (range fun m : Iio n => ih m.1 m.2) (finite_range _),
-    fun n => by
-    classical
-    refine' Nat.strongRecOn' n fun n ih => _
-    rw [Nat.strongRecOn'_beta]
-    convert Classical.choose_spec (h _ _)
-    ext x
-    constructor
-    · rintro ⟨m, hmn, rfl⟩; exact ⟨⟨m, hmn⟩, rfl⟩
-    · rintro ⟨⟨m, hmn⟩, rfl⟩; exact ⟨m, hmn, rfl⟩⟩
+    fun n => by classical⟩
 #align set.seq_of_forall_finite_exists Set.seq_of_forall_finite_exists
 -/
 
Diff
@@ -1577,12 +1577,10 @@ theorem card_lt_card {s t : Set α} [Fintype s] [Fintype t] (h : s ⊂ t) :
 #align set.card_lt_card Set.card_lt_card
 -/
 
-#print Set.card_le_of_subset /-
 theorem card_le_of_subset {s t : Set α} [Fintype s] [Fintype t] (hsub : s ⊆ t) :
     Fintype.card s ≤ Fintype.card t :=
   Fintype.card_le_of_injective (Set.inclusion hsub) (Set.inclusion_injective hsub)
 #align set.card_le_of_subset Set.card_le_of_subset
--/
 
 #print Set.eq_of_subset_of_card_le /-
 theorem eq_of_subset_of_card_le {s t : Set α} [Fintype s] [Fintype t] (hsub : s ⊆ t)
Diff
@@ -1187,7 +1187,7 @@ protected theorem infinite_prod :
   by
   refine' ⟨fun h => _, _⟩
   · simp_rw [Set.Infinite, and_comm' ¬_, ← not_imp]
-    by_contra'
+    by_contra!
     exact h ((this.1 h.nonempty.snd).Prod <| this.2 h.nonempty.fst)
   · rintro (h | h)
     · exact h.1.prodLeft h.2
Diff
@@ -7,7 +7,7 @@ import Data.Finset.Basic
 import Data.Set.Functor
 import Data.Finite.Basic
 
-#align_import data.set.finite from "leanprover-community/mathlib"@"ffde2d8a6e689149e44fd95fa862c23a57f8c780"
+#align_import data.set.finite from "leanprover-community/mathlib"@"65a1391a0106c9204fe45bc73a039f056558cb83"
 
 /-!
 # Finite sets
@@ -1530,7 +1530,7 @@ theorem empty_card' {h : Fintype.{u} (∅ : Set α)} : @Fintype.card (∅ : Set
 #print Set.card_fintypeInsertOfNotMem /-
 theorem card_fintypeInsertOfNotMem {a : α} (s : Set α) [Fintype s] (h : a ∉ s) :
     @Fintype.card _ (fintypeInsertOfNotMem s h) = Fintype.card s + 1 := by
-  rw [fintype_insert_of_not_mem, Fintype.card_ofFinset] <;> simp [Finset.card, to_finset] <;> rfl
+  simp [fintype_insert_of_not_mem, Fintype.card_ofFinset]
 #align set.card_fintype_insert_of_not_mem Set.card_fintypeInsertOfNotMem
 -/
 
Diff
@@ -3,9 +3,9 @@ Copyright (c) 2017 Johannes Hölzl. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Mario Carneiro, Kyle Miller
 -/
-import Mathbin.Data.Finset.Basic
-import Mathbin.Data.Set.Functor
-import Mathbin.Data.Finite.Basic
+import Data.Finset.Basic
+import Data.Set.Functor
+import Data.Finite.Basic
 
 #align_import data.set.finite from "leanprover-community/mathlib"@"ffde2d8a6e689149e44fd95fa862c23a57f8c780"
 
@@ -842,11 +842,11 @@ instance finite_image (s : Set α) (f : α → β) [Finite s] : Finite (f '' s)
 #align finite.set.finite_image Finite.Set.finite_image
 -/
 
-/- ./././Mathport/Syntax/Translate/Expr.lean:372:4: unsupported set replacement {(f x) | x : α} -/
+/- ./././Mathport/Syntax/Translate/Expr.lean:373:4: unsupported set replacement {(f x) | x : α} -/
 #print Finite.Set.finite_replacement /-
 instance finite_replacement [Finite α] (f : α → β) :
     Finite
-      "./././Mathport/Syntax/Translate/Expr.lean:372:4: unsupported set replacement {(f x) | x : α}" :=
+      "./././Mathport/Syntax/Translate/Expr.lean:373:4: unsupported set replacement {(f x) | x : α}" :=
   Finite.Set.finite_range f
 #align finite.set.finite_replacement Finite.Set.finite_replacement
 -/
@@ -1012,7 +1012,7 @@ theorem Finite.sInter {α : Type _} {s : Set (Set α)} {t : Set α} (ht : t ∈
 #align set.finite.sInter Set.Finite.sInter
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (i «expr ∉ » t) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (i «expr ∉ » t) -/
 #print Set.Finite.iUnion /-
 /-- If sets `s i` are finite for all `i` from a finite set `t` and are empty for `i ∉ t`, then the
 union `⋃ i, s i` is a finite set. -/
@@ -2137,7 +2137,7 @@ theorem Finite.of_forall_not_lt_lt (h : ∀ ⦃x y z : α⦄, x < y → y < z 
 #align finite.of_forall_not_lt_lt Finite.of_forall_not_lt_lt
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (x y z «expr ∈ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (x y z «expr ∈ » s) -/
 #print Set.finite_of_forall_not_lt_lt /-
 /-- If a set `s` does not contain any triple of elements `x < y < z`, then `s` is finite. -/
 theorem Set.finite_of_forall_not_lt_lt {s : Set α}
Diff
@@ -7,7 +7,7 @@ import Mathbin.Data.Finset.Basic
 import Mathbin.Data.Set.Functor
 import Mathbin.Data.Finite.Basic
 
-#align_import data.set.finite from "leanprover-community/mathlib"@"7fdd4f3746cb059edfdb5d52cba98f66fce418c0"
+#align_import data.set.finite from "leanprover-community/mathlib"@"ffde2d8a6e689149e44fd95fa862c23a57f8c780"
 
 /-!
 # Finite sets
@@ -2050,7 +2050,7 @@ theorem Finite.exists_maximal_wrt [PartialOrder β] (f : α → β) (s : Set α)
 
 section
 
-variable [SemilatticeSup α] [Nonempty α] {s : Set α}
+variable [Preorder α] [IsDirected α (· ≤ ·)] [Nonempty α] {s : Set α}
 
 #print Set.Finite.bddAbove /-
 /-- A finite set is bounded above.-/
@@ -2078,12 +2078,12 @@ end
 
 section
 
-variable [SemilatticeInf α] [Nonempty α] {s : Set α}
+variable [Preorder α] [IsDirected α (· ≥ ·)] [Nonempty α] {s : Set α}
 
 #print Set.Finite.bddBelow /-
 /-- A finite set is bounded below.-/
 protected theorem Finite.bddBelow (hs : s.Finite) : BddBelow s :=
-  @Finite.bddAbove αᵒᵈ _ _ _ hs
+  @Finite.bddAbove αᵒᵈ _ _ _ _ hs
 #align set.finite.bdd_below Set.Finite.bddBelow
 -/
 
@@ -2091,16 +2091,13 @@ protected theorem Finite.bddBelow (hs : s.Finite) : BddBelow s :=
 /-- A finite union of sets which are all bounded below is still bounded below.-/
 theorem Finite.bddBelow_biUnion {I : Set β} {S : β → Set α} (H : I.Finite) :
     BddBelow (⋃ i ∈ I, S i) ↔ ∀ i ∈ I, BddBelow (S i) :=
-  @Finite.bddAbove_biUnion αᵒᵈ _ _ _ _ _ H
+  @Finite.bddAbove_biUnion αᵒᵈ _ _ _ _ _ _ H
 #align set.finite.bdd_below_bUnion Set.Finite.bddBelow_biUnion
 -/
 
 #print Set.infinite_of_not_bddBelow /-
 theorem infinite_of_not_bddBelow : ¬BddBelow s → s.Infinite :=
-  by
-  contrapose!
-  rw [not_infinite]
-  apply finite.bdd_below
+  mt Finite.bddBelow
 #align set.infinite_of_not_bdd_below Set.infinite_of_not_bddBelow
 -/
 
Diff
@@ -79,7 +79,7 @@ theorem finite_def {s : Set α} : s.Finite ↔ Nonempty (Fintype s) :=
 #align set.finite_def Set.finite_def
 -/
 
-alias finite_def ↔ finite.nonempty_fintype _
+alias ⟨finite.nonempty_fintype, _⟩ := finite_def
 #align set.finite.nonempty_fintype Set.Finite.nonempty_fintype
 
 #print Set.finite_coe_iff /-
@@ -174,7 +174,7 @@ theorem not_infinite {s : Set α} : ¬s.Infinite ↔ s.Finite :=
 #align set.not_infinite Set.not_infinite
 -/
 
-alias not_infinite ↔ _ Finite.not_infinite
+alias ⟨_, Finite.not_infinite⟩ := not_infinite
 #align set.finite.not_infinite Set.Finite.not_infinite
 
 attribute [simp] Finite.not_infinite
@@ -276,10 +276,10 @@ protected theorem toFinset_ssubset_toFinset : hs.toFinset ⊂ ht.toFinset ↔ s
 #align set.finite.to_finset_ssubset_to_finset Set.Finite.toFinset_ssubset_toFinset
 -/
 
-alias finite.to_finset_subset_to_finset ↔ _ to_finset_mono
+alias ⟨_, to_finset_mono⟩ := finite.to_finset_subset_to_finset
 #align set.finite.to_finset_mono Set.Finite.toFinset_mono
 
-alias finite.to_finset_ssubset_to_finset ↔ _ to_finset_strict_mono
+alias ⟨_, to_finset_strict_mono⟩ := finite.to_finset_ssubset_to_finset
 #align set.finite.to_finset_strict_mono Set.Finite.toFinset_strictMono
 
 attribute [protected] to_finset_mono to_finset_strict_mono
@@ -906,7 +906,7 @@ theorem finite_univ_iff : (@univ α).Finite ↔ Finite α :=
 #align set.finite_univ_iff Set.finite_univ_iff
 -/
 
-alias finite_univ_iff ↔ _root_.finite.of_finite_univ _
+alias ⟨_root_.finite.of_finite_univ, _⟩ := finite_univ_iff
 #align finite.of_finite_univ Finite.of_finite_univ
 
 #print Set.Finite.union /-
@@ -1641,7 +1641,7 @@ theorem infinite_coe_iff {s : Set α} : Infinite s ↔ s.Infinite :=
 #align set.infinite_coe_iff Set.infinite_coe_iff
 -/
 
-alias infinite_coe_iff ↔ _ infinite.to_subtype
+alias ⟨_, infinite.to_subtype⟩ := infinite_coe_iff
 #align set.infinite.to_subtype Set.Infinite.to_subtype
 
 #print Set.Infinite.natEmbedding /-
@@ -1703,7 +1703,7 @@ theorem infinite_image_iff {s : Set α} {f : α → β} (hi : InjOn f s) :
 #align set.infinite_image_iff Set.infinite_image_iff
 -/
 
-alias infinite_image_iff ↔ _ infinite.image
+alias ⟨_, infinite.image⟩ := infinite_image_iff
 #align set.infinite.image Set.Infinite.image
 
 attribute [protected] infinite.image
Diff
@@ -2,16 +2,13 @@
 Copyright (c) 2017 Johannes Hölzl. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Mario Carneiro, Kyle Miller
-
-! This file was ported from Lean 3 source module data.set.finite
-! leanprover-community/mathlib commit 7fdd4f3746cb059edfdb5d52cba98f66fce418c0
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Data.Finset.Basic
 import Mathbin.Data.Set.Functor
 import Mathbin.Data.Finite.Basic
 
+#align_import data.set.finite from "leanprover-community/mathlib"@"7fdd4f3746cb059edfdb5d52cba98f66fce418c0"
+
 /-!
 # Finite sets
 
@@ -1015,7 +1012,7 @@ theorem Finite.sInter {α : Type _} {s : Set (Set α)} {t : Set α} (ht : t ∈
 #align set.finite.sInter Set.Finite.sInter
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (i «expr ∉ » t) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (i «expr ∉ » t) -/
 #print Set.Finite.iUnion /-
 /-- If sets `s i` are finite for all `i` from a finite set `t` and are empty for `i ∉ t`, then the
 union `⋃ i, s i` is a finite set. -/
@@ -2143,7 +2140,7 @@ theorem Finite.of_forall_not_lt_lt (h : ∀ ⦃x y z : α⦄, x < y → y < z 
 #align finite.of_forall_not_lt_lt Finite.of_forall_not_lt_lt
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (x y z «expr ∈ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (x y z «expr ∈ » s) -/
 #print Set.finite_of_forall_not_lt_lt /-
 /-- If a set `s` does not contain any triple of elements `x < y < z`, then `s` is finite. -/
 theorem Set.finite_of_forall_not_lt_lt {s : Set α}
Diff
@@ -132,14 +132,18 @@ protected noncomputable def Finite.toFinset {s : Set α} (h : s.Finite) : Finset
 #align set.finite.to_finset Set.Finite.toFinset
 -/
 
+#print Set.Finite.toFinset_eq_toFinset /-
 theorem Finite.toFinset_eq_toFinset {s : Set α} [Fintype s] (h : s.Finite) :
     h.toFinset = s.toFinset := by rw [finite.to_finset]; congr
 #align set.finite.to_finset_eq_to_finset Set.Finite.toFinset_eq_toFinset
+-/
 
+#print Set.toFinite_toFinset /-
 @[simp]
 theorem toFinite_toFinset (s : Set α) [Fintype s] : s.toFinite.toFinset = s.toFinset :=
   s.toFinite.toFinset_eq_toFinset
 #align set.to_finite_to_finset Set.toFinite_toFinset
+-/
 
 #print Set.Finite.exists_finset /-
 theorem Finite.exists_finset {s : Set α} (h : s.Finite) :
Diff
@@ -240,10 +240,12 @@ theorem toFinset_subset {t : Finset α} : hs.toFinset ⊆ t ↔ s ⊆ t := by
 #align set.finite.to_finset_subset Set.Finite.toFinset_subset
 -/
 
+#print Set.Finite.toFinset_ssubset /-
 @[simp]
 theorem toFinset_ssubset {t : Finset α} : hs.toFinset ⊂ t ↔ s ⊂ t := by
   rw [← Finset.coe_ssubset, finite.coe_to_finset]
 #align set.finite.to_finset_ssubset Set.Finite.toFinset_ssubset
+-/
 
 #print Set.Finite.subset_toFinset /-
 @[simp]
@@ -252,10 +254,12 @@ theorem subset_toFinset {s : Finset α} : s ⊆ ht.toFinset ↔ ↑s ⊆ t := by
 #align set.finite.subset_to_finset Set.Finite.subset_toFinset
 -/
 
+#print Set.Finite.ssubset_toFinset /-
 @[simp]
 theorem ssubset_toFinset {s : Finset α} : s ⊂ ht.toFinset ↔ ↑s ⊂ t := by
   rw [← Finset.coe_ssubset, finite.coe_to_finset]
 #align set.finite.ssubset_to_finset Set.Finite.ssubset_toFinset
+-/
 
 #print Set.Finite.toFinset_subset_toFinset /-
 @[mono]
@@ -264,10 +268,12 @@ protected theorem toFinset_subset_toFinset : hs.toFinset ⊆ ht.toFinset ↔ s 
 #align set.finite.to_finset_subset_to_finset Set.Finite.toFinset_subset_toFinset
 -/
 
+#print Set.Finite.toFinset_ssubset_toFinset /-
 @[mono]
 protected theorem toFinset_ssubset_toFinset : hs.toFinset ⊂ ht.toFinset ↔ s ⊂ t := by
   simp only [← Finset.coe_ssubset, finite.coe_to_finset]
 #align set.finite.to_finset_ssubset_to_finset Set.Finite.toFinset_ssubset_toFinset
+-/
 
 alias finite.to_finset_subset_to_finset ↔ _ to_finset_mono
 #align set.finite.to_finset_mono Set.Finite.toFinset_mono
@@ -284,32 +290,44 @@ protected theorem toFinset_setOf [Fintype α] (p : α → Prop) [DecidablePred p
 #align set.finite.to_finset_set_of Set.Finite.toFinset_setOf
 -/
 
+#print Set.Finite.disjoint_toFinset /-
 @[simp]
 theorem disjoint_toFinset {hs : s.Finite} {ht : t.Finite} :
     Disjoint hs.toFinset ht.toFinset ↔ Disjoint s t :=
   @disjoint_toFinset _ _ _ hs.Fintype ht.Fintype
 #align set.finite.disjoint_to_finset Set.Finite.disjoint_toFinset
+-/
 
+#print Set.Finite.toFinset_inter /-
 protected theorem toFinset_inter [DecidableEq α] (hs : s.Finite) (ht : t.Finite)
     (h : (s ∩ t).Finite) : h.toFinset = hs.toFinset ∩ ht.toFinset := by ext; simp
 #align set.finite.to_finset_inter Set.Finite.toFinset_inter
+-/
 
+#print Set.Finite.toFinset_union /-
 protected theorem toFinset_union [DecidableEq α] (hs : s.Finite) (ht : t.Finite)
     (h : (s ∪ t).Finite) : h.toFinset = hs.toFinset ∪ ht.toFinset := by ext; simp
 #align set.finite.to_finset_union Set.Finite.toFinset_union
+-/
 
+#print Set.Finite.toFinset_diff /-
 protected theorem toFinset_diff [DecidableEq α] (hs : s.Finite) (ht : t.Finite)
     (h : (s \ t).Finite) : h.toFinset = hs.toFinset \ ht.toFinset := by ext; simp
 #align set.finite.to_finset_diff Set.Finite.toFinset_diff
+-/
 
+#print Set.Finite.toFinset_symmDiff /-
 protected theorem toFinset_symmDiff [DecidableEq α] (hs : s.Finite) (ht : t.Finite)
     (h : (s ∆ t).Finite) : h.toFinset = hs.toFinset ∆ ht.toFinset := by ext;
   simp [mem_symm_diff, Finset.mem_symmDiff]
 #align set.finite.to_finset_symm_diff Set.Finite.toFinset_symmDiff
+-/
 
+#print Set.Finite.toFinset_compl /-
 protected theorem toFinset_compl [DecidableEq α] [Fintype α] (hs : s.Finite) (h : sᶜ.Finite) :
     h.toFinset = hs.toFinsetᶜ := by ext; simp
 #align set.finite.to_finset_compl Set.Finite.toFinset_compl
+-/
 
 #print Set.Finite.toFinset_empty /-
 @[simp]
@@ -375,10 +393,12 @@ noncomputable def fintypeOfFiniteUniv (H : (univ : Set α).Finite) : Fintype α
 #align set.fintype_of_finite_univ Set.fintypeOfFiniteUniv
 -/
 
+#print Set.fintypeUnion /-
 instance fintypeUnion [DecidableEq α] (s t : Set α) [Fintype s] [Fintype t] :
     Fintype (s ∪ t : Set α) :=
   Fintype.ofFinset (s.toFinset ∪ t.toFinset) <| by simp
 #align set.fintype_union Set.fintypeUnion
+-/
 
 #print Set.fintypeSep /-
 instance fintypeSep (s : Set α) (p : α → Prop) [Fintype s] [DecidablePred p] :
@@ -387,22 +407,28 @@ instance fintypeSep (s : Set α) (p : α → Prop) [Fintype s] [DecidablePred p]
 #align set.fintype_sep Set.fintypeSep
 -/
 
+#print Set.fintypeInter /-
 instance fintypeInter (s t : Set α) [DecidableEq α] [Fintype s] [Fintype t] :
     Fintype (s ∩ t : Set α) :=
   Fintype.ofFinset (s.toFinset ∩ t.toFinset) <| by simp
 #align set.fintype_inter Set.fintypeInter
+-/
 
+#print Set.fintypeInterOfLeft /-
 /-- A `fintype` instance for set intersection where the left set has a `fintype` instance. -/
 instance fintypeInterOfLeft (s t : Set α) [Fintype s] [DecidablePred (· ∈ t)] :
     Fintype (s ∩ t : Set α) :=
   Fintype.ofFinset (s.toFinset.filterₓ (· ∈ t)) <| by simp
 #align set.fintype_inter_of_left Set.fintypeInterOfLeft
+-/
 
+#print Set.fintypeInterOfRight /-
 /-- A `fintype` instance for set intersection where the right set has a `fintype` instance. -/
 instance fintypeInterOfRight (s t : Set α) [Fintype t] [DecidablePred (· ∈ s)] :
     Fintype (s ∩ t : Set α) :=
   Fintype.ofFinset (t.toFinset.filterₓ (· ∈ s)) <| by simp [and_comm']
 #align set.fintype_inter_of_right Set.fintypeInterOfRight
+-/
 
 #print Set.fintypeSubset /-
 /-- A `fintype` structure on a set defines a `fintype` structure on its subset. -/
@@ -411,15 +437,19 @@ def fintypeSubset (s : Set α) {t : Set α} [Fintype s] [DecidablePred (· ∈ t
 #align set.fintype_subset Set.fintypeSubset
 -/
 
+#print Set.fintypeDiff /-
 instance fintypeDiff [DecidableEq α] (s t : Set α) [Fintype s] [Fintype t] :
     Fintype (s \ t : Set α) :=
   Fintype.ofFinset (s.toFinset \ t.toFinset) <| by simp
 #align set.fintype_diff Set.fintypeDiff
+-/
 
+#print Set.fintypeDiffLeft /-
 instance fintypeDiffLeft (s t : Set α) [Fintype s] [DecidablePred (· ∈ t)] :
     Fintype (s \ t : Set α) :=
   Set.fintypeSep s (· ∈ tᶜ)
 #align set.fintype_diff_left Set.fintypeDiffLeft
+-/
 
 #print Set.fintypeiUnion /-
 instance fintypeiUnion [DecidableEq α] [Fintype (PLift ι)] (f : ι → Set α) [∀ i, Fintype (f i)] :
@@ -709,9 +739,11 @@ example : Finite (∅ : Set α) :=
 example (a : α) : Finite ({a} : Set α) :=
   inferInstance
 
+#print Finite.Set.finite_union /-
 instance finite_union (s t : Set α) [Finite s] [Finite t] : Finite (s ∪ t : Set α) := by
   cases nonempty_fintype s; cases nonempty_fintype t; infer_instance
 #align finite.set.finite_union Finite.Set.finite_union
+-/
 
 #print Finite.Set.finite_sep /-
 instance finite_sep (s : Set α) (p : α → Prop) [Finite s] : Finite ({a ∈ s | p a} : Set α) := by
@@ -725,17 +757,23 @@ protected theorem subset (s : Set α) {t : Set α} [Finite s] (h : t ⊆ s) : Fi
 #align finite.set.subset Finite.Set.subset
 -/
 
+#print Finite.Set.finite_inter_of_right /-
 instance finite_inter_of_right (s t : Set α) [Finite t] : Finite (s ∩ t : Set α) :=
   Finite.Set.subset t (inter_subset_right s t)
 #align finite.set.finite_inter_of_right Finite.Set.finite_inter_of_right
+-/
 
+#print Finite.Set.finite_inter_of_left /-
 instance finite_inter_of_left (s t : Set α) [Finite s] : Finite (s ∩ t : Set α) :=
   Finite.Set.subset s (inter_subset_left s t)
 #align finite.set.finite_inter_of_left Finite.Set.finite_inter_of_left
+-/
 
+#print Finite.Set.finite_diff /-
 instance finite_diff (s t : Set α) [Finite s] : Finite (s \ t : Set α) :=
   Finite.Set.subset s (diff_subset s t)
 #align finite.set.finite_diff Finite.Set.finite_diff
+-/
 
 #print Finite.Set.finite_range /-
 instance finite_range (f : ι → α) [Finite ι] : Finite (range f) := by
@@ -757,6 +795,7 @@ instance finite_sUnion {s : Set (Set α)} [Finite s] [H : ∀ t : s, Finite (t :
 #align finite.set.finite_sUnion Finite.Set.finite_sUnion
 -/
 
+#print Finite.Set.finite_biUnion /-
 theorem finite_biUnion {ι : Type _} (s : Set ι) [Finite s] (t : ι → Set α)
     (H : ∀ i ∈ s, Finite (t i)) : Finite (⋃ x ∈ s, t x) :=
   by
@@ -764,6 +803,7 @@ theorem finite_biUnion {ι : Type _} (s : Set ι) [Finite s] (t : ι → Set α)
   haveI : ∀ i : s, Finite (t i) := fun i => H i i.property
   infer_instance
 #align finite.set.finite_bUnion Finite.Set.finite_biUnion
+-/
 
 #print Finite.Set.finite_biUnion' /-
 instance finite_biUnion' {ι : Type _} (s : Set ι) [Finite s] (t : ι → Set α) [∀ i, Finite (t i)] :
@@ -868,17 +908,23 @@ theorem finite_univ_iff : (@univ α).Finite ↔ Finite α :=
 alias finite_univ_iff ↔ _root_.finite.of_finite_univ _
 #align finite.of_finite_univ Finite.of_finite_univ
 
+#print Set.Finite.union /-
 theorem Finite.union {s t : Set α} (hs : s.Finite) (ht : t.Finite) : (s ∪ t).Finite := by cases hs;
   cases ht; apply to_finite
 #align set.finite.union Set.Finite.union
+-/
 
+#print Set.Finite.finite_of_compl /-
 theorem Finite.finite_of_compl {s : Set α} (hs : s.Finite) (hsc : sᶜ.Finite) : Finite α := by
   rw [← finite_univ_iff, ← union_compl_self s]; exact hs.union hsc
 #align set.finite.finite_of_compl Set.Finite.finite_of_compl
+-/
 
+#print Set.Finite.sup /-
 theorem Finite.sup {s t : Set α} : s.Finite → t.Finite → (s ⊔ t).Finite :=
   Finite.union
 #align set.finite.sup Set.Finite.sup
+-/
 
 #print Set.Finite.sep /-
 theorem Finite.sep {s : Set α} (hs : s.Finite) (p : α → Prop) : {a ∈ s | p a}.Finite := by cases hs;
@@ -886,21 +932,29 @@ theorem Finite.sep {s : Set α} (hs : s.Finite) (p : α → Prop) : {a ∈ s | p
 #align set.finite.sep Set.Finite.sep
 -/
 
+#print Set.Finite.inter_of_left /-
 theorem Finite.inter_of_left {s : Set α} (hs : s.Finite) (t : Set α) : (s ∩ t).Finite := by
   cases hs; apply to_finite
 #align set.finite.inter_of_left Set.Finite.inter_of_left
+-/
 
+#print Set.Finite.inter_of_right /-
 theorem Finite.inter_of_right {s : Set α} (hs : s.Finite) (t : Set α) : (t ∩ s).Finite := by
   cases hs; apply to_finite
 #align set.finite.inter_of_right Set.Finite.inter_of_right
+-/
 
+#print Set.Finite.inf_of_left /-
 theorem Finite.inf_of_left {s : Set α} (h : s.Finite) (t : Set α) : (s ⊓ t).Finite :=
   h.inter_of_left t
 #align set.finite.inf_of_left Set.Finite.inf_of_left
+-/
 
+#print Set.Finite.inf_of_right /-
 theorem Finite.inf_of_right {s : Set α} (h : s.Finite) (t : Set α) : (t ⊓ s).Finite :=
   h.inter_of_right t
 #align set.finite.inf_of_right Set.Finite.inf_of_right
+-/
 
 #print Set.Finite.subset /-
 theorem Finite.subset {s : Set α} (hs : s.Finite) {t : Set α} (ht : t ⊆ s) : t.Finite := by
@@ -908,13 +962,17 @@ theorem Finite.subset {s : Set α} (hs : s.Finite) {t : Set α} (ht : t ⊆ s) :
 #align set.finite.subset Set.Finite.subset
 -/
 
+#print Set.Finite.diff /-
 theorem Finite.diff {s : Set α} (hs : s.Finite) (t : Set α) : (s \ t).Finite := by cases hs;
   apply to_finite
 #align set.finite.diff Set.Finite.diff
+-/
 
+#print Set.Finite.of_diff /-
 theorem Finite.of_diff {s t : Set α} (hd : (s \ t).Finite) (ht : t.Finite) : s.Finite :=
   (hd.union ht).Subset <| subset_diff_union _ _
 #align set.finite.of_diff Set.Finite.of_diff
+-/
 
 #print Set.finite_iUnion /-
 theorem finite_iUnion [Finite ι] {f : ι → Set α} (H : ∀ i, (f i).Finite) : (⋃ i, f i).Finite := by
@@ -928,6 +986,7 @@ theorem Finite.sUnion {s : Set (Set α)} (hs : s.Finite) (H : ∀ t ∈ s, Set.F
 #align set.finite.sUnion Set.Finite.sUnion
 -/
 
+#print Set.Finite.biUnion /-
 theorem Finite.biUnion {ι} {s : Set ι} (hs : s.Finite) {t : ι → Set α}
     (ht : ∀ i ∈ s, (t i).Finite) : (⋃ i ∈ s, t i).Finite := by
   classical
@@ -935,12 +994,15 @@ theorem Finite.biUnion {ι} {s : Set ι} (hs : s.Finite) {t : ι → Set α}
   haveI := fintype_bUnion s t fun i hi => (ht i hi).Fintype
   apply to_finite
 #align set.finite.bUnion Set.Finite.biUnion
+-/
 
+#print Set.Finite.biUnion' /-
 /-- Dependent version of `finite.bUnion`. -/
 theorem Finite.biUnion' {ι} {s : Set ι} (hs : s.Finite) {t : ∀ i ∈ s, Set α}
     (ht : ∀ i ∈ s, (t i ‹_›).Finite) : (⋃ i ∈ s, t i ‹_›).Finite := by cases hs;
   rw [bUnion_eq_Union]; apply finite_Union fun i : s => ht i.1 i.2
 #align set.finite.bUnion' Set.Finite.biUnion'
+-/
 
 #print Set.Finite.sInter /-
 theorem Finite.sInter {α : Type _} {s : Set (Set α)} {t : Set α} (ht : t ∈ s) (hf : t.Finite) :
@@ -950,6 +1012,7 @@ theorem Finite.sInter {α : Type _} {s : Set (Set α)} {t : Set α} (ht : t ∈
 -/
 
 /- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (i «expr ∉ » t) -/
+#print Set.Finite.iUnion /-
 /-- If sets `s i` are finite for all `i` from a finite set `t` and are empty for `i ∉ t`, then the
 union `⋃ i, s i` is a finite set. -/
 theorem Finite.iUnion {ι : Type _} {s : ι → Set α} {t : Set ι} (ht : t.Finite)
@@ -962,6 +1025,7 @@ theorem Finite.iUnion {ι : Type _} {s : ι → Set α} {t : Set ι} (ht : t.Fin
   · rw [he i hi, mem_empty_iff_false] at hx 
     contradiction
 #align set.finite.Union Set.Finite.iUnion
+-/
 
 #print Set.Finite.bind /-
 theorem Finite.bind {α β} {s : Set α} {f : α → Set β} (h : s.Finite) (hf : ∀ a ∈ s, (f a).Finite) :
@@ -1207,6 +1271,7 @@ theorem Finite.finite_subsets {α : Type u} {a : Set α} (h : a.Finite) : {b | b
 #align set.finite.finite_subsets Set.Finite.finite_subsets
 -/
 
+#print Set.Finite.pi /-
 /-- Finite product of finite sets is finite -/
 theorem Finite.pi {δ : Type _} [Finite δ] {κ : δ → Type _} {t : ∀ d, Set (κ d)}
     (ht : ∀ d, (t d).Finite) : (pi univ t).Finite :=
@@ -1217,6 +1282,7 @@ theorem Finite.pi {δ : Type _} [Finite δ] {κ : δ → Type _} {t : ∀ d, Set
   rw [← Fintype.coe_piFinset]
   apply Finset.finite_toSet
 #align set.finite.pi Set.Finite.pi
+-/
 
 #print Set.union_finset_finite_of_range_finite /-
 /-- A finite union of finsets is finite. -/
@@ -1249,11 +1315,13 @@ instance Finite.inhabited : Inhabited { s : Set α // s.Finite } :=
 #align set.finite.inhabited Set.Finite.inhabited
 -/
 
+#print Set.finite_union /-
 @[simp]
 theorem finite_union {s t : Set α} : (s ∪ t).Finite ↔ s.Finite ∧ t.Finite :=
   ⟨fun h => ⟨h.Subset (subset_union_left _ _), h.Subset (subset_union_right _ _)⟩, fun ⟨hs, ht⟩ =>
     hs.union ht⟩
 #align set.finite_union Set.finite_union
+-/
 
 #print Set.finite_image_iff /-
 theorem finite_image_iff {s : Set α} {f : α → β} (hi : InjOn f s) : (f '' s).Finite ↔ s.Finite :=
@@ -1335,11 +1403,14 @@ theorem finite_image_fst_and_snd_iff {s : Set (α × β)} :
 #align set.finite_image_fst_and_snd_iff Set.finite_image_fst_and_snd_iff
 -/
 
+#print Set.forall_finite_image_eval_iff /-
 theorem forall_finite_image_eval_iff {δ : Type _} [Finite δ] {κ : δ → Type _} {s : Set (∀ d, κ d)} :
     (∀ d, (eval d '' s).Finite) ↔ s.Finite :=
   ⟨fun h => (Finite.pi h).Subset <| subset_pi_eval_image _ _, fun h d => h.image _⟩
 #align set.forall_finite_image_eval_iff Set.forall_finite_image_eval_iff
+-/
 
+#print Set.finite_subset_iUnion /-
 theorem finite_subset_iUnion {s : Set α} (hs : s.Finite) {ι} {t : ι → Set α} (h : s ⊆ ⋃ i, t i) :
     ∃ I : Set ι, I.Finite ∧ s ⊆ ⋃ i ∈ I, t i :=
   by
@@ -1349,7 +1420,9 @@ theorem finite_subset_iUnion {s : Set α} (hs : s.Finite) {ι} {t : ι → Set 
   rw [bUnion_range, mem_Union]
   exact ⟨⟨x, hx⟩, hf _⟩
 #align set.finite_subset_Union Set.finite_subset_iUnion
+-/
 
+#print Set.eq_finite_iUnion_of_finite_subset_iUnion /-
 theorem eq_finite_iUnion_of_finite_subset_iUnion {ι} {s : ι → Set α} {t : Set α} (tfin : t.Finite)
     (h : t ⊆ ⋃ i, s i) :
     ∃ I : Set ι,
@@ -1366,6 +1439,7 @@ theorem eq_finite_iUnion_of_finite_subset_iUnion {ι} {s : ι → Set α} {t : S
     · rintro ⟨i, hi, H⟩
       exact H⟩
 #align set.eq_finite_Union_of_finite_subset_Union Set.eq_finite_iUnion_of_finite_subset_iUnion
+-/
 
 #print Set.Finite.induction_on /-
 @[elab_as_elim]
@@ -1494,11 +1568,13 @@ theorem card_singleton (a : α) : Fintype.card ({a} : Set α) = 1 :=
 #align set.card_singleton Set.card_singleton
 -/
 
+#print Set.card_lt_card /-
 theorem card_lt_card {s t : Set α} [Fintype s] [Fintype t] (h : s ⊂ t) :
     Fintype.card s < Fintype.card t :=
   Fintype.card_lt_of_injective_not_surjective (Set.inclusion h.1) (Set.inclusion_injective h.1)
     fun hst => (ssubset_iff_subset_ne.1 h).2 (eq_of_inclusion_surjective hst)
 #align set.card_lt_card Set.card_lt_card
+-/
 
 #print Set.card_le_of_subset /-
 theorem card_le_of_subset {s t : Set α} [Fintype s] [Fintype t] (hsub : s ⊆ t) :
@@ -1582,13 +1658,17 @@ theorem Infinite.exists_subset_card_eq {s : Set α} (hs : s.Infinite) (n : ℕ)
 #align set.infinite.exists_subset_card_eq Set.Infinite.exists_subset_card_eq
 -/
 
+#print Set.infinite_of_finite_compl /-
 theorem infinite_of_finite_compl [Infinite α] {s : Set α} (hs : sᶜ.Finite) : s.Infinite := fun h =>
   Set.infinite_univ (by simpa using hs.union h)
 #align set.infinite_of_finite_compl Set.infinite_of_finite_compl
+-/
 
+#print Set.Finite.infinite_compl /-
 theorem Finite.infinite_compl [Infinite α] {s : Set α} (hs : s.Finite) : sᶜ.Infinite := fun h =>
   Set.infinite_univ (by simpa using hs.union h)
 #align set.finite.infinite_compl Set.Finite.infinite_compl
+-/
 
 #print Set.Infinite.mono /-
 protected theorem Infinite.mono {s t : Set α} (h : s ⊆ t) : s.Infinite → t.Infinite :=
@@ -1596,14 +1676,18 @@ protected theorem Infinite.mono {s t : Set α} (h : s ⊆ t) : s.Infinite → t.
 #align set.infinite.mono Set.Infinite.mono
 -/
 
+#print Set.Infinite.diff /-
 theorem Infinite.diff {s t : Set α} (hs : s.Infinite) (ht : t.Finite) : (s \ t).Infinite := fun h =>
   hs <| h.of_diff ht
 #align set.infinite.diff Set.Infinite.diff
+-/
 
+#print Set.infinite_union /-
 @[simp]
 theorem infinite_union {s t : Set α} : (s ∪ t).Infinite ↔ s.Infinite ∨ t.Infinite := by
   simp only [Set.Infinite, finite_union, not_and_or]
 #align set.infinite_union Set.infinite_union
+-/
 
 #print Set.Infinite.of_image /-
 theorem Infinite.of_image (f : α → β) {s : Set α} (hs : (f '' s).Infinite) : s.Infinite :=
@@ -1663,12 +1747,14 @@ theorem infinite_of_injOn_mapsTo {s : Set α} {t : Set β} {f : α → β} (hi :
 #align set.infinite_of_inj_on_maps_to Set.infinite_of_injOn_mapsTo
 -/
 
+#print Set.Infinite.exists_ne_map_eq_of_mapsTo /-
 theorem Infinite.exists_ne_map_eq_of_mapsTo {s : Set α} {t : Set β} {f : α → β} (hs : s.Infinite)
     (hf : MapsTo f s t) (ht : t.Finite) : ∃ x ∈ s, ∃ y ∈ s, x ≠ y ∧ f x = f y :=
   by
   contrapose! ht
   exact infinite_of_inj_on_maps_to (fun x hx y hy => not_imp_not.1 (ht x hx y hy)) hf hs
 #align set.infinite.exists_ne_map_eq_of_maps_to Set.Infinite.exists_ne_map_eq_of_mapsTo
+-/
 
 #print Set.infinite_range_of_injective /-
 theorem infinite_range_of_injective [Infinite α] {f : α → β} (hi : Injective f) :
@@ -1684,11 +1770,13 @@ theorem infinite_of_injective_forall_mem [Infinite α] {s : Set β} {f : α →
 #align set.infinite_of_injective_forall_mem Set.infinite_of_injective_forall_mem
 -/
 
+#print Set.Infinite.exists_not_mem_finset /-
 theorem Infinite.exists_not_mem_finset {s : Set α} (hs : s.Infinite) (f : Finset α) :
     ∃ a ∈ s, a ∉ f :=
   let ⟨a, has, haf⟩ := (hs.diffₓ (toFinite f)).Nonempty
   ⟨a, has, fun h => haf <| Finset.mem_coe.1 h⟩
 #align set.infinite.exists_not_mem_finset Set.Infinite.exists_not_mem_finset
+-/
 
 #print Set.not_injOn_infinite_finite_image /-
 theorem not_injOn_infinite_finite_image {f : α → β} {s : Set α} (h_inf : s.Infinite)
@@ -1711,6 +1799,7 @@ section Preorder
 
 variable [Preorder α] [Nonempty α] {s : Set α}
 
+#print Set.infinite_of_forall_exists_gt /-
 theorem infinite_of_forall_exists_gt (h : ∀ a, ∃ b ∈ s, a < b) : s.Infinite :=
   by
   inhabit α
@@ -1719,10 +1808,13 @@ theorem infinite_of_forall_exists_gt (h : ∀ a, ∃ b ∈ s, a < b) : s.Infinit
   refine' infinite_of_injective_forall_mem (strictMono_nat_of_lt_succ fun n => _).Injective hf
   exact (h _).choose_spec.choose_spec
 #align set.infinite_of_forall_exists_gt Set.infinite_of_forall_exists_gt
+-/
 
+#print Set.infinite_of_forall_exists_lt /-
 theorem infinite_of_forall_exists_lt (h : ∀ a, ∃ b ∈ s, b < a) : s.Infinite :=
   @infinite_of_forall_exists_gt αᵒᵈ _ _ _ h
 #align set.infinite_of_forall_exists_lt Set.infinite_of_forall_exists_lt
+-/
 
 end Preorder
 
@@ -1738,11 +1830,13 @@ theorem finite_isBot (α : Type _) [PartialOrder α] : {x : α | IsBot x}.Finite
 #align set.finite_is_bot Set.finite_isBot
 -/
 
+#print Set.Infinite.exists_lt_map_eq_of_mapsTo /-
 theorem Infinite.exists_lt_map_eq_of_mapsTo [LinearOrder α] {s : Set α} {t : Set β} {f : α → β}
     (hs : s.Infinite) (hf : MapsTo f s t) (ht : t.Finite) : ∃ x ∈ s, ∃ y ∈ s, x < y ∧ f x = f y :=
   let ⟨x, hx, y, hy, hxy, hf⟩ := hs.exists_ne_map_eq_of_mapsTo hf ht
   hxy.lt_or_lt.elim (fun hxy => ⟨x, hx, y, hy, hxy, hf⟩) fun hyx => ⟨y, hy, x, hx, hyx, hf.symm⟩
 #align set.infinite.exists_lt_map_eq_of_maps_to Set.Infinite.exists_lt_map_eq_of_mapsTo
+-/
 
 #print Set.Finite.exists_lt_map_eq_of_forall_mem /-
 theorem Finite.exists_lt_map_eq_of_forall_mem [LinearOrder α] [Infinite α] {t : Set β} {f : α → β}
@@ -1754,19 +1848,23 @@ theorem Finite.exists_lt_map_eq_of_forall_mem [LinearOrder α] [Infinite α] {t
 #align set.finite.exists_lt_map_eq_of_forall_mem Set.Finite.exists_lt_map_eq_of_forall_mem
 -/
 
+#print Set.exists_min_image /-
 theorem exists_min_image [LinearOrder β] (s : Set α) (f : α → β) (h1 : s.Finite) :
     s.Nonempty → ∃ a ∈ s, ∀ b ∈ s, f a ≤ f b
   | ⟨x, hx⟩ => by
     simpa only [exists_prop, finite.mem_to_finset] using
       h1.to_finset.exists_min_image f ⟨x, h1.mem_to_finset.2 hx⟩
 #align set.exists_min_image Set.exists_min_image
+-/
 
+#print Set.exists_max_image /-
 theorem exists_max_image [LinearOrder β] (s : Set α) (f : α → β) (h1 : s.Finite) :
     s.Nonempty → ∃ a ∈ s, ∀ b ∈ s, f b ≤ f a
   | ⟨x, hx⟩ => by
     simpa only [exists_prop, finite.mem_to_finset] using
       h1.to_finset.exists_max_image f ⟨x, h1.mem_to_finset.2 hx⟩
 #align set.exists_max_image Set.exists_max_image
+-/
 
 #print Set.exists_lower_bound_image /-
 theorem exists_lower_bound_image [hα : Nonempty α] [LinearOrder β] (s : Set α) (f : α → β)
@@ -1794,6 +1892,7 @@ theorem exists_upper_bound_image [hα : Nonempty α] [LinearOrder β] (s : Set 
 #align set.exists_upper_bound_image Set.exists_upper_bound_image
 -/
 
+#print Set.Finite.iSup_biInf_of_monotone /-
 theorem Finite.iSup_biInf_of_monotone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Frame α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
     (hf : ∀ i ∈ s, Monotone (f i)) : (⨆ j, ⨅ i ∈ s, f i j) = ⨅ i ∈ s, ⨆ j, f i j :=
@@ -1806,77 +1905,101 @@ theorem Finite.iSup_biInf_of_monotone {ι ι' α : Type _} [Preorder ι'] [Nonem
     simp only [iInf_insert, ← ihs hf.2]
     exact iSup_inf_of_monotone hf.1 fun j₁ j₂ hj => iInf₂_mono fun i hi => hf.2 i hi hj
 #align set.finite.supr_binfi_of_monotone Set.Finite.iSup_biInf_of_monotone
+-/
 
+#print Set.Finite.iSup_biInf_of_antitone /-
 theorem Finite.iSup_biInf_of_antitone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Frame α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
     (hf : ∀ i ∈ s, Antitone (f i)) : (⨆ j, ⨅ i ∈ s, f i j) = ⨅ i ∈ s, ⨆ j, f i j :=
   @Finite.iSup_biInf_of_monotone ι ι'ᵒᵈ α _ _ _ _ _ hs _ fun i hi => (hf i hi).dual_left
 #align set.finite.supr_binfi_of_antitone Set.Finite.iSup_biInf_of_antitone
+-/
 
+#print Set.Finite.iInf_biSup_of_monotone /-
 theorem Finite.iInf_biSup_of_monotone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Coframe α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
     (hf : ∀ i ∈ s, Monotone (f i)) : (⨅ j, ⨆ i ∈ s, f i j) = ⨆ i ∈ s, ⨅ j, f i j :=
   hs.iSup_biInf_of_antitone fun i hi => (hf i hi).dual_right
 #align set.finite.infi_bsupr_of_monotone Set.Finite.iInf_biSup_of_monotone
+-/
 
+#print Set.Finite.iInf_biSup_of_antitone /-
 theorem Finite.iInf_biSup_of_antitone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Coframe α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
     (hf : ∀ i ∈ s, Antitone (f i)) : (⨅ j, ⨆ i ∈ s, f i j) = ⨆ i ∈ s, ⨅ j, f i j :=
   hs.iSup_biInf_of_monotone fun i hi => (hf i hi).dual_right
 #align set.finite.infi_bsupr_of_antitone Set.Finite.iInf_biSup_of_antitone
+-/
 
+#print Set.iSup_iInf_of_monotone /-
 theorem Set.iSup_iInf_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Frame α] {f : ι → ι' → α} (hf : ∀ i, Monotone (f i)) :
     (⨆ j, ⨅ i, f i j) = ⨅ i, ⨆ j, f i j := by
   simpa only [iInf_univ] using finite_univ.supr_binfi_of_monotone fun i hi => hf i
 #align supr_infi_of_monotone Set.iSup_iInf_of_monotone
+-/
 
+#print Set.iSup_iInf_of_antitone /-
 theorem Set.iSup_iInf_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Frame α] {f : ι → ι' → α} (hf : ∀ i, Antitone (f i)) :
     (⨆ j, ⨅ i, f i j) = ⨅ i, ⨆ j, f i j :=
   @Set.iSup_iInf_of_monotone ι ι'ᵒᵈ α _ _ _ _ _ _ fun i => (hf i).dual_left
 #align supr_infi_of_antitone Set.iSup_iInf_of_antitone
+-/
 
+#print Set.iInf_iSup_of_monotone /-
 theorem Set.iInf_iSup_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Coframe α] {f : ι → ι' → α} (hf : ∀ i, Monotone (f i)) :
     (⨅ j, ⨆ i, f i j) = ⨆ i, ⨅ j, f i j :=
   Set.iSup_iInf_of_antitone fun i => (hf i).dual_right
 #align infi_supr_of_monotone Set.iInf_iSup_of_monotone
+-/
 
+#print Set.iInf_iSup_of_antitone /-
 theorem Set.iInf_iSup_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Coframe α] {f : ι → ι' → α} (hf : ∀ i, Antitone (f i)) :
     (⨅ j, ⨆ i, f i j) = ⨆ i, ⨅ j, f i j :=
   Set.iSup_iInf_of_monotone fun i => (hf i).dual_right
 #align infi_supr_of_antitone Set.iInf_iSup_of_antitone
+-/
 
+#print Set.iUnion_iInter_of_monotone /-
 /-- An increasing union distributes over finite intersection. -/
 theorem iUnion_iInter_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [IsDirected ι' (· ≤ ·)]
     [Nonempty ι'] {s : ι → ι' → Set α} (hs : ∀ i, Monotone (s i)) :
     (⋃ j : ι', ⋂ i : ι, s i j) = ⋂ i : ι, ⋃ j : ι', s i j :=
   Set.iSup_iInf_of_monotone hs
 #align set.Union_Inter_of_monotone Set.iUnion_iInter_of_monotone
+-/
 
+#print Set.iUnion_iInter_of_antitone /-
 /-- A decreasing union distributes over finite intersection. -/
 theorem iUnion_iInter_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι']
     [IsDirected ι' (swap (· ≤ ·))] [Nonempty ι'] {s : ι → ι' → Set α} (hs : ∀ i, Antitone (s i)) :
     (⋃ j : ι', ⋂ i : ι, s i j) = ⋂ i : ι, ⋃ j : ι', s i j :=
   Set.iSup_iInf_of_antitone hs
 #align set.Union_Inter_of_antitone Set.iUnion_iInter_of_antitone
+-/
 
+#print Set.iInter_iUnion_of_monotone /-
 /-- An increasing intersection distributes over finite union. -/
 theorem iInter_iUnion_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι']
     [IsDirected ι' (swap (· ≤ ·))] [Nonempty ι'] {s : ι → ι' → Set α} (hs : ∀ i, Monotone (s i)) :
     (⋂ j : ι', ⋃ i : ι, s i j) = ⋃ i : ι, ⋂ j : ι', s i j :=
   Set.iInf_iSup_of_monotone hs
 #align set.Inter_Union_of_monotone Set.iInter_iUnion_of_monotone
+-/
 
+#print Set.iInter_iUnion_of_antitone /-
 /-- A decreasing intersection distributes over finite union. -/
 theorem iInter_iUnion_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [IsDirected ι' (· ≤ ·)]
     [Nonempty ι'] {s : ι → ι' → Set α} (hs : ∀ i, Antitone (s i)) :
     (⋂ j : ι', ⋃ i : ι, s i j) = ⋃ i : ι, ⋂ j : ι', s i j :=
   Set.iInf_iSup_of_antitone hs
 #align set.Inter_Union_of_antitone Set.iInter_iUnion_of_antitone
+-/
 
+#print Set.iUnion_pi_of_monotone /-
 theorem iUnion_pi_of_monotone {ι ι' : Type _} [LinearOrder ι'] [Nonempty ι'] {α : ι → Type _}
     {I : Set ι} {s : ∀ i, ι' → Set (α i)} (hI : I.Finite) (hs : ∀ i ∈ I, Monotone (s i)) :
     (⋃ j : ι', I.pi fun i => s i j) = I.pi fun i => ⋃ j, s i j :=
@@ -1885,12 +2008,15 @@ theorem iUnion_pi_of_monotone {ι ι' : Type _} [LinearOrder ι'] [Nonempty ι']
   haveI := hI.fintype
   exact Union_Inter_of_monotone fun i j₁ j₂ h => preimage_mono <| hs i i.2 h
 #align set.Union_pi_of_monotone Set.iUnion_pi_of_monotone
+-/
 
+#print Set.iUnion_univ_pi_of_monotone /-
 theorem iUnion_univ_pi_of_monotone {ι ι' : Type _} [LinearOrder ι'] [Nonempty ι'] [Finite ι]
     {α : ι → Type _} {s : ∀ i, ι' → Set (α i)} (hs : ∀ i, Monotone (s i)) :
     (⋃ j : ι', pi univ fun i => s i j) = pi univ fun i => ⋃ j, s i j :=
   iUnion_pi_of_monotone finite_univ fun i _ => hs i
 #align set.Union_univ_pi_of_monotone Set.iUnion_univ_pi_of_monotone
+-/
 
 #print Set.finite_range_findGreatest /-
 theorem finite_range_findGreatest {P : α → ℕ → Prop} [∀ x, DecidablePred (P x)] {b : ℕ} :
@@ -1899,6 +2025,7 @@ theorem finite_range_findGreatest {P : α → ℕ → Prop} [∀ x, DecidablePre
 #align set.finite_range_find_greatest Set.finite_range_findGreatest
 -/
 
+#print Set.Finite.exists_maximal_wrt /-
 theorem Finite.exists_maximal_wrt [PartialOrder β] (f : α → β) (s : Set α) (h : Set.Finite s) :
     s.Nonempty → ∃ a ∈ s, ∀ a' ∈ s, f a ≤ f a' → f a = f a' :=
   by
@@ -1918,6 +2045,7 @@ theorem Finite.exists_maximal_wrt [PartialOrder β] (f : α → β) (s : Set α)
     · exact (h hbc).elim
     · exact ih c hcs hbc
 #align set.finite.exists_maximal_wrt Set.Finite.exists_maximal_wrt
+-/
 
 section
 
@@ -2020,12 +2148,16 @@ theorem Set.finite_of_forall_not_lt_lt {s : Set α}
 #align set.finite_of_forall_not_lt_lt Set.finite_of_forall_not_lt_lt
 -/
 
+#print Set.finite_diff_iUnion_Ioo /-
 theorem Set.finite_diff_iUnion_Ioo (s : Set α) : (s \ ⋃ (x ∈ s) (y ∈ s), Ioo x y).Finite :=
   Set.finite_of_forall_not_lt_lt fun x hx y hy z hz hxy hyz =>
     hy.2 <| mem_iUnion₂_of_mem hx.1 <| mem_iUnion₂_of_mem hz.1 ⟨hxy, hyz⟩
 #align set.finite_diff_Union_Ioo Set.finite_diff_iUnion_Ioo
+-/
 
+#print Set.finite_diff_iUnion_Ioo' /-
 theorem Set.finite_diff_iUnion_Ioo' (s : Set α) : (s \ ⋃ x : s × s, Ioo x.1 x.2).Finite := by
   simpa only [Union, iSup_prod, iSup_subtype] using s.finite_diff_Union_Ioo
 #align set.finite_diff_Union_Ioo' Set.finite_diff_iUnion_Ioo'
+-/
 
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Mario Carneiro, Kyle Miller
 
 ! This file was ported from Lean 3 source module data.set.finite
-! leanprover-community/mathlib commit 5bb9fffd23f9f65b367f5d451da18cc60bf47335
+! leanprover-community/mathlib commit 7fdd4f3746cb059edfdb5d52cba98f66fce418c0
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -132,6 +132,15 @@ protected noncomputable def Finite.toFinset {s : Set α} (h : s.Finite) : Finset
 #align set.finite.to_finset Set.Finite.toFinset
 -/
 
+theorem Finite.toFinset_eq_toFinset {s : Set α} [Fintype s] (h : s.Finite) :
+    h.toFinset = s.toFinset := by rw [finite.to_finset]; congr
+#align set.finite.to_finset_eq_to_finset Set.Finite.toFinset_eq_toFinset
+
+@[simp]
+theorem toFinite_toFinset (s : Set α) [Fintype s] : s.toFinite.toFinset = s.toFinset :=
+  s.toFinite.toFinset_eq_toFinset
+#align set.to_finite_to_finset Set.toFinite_toFinset
+
 #print Set.Finite.exists_finset /-
 theorem Finite.exists_finset {s : Set α} (h : s.Finite) :
     ∃ s' : Finset α, ∀ a : α, a ∈ s' ↔ a ∈ s := by cases h;
Diff
@@ -792,11 +792,11 @@ instance finite_image (s : Set α) (f : α → β) [Finite s] : Finite (f '' s)
 #align finite.set.finite_image Finite.Set.finite_image
 -/
 
-/- ./././Mathport/Syntax/Translate/Expr.lean:366:4: unsupported set replacement {(f x) | x : α} -/
+/- ./././Mathport/Syntax/Translate/Expr.lean:372:4: unsupported set replacement {(f x) | x : α} -/
 #print Finite.Set.finite_replacement /-
 instance finite_replacement [Finite α] (f : α → β) :
     Finite
-      "./././Mathport/Syntax/Translate/Expr.lean:366:4: unsupported set replacement {(f x) | x : α}" :=
+      "./././Mathport/Syntax/Translate/Expr.lean:372:4: unsupported set replacement {(f x) | x : α}" :=
   Finite.Set.finite_range f
 #align finite.set.finite_replacement Finite.Set.finite_replacement
 -/
@@ -1468,7 +1468,6 @@ theorem card_image_of_inj_on {s : Set α} [Fintype s] {f : α → β} [Fintype (
       (Finset.card_image_of_injOn fun x hx y hy hxy =>
         H x (mem_to_finset.1 hx) y (mem_to_finset.1 hy) hxy)
     _ = Fintype.card s := (Fintype.card_of_finset' _ fun a => mem_to_finset).symm
-    
 #align set.card_image_of_inj_on Set.card_image_of_inj_on
 -/
 
Diff
@@ -940,7 +940,7 @@ theorem Finite.sInter {α : Type _} {s : Set (Set α)} {t : Set α} (ht : t ∈
 #align set.finite.sInter Set.Finite.sInter
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (i «expr ∉ » t) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (i «expr ∉ » t) -/
 /-- If sets `s i` are finite for all `i` from a finite set `t` and are empty for `i ∉ t`, then the
 union `⋃ i, s i` is a finite set. -/
 theorem Finite.iUnion {ι : Type _} {s : ι → Set α} {t : Set ι} (ht : t.Finite)
@@ -2003,7 +2003,7 @@ theorem Finite.of_forall_not_lt_lt (h : ∀ ⦃x y z : α⦄, x < y → y < z 
 #align finite.of_forall_not_lt_lt Finite.of_forall_not_lt_lt
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (x y z «expr ∈ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (x y z «expr ∈ » s) -/
 #print Set.finite_of_forall_not_lt_lt /-
 /-- If a set `s` does not contain any triple of elements `x < y < z`, then `s` is finite. -/
 theorem Set.finite_of_forall_not_lt_lt {s : Set α}
Diff
@@ -271,7 +271,7 @@ attribute [protected] to_finset_mono to_finset_strict_mono
 #print Set.Finite.toFinset_setOf /-
 @[simp]
 protected theorem toFinset_setOf [Fintype α] (p : α → Prop) [DecidablePred p]
-    (h : { x | p x }.Finite) : h.toFinset = Finset.univ.filterₓ p := by ext; simp
+    (h : {x | p x}.Finite) : h.toFinset = Finset.univ.filterₓ p := by ext; simp
 #align set.finite.to_finset_set_of Set.Finite.toFinset_setOf
 -/
 
@@ -373,7 +373,7 @@ instance fintypeUnion [DecidableEq α] (s t : Set α) [Fintype s] [Fintype t] :
 
 #print Set.fintypeSep /-
 instance fintypeSep (s : Set α) (p : α → Prop) [Fintype s] [DecidablePred p] :
-    Fintype ({ a ∈ s | p a } : Set α) :=
+    Fintype ({a ∈ s | p a} : Set α) :=
   Fintype.ofFinset (s.toFinset.filterₓ p) <| by simp
 #align set.fintype_sep Set.fintypeSep
 -/
@@ -556,13 +556,13 @@ instance fintypeMap {α β} [DecidableEq β] :
 -/
 
 #print Set.fintypeLTNat /-
-instance fintypeLTNat (n : ℕ) : Fintype { i | i < n } :=
+instance fintypeLTNat (n : ℕ) : Fintype {i | i < n} :=
   Fintype.ofFinset (Finset.range n) <| by simp
 #align set.fintype_lt_nat Set.fintypeLTNat
 -/
 
 #print Set.fintypeLENat /-
-instance fintypeLENat (n : ℕ) : Fintype { i | i ≤ n } := by
+instance fintypeLENat (n : ℕ) : Fintype {i | i ≤ n} := by
   simpa [Nat.lt_succ_iff] using Set.fintypeLTNat (n + 1)
 #align set.fintype_le_nat Set.fintypeLENat
 -/
@@ -612,7 +612,7 @@ instance fintypeSeq' {α β : Type u} [DecidableEq β] (f : Set (α → β)) (s
 -/
 
 #print Set.fintypeMemFinset /-
-instance fintypeMemFinset (s : Finset α) : Fintype { a | a ∈ s } :=
+instance fintypeMemFinset (s : Finset α) : Fintype {a | a ∈ s} :=
   Finset.fintypeCoeSort s
 #align set.fintype_mem_finset Set.fintypeMemFinset
 -/
@@ -654,7 +654,7 @@ namespace Multiset
 
 #print Multiset.finite_toSet /-
 @[simp]
-theorem finite_toSet (s : Multiset α) : { x | x ∈ s }.Finite := by
+theorem finite_toSet (s : Multiset α) : {x | x ∈ s}.Finite := by
   classical simpa only [← Multiset.mem_toFinset] using s.to_finset.finite_to_set
 #align multiset.finite_to_set Multiset.finite_toSet
 -/
@@ -670,7 +670,7 @@ end Multiset
 
 #print List.finite_toSet /-
 @[simp]
-theorem List.finite_toSet (l : List α) : { x | x ∈ l }.Finite :=
+theorem List.finite_toSet (l : List α) : {x | x ∈ l}.Finite :=
   (show Multiset α from ⟦l⟧).finite_toSet
 #align list.finite_to_set List.finite_toSet
 -/
@@ -705,7 +705,7 @@ instance finite_union (s t : Set α) [Finite s] [Finite t] : Finite (s ∪ t : S
 #align finite.set.finite_union Finite.Set.finite_union
 
 #print Finite.Set.finite_sep /-
-instance finite_sep (s : Set α) (p : α → Prop) [Finite s] : Finite ({ a ∈ s | p a } : Set α) := by
+instance finite_sep (s : Set α) (p : α → Prop) [Finite s] : Finite ({a ∈ s | p a} : Set α) := by
   cases nonempty_fintype s; infer_instance
 #align finite.set.finite_sep Finite.Set.finite_sep
 -/
@@ -767,7 +767,7 @@ instance finite_biUnion' {ι : Type _} (s : Set ι) [Finite s] (t : ι → Set 
 /-- Example: `finite (⋃ (i < n), f i)` where `f : ℕ → set α` and `[∀ i, finite (f i)]`
 (when given instances from `data.nat.interval`).
 -/
-instance finite_biUnion'' {ι : Type _} (p : ι → Prop) [h : Finite { x | p x }] (t : ι → Set α)
+instance finite_biUnion'' {ι : Type _} (p : ι → Prop) [h : Finite {x | p x}] (t : ι → Set α)
     [∀ i, Finite (t i)] : Finite (⋃ (x) (h : p x), t x) :=
   @Finite.Set.finite_biUnion' _ _ (setOf p) h t _
 #align finite.set.finite_bUnion'' Finite.Set.finite_biUnion''
@@ -872,8 +872,8 @@ theorem Finite.sup {s t : Set α} : s.Finite → t.Finite → (s ⊔ t).Finite :
 #align set.finite.sup Set.Finite.sup
 
 #print Set.Finite.sep /-
-theorem Finite.sep {s : Set α} (hs : s.Finite) (p : α → Prop) : { a ∈ s | p a }.Finite := by
-  cases hs; apply to_finite
+theorem Finite.sep {s : Set α} (hs : s.Finite) (p : α → Prop) : {a ∈ s | p a}.Finite := by cases hs;
+  apply to_finite
 #align set.finite.sep Set.Finite.sep
 -/
 
@@ -922,9 +922,9 @@ theorem Finite.sUnion {s : Set (Set α)} (hs : s.Finite) (H : ∀ t ∈ s, Set.F
 theorem Finite.biUnion {ι} {s : Set ι} (hs : s.Finite) {t : ι → Set α}
     (ht : ∀ i ∈ s, (t i).Finite) : (⋃ i ∈ s, t i).Finite := by
   classical
-    cases hs
-    haveI := fintype_bUnion s t fun i hi => (ht i hi).Fintype
-    apply to_finite
+  cases hs
+  haveI := fintype_bUnion s t fun i hi => (ht i hi).Fintype
+  apply to_finite
 #align set.finite.bUnion Set.Finite.biUnion
 
 /-- Dependent version of `finite.bUnion`. -/
@@ -1008,7 +1008,7 @@ theorem finite_range (f : ι → α) [Finite ι] : (range f).Finite :=
 
 #print Set.Finite.dependent_image /-
 theorem Finite.dependent_image {s : Set α} (hs : s.Finite) (F : ∀ i ∈ s, β) :
-    { y : β | ∃ (x : _) (hx : x ∈ s), y = F x hx }.Finite := by cases hs;
+    {y : β | ∃ (x : _) (hx : x ∈ s), y = F x hx}.Finite := by cases hs;
   simpa [range, eq_comm] using finite_range fun x : s => F x x.2
 #align set.finite.dependent_image Set.Finite.dependent_image
 -/
@@ -1056,13 +1056,13 @@ theorem Finite.preimage_embedding {s : Set β} (f : α ↪ β) (h : s.Finite) :
 -/
 
 #print Set.finite_lt_nat /-
-theorem finite_lt_nat (n : ℕ) : Set.Finite { i | i < n } :=
+theorem finite_lt_nat (n : ℕ) : Set.Finite {i | i < n} :=
   toFinite _
 #align set.finite_lt_nat Set.finite_lt_nat
 -/
 
 #print Set.finite_le_nat /-
-theorem finite_le_nat (n : ℕ) : Set.Finite { i | i ≤ n } :=
+theorem finite_le_nat (n : ℕ) : Set.Finite {i | i ≤ n} :=
   toFinite _
 #align set.finite_le_nat Set.finite_le_nat
 -/
@@ -1131,8 +1131,8 @@ theorem finite_prod : (s ×ˢ t).Finite ↔ (s.Finite ∨ t = ∅) ∧ (t.Finite
 #print Set.Finite.offDiag /-
 protected theorem Finite.offDiag (hs : s.Finite) : s.offDiag.Finite := by
   classical
-    cases hs
-    apply Set.toFinite
+  cases hs
+  apply Set.toFinite
 #align set.finite.off_diag Set.Finite.offDiag
 -/
 
@@ -1148,9 +1148,9 @@ end Prod
 theorem Finite.seq {f : Set (α → β)} {s : Set α} (hf : f.Finite) (hs : s.Finite) :
     (f.seq s).Finite := by
   classical
-    cases hf
-    cases hs
-    apply to_finite
+  cases hf
+  cases hs
+  apply to_finite
 #align set.finite.seq Set.Finite.seq
 -/
 
@@ -1162,7 +1162,7 @@ theorem Finite.seq' {α β : Type u} {f : Set (α → β)} {s : Set α} (hf : f.
 -/
 
 #print Set.finite_mem_finset /-
-theorem finite_mem_finset (s : Finset α) : { a | a ∈ s }.Finite :=
+theorem finite_mem_finset (s : Finset α) : {a | a ∈ s}.Finite :=
   toFinite _
 #align set.finite_mem_finset Set.finite_mem_finset
 -/
@@ -1191,7 +1191,7 @@ theorem exists_finite_iff_finset {p : Set α → Prop} :
 
 #print Set.Finite.finite_subsets /-
 /-- There are finitely many subsets of a given finite set -/
-theorem Finite.finite_subsets {α : Type u} {a : Set α} (h : a.Finite) : { b | b ⊆ a }.Finite :=
+theorem Finite.finite_subsets {α : Type u} {a : Set α} (h : a.Finite) : {b | b ⊆ a}.Finite :=
   ⟨Fintype.ofFinset ((Finset.powerset h.toFinset).map Finset.coeEmb.1) fun s => by
       simpa [← @exists_finite_iff_finset α fun t => t ⊆ a ∧ t = s, finite.subset_to_finset, ←
         and_assoc] using h.subset⟩
@@ -1205,8 +1205,8 @@ theorem Finite.pi {δ : Type _} [Finite δ] {κ : δ → Type _} {t : ∀ d, Set
   cases nonempty_fintype δ
   lift t to ∀ d, Finset (κ d) using ht
   classical
-    rw [← Fintype.coe_piFinset]
-    apply Finset.finite_toSet
+  rw [← Fintype.coe_piFinset]
+  apply Finset.finite_toSet
 #align set.finite.pi Set.Finite.pi
 
 #print Set.union_finset_finite_of_range_finite /-
@@ -1311,7 +1311,7 @@ theorem Finite.fin_param {s : Set α} (h : s.Finite) :
 -/
 
 #print Set.finite_option /-
-theorem finite_option {s : Set (Option α)} : s.Finite ↔ { x : α | some x ∈ s }.Finite :=
+theorem finite_option {s : Set (Option α)} : s.Finite ↔ {x : α | some x ∈ s}.Finite :=
   ⟨fun h => h.preimage_embedding Embedding.some, fun h =>
     ((h.image some).insert none).Subset fun x =>
       Option.casesOn x (fun _ => Or.inl rfl) fun x hx => Or.inr <| mem_image_of_mem _ hx⟩
@@ -1344,8 +1344,7 @@ theorem finite_subset_iUnion {s : Set α} (hs : s.Finite) {ι} {t : ι → Set 
 theorem eq_finite_iUnion_of_finite_subset_iUnion {ι} {s : ι → Set α} {t : Set α} (tfin : t.Finite)
     (h : t ⊆ ⋃ i, s i) :
     ∃ I : Set ι,
-      I.Finite ∧
-        ∃ σ : { i | i ∈ I } → Set α, (∀ i, (σ i).Finite) ∧ (∀ i, σ i ⊆ s i) ∧ t = ⋃ i, σ i :=
+      I.Finite ∧ ∃ σ : {i | i ∈ I} → Set α, (∀ i, (σ i).Finite) ∧ (∀ i, σ i ⊆ s i) ∧ t = ⋃ i, σ i :=
   let ⟨I, Ifin, hI⟩ := finite_subset_iUnion tfin h
   ⟨I, Ifin, fun x => s x ∩ t, fun i => tfin.Subset (inter_subset_right _ _), fun i =>
     inter_subset_left _ _, by
@@ -1416,13 +1415,13 @@ theorem seq_of_forall_finite_exists {γ : Type _} {P : γ → Set γ → Prop}
       Classical.choose <| h (range fun m : Iio n => ih m.1 m.2) (finite_range _),
     fun n => by
     classical
-      refine' Nat.strongRecOn' n fun n ih => _
-      rw [Nat.strongRecOn'_beta]
-      convert Classical.choose_spec (h _ _)
-      ext x
-      constructor
-      · rintro ⟨m, hmn, rfl⟩; exact ⟨⟨m, hmn⟩, rfl⟩
-      · rintro ⟨⟨m, hmn⟩, rfl⟩; exact ⟨m, hmn, rfl⟩⟩
+    refine' Nat.strongRecOn' n fun n ih => _
+    rw [Nat.strongRecOn'_beta]
+    convert Classical.choose_spec (h _ _)
+    ext x
+    constructor
+    · rintro ⟨m, hmn, rfl⟩; exact ⟨⟨m, hmn⟩, rfl⟩
+    · rintro ⟨⟨m, hmn⟩, rfl⟩; exact ⟨m, hmn, rfl⟩⟩
 #align set.seq_of_forall_finite_exists Set.seq_of_forall_finite_exists
 -/
 
@@ -1527,8 +1526,8 @@ theorem Finite.card_toFinset {s : Set α} [Fintype s] (h : s.Finite) :
 -/
 
 #print Set.card_ne_eq /-
-theorem card_ne_eq [Fintype α] (a : α) [Fintype { x : α | x ≠ a }] :
-    Fintype.card { x : α | x ≠ a } = Fintype.card α - 1 :=
+theorem card_ne_eq [Fintype α] (a : α) [Fintype {x : α | x ≠ a}] :
+    Fintype.card {x : α | x ≠ a} = Fintype.card α - 1 :=
   by
   haveI := Classical.decEq α
   rw [← to_finset_card, to_finset_set_of, Finset.filter_ne',
@@ -1720,13 +1719,13 @@ theorem infinite_of_forall_exists_lt (h : ∀ a, ∃ b ∈ s, b < a) : s.Infinit
 end Preorder
 
 #print Set.finite_isTop /-
-theorem finite_isTop (α : Type _) [PartialOrder α] : { x : α | IsTop x }.Finite :=
+theorem finite_isTop (α : Type _) [PartialOrder α] : {x : α | IsTop x}.Finite :=
   (subsingleton_isTop α).Finite
 #align set.finite_is_top Set.finite_isTop
 -/
 
 #print Set.finite_isBot /-
-theorem finite_isBot (α : Type _) [PartialOrder α] : { x : α | IsBot x }.Finite :=
+theorem finite_isBot (α : Type _) [PartialOrder α] : {x : α | IsBot x}.Finite :=
   (subsingleton_isBot α).Finite
 #align set.finite_is_bot Set.finite_isBot
 -/
Diff
@@ -950,7 +950,7 @@ theorem Finite.iUnion {ι : Type _} {s : ι → Set α} {t : Set ι} (ht : t.Fin
   refine' Union_subset fun i x hx => _
   by_cases hi : i ∈ t
   · exact mem_bUnion hi hx
-  · rw [he i hi, mem_empty_iff_false] at hx
+  · rw [he i hi, mem_empty_iff_false] at hx 
     contradiction
 #align set.finite.Union Set.Finite.iUnion
 
@@ -1008,7 +1008,7 @@ theorem finite_range (f : ι → α) [Finite ι] : (range f).Finite :=
 
 #print Set.Finite.dependent_image /-
 theorem Finite.dependent_image {s : Set α} (hs : s.Finite) (F : ∀ i ∈ s, β) :
-    { y : β | ∃ (x : _)(hx : x ∈ s), y = F x hx }.Finite := by cases hs;
+    { y : β | ∃ (x : _) (hx : x ∈ s), y = F x hx }.Finite := by cases hs;
   simpa [range, eq_comm] using finite_range fun x : s => F x x.2
 #align set.finite.dependent_image Set.Finite.dependent_image
 -/
@@ -1297,14 +1297,14 @@ theorem Finite.toFinset_offDiag {s : Set α} [DecidableEq α] (hs : s.Finite) :
 -/
 
 #print Set.Finite.fin_embedding /-
-theorem Finite.fin_embedding {s : Set α} (h : s.Finite) : ∃ (n : ℕ)(f : Fin n ↪ α), range f = s :=
+theorem Finite.fin_embedding {s : Set α} (h : s.Finite) : ∃ (n : ℕ) (f : Fin n ↪ α), range f = s :=
   ⟨_, (Fintype.equivFin (h.toFinset : Set α)).symm.asEmbedding, by simp⟩
 #align set.finite.fin_embedding Set.Finite.fin_embedding
 -/
 
 #print Set.Finite.fin_param /-
 theorem Finite.fin_param {s : Set α} (h : s.Finite) :
-    ∃ (n : ℕ)(f : Fin n → α), Injective f ∧ range f = s :=
+    ∃ (n : ℕ) (f : Fin n → α), Injective f ∧ range f = s :=
   let ⟨n, f, hf⟩ := h.fin_embedding
   ⟨n, f, f.Injective, hf⟩
 #align set.finite.fin_param Set.Finite.fin_param
@@ -1380,7 +1380,7 @@ theorem Finite.induction_on' {C : Set α → Prop} {S : Set α} (h : S.Finite) (
   by
   refine' @Set.Finite.induction_on α (fun s => s ⊆ S → C s) S h (fun _ => H0) _ subset.rfl
   intro a s has hsf hCs haS
-  rw [insert_subset] at haS
+  rw [insert_subset] at haS 
   exact H1 haS.1 haS.2 has (hCs haS.2)
 #align set.finite.induction_on' Set.Finite.induction_on'
 -/
@@ -1440,7 +1440,7 @@ theorem empty_card : Fintype.card (∅ : Set α) = 0 :=
 #print Set.empty_card' /-
 @[simp]
 theorem empty_card' {h : Fintype.{u} (∅ : Set α)} : @Fintype.card (∅ : Set α) h = 0 :=
-  Eq.trans (by congr ) empty_card
+  Eq.trans (by congr) empty_card
 #align set.empty_card' Set.empty_card'
 -/
 
@@ -1639,7 +1639,7 @@ theorem infinite_image2 (hfs : ∀ b ∈ t, InjOn (fun a => f a b) s) (hft : ∀
     (image2 f s t).Infinite ↔ s.Infinite ∧ t.Nonempty ∨ t.Infinite ∧ s.Nonempty :=
   by
   refine' ⟨fun h => Set.infinite_prod.1 _, _⟩
-  · rw [← image_uncurry_prod] at h
+  · rw [← image_uncurry_prod] at h 
     exact h.of_image _
   · rintro (⟨hs, b, hb⟩ | ⟨ht, a, ha⟩)
     · exact hs.image2_left hb (hfs _ hb)
@@ -1672,7 +1672,7 @@ theorem infinite_range_of_injective [Infinite α] {f : α → β} (hi : Injectiv
 
 #print Set.infinite_of_injective_forall_mem /-
 theorem infinite_of_injective_forall_mem [Infinite α] {s : Set β} {f : α → β} (hi : Injective f)
-    (hf : ∀ x : α, f x ∈ s) : s.Infinite := by rw [← range_subset_iff] at hf;
+    (hf : ∀ x : α, f x ∈ s) : s.Infinite := by rw [← range_subset_iff] at hf ;
   exact (infinite_range_of_injective hi).mono hf
 #align set.infinite_of_injective_forall_mem Set.infinite_of_injective_forall_mem
 -/
@@ -1741,7 +1741,7 @@ theorem Infinite.exists_lt_map_eq_of_mapsTo [LinearOrder α] {s : Set α} {t : S
 theorem Finite.exists_lt_map_eq_of_forall_mem [LinearOrder α] [Infinite α] {t : Set β} {f : α → β}
     (hf : ∀ a, f a ∈ t) (ht : t.Finite) : ∃ a b, a < b ∧ f a = f b :=
   by
-  rw [← maps_univ_to] at hf
+  rw [← maps_univ_to] at hf 
   obtain ⟨a, -, b, -, h⟩ := (@infinite_univ α _).exists_lt_map_eq_of_mapsTo hf ht
   exact ⟨a, b, h⟩
 #align set.finite.exists_lt_map_eq_of_forall_mem Set.Finite.exists_lt_map_eq_of_forall_mem
@@ -1795,7 +1795,7 @@ theorem Finite.iSup_biInf_of_monotone {ι ι' α : Type _} [Preorder ι'] [Nonem
   refine' hs.induction_on _ _
   · intro hf; simp [iSup_const]
   · intro a s has hs ihs hf
-    rw [ball_insert_iff] at hf
+    rw [ball_insert_iff] at hf 
     simp only [iInf_insert, ← ihs hf.2]
     exact iSup_inf_of_monotone hf.1 fun j₁ j₂ hj => iInf₂_mono fun i hi => hf.2 i hi hj
 #align set.finite.supr_binfi_of_monotone Set.Finite.iSup_biInf_of_monotone
Diff
@@ -621,9 +621,11 @@ end FintypeInstances
 
 end Set
 
+#print Equiv.set_finite_iff /-
 theorem Equiv.set_finite_iff {s : Set α} {t : Set β} (hst : s ≃ t) : s.Finite ↔ t.Finite := by
   simp_rw [← Set.finite_coe_iff, hst.finite_iff]
 #align equiv.set_finite_iff Equiv.set_finite_iff
+-/
 
 /-! ### Finset -/
 
Diff
@@ -687,7 +687,7 @@ Some set instances do not appear here since they are consequences of others, for
 
 namespace Finite.Set
 
-open Classical
+open scoped Classical
 
 example {s : Set α} [Finite α] : Finite s :=
   inferInstance
@@ -1717,13 +1717,17 @@ theorem infinite_of_forall_exists_lt (h : ∀ a, ∃ b ∈ s, b < a) : s.Infinit
 
 end Preorder
 
+#print Set.finite_isTop /-
 theorem finite_isTop (α : Type _) [PartialOrder α] : { x : α | IsTop x }.Finite :=
   (subsingleton_isTop α).Finite
 #align set.finite_is_top Set.finite_isTop
+-/
 
+#print Set.finite_isBot /-
 theorem finite_isBot (α : Type _) [PartialOrder α] : { x : α | IsBot x }.Finite :=
   (subsingleton_isBot α).Finite
 #align set.finite_is_bot Set.finite_isBot
+-/
 
 theorem Infinite.exists_lt_map_eq_of_mapsTo [LinearOrder α] {s : Set α} {t : Set β} {f : α → β}
     (hs : s.Infinite) (hf : MapsTo f s t) (ht : t.Finite) : ∃ x ∈ s, ∃ y ∈ s, x < y ∧ f x = f y :=
@@ -1731,6 +1735,7 @@ theorem Infinite.exists_lt_map_eq_of_mapsTo [LinearOrder α] {s : Set α} {t : S
   hxy.lt_or_lt.elim (fun hxy => ⟨x, hx, y, hy, hxy, hf⟩) fun hyx => ⟨y, hy, x, hx, hyx, hf.symm⟩
 #align set.infinite.exists_lt_map_eq_of_maps_to Set.Infinite.exists_lt_map_eq_of_mapsTo
 
+#print Set.Finite.exists_lt_map_eq_of_forall_mem /-
 theorem Finite.exists_lt_map_eq_of_forall_mem [LinearOrder α] [Infinite α] {t : Set β} {f : α → β}
     (hf : ∀ a, f a ∈ t) (ht : t.Finite) : ∃ a b, a < b ∧ f a = f b :=
   by
@@ -1738,6 +1743,7 @@ theorem Finite.exists_lt_map_eq_of_forall_mem [LinearOrder α] [Infinite α] {t
   obtain ⟨a, -, b, -, h⟩ := (@infinite_univ α _).exists_lt_map_eq_of_mapsTo hf ht
   exact ⟨a, b, h⟩
 #align set.finite.exists_lt_map_eq_of_forall_mem Set.Finite.exists_lt_map_eq_of_forall_mem
+-/
 
 theorem exists_min_image [LinearOrder β] (s : Set α) (f : α → β) (h1 : s.Finite) :
     s.Nonempty → ∃ a ∈ s, ∀ b ∈ s, f a ≤ f b
@@ -1753,6 +1759,7 @@ theorem exists_max_image [LinearOrder β] (s : Set α) (f : α → β) (h1 : s.F
       h1.to_finset.exists_max_image f ⟨x, h1.mem_to_finset.2 hx⟩
 #align set.exists_max_image Set.exists_max_image
 
+#print Set.exists_lower_bound_image /-
 theorem exists_lower_bound_image [hα : Nonempty α] [LinearOrder β] (s : Set α) (f : α → β)
     (h : s.Finite) : ∃ a : α, ∀ b ∈ s, f a ≤ f b :=
   by
@@ -1763,7 +1770,9 @@ theorem exists_lower_bound_image [hα : Nonempty α] [LinearOrder β] (s : Set 
       ⟨x₀, fun x hx => hx₀ x hx⟩
   · exact Nonempty.elim hα fun a => ⟨a, fun x hx => absurd (Set.nonempty_of_mem hx) hs⟩
 #align set.exists_lower_bound_image Set.exists_lower_bound_image
+-/
 
+#print Set.exists_upper_bound_image /-
 theorem exists_upper_bound_image [hα : Nonempty α] [LinearOrder β] (s : Set α) (f : α → β)
     (h : s.Finite) : ∃ a : α, ∀ b ∈ s, f b ≤ f a :=
   by
@@ -1774,6 +1783,7 @@ theorem exists_upper_bound_image [hα : Nonempty α] [LinearOrder β] (s : Set 
       ⟨x₀, fun x hx => hx₀ x hx⟩
   · exact Nonempty.elim hα fun a => ⟨a, fun x hx => absurd (Set.nonempty_of_mem hx) hs⟩
 #align set.exists_upper_bound_image Set.exists_upper_bound_image
+-/
 
 theorem Finite.iSup_biInf_of_monotone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Frame α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
@@ -1980,6 +1990,7 @@ end Finset
 
 variable [LinearOrder α]
 
+#print Finite.of_forall_not_lt_lt /-
 /-- If a linear order does not contain any triple of elements `x < y < z`, then this type
 is finite. -/
 theorem Finite.of_forall_not_lt_lt (h : ∀ ⦃x y z : α⦄, x < y → y < z → False) : Finite α :=
@@ -1989,13 +2000,16 @@ theorem Finite.of_forall_not_lt_lt (h : ∀ ⦃x y z : α⦄, x < y → y < z 
   refine' @Finite.of_fintype α ⟨{x, y}, fun z => _⟩
   simpa [hne] using eq_or_eq_or_eq_of_forall_not_lt_lt h z x y
 #align finite.of_forall_not_lt_lt Finite.of_forall_not_lt_lt
+-/
 
 /- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (x y z «expr ∈ » s) -/
+#print Set.finite_of_forall_not_lt_lt /-
 /-- If a set `s` does not contain any triple of elements `x < y < z`, then `s` is finite. -/
 theorem Set.finite_of_forall_not_lt_lt {s : Set α}
     (h : ∀ (x) (_ : x ∈ s) (y) (_ : y ∈ s) (z) (_ : z ∈ s), x < y → y < z → False) : Set.Finite s :=
   @Set.toFinite _ s <| Finite.of_forall_not_lt_lt <| by simpa only [SetCoe.forall'] using h
 #align set.finite_of_forall_not_lt_lt Set.finite_of_forall_not_lt_lt
+-/
 
 theorem Set.finite_diff_iUnion_Ioo (s : Set α) : (s \ ⋃ (x ∈ s) (y ∈ s), Ioo x y).Finite :=
   Set.finite_of_forall_not_lt_lt fun x hx y hy z hz hxy hyz =>
Diff
@@ -231,12 +231,6 @@ theorem toFinset_subset {t : Finset α} : hs.toFinset ⊆ t ↔ s ⊆ t := by
 #align set.finite.to_finset_subset Set.Finite.toFinset_subset
 -/
 
-/- warning: set.finite.to_finset_ssubset -> Set.Finite.toFinset_ssubset is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {s : Set.{u1} α} {hs : Set.Finite.{u1} α s} {t : Finset.{u1} α}, Iff (HasSSubset.SSubset.{u1} (Finset.{u1} α) (Finset.hasSsubset.{u1} α) (Set.Finite.toFinset.{u1} α s hs) t) (HasSSubset.SSubset.{u1} (Set.{u1} α) (Set.hasSsubset.{u1} α) s ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} α) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} α) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} α) (Set.{u1} α) (Finset.Set.hasCoeT.{u1} α))) t))
-but is expected to have type
-  forall {α : Type.{u1}} {s : Set.{u1} α} {hs : Set.Finite.{u1} α s} {t : Finset.{u1} α}, Iff (HasSSubset.SSubset.{u1} (Finset.{u1} α) (Finset.instHasSSubsetFinset.{u1} α) (Set.Finite.toFinset.{u1} α s hs) t) (HasSSubset.SSubset.{u1} (Set.{u1} α) (Set.instHasSSubsetSet.{u1} α) s (Finset.toSet.{u1} α t))
-Case conversion may be inaccurate. Consider using '#align set.finite.to_finset_ssubset Set.Finite.toFinset_ssubsetₓ'. -/
 @[simp]
 theorem toFinset_ssubset {t : Finset α} : hs.toFinset ⊂ t ↔ s ⊂ t := by
   rw [← Finset.coe_ssubset, finite.coe_to_finset]
@@ -249,12 +243,6 @@ theorem subset_toFinset {s : Finset α} : s ⊆ ht.toFinset ↔ ↑s ⊆ t := by
 #align set.finite.subset_to_finset Set.Finite.subset_toFinset
 -/
 
-/- warning: set.finite.ssubset_to_finset -> Set.Finite.ssubset_toFinset is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {t : Set.{u1} α} {ht : Set.Finite.{u1} α t} {s : Finset.{u1} α}, Iff (HasSSubset.SSubset.{u1} (Finset.{u1} α) (Finset.hasSsubset.{u1} α) s (Set.Finite.toFinset.{u1} α t ht)) (HasSSubset.SSubset.{u1} (Set.{u1} α) (Set.hasSsubset.{u1} α) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} α) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} α) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} α) (Set.{u1} α) (Finset.Set.hasCoeT.{u1} α))) s) t)
-but is expected to have type
-  forall {α : Type.{u1}} {t : Set.{u1} α} {ht : Set.Finite.{u1} α t} {s : Finset.{u1} α}, Iff (HasSSubset.SSubset.{u1} (Finset.{u1} α) (Finset.instHasSSubsetFinset.{u1} α) s (Set.Finite.toFinset.{u1} α t ht)) (HasSSubset.SSubset.{u1} (Set.{u1} α) (Set.instHasSSubsetSet.{u1} α) (Finset.toSet.{u1} α s) t)
-Case conversion may be inaccurate. Consider using '#align set.finite.ssubset_to_finset Set.Finite.ssubset_toFinsetₓ'. -/
 @[simp]
 theorem ssubset_toFinset {s : Finset α} : s ⊂ ht.toFinset ↔ ↑s ⊂ t := by
   rw [← Finset.coe_ssubset, finite.coe_to_finset]
@@ -267,12 +255,6 @@ protected theorem toFinset_subset_toFinset : hs.toFinset ⊆ ht.toFinset ↔ s 
 #align set.finite.to_finset_subset_to_finset Set.Finite.toFinset_subset_toFinset
 -/
 
-/- warning: set.finite.to_finset_ssubset_to_finset -> Set.Finite.toFinset_ssubset_toFinset is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α} {hs : Set.Finite.{u1} α s} {ht : Set.Finite.{u1} α t}, Iff (HasSSubset.SSubset.{u1} (Finset.{u1} α) (Finset.hasSsubset.{u1} α) (Set.Finite.toFinset.{u1} α s hs) (Set.Finite.toFinset.{u1} α t ht)) (HasSSubset.SSubset.{u1} (Set.{u1} α) (Set.hasSsubset.{u1} α) s t)
-but is expected to have type
-  forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α} {hs : Set.Finite.{u1} α s} {ht : Set.Finite.{u1} α t}, Iff (HasSSubset.SSubset.{u1} (Finset.{u1} α) (Finset.instHasSSubsetFinset.{u1} α) (Set.Finite.toFinset.{u1} α s hs) (Set.Finite.toFinset.{u1} α t ht)) (HasSSubset.SSubset.{u1} (Set.{u1} α) (Set.instHasSSubsetSet.{u1} α) s t)
-Case conversion may be inaccurate. Consider using '#align set.finite.to_finset_ssubset_to_finset Set.Finite.toFinset_ssubset_toFinsetₓ'. -/
 @[mono]
 protected theorem toFinset_ssubset_toFinset : hs.toFinset ⊂ ht.toFinset ↔ s ⊂ t := by
   simp only [← Finset.coe_ssubset, finite.coe_to_finset]
@@ -281,12 +263,6 @@ protected theorem toFinset_ssubset_toFinset : hs.toFinset ⊂ ht.toFinset ↔ s
 alias finite.to_finset_subset_to_finset ↔ _ to_finset_mono
 #align set.finite.to_finset_mono Set.Finite.toFinset_mono
 
-/- warning: set.finite.to_finset_strict_mono -> Set.Finite.toFinset_strictMono is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α} {hs : Set.Finite.{u1} α s} {ht : Set.Finite.{u1} α t}, (HasSSubset.SSubset.{u1} (Set.{u1} α) (Set.hasSsubset.{u1} α) s t) -> (HasSSubset.SSubset.{u1} (Finset.{u1} α) (Finset.hasSsubset.{u1} α) (Set.Finite.toFinset.{u1} α s hs) (Set.Finite.toFinset.{u1} α t ht))
-but is expected to have type
-  forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α} {hs : Set.Finite.{u1} α s} {ht : Set.Finite.{u1} α t}, (HasSSubset.SSubset.{u1} (Set.{u1} α) (Set.instHasSSubsetSet.{u1} α) s t) -> (HasSSubset.SSubset.{u1} (Finset.{u1} α) (Finset.instHasSSubsetFinset.{u1} α) (Set.Finite.toFinset.{u1} α s hs) (Set.Finite.toFinset.{u1} α t ht))
-Case conversion may be inaccurate. Consider using '#align set.finite.to_finset_strict_mono Set.Finite.toFinset_strictMonoₓ'. -/
 alias finite.to_finset_ssubset_to_finset ↔ _ to_finset_strict_mono
 #align set.finite.to_finset_strict_mono Set.Finite.toFinset_strictMono
 
@@ -299,65 +275,29 @@ protected theorem toFinset_setOf [Fintype α] (p : α → Prop) [DecidablePred p
 #align set.finite.to_finset_set_of Set.Finite.toFinset_setOf
 -/
 
-/- warning: set.finite.disjoint_to_finset -> Set.Finite.disjoint_toFinset is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α} {hs : Set.Finite.{u1} α s} {ht : Set.Finite.{u1} α t}, Iff (Disjoint.{u1} (Finset.{u1} α) (Finset.partialOrder.{u1} α) (Finset.orderBot.{u1} α) (Set.Finite.toFinset.{u1} α s hs) (Set.Finite.toFinset.{u1} α t ht)) (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} α} {hs : Set.Finite.{u1} α s} {ht : Set.Finite.{u1} α t}, Iff (Disjoint.{u1} (Finset.{u1} α) (Finset.partialOrder.{u1} α) (Finset.instOrderBotFinsetToLEToPreorderPartialOrder.{u1} α) (Set.Finite.toFinset.{u1} α s hs) (Set.Finite.toFinset.{u1} α t ht)) (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 set.finite.disjoint_to_finset Set.Finite.disjoint_toFinsetₓ'. -/
 @[simp]
 theorem disjoint_toFinset {hs : s.Finite} {ht : t.Finite} :
     Disjoint hs.toFinset ht.toFinset ↔ Disjoint s t :=
   @disjoint_toFinset _ _ _ hs.Fintype ht.Fintype
 #align set.finite.disjoint_to_finset Set.Finite.disjoint_toFinset
 
-/- warning: set.finite.to_finset_inter -> Set.Finite.toFinset_inter is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α} [_inst_1 : DecidableEq.{succ u1} α] (hs : Set.Finite.{u1} α s) (ht : Set.Finite.{u1} α t) (h : Set.Finite.{u1} α (Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) s t)), Eq.{succ u1} (Finset.{u1} α) (Set.Finite.toFinset.{u1} α (Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) s t) h) (Inter.inter.{u1} (Finset.{u1} α) (Finset.hasInter.{u1} α (fun (a : α) (b : α) => _inst_1 a b)) (Set.Finite.toFinset.{u1} α s hs) (Set.Finite.toFinset.{u1} α t ht))
-but is expected to have type
-  forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α} [_inst_1 : DecidableEq.{succ u1} α] (hs : Set.Finite.{u1} α s) (ht : Set.Finite.{u1} α t) (h : Set.Finite.{u1} α (Inter.inter.{u1} (Set.{u1} α) (Set.instInterSet.{u1} α) s t)), Eq.{succ u1} (Finset.{u1} α) (Set.Finite.toFinset.{u1} α (Inter.inter.{u1} (Set.{u1} α) (Set.instInterSet.{u1} α) s t) h) (Inter.inter.{u1} (Finset.{u1} α) (Finset.instInterFinset.{u1} α (fun (a : α) (b : α) => _inst_1 a b)) (Set.Finite.toFinset.{u1} α s hs) (Set.Finite.toFinset.{u1} α t ht))
-Case conversion may be inaccurate. Consider using '#align set.finite.to_finset_inter Set.Finite.toFinset_interₓ'. -/
 protected theorem toFinset_inter [DecidableEq α] (hs : s.Finite) (ht : t.Finite)
     (h : (s ∩ t).Finite) : h.toFinset = hs.toFinset ∩ ht.toFinset := by ext; simp
 #align set.finite.to_finset_inter Set.Finite.toFinset_inter
 
-/- warning: set.finite.to_finset_union -> Set.Finite.toFinset_union is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α} [_inst_1 : DecidableEq.{succ u1} α] (hs : Set.Finite.{u1} α s) (ht : Set.Finite.{u1} α t) (h : Set.Finite.{u1} α (Union.union.{u1} (Set.{u1} α) (Set.hasUnion.{u1} α) s t)), Eq.{succ u1} (Finset.{u1} α) (Set.Finite.toFinset.{u1} α (Union.union.{u1} (Set.{u1} α) (Set.hasUnion.{u1} α) s t) h) (Union.union.{u1} (Finset.{u1} α) (Finset.hasUnion.{u1} α (fun (a : α) (b : α) => _inst_1 a b)) (Set.Finite.toFinset.{u1} α s hs) (Set.Finite.toFinset.{u1} α t ht))
-but is expected to have type
-  forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α} [_inst_1 : DecidableEq.{succ u1} α] (hs : Set.Finite.{u1} α s) (ht : Set.Finite.{u1} α t) (h : Set.Finite.{u1} α (Union.union.{u1} (Set.{u1} α) (Set.instUnionSet.{u1} α) s t)), Eq.{succ u1} (Finset.{u1} α) (Set.Finite.toFinset.{u1} α (Union.union.{u1} (Set.{u1} α) (Set.instUnionSet.{u1} α) s t) h) (Union.union.{u1} (Finset.{u1} α) (Finset.instUnionFinset.{u1} α (fun (a : α) (b : α) => _inst_1 a b)) (Set.Finite.toFinset.{u1} α s hs) (Set.Finite.toFinset.{u1} α t ht))
-Case conversion may be inaccurate. Consider using '#align set.finite.to_finset_union Set.Finite.toFinset_unionₓ'. -/
 protected theorem toFinset_union [DecidableEq α] (hs : s.Finite) (ht : t.Finite)
     (h : (s ∪ t).Finite) : h.toFinset = hs.toFinset ∪ ht.toFinset := by ext; simp
 #align set.finite.to_finset_union Set.Finite.toFinset_union
 
-/- warning: set.finite.to_finset_diff -> Set.Finite.toFinset_diff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α} [_inst_1 : DecidableEq.{succ u1} α] (hs : Set.Finite.{u1} α s) (ht : Set.Finite.{u1} α t) (h : Set.Finite.{u1} α (SDiff.sdiff.{u1} (Set.{u1} α) (BooleanAlgebra.toHasSdiff.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s t)), Eq.{succ u1} (Finset.{u1} α) (Set.Finite.toFinset.{u1} α (SDiff.sdiff.{u1} (Set.{u1} α) (BooleanAlgebra.toHasSdiff.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s t) h) (SDiff.sdiff.{u1} (Finset.{u1} α) (Finset.hasSdiff.{u1} α (fun (a : α) (b : α) => _inst_1 a b)) (Set.Finite.toFinset.{u1} α s hs) (Set.Finite.toFinset.{u1} α t ht))
-but is expected to have type
-  forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α} [_inst_1 : DecidableEq.{succ u1} α] (hs : Set.Finite.{u1} α s) (ht : Set.Finite.{u1} α t) (h : Set.Finite.{u1} α (SDiff.sdiff.{u1} (Set.{u1} α) (Set.instSDiffSet.{u1} α) s t)), Eq.{succ u1} (Finset.{u1} α) (Set.Finite.toFinset.{u1} α (SDiff.sdiff.{u1} (Set.{u1} α) (Set.instSDiffSet.{u1} α) s t) h) (SDiff.sdiff.{u1} (Finset.{u1} α) (Finset.instSDiffFinset.{u1} α (fun (a : α) (b : α) => _inst_1 a b)) (Set.Finite.toFinset.{u1} α s hs) (Set.Finite.toFinset.{u1} α t ht))
-Case conversion may be inaccurate. Consider using '#align set.finite.to_finset_diff Set.Finite.toFinset_diffₓ'. -/
 protected theorem toFinset_diff [DecidableEq α] (hs : s.Finite) (ht : t.Finite)
     (h : (s \ t).Finite) : h.toFinset = hs.toFinset \ ht.toFinset := by ext; simp
 #align set.finite.to_finset_diff Set.Finite.toFinset_diff
 
-/- warning: set.finite.to_finset_symm_diff -> Set.Finite.toFinset_symmDiff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α} [_inst_1 : DecidableEq.{succ u1} α] (hs : Set.Finite.{u1} α s) (ht : Set.Finite.{u1} α t) (h : Set.Finite.{u1} α (symmDiff.{u1} (Set.{u1} α) (SemilatticeSup.toHasSup.{u1} (Set.{u1} α) (Lattice.toSemilatticeSup.{u1} (Set.{u1} α) (CompleteLattice.toLattice.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α))))))) (BooleanAlgebra.toHasSdiff.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s t)), Eq.{succ u1} (Finset.{u1} α) (Set.Finite.toFinset.{u1} α (symmDiff.{u1} (Set.{u1} α) (SemilatticeSup.toHasSup.{u1} (Set.{u1} α) (Lattice.toSemilatticeSup.{u1} (Set.{u1} α) (CompleteLattice.toLattice.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α))))))) (BooleanAlgebra.toHasSdiff.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s t) h) (symmDiff.{u1} (Finset.{u1} α) (SemilatticeSup.toHasSup.{u1} (Finset.{u1} α) (Lattice.toSemilatticeSup.{u1} (Finset.{u1} α) (Finset.lattice.{u1} α (fun (a : α) (b : α) => _inst_1 a b)))) (Finset.hasSdiff.{u1} α (fun (a : α) (b : α) => _inst_1 a b)) (Set.Finite.toFinset.{u1} α s hs) (Set.Finite.toFinset.{u1} α t ht))
-but is expected to have type
-  forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α} [_inst_1 : DecidableEq.{succ u1} α] (hs : Set.Finite.{u1} α s) (ht : Set.Finite.{u1} α t) (h : Set.Finite.{u1} α (symmDiff.{u1} (Set.{u1} α) (SemilatticeSup.toSup.{u1} (Set.{u1} α) (Lattice.toSemilatticeSup.{u1} (Set.{u1} α) (CompleteLattice.toLattice.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α))))))) (Set.instSDiffSet.{u1} α) s t)), Eq.{succ u1} (Finset.{u1} α) (Set.Finite.toFinset.{u1} α (symmDiff.{u1} (Set.{u1} α) (SemilatticeSup.toSup.{u1} (Set.{u1} α) (Lattice.toSemilatticeSup.{u1} (Set.{u1} α) (CompleteLattice.toLattice.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α))))))) (Set.instSDiffSet.{u1} α) s t) h) (symmDiff.{u1} (Finset.{u1} α) (SemilatticeSup.toSup.{u1} (Finset.{u1} α) (Lattice.toSemilatticeSup.{u1} (Finset.{u1} α) (Finset.instLatticeFinset.{u1} α (fun (a : α) (b : α) => _inst_1 a b)))) (Finset.instSDiffFinset.{u1} α (fun (a : α) (b : α) => _inst_1 a b)) (Set.Finite.toFinset.{u1} α s hs) (Set.Finite.toFinset.{u1} α t ht))
-Case conversion may be inaccurate. Consider using '#align set.finite.to_finset_symm_diff Set.Finite.toFinset_symmDiffₓ'. -/
 protected theorem toFinset_symmDiff [DecidableEq α] (hs : s.Finite) (ht : t.Finite)
     (h : (s ∆ t).Finite) : h.toFinset = hs.toFinset ∆ ht.toFinset := by ext;
   simp [mem_symm_diff, Finset.mem_symmDiff]
 #align set.finite.to_finset_symm_diff Set.Finite.toFinset_symmDiff
 
-/- warning: set.finite.to_finset_compl -> Set.Finite.toFinset_compl is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {s : Set.{u1} α} [_inst_1 : DecidableEq.{succ u1} α] [_inst_2 : Fintype.{u1} α] (hs : Set.Finite.{u1} α s) (h : Set.Finite.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)), Eq.{succ u1} (Finset.{u1} α) (Set.Finite.toFinset.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s) h) (HasCompl.compl.{u1} (Finset.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Finset.{u1} α) (Finset.booleanAlgebra.{u1} α _inst_2 (fun (a : α) (b : α) => _inst_1 a b))) (Set.Finite.toFinset.{u1} α s hs))
-but is expected to have type
-  forall {α : Type.{u1}} {s : Set.{u1} α} [_inst_1 : DecidableEq.{succ u1} α] [_inst_2 : Fintype.{u1} α] (hs : Set.Finite.{u1} α s) (h : Set.Finite.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)), Eq.{succ u1} (Finset.{u1} α) (Set.Finite.toFinset.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s) h) (HasCompl.compl.{u1} (Finset.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Finset.{u1} α) (Finset.booleanAlgebra.{u1} α _inst_2 (fun (a : α) (b : α) => _inst_1 a b))) (Set.Finite.toFinset.{u1} α s hs))
-Case conversion may be inaccurate. Consider using '#align set.finite.to_finset_compl Set.Finite.toFinset_complₓ'. -/
 protected theorem toFinset_compl [DecidableEq α] [Fintype α] (hs : s.Finite) (h : sᶜ.Finite) :
     h.toFinset = hs.toFinsetᶜ := by ext; simp
 #align set.finite.to_finset_compl Set.Finite.toFinset_compl
@@ -426,12 +366,6 @@ noncomputable def fintypeOfFiniteUniv (H : (univ : Set α).Finite) : Fintype α
 #align set.fintype_of_finite_univ Set.fintypeOfFiniteUniv
 -/
 
-/- warning: set.fintype_union -> Set.fintypeUnion is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} α] (s : Set.{u1} α) (t : Set.{u1} α) [_inst_2 : Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s)] [_inst_3 : Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) t)], Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (Union.union.{u1} (Set.{u1} α) (Set.hasUnion.{u1} α) s t))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} α] (s : Set.{u1} α) (t : Set.{u1} α) [_inst_2 : Fintype.{u1} (Set.Elem.{u1} α s)] [_inst_3 : Fintype.{u1} (Set.Elem.{u1} α t)], Fintype.{u1} (Set.Elem.{u1} α (Union.union.{u1} (Set.{u1} α) (Set.instUnionSet.{u1} α) s t))
-Case conversion may be inaccurate. Consider using '#align set.fintype_union Set.fintypeUnionₓ'. -/
 instance fintypeUnion [DecidableEq α] (s t : Set α) [Fintype s] [Fintype t] :
     Fintype (s ∪ t : Set α) :=
   Fintype.ofFinset (s.toFinset ∪ t.toFinset) <| by simp
@@ -444,35 +378,17 @@ instance fintypeSep (s : Set α) (p : α → Prop) [Fintype s] [DecidablePred p]
 #align set.fintype_sep Set.fintypeSep
 -/
 
-/- warning: set.fintype_inter -> Set.fintypeInter is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} (s : Set.{u1} α) (t : Set.{u1} α) [_inst_1 : DecidableEq.{succ u1} α] [_inst_2 : Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s)] [_inst_3 : Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) t)], Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) s t))
-but is expected to have type
-  forall {α : Type.{u1}} (s : Set.{u1} α) (t : Set.{u1} α) [_inst_1 : DecidableEq.{succ u1} α] [_inst_2 : Fintype.{u1} (Set.Elem.{u1} α s)] [_inst_3 : Fintype.{u1} (Set.Elem.{u1} α t)], Fintype.{u1} (Set.Elem.{u1} α (Inter.inter.{u1} (Set.{u1} α) (Set.instInterSet.{u1} α) s t))
-Case conversion may be inaccurate. Consider using '#align set.fintype_inter Set.fintypeInterₓ'. -/
 instance fintypeInter (s t : Set α) [DecidableEq α] [Fintype s] [Fintype t] :
     Fintype (s ∩ t : Set α) :=
   Fintype.ofFinset (s.toFinset ∩ t.toFinset) <| by simp
 #align set.fintype_inter Set.fintypeInter
 
-/- warning: set.fintype_inter_of_left -> Set.fintypeInterOfLeft is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} (s : Set.{u1} α) (t : Set.{u1} α) [_inst_1 : Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s)] [_inst_2 : DecidablePred.{succ u1} α (fun (_x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) _x t)], Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) s t))
-but is expected to have type
-  forall {α : Type.{u1}} (s : Set.{u1} α) (t : Set.{u1} α) [_inst_1 : Fintype.{u1} (Set.Elem.{u1} α s)] [_inst_2 : DecidablePred.{succ u1} α (fun (_x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) _x t)], Fintype.{u1} (Set.Elem.{u1} α (Inter.inter.{u1} (Set.{u1} α) (Set.instInterSet.{u1} α) s t))
-Case conversion may be inaccurate. Consider using '#align set.fintype_inter_of_left Set.fintypeInterOfLeftₓ'. -/
 /-- A `fintype` instance for set intersection where the left set has a `fintype` instance. -/
 instance fintypeInterOfLeft (s t : Set α) [Fintype s] [DecidablePred (· ∈ t)] :
     Fintype (s ∩ t : Set α) :=
   Fintype.ofFinset (s.toFinset.filterₓ (· ∈ t)) <| by simp
 #align set.fintype_inter_of_left Set.fintypeInterOfLeft
 
-/- warning: set.fintype_inter_of_right -> Set.fintypeInterOfRight is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} (s : Set.{u1} α) (t : Set.{u1} α) [_inst_1 : Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) t)] [_inst_2 : DecidablePred.{succ u1} α (fun (_x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) _x s)], Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) s t))
-but is expected to have type
-  forall {α : Type.{u1}} (s : Set.{u1} α) (t : Set.{u1} α) [_inst_1 : Fintype.{u1} (Set.Elem.{u1} α t)] [_inst_2 : DecidablePred.{succ u1} α (fun (_x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) _x s)], Fintype.{u1} (Set.Elem.{u1} α (Inter.inter.{u1} (Set.{u1} α) (Set.instInterSet.{u1} α) s t))
-Case conversion may be inaccurate. Consider using '#align set.fintype_inter_of_right Set.fintypeInterOfRightₓ'. -/
 /-- A `fintype` instance for set intersection where the right set has a `fintype` instance. -/
 instance fintypeInterOfRight (s t : Set α) [Fintype t] [DecidablePred (· ∈ s)] :
     Fintype (s ∩ t : Set α) :=
@@ -486,23 +402,11 @@ def fintypeSubset (s : Set α) {t : Set α} [Fintype s] [DecidablePred (· ∈ t
 #align set.fintype_subset Set.fintypeSubset
 -/
 
-/- warning: set.fintype_diff -> Set.fintypeDiff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} α] (s : Set.{u1} α) (t : Set.{u1} α) [_inst_2 : Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s)] [_inst_3 : Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) t)], Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (SDiff.sdiff.{u1} (Set.{u1} α) (BooleanAlgebra.toHasSdiff.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s t))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} α] (s : Set.{u1} α) (t : Set.{u1} α) [_inst_2 : Fintype.{u1} (Set.Elem.{u1} α s)] [_inst_3 : Fintype.{u1} (Set.Elem.{u1} α t)], Fintype.{u1} (Set.Elem.{u1} α (SDiff.sdiff.{u1} (Set.{u1} α) (Set.instSDiffSet.{u1} α) s t))
-Case conversion may be inaccurate. Consider using '#align set.fintype_diff Set.fintypeDiffₓ'. -/
 instance fintypeDiff [DecidableEq α] (s t : Set α) [Fintype s] [Fintype t] :
     Fintype (s \ t : Set α) :=
   Fintype.ofFinset (s.toFinset \ t.toFinset) <| by simp
 #align set.fintype_diff Set.fintypeDiff
 
-/- warning: set.fintype_diff_left -> Set.fintypeDiffLeft is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} (s : Set.{u1} α) (t : Set.{u1} α) [_inst_1 : Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s)] [_inst_2 : DecidablePred.{succ u1} α (fun (_x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) _x t)], Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (SDiff.sdiff.{u1} (Set.{u1} α) (BooleanAlgebra.toHasSdiff.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s t))
-but is expected to have type
-  forall {α : Type.{u1}} (s : Set.{u1} α) (t : Set.{u1} α) [_inst_1 : Fintype.{u1} (Set.Elem.{u1} α s)] [_inst_2 : DecidablePred.{succ u1} α (fun (_x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) _x t)], Fintype.{u1} (Set.Elem.{u1} α (SDiff.sdiff.{u1} (Set.{u1} α) (Set.instSDiffSet.{u1} α) s t))
-Case conversion may be inaccurate. Consider using '#align set.fintype_diff_left Set.fintypeDiffLeftₓ'. -/
 instance fintypeDiffLeft (s t : Set α) [Fintype s] [DecidablePred (· ∈ t)] :
     Fintype (s \ t : Set α) :=
   Set.fintypeSep s (· ∈ tᶜ)
@@ -794,12 +698,6 @@ example : Finite (∅ : Set α) :=
 example (a : α) : Finite ({a} : Set α) :=
   inferInstance
 
-/- warning: finite.set.finite_union -> Finite.Set.finite_union is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} (s : Set.{u1} α) (t : Set.{u1} α) [_inst_1 : Finite.{succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s)] [_inst_2 : Finite.{succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) t)], Finite.{succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (Union.union.{u1} (Set.{u1} α) (Set.hasUnion.{u1} α) s t))
-but is expected to have type
-  forall {α : Type.{u1}} (s : Set.{u1} α) (t : Set.{u1} α) [_inst_1 : Finite.{succ u1} (Set.Elem.{u1} α s)] [_inst_2 : Finite.{succ u1} (Set.Elem.{u1} α t)], Finite.{succ u1} (Set.Elem.{u1} α (Union.union.{u1} (Set.{u1} α) (Set.instUnionSet.{u1} α) s t))
-Case conversion may be inaccurate. Consider using '#align finite.set.finite_union Finite.Set.finite_unionₓ'. -/
 instance finite_union (s t : Set α) [Finite s] [Finite t] : Finite (s ∪ t : Set α) := by
   cases nonempty_fintype s; cases nonempty_fintype t; infer_instance
 #align finite.set.finite_union Finite.Set.finite_union
@@ -816,32 +714,14 @@ protected theorem subset (s : Set α) {t : Set α} [Finite s] (h : t ⊆ s) : Fi
 #align finite.set.subset Finite.Set.subset
 -/
 
-/- warning: finite.set.finite_inter_of_right -> Finite.Set.finite_inter_of_right is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} (s : Set.{u1} α) (t : Set.{u1} α) [_inst_1 : Finite.{succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) t)], Finite.{succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) s t))
-but is expected to have type
-  forall {α : Type.{u1}} (s : Set.{u1} α) (t : Set.{u1} α) [_inst_1 : Finite.{succ u1} (Set.Elem.{u1} α t)], Finite.{succ u1} (Set.Elem.{u1} α (Inter.inter.{u1} (Set.{u1} α) (Set.instInterSet.{u1} α) s t))
-Case conversion may be inaccurate. Consider using '#align finite.set.finite_inter_of_right Finite.Set.finite_inter_of_rightₓ'. -/
 instance finite_inter_of_right (s t : Set α) [Finite t] : Finite (s ∩ t : Set α) :=
   Finite.Set.subset t (inter_subset_right s t)
 #align finite.set.finite_inter_of_right Finite.Set.finite_inter_of_right
 
-/- warning: finite.set.finite_inter_of_left -> Finite.Set.finite_inter_of_left is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} (s : Set.{u1} α) (t : Set.{u1} α) [_inst_1 : Finite.{succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s)], Finite.{succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) s t))
-but is expected to have type
-  forall {α : Type.{u1}} (s : Set.{u1} α) (t : Set.{u1} α) [_inst_1 : Finite.{succ u1} (Set.Elem.{u1} α s)], Finite.{succ u1} (Set.Elem.{u1} α (Inter.inter.{u1} (Set.{u1} α) (Set.instInterSet.{u1} α) s t))
-Case conversion may be inaccurate. Consider using '#align finite.set.finite_inter_of_left Finite.Set.finite_inter_of_leftₓ'. -/
 instance finite_inter_of_left (s t : Set α) [Finite s] : Finite (s ∩ t : Set α) :=
   Finite.Set.subset s (inter_subset_left s t)
 #align finite.set.finite_inter_of_left Finite.Set.finite_inter_of_left
 
-/- warning: finite.set.finite_diff -> Finite.Set.finite_diff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} (s : Set.{u1} α) (t : Set.{u1} α) [_inst_1 : Finite.{succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s)], Finite.{succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (SDiff.sdiff.{u1} (Set.{u1} α) (BooleanAlgebra.toHasSdiff.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s t))
-but is expected to have type
-  forall {α : Type.{u1}} (s : Set.{u1} α) (t : Set.{u1} α) [_inst_1 : Finite.{succ u1} (Set.Elem.{u1} α s)], Finite.{succ u1} (Set.Elem.{u1} α (SDiff.sdiff.{u1} (Set.{u1} α) (Set.instSDiffSet.{u1} α) s t))
-Case conversion may be inaccurate. Consider using '#align finite.set.finite_diff Finite.Set.finite_diffₓ'. -/
 instance finite_diff (s t : Set α) [Finite s] : Finite (s \ t : Set α) :=
   Finite.Set.subset s (diff_subset s t)
 #align finite.set.finite_diff Finite.Set.finite_diff
@@ -866,12 +746,6 @@ instance finite_sUnion {s : Set (Set α)} [Finite s] [H : ∀ t : s, Finite (t :
 #align finite.set.finite_sUnion Finite.Set.finite_sUnion
 -/
 
-/- warning: finite.set.finite_bUnion -> Finite.Set.finite_biUnion is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Type.{u2}} (s : Set.{u2} ι) [_inst_1 : Finite.{succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) s)] (t : ι -> (Set.{u1} α)), (forall (i : ι), (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i s) -> (Finite.{succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (t i)))) -> (Finite.{succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (Set.iUnion.{u1, succ u2} α ι (fun (x : ι) => Set.iUnion.{u1, 0} α (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x s) (fun (H : Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x s) => t x)))))
-but is expected to have type
-  forall {α : Type.{u2}} {ι : Type.{u1}} (s : Set.{u1} ι) [_inst_1 : Finite.{succ u1} (Set.Elem.{u1} ι s)] (t : ι -> (Set.{u2} α)), (forall (i : ι), (Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i s) -> (Finite.{succ u2} (Set.Elem.{u2} α (t i)))) -> (Finite.{succ u2} (Set.Elem.{u2} α (Set.iUnion.{u2, succ u1} α ι (fun (x : ι) => Set.iUnion.{u2, 0} α (Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x s) (fun (H : Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x s) => t x)))))
-Case conversion may be inaccurate. Consider using '#align finite.set.finite_bUnion Finite.Set.finite_biUnionₓ'. -/
 theorem finite_biUnion {ι : Type _} (s : Set ι) [Finite s] (t : ι → Set α)
     (H : ∀ i ∈ s, Finite (t i)) : Finite (⋃ x ∈ s, t x) :=
   by
@@ -983,32 +857,14 @@ theorem finite_univ_iff : (@univ α).Finite ↔ Finite α :=
 alias finite_univ_iff ↔ _root_.finite.of_finite_univ _
 #align finite.of_finite_univ Finite.of_finite_univ
 
-/- warning: set.finite.union -> Set.Finite.union is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α}, (Set.Finite.{u1} α s) -> (Set.Finite.{u1} α t) -> (Set.Finite.{u1} α (Union.union.{u1} (Set.{u1} α) (Set.hasUnion.{u1} α) s t))
-but is expected to have type
-  forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α}, (Set.Finite.{u1} α s) -> (Set.Finite.{u1} α t) -> (Set.Finite.{u1} α (Union.union.{u1} (Set.{u1} α) (Set.instUnionSet.{u1} α) s t))
-Case conversion may be inaccurate. Consider using '#align set.finite.union Set.Finite.unionₓ'. -/
 theorem Finite.union {s t : Set α} (hs : s.Finite) (ht : t.Finite) : (s ∪ t).Finite := by cases hs;
   cases ht; apply to_finite
 #align set.finite.union Set.Finite.union
 
-/- warning: set.finite.finite_of_compl -> Set.Finite.finite_of_compl is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {s : Set.{u1} α}, (Set.Finite.{u1} α s) -> (Set.Finite.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) -> (Finite.{succ u1} α)
-but is expected to have type
-  forall {α : Type.{u1}} {s : Set.{u1} α}, (Set.Finite.{u1} α s) -> (Set.Finite.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)) -> (Finite.{succ u1} α)
-Case conversion may be inaccurate. Consider using '#align set.finite.finite_of_compl Set.Finite.finite_of_complₓ'. -/
 theorem Finite.finite_of_compl {s : Set α} (hs : s.Finite) (hsc : sᶜ.Finite) : Finite α := by
   rw [← finite_univ_iff, ← union_compl_self s]; exact hs.union hsc
 #align set.finite.finite_of_compl Set.Finite.finite_of_compl
 
-/- warning: set.finite.sup -> Set.Finite.sup is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α}, (Set.Finite.{u1} α s) -> (Set.Finite.{u1} α t) -> (Set.Finite.{u1} α (Sup.sup.{u1} (Set.{u1} α) (SemilatticeSup.toHasSup.{u1} (Set.{u1} α) (Lattice.toSemilatticeSup.{u1} (Set.{u1} α) (CompleteLattice.toLattice.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α))))))) s t))
-but is expected to have type
-  forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α}, (Set.Finite.{u1} α s) -> (Set.Finite.{u1} α t) -> (Set.Finite.{u1} α (Sup.sup.{u1} (Set.{u1} α) (SemilatticeSup.toSup.{u1} (Set.{u1} α) (Lattice.toSemilatticeSup.{u1} (Set.{u1} α) (CompleteLattice.toLattice.{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 set.finite.sup Set.Finite.supₓ'. -/
 theorem Finite.sup {s t : Set α} : s.Finite → t.Finite → (s ⊔ t).Finite :=
   Finite.union
 #align set.finite.sup Set.Finite.sup
@@ -1019,42 +875,18 @@ theorem Finite.sep {s : Set α} (hs : s.Finite) (p : α → Prop) : { a ∈ s |
 #align set.finite.sep Set.Finite.sep
 -/
 
-/- warning: set.finite.inter_of_left -> Set.Finite.inter_of_left is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {s : Set.{u1} α}, (Set.Finite.{u1} α s) -> (forall (t : Set.{u1} α), Set.Finite.{u1} α (Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) s t))
-but is expected to have type
-  forall {α : Type.{u1}} {s : Set.{u1} α}, (Set.Finite.{u1} α s) -> (forall (t : Set.{u1} α), Set.Finite.{u1} α (Inter.inter.{u1} (Set.{u1} α) (Set.instInterSet.{u1} α) s t))
-Case conversion may be inaccurate. Consider using '#align set.finite.inter_of_left Set.Finite.inter_of_leftₓ'. -/
 theorem Finite.inter_of_left {s : Set α} (hs : s.Finite) (t : Set α) : (s ∩ t).Finite := by
   cases hs; apply to_finite
 #align set.finite.inter_of_left Set.Finite.inter_of_left
 
-/- warning: set.finite.inter_of_right -> Set.Finite.inter_of_right is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {s : Set.{u1} α}, (Set.Finite.{u1} α s) -> (forall (t : Set.{u1} α), Set.Finite.{u1} α (Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) t s))
-but is expected to have type
-  forall {α : Type.{u1}} {s : Set.{u1} α}, (Set.Finite.{u1} α s) -> (forall (t : Set.{u1} α), Set.Finite.{u1} α (Inter.inter.{u1} (Set.{u1} α) (Set.instInterSet.{u1} α) t s))
-Case conversion may be inaccurate. Consider using '#align set.finite.inter_of_right Set.Finite.inter_of_rightₓ'. -/
 theorem Finite.inter_of_right {s : Set α} (hs : s.Finite) (t : Set α) : (t ∩ s).Finite := by
   cases hs; apply to_finite
 #align set.finite.inter_of_right Set.Finite.inter_of_right
 
-/- warning: set.finite.inf_of_left -> Set.Finite.inf_of_left is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {s : Set.{u1} α}, (Set.Finite.{u1} α s) -> (forall (t : Set.{u1} α), Set.Finite.{u1} α (Inf.inf.{u1} (Set.{u1} α) (SemilatticeInf.toHasInf.{u1} (Set.{u1} α) (Lattice.toSemilatticeInf.{u1} (Set.{u1} α) (CompleteLattice.toLattice.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α))))))) s t))
-but is expected to have type
-  forall {α : Type.{u1}} {s : Set.{u1} α}, (Set.Finite.{u1} α s) -> (forall (t : Set.{u1} α), Set.Finite.{u1} α (Inf.inf.{u1} (Set.{u1} α) (Lattice.toInf.{u1} (Set.{u1} α) (CompleteLattice.toLattice.{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 set.finite.inf_of_left Set.Finite.inf_of_leftₓ'. -/
 theorem Finite.inf_of_left {s : Set α} (h : s.Finite) (t : Set α) : (s ⊓ t).Finite :=
   h.inter_of_left t
 #align set.finite.inf_of_left Set.Finite.inf_of_left
 
-/- warning: set.finite.inf_of_right -> Set.Finite.inf_of_right is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {s : Set.{u1} α}, (Set.Finite.{u1} α s) -> (forall (t : Set.{u1} α), Set.Finite.{u1} α (Inf.inf.{u1} (Set.{u1} α) (SemilatticeInf.toHasInf.{u1} (Set.{u1} α) (Lattice.toSemilatticeInf.{u1} (Set.{u1} α) (CompleteLattice.toLattice.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α))))))) t s))
-but is expected to have type
-  forall {α : Type.{u1}} {s : Set.{u1} α}, (Set.Finite.{u1} α s) -> (forall (t : Set.{u1} α), Set.Finite.{u1} α (Inf.inf.{u1} (Set.{u1} α) (Lattice.toInf.{u1} (Set.{u1} α) (CompleteLattice.toLattice.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α)))))) t s))
-Case conversion may be inaccurate. Consider using '#align set.finite.inf_of_right Set.Finite.inf_of_rightₓ'. -/
 theorem Finite.inf_of_right {s : Set α} (h : s.Finite) (t : Set α) : (t ⊓ s).Finite :=
   h.inter_of_right t
 #align set.finite.inf_of_right Set.Finite.inf_of_right
@@ -1065,22 +897,10 @@ theorem Finite.subset {s : Set α} (hs : s.Finite) {t : Set α} (ht : t ⊆ s) :
 #align set.finite.subset Set.Finite.subset
 -/
 
-/- warning: set.finite.diff -> Set.Finite.diff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {s : Set.{u1} α}, (Set.Finite.{u1} α s) -> (forall (t : Set.{u1} α), Set.Finite.{u1} α (SDiff.sdiff.{u1} (Set.{u1} α) (BooleanAlgebra.toHasSdiff.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s t))
-but is expected to have type
-  forall {α : Type.{u1}} {s : Set.{u1} α}, (Set.Finite.{u1} α s) -> (forall (t : Set.{u1} α), Set.Finite.{u1} α (SDiff.sdiff.{u1} (Set.{u1} α) (Set.instSDiffSet.{u1} α) s t))
-Case conversion may be inaccurate. Consider using '#align set.finite.diff Set.Finite.diffₓ'. -/
 theorem Finite.diff {s : Set α} (hs : s.Finite) (t : Set α) : (s \ t).Finite := by cases hs;
   apply to_finite
 #align set.finite.diff Set.Finite.diff
 
-/- warning: set.finite.of_diff -> Set.Finite.of_diff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α}, (Set.Finite.{u1} α (SDiff.sdiff.{u1} (Set.{u1} α) (BooleanAlgebra.toHasSdiff.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s t)) -> (Set.Finite.{u1} α t) -> (Set.Finite.{u1} α s)
-but is expected to have type
-  forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α}, (Set.Finite.{u1} α (SDiff.sdiff.{u1} (Set.{u1} α) (Set.instSDiffSet.{u1} α) s t)) -> (Set.Finite.{u1} α t) -> (Set.Finite.{u1} α s)
-Case conversion may be inaccurate. Consider using '#align set.finite.of_diff Set.Finite.of_diffₓ'. -/
 theorem Finite.of_diff {s t : Set α} (hd : (s \ t).Finite) (ht : t.Finite) : s.Finite :=
   (hd.union ht).Subset <| subset_diff_union _ _
 #align set.finite.of_diff Set.Finite.of_diff
@@ -1097,12 +917,6 @@ theorem Finite.sUnion {s : Set (Set α)} (hs : s.Finite) (H : ∀ t ∈ s, Set.F
 #align set.finite.sUnion Set.Finite.sUnion
 -/
 
-/- warning: set.finite.bUnion -> Set.Finite.biUnion is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Type.{u2}} {s : Set.{u2} ι}, (Set.Finite.{u2} ι s) -> (forall {t : ι -> (Set.{u1} α)}, (forall (i : ι), (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i s) -> (Set.Finite.{u1} α (t i))) -> (Set.Finite.{u1} α (Set.iUnion.{u1, succ u2} α ι (fun (i : ι) => Set.iUnion.{u1, 0} α (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i s) (fun (H : Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i s) => t i)))))
-but is expected to have type
-  forall {α : Type.{u2}} {ι : Type.{u1}} {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {t : ι -> (Set.{u2} α)}, (forall (i : ι), (Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i s) -> (Set.Finite.{u2} α (t i))) -> (Set.Finite.{u2} α (Set.iUnion.{u2, succ u1} α ι (fun (i : ι) => Set.iUnion.{u2, 0} α (Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i s) (fun (H : Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i s) => t i)))))
-Case conversion may be inaccurate. Consider using '#align set.finite.bUnion Set.Finite.biUnionₓ'. -/
 theorem Finite.biUnion {ι} {s : Set ι} (hs : s.Finite) {t : ι → Set α}
     (ht : ∀ i ∈ s, (t i).Finite) : (⋃ i ∈ s, t i).Finite := by
   classical
@@ -1111,12 +925,6 @@ theorem Finite.biUnion {ι} {s : Set ι} (hs : s.Finite) {t : ι → Set α}
     apply to_finite
 #align set.finite.bUnion Set.Finite.biUnion
 
-/- warning: set.finite.bUnion' -> Set.Finite.biUnion' is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Type.{u2}} {s : Set.{u2} ι}, (Set.Finite.{u2} ι s) -> (forall {t : forall (i : ι), (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i s) -> (Set.{u1} α)}, (forall (i : ι) (H : Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i s), Set.Finite.{u1} α (t i H)) -> (Set.Finite.{u1} α (Set.iUnion.{u1, succ u2} α ι (fun (i : ι) => Set.iUnion.{u1, 0} α (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i s) (fun (H : Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i s) => t i H)))))
-but is expected to have type
-  forall {α : Type.{u2}} {ι : Type.{u1}} {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {t : forall (i : ι), (Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i s) -> (Set.{u2} α)}, (forall (i : ι) (H : Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i s), Set.Finite.{u2} α (t i H)) -> (Set.Finite.{u2} α (Set.iUnion.{u2, succ u1} α ι (fun (i : ι) => Set.iUnion.{u2, 0} α (Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i s) (fun (H : Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i s) => t i H)))))
-Case conversion may be inaccurate. Consider using '#align set.finite.bUnion' Set.Finite.biUnion'ₓ'. -/
 /-- Dependent version of `finite.bUnion`. -/
 theorem Finite.biUnion' {ι} {s : Set ι} (hs : s.Finite) {t : ∀ i ∈ s, Set α}
     (ht : ∀ i ∈ s, (t i ‹_›).Finite) : (⋃ i ∈ s, t i ‹_›).Finite := by cases hs;
@@ -1388,12 +1196,6 @@ theorem Finite.finite_subsets {α : Type u} {a : Set α} (h : a.Finite) : { b |
 #align set.finite.finite_subsets Set.Finite.finite_subsets
 -/
 
-/- warning: set.finite.pi -> Set.Finite.pi is a dubious translation:
-lean 3 declaration is
-  forall {δ : Type.{u1}} [_inst_1 : Finite.{succ u1} δ] {κ : δ -> Type.{u2}} {t : forall (d : δ), Set.{u2} (κ d)}, (forall (d : δ), Set.Finite.{u2} (κ d) (t d)) -> (Set.Finite.{max u1 u2} (forall (i : δ), κ i) (Set.pi.{u1, u2} δ (fun (d : δ) => κ d) (Set.univ.{u1} δ) t))
-but is expected to have type
-  forall {δ : Type.{u2}} [_inst_1 : Finite.{succ u2} δ] {κ : δ -> Type.{u1}} {t : forall (d : δ), Set.{u1} (κ d)}, (forall (d : δ), Set.Finite.{u1} (κ d) (t d)) -> (Set.Finite.{max u2 u1} (forall (i : δ), κ i) (Set.pi.{u2, u1} δ (fun (d : δ) => κ d) (Set.univ.{u2} δ) t))
-Case conversion may be inaccurate. Consider using '#align set.finite.pi Set.Finite.piₓ'. -/
 /-- Finite product of finite sets is finite -/
 theorem Finite.pi {δ : Type _} [Finite δ] {κ : δ → Type _} {t : ∀ d, Set (κ d)}
     (ht : ∀ d, (t d).Finite) : (pi univ t).Finite :=
@@ -1436,12 +1238,6 @@ instance Finite.inhabited : Inhabited { s : Set α // s.Finite } :=
 #align set.finite.inhabited Set.Finite.inhabited
 -/
 
-/- warning: set.finite_union -> Set.finite_union is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α}, Iff (Set.Finite.{u1} α (Union.union.{u1} (Set.{u1} α) (Set.hasUnion.{u1} α) s t)) (And (Set.Finite.{u1} α s) (Set.Finite.{u1} α t))
-but is expected to have type
-  forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α}, Iff (Set.Finite.{u1} α (Union.union.{u1} (Set.{u1} α) (Set.instUnionSet.{u1} α) s t)) (And (Set.Finite.{u1} α s) (Set.Finite.{u1} α t))
-Case conversion may be inaccurate. Consider using '#align set.finite_union Set.finite_unionₓ'. -/
 @[simp]
 theorem finite_union {s t : Set α} : (s ∪ t).Finite ↔ s.Finite ∧ t.Finite :=
   ⟨fun h => ⟨h.Subset (subset_union_left _ _), h.Subset (subset_union_right _ _)⟩, fun ⟨hs, ht⟩ =>
@@ -1528,23 +1324,11 @@ theorem finite_image_fst_and_snd_iff {s : Set (α × β)} :
 #align set.finite_image_fst_and_snd_iff Set.finite_image_fst_and_snd_iff
 -/
 
-/- warning: set.forall_finite_image_eval_iff -> Set.forall_finite_image_eval_iff is a dubious translation:
-lean 3 declaration is
-  forall {δ : Type.{u1}} [_inst_1 : Finite.{succ u1} δ] {κ : δ -> Type.{u2}} {s : Set.{max u1 u2} (forall (d : δ), κ d)}, Iff (forall (d : δ), Set.Finite.{u2} (κ d) (Set.image.{max u1 u2, u2} (forall (x : δ), κ x) (κ d) (Function.eval.{succ u1, succ u2} δ (fun (d : δ) => κ d) d) s)) (Set.Finite.{max u1 u2} (forall (d : δ), κ d) s)
-but is expected to have type
-  forall {δ : Type.{u2}} [_inst_1 : Finite.{succ u2} δ] {κ : δ -> Type.{u1}} {s : Set.{max u2 u1} (forall (d : δ), κ d)}, Iff (forall (d : δ), Set.Finite.{u1} (κ d) (Set.image.{max u2 u1, u1} (forall (x : δ), κ x) (κ d) (Function.eval.{succ u2, succ u1} δ (fun (d : δ) => κ d) d) s)) (Set.Finite.{max u2 u1} (forall (d : δ), κ d) s)
-Case conversion may be inaccurate. Consider using '#align set.forall_finite_image_eval_iff Set.forall_finite_image_eval_iffₓ'. -/
 theorem forall_finite_image_eval_iff {δ : Type _} [Finite δ] {κ : δ → Type _} {s : Set (∀ d, κ d)} :
     (∀ d, (eval d '' s).Finite) ↔ s.Finite :=
   ⟨fun h => (Finite.pi h).Subset <| subset_pi_eval_image _ _, fun h d => h.image _⟩
 #align set.forall_finite_image_eval_iff Set.forall_finite_image_eval_iff
 
-/- warning: set.finite_subset_Union -> Set.finite_subset_iUnion is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {s : Set.{u1} α}, (Set.Finite.{u1} α s) -> (forall {ι : Type.{u2}} {t : ι -> (Set.{u1} α)}, (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) s (Set.iUnion.{u1, succ u2} α ι (fun (i : ι) => t i))) -> (Exists.{succ u2} (Set.{u2} ι) (fun (I : Set.{u2} ι) => And (Set.Finite.{u2} ι I) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) s (Set.iUnion.{u1, succ u2} α ι (fun (i : ι) => Set.iUnion.{u1, 0} α (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i I) (fun (H : Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i I) => t i)))))))
-but is expected to have type
-  forall {α : Type.{u2}} {s : Set.{u2} α}, (Set.Finite.{u2} α s) -> (forall {ι : Type.{u1}} {t : ι -> (Set.{u2} α)}, (HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) s (Set.iUnion.{u2, succ u1} α ι (fun (i : ι) => t i))) -> (Exists.{succ u1} (Set.{u1} ι) (fun (I : Set.{u1} ι) => And (Set.Finite.{u1} ι I) (HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) s (Set.iUnion.{u2, succ u1} α ι (fun (i : ι) => Set.iUnion.{u2, 0} α (Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i I) (fun (H : Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i I) => t i)))))))
-Case conversion may be inaccurate. Consider using '#align set.finite_subset_Union Set.finite_subset_iUnionₓ'. -/
 theorem finite_subset_iUnion {s : Set α} (hs : s.Finite) {ι} {t : ι → Set α} (h : s ⊆ ⋃ i, t i) :
     ∃ I : Set ι, I.Finite ∧ s ⊆ ⋃ i ∈ I, t i :=
   by
@@ -1555,9 +1339,6 @@ theorem finite_subset_iUnion {s : Set α} (hs : s.Finite) {ι} {t : ι → Set 
   exact ⟨⟨x, hx⟩, hf _⟩
 #align set.finite_subset_Union Set.finite_subset_iUnion
 
-/- warning: set.eq_finite_Union_of_finite_subset_Union -> Set.eq_finite_iUnion_of_finite_subset_iUnion is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align set.eq_finite_Union_of_finite_subset_Union Set.eq_finite_iUnion_of_finite_subset_iUnionₓ'. -/
 theorem eq_finite_iUnion_of_finite_subset_iUnion {ι} {s : ι → Set α} {t : Set α} (tfin : t.Finite)
     (h : t ⊆ ⋃ i, s i) :
     ∃ I : Set ι,
@@ -1704,12 +1485,6 @@ theorem card_singleton (a : α) : Fintype.card ({a} : Set α) = 1 :=
 #align set.card_singleton Set.card_singleton
 -/
 
-/- warning: set.card_lt_card -> Set.card_lt_card is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α} [_inst_1 : Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s)] [_inst_2 : Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) t)], (HasSSubset.SSubset.{u1} (Set.{u1} α) (Set.hasSsubset.{u1} α) s t) -> (LT.lt.{0} Nat Nat.hasLt (Fintype.card.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) _inst_1) (Fintype.card.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) t) _inst_2))
-but is expected to have type
-  forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α} [_inst_1 : Fintype.{u1} (Set.Elem.{u1} α s)] [_inst_2 : Fintype.{u1} (Set.Elem.{u1} α t)], (HasSSubset.SSubset.{u1} (Set.{u1} α) (Set.instHasSSubsetSet.{u1} α) s t) -> (LT.lt.{0} Nat instLTNat (Fintype.card.{u1} (Set.Elem.{u1} α s) _inst_1) (Fintype.card.{u1} (Set.Elem.{u1} α t) _inst_2))
-Case conversion may be inaccurate. Consider using '#align set.card_lt_card Set.card_lt_cardₓ'. -/
 theorem card_lt_card {s t : Set α} [Fintype s] [Fintype t] (h : s ⊂ t) :
     Fintype.card s < Fintype.card t :=
   Fintype.card_lt_of_injective_not_surjective (Set.inclusion h.1) (Set.inclusion_injective h.1)
@@ -1798,22 +1573,10 @@ theorem Infinite.exists_subset_card_eq {s : Set α} (hs : s.Infinite) (n : ℕ)
 #align set.infinite.exists_subset_card_eq Set.Infinite.exists_subset_card_eq
 -/
 
-/- warning: set.infinite_of_finite_compl -> Set.infinite_of_finite_compl is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : Infinite.{succ u1} α] {s : Set.{u1} α}, (Set.Finite.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) -> (Set.Infinite.{u1} α s)
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : Infinite.{succ u1} α] {s : Set.{u1} α}, (Set.Finite.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)) -> (Set.Infinite.{u1} α s)
-Case conversion may be inaccurate. Consider using '#align set.infinite_of_finite_compl Set.infinite_of_finite_complₓ'. -/
 theorem infinite_of_finite_compl [Infinite α] {s : Set α} (hs : sᶜ.Finite) : s.Infinite := fun h =>
   Set.infinite_univ (by simpa using hs.union h)
 #align set.infinite_of_finite_compl Set.infinite_of_finite_compl
 
-/- warning: set.finite.infinite_compl -> Set.Finite.infinite_compl is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : Infinite.{succ u1} α] {s : Set.{u1} α}, (Set.Finite.{u1} α s) -> (Set.Infinite.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : Infinite.{succ u1} α] {s : Set.{u1} α}, (Set.Finite.{u1} α s) -> (Set.Infinite.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s))
-Case conversion may be inaccurate. Consider using '#align set.finite.infinite_compl Set.Finite.infinite_complₓ'. -/
 theorem Finite.infinite_compl [Infinite α] {s : Set α} (hs : s.Finite) : sᶜ.Infinite := fun h =>
   Set.infinite_univ (by simpa using hs.union h)
 #align set.finite.infinite_compl Set.Finite.infinite_compl
@@ -1824,22 +1587,10 @@ protected theorem Infinite.mono {s t : Set α} (h : s ⊆ t) : s.Infinite → t.
 #align set.infinite.mono Set.Infinite.mono
 -/
 
-/- warning: set.infinite.diff -> Set.Infinite.diff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α}, (Set.Infinite.{u1} α s) -> (Set.Finite.{u1} α t) -> (Set.Infinite.{u1} α (SDiff.sdiff.{u1} (Set.{u1} α) (BooleanAlgebra.toHasSdiff.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s t))
-but is expected to have type
-  forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α}, (Set.Infinite.{u1} α s) -> (Set.Finite.{u1} α t) -> (Set.Infinite.{u1} α (SDiff.sdiff.{u1} (Set.{u1} α) (Set.instSDiffSet.{u1} α) s t))
-Case conversion may be inaccurate. Consider using '#align set.infinite.diff Set.Infinite.diffₓ'. -/
 theorem Infinite.diff {s t : Set α} (hs : s.Infinite) (ht : t.Finite) : (s \ t).Infinite := fun h =>
   hs <| h.of_diff ht
 #align set.infinite.diff Set.Infinite.diff
 
-/- warning: set.infinite_union -> Set.infinite_union is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α}, Iff (Set.Infinite.{u1} α (Union.union.{u1} (Set.{u1} α) (Set.hasUnion.{u1} α) s t)) (Or (Set.Infinite.{u1} α s) (Set.Infinite.{u1} α t))
-but is expected to have type
-  forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α}, Iff (Set.Infinite.{u1} α (Union.union.{u1} (Set.{u1} α) (Set.instUnionSet.{u1} α) s t)) (Or (Set.Infinite.{u1} α s) (Set.Infinite.{u1} α t))
-Case conversion may be inaccurate. Consider using '#align set.infinite_union Set.infinite_unionₓ'. -/
 @[simp]
 theorem infinite_union {s t : Set α} : (s ∪ t).Infinite ↔ s.Infinite ∨ t.Infinite := by
   simp only [Set.Infinite, finite_union, not_and_or]
@@ -1903,12 +1654,6 @@ theorem infinite_of_injOn_mapsTo {s : Set α} {t : Set β} {f : α → β} (hi :
 #align set.infinite_of_inj_on_maps_to Set.infinite_of_injOn_mapsTo
 -/
 
-/- warning: set.infinite.exists_ne_map_eq_of_maps_to -> Set.Infinite.exists_ne_map_eq_of_mapsTo is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {s : Set.{u1} α} {t : Set.{u2} β} {f : α -> β}, (Set.Infinite.{u1} α s) -> (Set.MapsTo.{u1, u2} α β f s t) -> (Set.Finite.{u2} β t) -> (Exists.{succ u1} α (fun (x : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) => Exists.{succ u1} α (fun (y : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) y s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) y s) => And (Ne.{succ u1} α x y) (Eq.{succ u2} β (f x) (f y)))))))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} {s : Set.{u1} α} {t : Set.{u2} β} {f : α -> β}, (Set.Infinite.{u1} α s) -> (Set.MapsTo.{u1, u2} α β f s t) -> (Set.Finite.{u2} β t) -> (Exists.{succ u1} α (fun (x : α) => And (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s) (Exists.{succ u1} α (fun (y : α) => And (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) y s) (And (Ne.{succ u1} α x y) (Eq.{succ u2} β (f x) (f y)))))))
-Case conversion may be inaccurate. Consider using '#align set.infinite.exists_ne_map_eq_of_maps_to Set.Infinite.exists_ne_map_eq_of_mapsToₓ'. -/
 theorem Infinite.exists_ne_map_eq_of_mapsTo {s : Set α} {t : Set β} {f : α → β} (hs : s.Infinite)
     (hf : MapsTo f s t) (ht : t.Finite) : ∃ x ∈ s, ∃ y ∈ s, x ≠ y ∧ f x = f y :=
   by
@@ -1930,12 +1675,6 @@ theorem infinite_of_injective_forall_mem [Infinite α] {s : Set β} {f : α →
 #align set.infinite_of_injective_forall_mem Set.infinite_of_injective_forall_mem
 -/
 
-/- warning: set.infinite.exists_not_mem_finset -> Set.Infinite.exists_not_mem_finset is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {s : Set.{u1} α}, (Set.Infinite.{u1} α s) -> (forall (f : Finset.{u1} α), Exists.{succ u1} α (fun (a : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) a s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) a s) => Not (Membership.Mem.{u1, u1} α (Finset.{u1} α) (Finset.hasMem.{u1} α) a f))))
-but is expected to have type
-  forall {α : Type.{u1}} {s : Set.{u1} α}, (Set.Infinite.{u1} α s) -> (forall (f : Finset.{u1} α), Exists.{succ u1} α (fun (a : α) => And (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) a s) (Not (Membership.mem.{u1, u1} α (Finset.{u1} α) (Finset.instMembershipFinset.{u1} α) a f))))
-Case conversion may be inaccurate. Consider using '#align set.infinite.exists_not_mem_finset Set.Infinite.exists_not_mem_finsetₓ'. -/
 theorem Infinite.exists_not_mem_finset {s : Set α} (hs : s.Infinite) (f : Finset α) :
     ∃ a ∈ s, a ∉ f :=
   let ⟨a, has, haf⟩ := (hs.diffₓ (toFinite f)).Nonempty
@@ -1963,12 +1702,6 @@ section Preorder
 
 variable [Preorder α] [Nonempty α] {s : Set α}
 
-/- warning: set.infinite_of_forall_exists_gt -> Set.infinite_of_forall_exists_gt is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : Preorder.{u1} α] [_inst_2 : Nonempty.{succ u1} α] {s : Set.{u1} α}, (forall (a : α), Exists.{succ u1} α (fun (b : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) b s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) b s) => LT.lt.{u1} α (Preorder.toHasLt.{u1} α _inst_1) a b))) -> (Set.Infinite.{u1} α s)
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : Preorder.{u1} α] [_inst_2 : Nonempty.{succ u1} α] {s : Set.{u1} α}, (forall (a : α), Exists.{succ u1} α (fun (b : α) => And (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) b s) (LT.lt.{u1} α (Preorder.toLT.{u1} α _inst_1) a b))) -> (Set.Infinite.{u1} α s)
-Case conversion may be inaccurate. Consider using '#align set.infinite_of_forall_exists_gt Set.infinite_of_forall_exists_gtₓ'. -/
 theorem infinite_of_forall_exists_gt (h : ∀ a, ∃ b ∈ s, a < b) : s.Infinite :=
   by
   inhabit α
@@ -1978,56 +1711,26 @@ theorem infinite_of_forall_exists_gt (h : ∀ a, ∃ b ∈ s, a < b) : s.Infinit
   exact (h _).choose_spec.choose_spec
 #align set.infinite_of_forall_exists_gt Set.infinite_of_forall_exists_gt
 
-/- warning: set.infinite_of_forall_exists_lt -> Set.infinite_of_forall_exists_lt is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : Preorder.{u1} α] [_inst_2 : Nonempty.{succ u1} α] {s : Set.{u1} α}, (forall (a : α), Exists.{succ u1} α (fun (b : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) b s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) b s) => LT.lt.{u1} α (Preorder.toHasLt.{u1} α _inst_1) b a))) -> (Set.Infinite.{u1} α s)
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : Preorder.{u1} α] [_inst_2 : Nonempty.{succ u1} α] {s : Set.{u1} α}, (forall (a : α), Exists.{succ u1} α (fun (b : α) => And (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) b s) (LT.lt.{u1} α (Preorder.toLT.{u1} α _inst_1) b a))) -> (Set.Infinite.{u1} α s)
-Case conversion may be inaccurate. Consider using '#align set.infinite_of_forall_exists_lt Set.infinite_of_forall_exists_ltₓ'. -/
 theorem infinite_of_forall_exists_lt (h : ∀ a, ∃ b ∈ s, b < a) : s.Infinite :=
   @infinite_of_forall_exists_gt αᵒᵈ _ _ _ h
 #align set.infinite_of_forall_exists_lt Set.infinite_of_forall_exists_lt
 
 end Preorder
 
-/- warning: set.finite_is_top -> Set.finite_isTop is a dubious translation:
-lean 3 declaration is
-  forall (α : Type.{u1}) [_inst_1 : PartialOrder.{u1} α], Set.Finite.{u1} α (setOf.{u1} α (fun (x : α) => IsTop.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x))
-but is expected to have type
-  forall (α : Type.{u1}) [_inst_1 : PartialOrder.{u1} α], Set.Finite.{u1} α (setOf.{u1} α (fun (x : α) => IsTop.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x))
-Case conversion may be inaccurate. Consider using '#align set.finite_is_top Set.finite_isTopₓ'. -/
 theorem finite_isTop (α : Type _) [PartialOrder α] : { x : α | IsTop x }.Finite :=
   (subsingleton_isTop α).Finite
 #align set.finite_is_top Set.finite_isTop
 
-/- warning: set.finite_is_bot -> Set.finite_isBot is a dubious translation:
-lean 3 declaration is
-  forall (α : Type.{u1}) [_inst_1 : PartialOrder.{u1} α], Set.Finite.{u1} α (setOf.{u1} α (fun (x : α) => IsBot.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x))
-but is expected to have type
-  forall (α : Type.{u1}) [_inst_1 : PartialOrder.{u1} α], Set.Finite.{u1} α (setOf.{u1} α (fun (x : α) => IsBot.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x))
-Case conversion may be inaccurate. Consider using '#align set.finite_is_bot Set.finite_isBotₓ'. -/
 theorem finite_isBot (α : Type _) [PartialOrder α] : { x : α | IsBot x }.Finite :=
   (subsingleton_isBot α).Finite
 #align set.finite_is_bot Set.finite_isBot
 
-/- warning: set.infinite.exists_lt_map_eq_of_maps_to -> Set.Infinite.exists_lt_map_eq_of_mapsTo is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrder.{u1} α] {s : Set.{u1} α} {t : Set.{u2} β} {f : α -> β}, (Set.Infinite.{u1} α s) -> (Set.MapsTo.{u1, u2} α β f s t) -> (Set.Finite.{u2} β t) -> (Exists.{succ u1} α (fun (x : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) => Exists.{succ u1} α (fun (y : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) y s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) y s) => And (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) x y) (Eq.{succ u2} β (f x) (f y)))))))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrder.{u1} α] {s : Set.{u1} α} {t : Set.{u2} β} {f : α -> β}, (Set.Infinite.{u1} α s) -> (Set.MapsTo.{u1, u2} α β f s t) -> (Set.Finite.{u2} β t) -> (Exists.{succ u1} α (fun (x : α) => And (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s) (Exists.{succ u1} α (fun (y : α) => And (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) y s) (And (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1)))))) x y) (Eq.{succ u2} β (f x) (f y)))))))
-Case conversion may be inaccurate. Consider using '#align set.infinite.exists_lt_map_eq_of_maps_to Set.Infinite.exists_lt_map_eq_of_mapsToₓ'. -/
 theorem Infinite.exists_lt_map_eq_of_mapsTo [LinearOrder α] {s : Set α} {t : Set β} {f : α → β}
     (hs : s.Infinite) (hf : MapsTo f s t) (ht : t.Finite) : ∃ x ∈ s, ∃ y ∈ s, x < y ∧ f x = f y :=
   let ⟨x, hx, y, hy, hxy, hf⟩ := hs.exists_ne_map_eq_of_mapsTo hf ht
   hxy.lt_or_lt.elim (fun hxy => ⟨x, hx, y, hy, hxy, hf⟩) fun hyx => ⟨y, hy, x, hx, hyx, hf.symm⟩
 #align set.infinite.exists_lt_map_eq_of_maps_to Set.Infinite.exists_lt_map_eq_of_mapsTo
 
-/- warning: set.finite.exists_lt_map_eq_of_forall_mem -> Set.Finite.exists_lt_map_eq_of_forall_mem is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrder.{u1} α] [_inst_2 : Infinite.{succ u1} α] {t : Set.{u2} β} {f : α -> β}, (forall (a : α), Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) (f a) t) -> (Set.Finite.{u2} β t) -> (Exists.{succ u1} α (fun (a : α) => Exists.{succ u1} α (fun (b : α) => And (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) a b) (Eq.{succ u2} β (f a) (f b)))))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrder.{u1} α] [_inst_2 : Infinite.{succ u1} α] {t : Set.{u2} β} {f : α -> β}, (forall (a : α), Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) (f a) t) -> (Set.Finite.{u2} β t) -> (Exists.{succ u1} α (fun (a : α) => Exists.{succ u1} α (fun (b : α) => And (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1)))))) a b) (Eq.{succ u2} β (f a) (f b)))))
-Case conversion may be inaccurate. Consider using '#align set.finite.exists_lt_map_eq_of_forall_mem Set.Finite.exists_lt_map_eq_of_forall_memₓ'. -/
 theorem Finite.exists_lt_map_eq_of_forall_mem [LinearOrder α] [Infinite α] {t : Set β} {f : α → β}
     (hf : ∀ a, f a ∈ t) (ht : t.Finite) : ∃ a b, a < b ∧ f a = f b :=
   by
@@ -2036,12 +1739,6 @@ theorem Finite.exists_lt_map_eq_of_forall_mem [LinearOrder α] [Infinite α] {t
   exact ⟨a, b, h⟩
 #align set.finite.exists_lt_map_eq_of_forall_mem Set.Finite.exists_lt_map_eq_of_forall_mem
 
-/- warning: set.exists_min_image -> Set.exists_min_image is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrder.{u2} β] (s : Set.{u1} α) (f : α -> β), (Set.Finite.{u1} α s) -> (Set.Nonempty.{u1} α s) -> (Exists.{succ u1} α (fun (a : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) a s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) a s) => forall (b : α), (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) b s) -> (LE.le.{u2} β (Preorder.toHasLe.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_1))))) (f a) (f b)))))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrder.{u2} β] (s : Set.{u1} α) (f : α -> β), (Set.Finite.{u1} α s) -> (Set.Nonempty.{u1} α s) -> (Exists.{succ u1} α (fun (a : α) => And (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) a s) (forall (b : α), (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) b s) -> (LE.le.{u2} β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (DistribLattice.toLattice.{u2} β (instDistribLattice.{u2} β _inst_1)))))) (f a) (f b)))))
-Case conversion may be inaccurate. Consider using '#align set.exists_min_image Set.exists_min_imageₓ'. -/
 theorem exists_min_image [LinearOrder β] (s : Set α) (f : α → β) (h1 : s.Finite) :
     s.Nonempty → ∃ a ∈ s, ∀ b ∈ s, f a ≤ f b
   | ⟨x, hx⟩ => by
@@ -2049,12 +1746,6 @@ theorem exists_min_image [LinearOrder β] (s : Set α) (f : α → β) (h1 : s.F
       h1.to_finset.exists_min_image f ⟨x, h1.mem_to_finset.2 hx⟩
 #align set.exists_min_image Set.exists_min_image
 
-/- warning: set.exists_max_image -> Set.exists_max_image is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrder.{u2} β] (s : Set.{u1} α) (f : α -> β), (Set.Finite.{u1} α s) -> (Set.Nonempty.{u1} α s) -> (Exists.{succ u1} α (fun (a : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) a s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) a s) => forall (b : α), (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) b s) -> (LE.le.{u2} β (Preorder.toHasLe.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_1))))) (f b) (f a)))))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrder.{u2} β] (s : Set.{u1} α) (f : α -> β), (Set.Finite.{u1} α s) -> (Set.Nonempty.{u1} α s) -> (Exists.{succ u1} α (fun (a : α) => And (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) a s) (forall (b : α), (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) b s) -> (LE.le.{u2} β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (DistribLattice.toLattice.{u2} β (instDistribLattice.{u2} β _inst_1)))))) (f b) (f a)))))
-Case conversion may be inaccurate. Consider using '#align set.exists_max_image Set.exists_max_imageₓ'. -/
 theorem exists_max_image [LinearOrder β] (s : Set α) (f : α → β) (h1 : s.Finite) :
     s.Nonempty → ∃ a ∈ s, ∀ b ∈ s, f b ≤ f a
   | ⟨x, hx⟩ => by
@@ -2062,12 +1753,6 @@ theorem exists_max_image [LinearOrder β] (s : Set α) (f : α → β) (h1 : s.F
       h1.to_finset.exists_max_image f ⟨x, h1.mem_to_finset.2 hx⟩
 #align set.exists_max_image Set.exists_max_image
 
-/- warning: set.exists_lower_bound_image -> Set.exists_lower_bound_image is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [hα : Nonempty.{succ u1} α] [_inst_1 : LinearOrder.{u2} β] (s : Set.{u1} α) (f : α -> β), (Set.Finite.{u1} α s) -> (Exists.{succ u1} α (fun (a : α) => forall (b : α), (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) b s) -> (LE.le.{u2} β (Preorder.toHasLe.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_1))))) (f a) (f b))))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [hα : Nonempty.{succ u1} α] [_inst_1 : LinearOrder.{u2} β] (s : Set.{u1} α) (f : α -> β), (Set.Finite.{u1} α s) -> (Exists.{succ u1} α (fun (a : α) => forall (b : α), (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) b s) -> (LE.le.{u2} β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (DistribLattice.toLattice.{u2} β (instDistribLattice.{u2} β _inst_1)))))) (f a) (f b))))
-Case conversion may be inaccurate. Consider using '#align set.exists_lower_bound_image Set.exists_lower_bound_imageₓ'. -/
 theorem exists_lower_bound_image [hα : Nonempty α] [LinearOrder β] (s : Set α) (f : α → β)
     (h : s.Finite) : ∃ a : α, ∀ b ∈ s, f a ≤ f b :=
   by
@@ -2079,12 +1764,6 @@ theorem exists_lower_bound_image [hα : Nonempty α] [LinearOrder β] (s : Set 
   · exact Nonempty.elim hα fun a => ⟨a, fun x hx => absurd (Set.nonempty_of_mem hx) hs⟩
 #align set.exists_lower_bound_image Set.exists_lower_bound_image
 
-/- warning: set.exists_upper_bound_image -> Set.exists_upper_bound_image is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [hα : Nonempty.{succ u1} α] [_inst_1 : LinearOrder.{u2} β] (s : Set.{u1} α) (f : α -> β), (Set.Finite.{u1} α s) -> (Exists.{succ u1} α (fun (a : α) => forall (b : α), (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) b s) -> (LE.le.{u2} β (Preorder.toHasLe.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_1))))) (f b) (f a))))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [hα : Nonempty.{succ u1} α] [_inst_1 : LinearOrder.{u2} β] (s : Set.{u1} α) (f : α -> β), (Set.Finite.{u1} α s) -> (Exists.{succ u1} α (fun (a : α) => forall (b : α), (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) b s) -> (LE.le.{u2} β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (DistribLattice.toLattice.{u2} β (instDistribLattice.{u2} β _inst_1)))))) (f b) (f a))))
-Case conversion may be inaccurate. Consider using '#align set.exists_upper_bound_image Set.exists_upper_bound_imageₓ'. -/
 theorem exists_upper_bound_image [hα : Nonempty α] [LinearOrder β] (s : Set α) (f : α → β)
     (h : s.Finite) : ∃ a : α, ∀ b ∈ s, f b ≤ f a :=
   by
@@ -2096,12 +1775,6 @@ theorem exists_upper_bound_image [hα : Nonempty α] [LinearOrder β] (s : Set 
   · exact Nonempty.elim hα fun a => ⟨a, fun x hx => absurd (Set.nonempty_of_mem hx) hs⟩
 #align set.exists_upper_bound_image Set.exists_upper_bound_image
 
-/- warning: set.finite.supr_binfi_of_monotone -> Set.Finite.iSup_biInf_of_monotone is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toHasLe.{u2} ι' _inst_1))] [_inst_4 : Order.Frame.{u3} α] {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) -> (Monotone.{u2, u3} ι' α _inst_1 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4)))) (f i))) -> (Eq.{succ u3} α (iSup.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => iInf.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => iInf.{u3, 0} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => f i j)))) (iInf.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => iInf.{u3, 0} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => iSup.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => f i j))))))
-but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.13041 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13043 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.13041 x._@.Mathlib.Data.Set.Finite._hyg.13043)] [_inst_4 : Order.Frame.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Monotone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (iSup.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => iInf.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => iInf.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (iInf.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => iInf.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => iSup.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
-Case conversion may be inaccurate. Consider using '#align set.finite.supr_binfi_of_monotone Set.Finite.iSup_biInf_of_monotoneₓ'. -/
 theorem Finite.iSup_biInf_of_monotone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Frame α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
     (hf : ∀ i ∈ s, Monotone (f i)) : (⨆ j, ⨅ i ∈ s, f i j) = ⨅ i ∈ s, ⨆ j, f i j :=
@@ -2115,96 +1788,48 @@ theorem Finite.iSup_biInf_of_monotone {ι ι' α : Type _} [Preorder ι'] [Nonem
     exact iSup_inf_of_monotone hf.1 fun j₁ j₂ hj => iInf₂_mono fun i hi => hf.2 i hi hj
 #align set.finite.supr_binfi_of_monotone Set.Finite.iSup_biInf_of_monotone
 
-/- warning: set.finite.supr_binfi_of_antitone -> Set.Finite.iSup_biInf_of_antitone is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toHasLe.{u2} ι' _inst_1)))] [_inst_4 : Order.Frame.{u3} α] {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) -> (Antitone.{u2, u3} ι' α _inst_1 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4)))) (f i))) -> (Eq.{succ u3} α (iSup.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => iInf.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => iInf.{u3, 0} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => f i j)))) (iInf.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => iInf.{u3, 0} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => iSup.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => f i j))))))
-but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.13263 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13265 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.13263 x._@.Mathlib.Data.Set.Finite._hyg.13265))] [_inst_4 : Order.Frame.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Antitone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (iSup.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => iInf.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => iInf.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (iInf.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => iInf.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => iSup.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
-Case conversion may be inaccurate. Consider using '#align set.finite.supr_binfi_of_antitone Set.Finite.iSup_biInf_of_antitoneₓ'. -/
 theorem Finite.iSup_biInf_of_antitone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Frame α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
     (hf : ∀ i ∈ s, Antitone (f i)) : (⨆ j, ⨅ i ∈ s, f i j) = ⨅ i ∈ s, ⨆ j, f i j :=
   @Finite.iSup_biInf_of_monotone ι ι'ᵒᵈ α _ _ _ _ _ hs _ fun i hi => (hf i hi).dual_left
 #align set.finite.supr_binfi_of_antitone Set.Finite.iSup_biInf_of_antitone
 
-/- warning: set.finite.infi_bsupr_of_monotone -> Set.Finite.iInf_biSup_of_monotone is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toHasLe.{u2} ι' _inst_1)))] [_inst_4 : Order.Coframe.{u3} α] {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) -> (Monotone.{u2, u3} ι' α _inst_1 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4)))) (f i))) -> (Eq.{succ u3} α (iInf.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => iSup.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => iSup.{u3, 0} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => f i j)))) (iSup.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => iSup.{u3, 0} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => iInf.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => f i j))))))
-but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.13443 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13445 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.13443 x._@.Mathlib.Data.Set.Finite._hyg.13445))] [_inst_4 : Order.Coframe.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Monotone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (iInf.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => iSup.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => iSup.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (iSup.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => iSup.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => iInf.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
-Case conversion may be inaccurate. Consider using '#align set.finite.infi_bsupr_of_monotone Set.Finite.iInf_biSup_of_monotoneₓ'. -/
 theorem Finite.iInf_biSup_of_monotone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Coframe α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
     (hf : ∀ i ∈ s, Monotone (f i)) : (⨅ j, ⨆ i ∈ s, f i j) = ⨆ i ∈ s, ⨅ j, f i j :=
   hs.iSup_biInf_of_antitone fun i hi => (hf i hi).dual_right
 #align set.finite.infi_bsupr_of_monotone Set.Finite.iInf_biSup_of_monotone
 
-/- warning: set.finite.infi_bsupr_of_antitone -> Set.Finite.iInf_biSup_of_antitone is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toHasLe.{u2} ι' _inst_1))] [_inst_4 : Order.Coframe.{u3} α] {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) -> (Antitone.{u2, u3} ι' α _inst_1 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4)))) (f i))) -> (Eq.{succ u3} α (iInf.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => iSup.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => iSup.{u3, 0} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => f i j)))) (iSup.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => iSup.{u3, 0} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => iInf.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => f i j))))))
-but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.13615 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13617 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.13615 x._@.Mathlib.Data.Set.Finite._hyg.13617)] [_inst_4 : Order.Coframe.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Antitone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (iInf.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => iSup.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => iSup.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (iSup.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => iSup.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => iInf.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
-Case conversion may be inaccurate. Consider using '#align set.finite.infi_bsupr_of_antitone Set.Finite.iInf_biSup_of_antitoneₓ'. -/
 theorem Finite.iInf_biSup_of_antitone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Coframe α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
     (hf : ∀ i ∈ s, Antitone (f i)) : (⨅ j, ⨆ i ∈ s, f i j) = ⨆ i ∈ s, ⨅ j, f i j :=
   hs.iSup_biInf_of_monotone fun i hi => (hf i hi).dual_right
 #align set.finite.infi_bsupr_of_antitone Set.Finite.iInf_biSup_of_antitone
 
-/- warning: supr_infi_of_monotone -> Set.iSup_iInf_of_monotone is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toHasLe.{u2} ι' _inst_2))] [_inst_5 : Order.Frame.{u3} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u3} ι' α _inst_2 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5)))) (f i)) -> (Eq.{succ u3} α (iSup.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => iInf.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => f i j))) (iInf.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => iSup.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => f i j))))
-but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.13787 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13789 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13787 x._@.Mathlib.Data.Set.Finite._hyg.13789)] [_inst_5 : Order.Frame.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (iSup.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => iInf.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (iInf.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => iSup.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
-Case conversion may be inaccurate. Consider using '#align supr_infi_of_monotone Set.iSup_iInf_of_monotoneₓ'. -/
 theorem Set.iSup_iInf_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Frame α] {f : ι → ι' → α} (hf : ∀ i, Monotone (f i)) :
     (⨆ j, ⨅ i, f i j) = ⨅ i, ⨆ j, f i j := by
   simpa only [iInf_univ] using finite_univ.supr_binfi_of_monotone fun i hi => hf i
 #align supr_infi_of_monotone Set.iSup_iInf_of_monotone
 
-/- warning: supr_infi_of_antitone -> Set.iSup_iInf_of_antitone is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toHasLe.{u2} ι' _inst_2)))] [_inst_5 : Order.Frame.{u3} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u3} ι' α _inst_2 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5)))) (f i)) -> (Eq.{succ u3} α (iSup.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => iInf.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => f i j))) (iInf.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => iSup.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => f i j))))
-but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.13924 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13926 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13924 x._@.Mathlib.Data.Set.Finite._hyg.13926))] [_inst_5 : Order.Frame.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (iSup.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => iInf.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (iInf.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => iSup.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
-Case conversion may be inaccurate. Consider using '#align supr_infi_of_antitone Set.iSup_iInf_of_antitoneₓ'. -/
 theorem Set.iSup_iInf_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Frame α] {f : ι → ι' → α} (hf : ∀ i, Antitone (f i)) :
     (⨆ j, ⨅ i, f i j) = ⨅ i, ⨆ j, f i j :=
   @Set.iSup_iInf_of_monotone ι ι'ᵒᵈ α _ _ _ _ _ _ fun i => (hf i).dual_left
 #align supr_infi_of_antitone Set.iSup_iInf_of_antitone
 
-/- warning: infi_supr_of_monotone -> Set.iInf_iSup_of_monotone is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toHasLe.{u2} ι' _inst_2)))] [_inst_5 : Order.Coframe.{u3} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u3} ι' α _inst_2 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5)))) (f i)) -> (Eq.{succ u3} α (iInf.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => iSup.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => f i j))) (iSup.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => iInf.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => f i j))))
-but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.14062 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14064 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14062 x._@.Mathlib.Data.Set.Finite._hyg.14064))] [_inst_5 : Order.Coframe.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (iInf.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => iSup.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (iSup.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => iInf.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
-Case conversion may be inaccurate. Consider using '#align infi_supr_of_monotone Set.iInf_iSup_of_monotoneₓ'. -/
 theorem Set.iInf_iSup_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Coframe α] {f : ι → ι' → α} (hf : ∀ i, Monotone (f i)) :
     (⨅ j, ⨆ i, f i j) = ⨆ i, ⨅ j, f i j :=
   Set.iSup_iInf_of_antitone fun i => (hf i).dual_right
 #align infi_supr_of_monotone Set.iInf_iSup_of_monotone
 
-/- warning: infi_supr_of_antitone -> Set.iInf_iSup_of_antitone is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toHasLe.{u2} ι' _inst_2))] [_inst_5 : Order.Coframe.{u3} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u3} ι' α _inst_2 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5)))) (f i)) -> (Eq.{succ u3} α (iInf.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => iSup.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => f i j))) (iSup.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => iInf.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => f i j))))
-but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.14194 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14196 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14194 x._@.Mathlib.Data.Set.Finite._hyg.14196)] [_inst_5 : Order.Coframe.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (iInf.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => iSup.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (iSup.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => iInf.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
-Case conversion may be inaccurate. Consider using '#align infi_supr_of_antitone Set.iInf_iSup_of_antitoneₓ'. -/
 theorem Set.iInf_iSup_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Coframe α] {f : ι → ι' → α} (hf : ∀ i, Antitone (f i)) :
     (⨅ j, ⨆ i, f i j) = ⨆ i, ⨅ j, f i j :=
   Set.iSup_iInf_of_monotone fun i => (hf i).dual_right
 #align infi_supr_of_antitone Set.iInf_iSup_of_antitone
 
-/- warning: set.Union_Inter_of_monotone -> Set.iUnion_iInter_of_monotone is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toHasLe.{u2} ι' _inst_2))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u3} α)}, (forall (i : ι), Monotone.{u2, u3} ι' (Set.{u3} α) _inst_2 (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.completeBooleanAlgebra.{u3} α))))))) (s i)) -> (Eq.{succ u3} (Set.{u3} α) (Set.iUnion.{u3, succ u2} α ι' (fun (j : ι') => Set.iInter.{u3, succ u1} α ι (fun (i : ι) => s i j))) (Set.iInter.{u3, succ u1} α ι (fun (i : ι) => Set.iUnion.{u3, succ u2} α ι' (fun (j : ι') => s i j))))
-but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.14323 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14325 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14323 x._@.Mathlib.Data.Set.Finite._hyg.14325)] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Monotone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.iUnion.{u1, succ u2} α ι' (fun (j : ι') => Set.iInter.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.iInter.{u1, succ u3} α ι (fun (i : ι) => Set.iUnion.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
-Case conversion may be inaccurate. Consider using '#align set.Union_Inter_of_monotone Set.iUnion_iInter_of_monotoneₓ'. -/
 /-- An increasing union distributes over finite intersection. -/
 theorem iUnion_iInter_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [IsDirected ι' (· ≤ ·)]
     [Nonempty ι'] {s : ι → ι' → Set α} (hs : ∀ i, Monotone (s i)) :
@@ -2212,12 +1837,6 @@ theorem iUnion_iInter_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'
   Set.iSup_iInf_of_monotone hs
 #align set.Union_Inter_of_monotone Set.iUnion_iInter_of_monotone
 
-/- warning: set.Union_Inter_of_antitone -> Set.iUnion_iInter_of_antitone is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toHasLe.{u2} ι' _inst_2)))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u3} α)}, (forall (i : ι), Antitone.{u2, u3} ι' (Set.{u3} α) _inst_2 (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.completeBooleanAlgebra.{u3} α))))))) (s i)) -> (Eq.{succ u3} (Set.{u3} α) (Set.iUnion.{u3, succ u2} α ι' (fun (j : ι') => Set.iInter.{u3, succ u1} α ι (fun (i : ι) => s i j))) (Set.iInter.{u3, succ u1} α ι (fun (i : ι) => Set.iUnion.{u3, succ u2} α ι' (fun (j : ι') => s i j))))
-but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.14445 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14447 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14445 x._@.Mathlib.Data.Set.Finite._hyg.14447))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Antitone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.iUnion.{u1, succ u2} α ι' (fun (j : ι') => Set.iInter.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.iInter.{u1, succ u3} α ι (fun (i : ι) => Set.iUnion.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
-Case conversion may be inaccurate. Consider using '#align set.Union_Inter_of_antitone Set.iUnion_iInter_of_antitoneₓ'. -/
 /-- A decreasing union distributes over finite intersection. -/
 theorem iUnion_iInter_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι']
     [IsDirected ι' (swap (· ≤ ·))] [Nonempty ι'] {s : ι → ι' → Set α} (hs : ∀ i, Antitone (s i)) :
@@ -2225,12 +1844,6 @@ theorem iUnion_iInter_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι'
   Set.iSup_iInf_of_antitone hs
 #align set.Union_Inter_of_antitone Set.iUnion_iInter_of_antitone
 
-/- warning: set.Inter_Union_of_monotone -> Set.iInter_iUnion_of_monotone is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toHasLe.{u2} ι' _inst_2)))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u3} α)}, (forall (i : ι), Monotone.{u2, u3} ι' (Set.{u3} α) _inst_2 (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.completeBooleanAlgebra.{u3} α))))))) (s i)) -> (Eq.{succ u3} (Set.{u3} α) (Set.iInter.{u3, succ u2} α ι' (fun (j : ι') => Set.iUnion.{u3, succ u1} α ι (fun (i : ι) => s i j))) (Set.iUnion.{u3, succ u1} α ι (fun (i : ι) => Set.iInter.{u3, succ u2} α ι' (fun (j : ι') => s i j))))
-but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.14567 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14569 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14567 x._@.Mathlib.Data.Set.Finite._hyg.14569))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Monotone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.iInter.{u1, succ u2} α ι' (fun (j : ι') => Set.iUnion.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.iUnion.{u1, succ u3} α ι (fun (i : ι) => Set.iInter.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
-Case conversion may be inaccurate. Consider using '#align set.Inter_Union_of_monotone Set.iInter_iUnion_of_monotoneₓ'. -/
 /-- An increasing intersection distributes over finite union. -/
 theorem iInter_iUnion_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι']
     [IsDirected ι' (swap (· ≤ ·))] [Nonempty ι'] {s : ι → ι' → Set α} (hs : ∀ i, Monotone (s i)) :
@@ -2238,12 +1851,6 @@ theorem iInter_iUnion_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'
   Set.iInf_iSup_of_monotone hs
 #align set.Inter_Union_of_monotone Set.iInter_iUnion_of_monotone
 
-/- warning: set.Inter_Union_of_antitone -> Set.iInter_iUnion_of_antitone is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toHasLe.{u2} ι' _inst_2))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u3} α)}, (forall (i : ι), Antitone.{u2, u3} ι' (Set.{u3} α) _inst_2 (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.completeBooleanAlgebra.{u3} α))))))) (s i)) -> (Eq.{succ u3} (Set.{u3} α) (Set.iInter.{u3, succ u2} α ι' (fun (j : ι') => Set.iUnion.{u3, succ u1} α ι (fun (i : ι) => s i j))) (Set.iUnion.{u3, succ u1} α ι (fun (i : ι) => Set.iInter.{u3, succ u2} α ι' (fun (j : ι') => s i j))))
-but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.14686 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14688 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14686 x._@.Mathlib.Data.Set.Finite._hyg.14688)] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Antitone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.iInter.{u1, succ u2} α ι' (fun (j : ι') => Set.iUnion.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.iUnion.{u1, succ u3} α ι (fun (i : ι) => Set.iInter.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
-Case conversion may be inaccurate. Consider using '#align set.Inter_Union_of_antitone Set.iInter_iUnion_of_antitoneₓ'. -/
 /-- A decreasing intersection distributes over finite union. -/
 theorem iInter_iUnion_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [IsDirected ι' (· ≤ ·)]
     [Nonempty ι'] {s : ι → ι' → Set α} (hs : ∀ i, Antitone (s i)) :
@@ -2251,12 +1858,6 @@ theorem iInter_iUnion_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι'
   Set.iInf_iSup_of_antitone hs
 #align set.Inter_Union_of_antitone Set.iInter_iUnion_of_antitone
 
-/- warning: set.Union_pi_of_monotone -> Set.iUnion_pi_of_monotone is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {ι' : Type.{u2}} [_inst_1 : LinearOrder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] {α : ι -> Type.{u3}} {I : Set.{u1} ι} {s : forall (i : ι), ι' -> (Set.{u3} (α i))}, (Set.Finite.{u1} ι I) -> (forall (i : ι), (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i I) -> (Monotone.{u2, u3} ι' (Set.{u3} (α i)) (PartialOrder.toPreorder.{u2} ι' (SemilatticeInf.toPartialOrder.{u2} ι' (Lattice.toSemilatticeInf.{u2} ι' (LinearOrder.toLattice.{u2} ι' _inst_1)))) (PartialOrder.toPreorder.{u3} (Set.{u3} (α i)) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} (α i)) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} (α i)) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} (α i)) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} (α i)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} (α i)) (Set.completeBooleanAlgebra.{u3} (α i)))))))) (s i))) -> (Eq.{succ (max u1 u3)} (Set.{max u1 u3} (forall (i : ι), α i)) (Set.iUnion.{max u1 u3, succ u2} (forall (i : ι), α i) ι' (fun (j : ι') => Set.pi.{u1, u3} ι (fun (i : ι) => α i) I (fun (i : ι) => s i j))) (Set.pi.{u1, u3} ι (fun (i : ι) => α i) I (fun (i : ι) => Set.iUnion.{u3, succ u2} (α i) ι' (fun (j : ι') => s i j))))
-but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} [_inst_1 : LinearOrder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] {α : ι -> Type.{u1}} {I : Set.{u3} ι} {s : forall (i : ι), ι' -> (Set.{u1} (α i))}, (Set.Finite.{u3} ι I) -> (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i I) -> (Monotone.{u2, u1} ι' (Set.{u1} (α i)) (PartialOrder.toPreorder.{u2} ι' (SemilatticeInf.toPartialOrder.{u2} ι' (Lattice.toSemilatticeInf.{u2} ι' (DistribLattice.toLattice.{u2} ι' (instDistribLattice.{u2} ι' _inst_1))))) (PartialOrder.toPreorder.{u1} (Set.{u1} (α i)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (α i)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (α i)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (α i)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (α i)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (α i)) (Set.instCompleteBooleanAlgebraSet.{u1} (α i)))))))) (s i))) -> (Eq.{max (succ u3) (succ u1)} (Set.{max u3 u1} (forall (i : ι), α i)) (Set.iUnion.{max u3 u1, succ u2} (forall (i : ι), α i) ι' (fun (j : ι') => Set.pi.{u3, u1} ι (fun (i : ι) => α i) I (fun (i : ι) => s i j))) (Set.pi.{u3, u1} ι (fun (i : ι) => α i) I (fun (i : ι) => Set.iUnion.{u1, succ u2} (α i) ι' (fun (j : ι') => s i j))))
-Case conversion may be inaccurate. Consider using '#align set.Union_pi_of_monotone Set.iUnion_pi_of_monotoneₓ'. -/
 theorem iUnion_pi_of_monotone {ι ι' : Type _} [LinearOrder ι'] [Nonempty ι'] {α : ι → Type _}
     {I : Set ι} {s : ∀ i, ι' → Set (α i)} (hI : I.Finite) (hs : ∀ i ∈ I, Monotone (s i)) :
     (⋃ j : ι', I.pi fun i => s i j) = I.pi fun i => ⋃ j, s i j :=
@@ -2266,12 +1867,6 @@ theorem iUnion_pi_of_monotone {ι ι' : Type _} [LinearOrder ι'] [Nonempty ι']
   exact Union_Inter_of_monotone fun i j₁ j₂ h => preimage_mono <| hs i i.2 h
 #align set.Union_pi_of_monotone Set.iUnion_pi_of_monotone
 
-/- warning: set.Union_univ_pi_of_monotone -> Set.iUnion_univ_pi_of_monotone is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {ι' : Type.{u2}} [_inst_1 : LinearOrder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : Finite.{succ u1} ι] {α : ι -> Type.{u3}} {s : forall (i : ι), ι' -> (Set.{u3} (α i))}, (forall (i : ι), Monotone.{u2, u3} ι' (Set.{u3} (α i)) (PartialOrder.toPreorder.{u2} ι' (SemilatticeInf.toPartialOrder.{u2} ι' (Lattice.toSemilatticeInf.{u2} ι' (LinearOrder.toLattice.{u2} ι' _inst_1)))) (PartialOrder.toPreorder.{u3} (Set.{u3} (α i)) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} (α i)) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} (α i)) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} (α i)) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} (α i)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} (α i)) (Set.completeBooleanAlgebra.{u3} (α i)))))))) (s i)) -> (Eq.{succ (max u1 u3)} (Set.{max u1 u3} (forall (i : ι), α i)) (Set.iUnion.{max u1 u3, succ u2} (forall (i : ι), α i) ι' (fun (j : ι') => Set.pi.{u1, u3} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => s i j))) (Set.pi.{u1, u3} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => Set.iUnion.{u3, succ u2} (α i) ι' (fun (j : ι') => s i j))))
-but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} [_inst_1 : LinearOrder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : Finite.{succ u3} ι] {α : ι -> Type.{u1}} {s : forall (i : ι), ι' -> (Set.{u1} (α i))}, (forall (i : ι), Monotone.{u2, u1} ι' (Set.{u1} (α i)) (PartialOrder.toPreorder.{u2} ι' (SemilatticeInf.toPartialOrder.{u2} ι' (Lattice.toSemilatticeInf.{u2} ι' (DistribLattice.toLattice.{u2} ι' (instDistribLattice.{u2} ι' _inst_1))))) (PartialOrder.toPreorder.{u1} (Set.{u1} (α i)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (α i)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (α i)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (α i)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (α i)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (α i)) (Set.instCompleteBooleanAlgebraSet.{u1} (α i)))))))) (s i)) -> (Eq.{max (succ u3) (succ u1)} (Set.{max u1 u3} (forall (i : ι), α i)) (Set.iUnion.{max u1 u3, succ u2} (forall (i : ι), α i) ι' (fun (j : ι') => Set.pi.{u3, u1} ι (fun (i : ι) => α i) (Set.univ.{u3} ι) (fun (i : ι) => s i j))) (Set.pi.{u3, u1} ι (fun (i : ι) => α i) (Set.univ.{u3} ι) (fun (i : ι) => Set.iUnion.{u1, succ u2} (α i) ι' (fun (j : ι') => s i j))))
-Case conversion may be inaccurate. Consider using '#align set.Union_univ_pi_of_monotone Set.iUnion_univ_pi_of_monotoneₓ'. -/
 theorem iUnion_univ_pi_of_monotone {ι ι' : Type _} [LinearOrder ι'] [Nonempty ι'] [Finite ι]
     {α : ι → Type _} {s : ∀ i, ι' → Set (α i)} (hs : ∀ i, Monotone (s i)) :
     (⋃ j : ι', pi univ fun i => s i j) = pi univ fun i => ⋃ j, s i j :=
@@ -2285,12 +1880,6 @@ theorem finite_range_findGreatest {P : α → ℕ → Prop} [∀ x, DecidablePre
 #align set.finite_range_find_greatest Set.finite_range_findGreatest
 -/
 
-/- warning: set.finite.exists_maximal_wrt -> Set.Finite.exists_maximal_wrt is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PartialOrder.{u2} β] (f : α -> β) (s : Set.{u1} α), (Set.Finite.{u1} α s) -> (Set.Nonempty.{u1} α s) -> (Exists.{succ u1} α (fun (a : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) a s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) a s) => forall (a' : α), (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) a' s) -> (LE.le.{u2} β (Preorder.toHasLe.{u2} β (PartialOrder.toPreorder.{u2} β _inst_1)) (f a) (f a')) -> (Eq.{succ u2} β (f a) (f a')))))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PartialOrder.{u2} β] (f : α -> β) (s : Set.{u1} α), (Set.Finite.{u1} α s) -> (Set.Nonempty.{u1} α s) -> (Exists.{succ u1} α (fun (a : α) => And (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) a s) (forall (a' : α), (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) a' s) -> (LE.le.{u2} β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β _inst_1)) (f a) (f a')) -> (Eq.{succ u2} β (f a) (f a')))))
-Case conversion may be inaccurate. Consider using '#align set.finite.exists_maximal_wrt Set.Finite.exists_maximal_wrtₓ'. -/
 theorem Finite.exists_maximal_wrt [PartialOrder β] (f : α → β) (s : Set α) (h : Set.Finite s) :
     s.Nonempty → ∃ a ∈ s, ∀ a' ∈ s, f a ≤ f a' → f a = f a' :=
   by
@@ -2391,12 +1980,6 @@ end Finset
 
 variable [LinearOrder α]
 
-/- warning: finite.of_forall_not_lt_lt -> Finite.of_forall_not_lt_lt is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : LinearOrder.{u1} α], (forall {{x : α}} {{y : α}} {{z : α}}, (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) x y) -> (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) y z) -> False) -> (Finite.{succ u1} α)
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : LinearOrder.{u1} α], (forall {{x : α}} {{y : α}} {{z : α}}, (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1)))))) x y) -> (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1)))))) y z) -> False) -> (Finite.{succ u1} α)
-Case conversion may be inaccurate. Consider using '#align finite.of_forall_not_lt_lt Finite.of_forall_not_lt_ltₓ'. -/
 /-- If a linear order does not contain any triple of elements `x < y < z`, then this type
 is finite. -/
 theorem Finite.of_forall_not_lt_lt (h : ∀ ⦃x y z : α⦄, x < y → y < z → False) : Finite α :=
@@ -2407,12 +1990,6 @@ theorem Finite.of_forall_not_lt_lt (h : ∀ ⦃x y z : α⦄, x < y → y < z 
   simpa [hne] using eq_or_eq_or_eq_of_forall_not_lt_lt h z x y
 #align finite.of_forall_not_lt_lt Finite.of_forall_not_lt_lt
 
-/- warning: set.finite_of_forall_not_lt_lt -> Set.finite_of_forall_not_lt_lt is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : LinearOrder.{u1} α] {s : Set.{u1} α}, (forall (x : α), (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) -> (forall (y : α), (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) y s) -> (forall (z : α), (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) z s) -> (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) x y) -> (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) y z) -> False))) -> (Set.Finite.{u1} α s)
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : LinearOrder.{u1} α] {s : Set.{u1} α}, (forall (x : α), (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s) -> (forall (y : α), (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) y s) -> (forall (z : α), (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) z s) -> (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1)))))) x y) -> (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1)))))) y z) -> False))) -> (Set.Finite.{u1} α s)
-Case conversion may be inaccurate. Consider using '#align set.finite_of_forall_not_lt_lt Set.finite_of_forall_not_lt_ltₓ'. -/
 /- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (x y z «expr ∈ » s) -/
 /-- If a set `s` does not contain any triple of elements `x < y < z`, then `s` is finite. -/
 theorem Set.finite_of_forall_not_lt_lt {s : Set α}
@@ -2420,23 +1997,11 @@ theorem Set.finite_of_forall_not_lt_lt {s : Set α}
   @Set.toFinite _ s <| Finite.of_forall_not_lt_lt <| by simpa only [SetCoe.forall'] using h
 #align set.finite_of_forall_not_lt_lt Set.finite_of_forall_not_lt_lt
 
-/- warning: set.finite_diff_Union_Ioo -> Set.finite_diff_iUnion_Ioo is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : LinearOrder.{u1} α] (s : Set.{u1} α), Set.Finite.{u1} α (SDiff.sdiff.{u1} (Set.{u1} α) (BooleanAlgebra.toHasSdiff.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s (Set.iUnion.{u1, succ u1} α α (fun (x : α) => Set.iUnion.{u1, 0} α (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) => Set.iUnion.{u1, succ u1} α α (fun (y : α) => Set.iUnion.{u1, 0} α (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) y s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) y s) => Set.Ioo.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1)))) x y))))))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : LinearOrder.{u1} α] (s : Set.{u1} α), Set.Finite.{u1} α (SDiff.sdiff.{u1} (Set.{u1} α) (Set.instSDiffSet.{u1} α) s (Set.iUnion.{u1, succ u1} α α (fun (x : α) => Set.iUnion.{u1, 0} α (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s) (fun (H : Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s) => Set.iUnion.{u1, succ u1} α α (fun (y : α) => Set.iUnion.{u1, 0} α (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) y s) (fun (H : Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) y s) => Set.Ioo.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1))))) x y))))))
-Case conversion may be inaccurate. Consider using '#align set.finite_diff_Union_Ioo Set.finite_diff_iUnion_Iooₓ'. -/
 theorem Set.finite_diff_iUnion_Ioo (s : Set α) : (s \ ⋃ (x ∈ s) (y ∈ s), Ioo x y).Finite :=
   Set.finite_of_forall_not_lt_lt fun x hx y hy z hz hxy hyz =>
     hy.2 <| mem_iUnion₂_of_mem hx.1 <| mem_iUnion₂_of_mem hz.1 ⟨hxy, hyz⟩
 #align set.finite_diff_Union_Ioo Set.finite_diff_iUnion_Ioo
 
-/- warning: set.finite_diff_Union_Ioo' -> Set.finite_diff_iUnion_Ioo' is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : LinearOrder.{u1} α] (s : Set.{u1} α), Set.Finite.{u1} α (SDiff.sdiff.{u1} (Set.{u1} α) (BooleanAlgebra.toHasSdiff.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s (Set.iUnion.{u1, succ u1} α (Prod.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s)) (fun (x : Prod.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s)) => Set.Ioo.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1)))) ((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} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) α (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) α (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) α (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) α (coeSubtype.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s))))) (Prod.fst.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) x)) ((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} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) α (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) α (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) α (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) α (coeSubtype.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s))))) (Prod.snd.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) x)))))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : LinearOrder.{u1} α] (s : Set.{u1} α), Set.Finite.{u1} α (SDiff.sdiff.{u1} (Set.{u1} α) (Set.instSDiffSet.{u1} α) s (Set.iUnion.{u1, succ u1} α (Prod.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α s)) (fun (x : Prod.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α s)) => Set.Ioo.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1))))) (Subtype.val.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s) (Prod.fst.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α s) x)) (Subtype.val.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s) (Prod.snd.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α s) x)))))
-Case conversion may be inaccurate. Consider using '#align set.finite_diff_Union_Ioo' Set.finite_diff_iUnion_Ioo'ₓ'. -/
 theorem Set.finite_diff_iUnion_Ioo' (s : Set α) : (s \ ⋃ x : s × s, Ioo x.1 x.2).Finite := by
   simpa only [Union, iSup_prod, iSup_subtype] using s.finite_diff_Union_Ioo
 #align set.finite_diff_Union_Ioo' Set.finite_diff_iUnion_Ioo'
Diff
@@ -134,18 +134,14 @@ protected noncomputable def Finite.toFinset {s : Set α} (h : s.Finite) : Finset
 
 #print Set.Finite.exists_finset /-
 theorem Finite.exists_finset {s : Set α} (h : s.Finite) :
-    ∃ s' : Finset α, ∀ a : α, a ∈ s' ↔ a ∈ s :=
-  by
-  cases h
+    ∃ s' : Finset α, ∀ a : α, a ∈ s' ↔ a ∈ s := by cases h;
   exact ⟨s.to_finset, fun _ => mem_to_finset⟩
 #align set.finite.exists_finset Set.Finite.exists_finset
 -/
 
 #print Set.Finite.exists_finset_coe /-
-theorem Finite.exists_finset_coe {s : Set α} (h : s.Finite) : ∃ s' : Finset α, ↑s' = s :=
-  by
-  cases h
-  exact ⟨s.to_finset, s.coe_to_finset⟩
+theorem Finite.exists_finset_coe {s : Set α} (h : s.Finite) : ∃ s' : Finset α, ↑s' = s := by
+  cases h; exact ⟨s.to_finset, s.coe_to_finset⟩
 #align set.finite.exists_finset_coe Set.Finite.exists_finset_coe
 -/
 
@@ -299,10 +295,7 @@ attribute [protected] to_finset_mono to_finset_strict_mono
 #print Set.Finite.toFinset_setOf /-
 @[simp]
 protected theorem toFinset_setOf [Fintype α] (p : α → Prop) [DecidablePred p]
-    (h : { x | p x }.Finite) : h.toFinset = Finset.univ.filterₓ p :=
-  by
-  ext
-  simp
+    (h : { x | p x }.Finite) : h.toFinset = Finset.univ.filterₓ p := by ext; simp
 #align set.finite.to_finset_set_of Set.Finite.toFinset_setOf
 -/
 
@@ -325,10 +318,7 @@ but is expected to have type
   forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α} [_inst_1 : DecidableEq.{succ u1} α] (hs : Set.Finite.{u1} α s) (ht : Set.Finite.{u1} α t) (h : Set.Finite.{u1} α (Inter.inter.{u1} (Set.{u1} α) (Set.instInterSet.{u1} α) s t)), Eq.{succ u1} (Finset.{u1} α) (Set.Finite.toFinset.{u1} α (Inter.inter.{u1} (Set.{u1} α) (Set.instInterSet.{u1} α) s t) h) (Inter.inter.{u1} (Finset.{u1} α) (Finset.instInterFinset.{u1} α (fun (a : α) (b : α) => _inst_1 a b)) (Set.Finite.toFinset.{u1} α s hs) (Set.Finite.toFinset.{u1} α t ht))
 Case conversion may be inaccurate. Consider using '#align set.finite.to_finset_inter Set.Finite.toFinset_interₓ'. -/
 protected theorem toFinset_inter [DecidableEq α] (hs : s.Finite) (ht : t.Finite)
-    (h : (s ∩ t).Finite) : h.toFinset = hs.toFinset ∩ ht.toFinset :=
-  by
-  ext
-  simp
+    (h : (s ∩ t).Finite) : h.toFinset = hs.toFinset ∩ ht.toFinset := by ext; simp
 #align set.finite.to_finset_inter Set.Finite.toFinset_inter
 
 /- warning: set.finite.to_finset_union -> Set.Finite.toFinset_union is a dubious translation:
@@ -338,10 +328,7 @@ but is expected to have type
   forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α} [_inst_1 : DecidableEq.{succ u1} α] (hs : Set.Finite.{u1} α s) (ht : Set.Finite.{u1} α t) (h : Set.Finite.{u1} α (Union.union.{u1} (Set.{u1} α) (Set.instUnionSet.{u1} α) s t)), Eq.{succ u1} (Finset.{u1} α) (Set.Finite.toFinset.{u1} α (Union.union.{u1} (Set.{u1} α) (Set.instUnionSet.{u1} α) s t) h) (Union.union.{u1} (Finset.{u1} α) (Finset.instUnionFinset.{u1} α (fun (a : α) (b : α) => _inst_1 a b)) (Set.Finite.toFinset.{u1} α s hs) (Set.Finite.toFinset.{u1} α t ht))
 Case conversion may be inaccurate. Consider using '#align set.finite.to_finset_union Set.Finite.toFinset_unionₓ'. -/
 protected theorem toFinset_union [DecidableEq α] (hs : s.Finite) (ht : t.Finite)
-    (h : (s ∪ t).Finite) : h.toFinset = hs.toFinset ∪ ht.toFinset :=
-  by
-  ext
-  simp
+    (h : (s ∪ t).Finite) : h.toFinset = hs.toFinset ∪ ht.toFinset := by ext; simp
 #align set.finite.to_finset_union Set.Finite.toFinset_union
 
 /- warning: set.finite.to_finset_diff -> Set.Finite.toFinset_diff is a dubious translation:
@@ -351,10 +338,7 @@ but is expected to have type
   forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α} [_inst_1 : DecidableEq.{succ u1} α] (hs : Set.Finite.{u1} α s) (ht : Set.Finite.{u1} α t) (h : Set.Finite.{u1} α (SDiff.sdiff.{u1} (Set.{u1} α) (Set.instSDiffSet.{u1} α) s t)), Eq.{succ u1} (Finset.{u1} α) (Set.Finite.toFinset.{u1} α (SDiff.sdiff.{u1} (Set.{u1} α) (Set.instSDiffSet.{u1} α) s t) h) (SDiff.sdiff.{u1} (Finset.{u1} α) (Finset.instSDiffFinset.{u1} α (fun (a : α) (b : α) => _inst_1 a b)) (Set.Finite.toFinset.{u1} α s hs) (Set.Finite.toFinset.{u1} α t ht))
 Case conversion may be inaccurate. Consider using '#align set.finite.to_finset_diff Set.Finite.toFinset_diffₓ'. -/
 protected theorem toFinset_diff [DecidableEq α] (hs : s.Finite) (ht : t.Finite)
-    (h : (s \ t).Finite) : h.toFinset = hs.toFinset \ ht.toFinset :=
-  by
-  ext
-  simp
+    (h : (s \ t).Finite) : h.toFinset = hs.toFinset \ ht.toFinset := by ext; simp
 #align set.finite.to_finset_diff Set.Finite.toFinset_diff
 
 /- warning: set.finite.to_finset_symm_diff -> Set.Finite.toFinset_symmDiff is a dubious translation:
@@ -364,9 +348,7 @@ but is expected to have type
   forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α} [_inst_1 : DecidableEq.{succ u1} α] (hs : Set.Finite.{u1} α s) (ht : Set.Finite.{u1} α t) (h : Set.Finite.{u1} α (symmDiff.{u1} (Set.{u1} α) (SemilatticeSup.toSup.{u1} (Set.{u1} α) (Lattice.toSemilatticeSup.{u1} (Set.{u1} α) (CompleteLattice.toLattice.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α))))))) (Set.instSDiffSet.{u1} α) s t)), Eq.{succ u1} (Finset.{u1} α) (Set.Finite.toFinset.{u1} α (symmDiff.{u1} (Set.{u1} α) (SemilatticeSup.toSup.{u1} (Set.{u1} α) (Lattice.toSemilatticeSup.{u1} (Set.{u1} α) (CompleteLattice.toLattice.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α))))))) (Set.instSDiffSet.{u1} α) s t) h) (symmDiff.{u1} (Finset.{u1} α) (SemilatticeSup.toSup.{u1} (Finset.{u1} α) (Lattice.toSemilatticeSup.{u1} (Finset.{u1} α) (Finset.instLatticeFinset.{u1} α (fun (a : α) (b : α) => _inst_1 a b)))) (Finset.instSDiffFinset.{u1} α (fun (a : α) (b : α) => _inst_1 a b)) (Set.Finite.toFinset.{u1} α s hs) (Set.Finite.toFinset.{u1} α t ht))
 Case conversion may be inaccurate. Consider using '#align set.finite.to_finset_symm_diff Set.Finite.toFinset_symmDiffₓ'. -/
 protected theorem toFinset_symmDiff [DecidableEq α] (hs : s.Finite) (ht : t.Finite)
-    (h : (s ∆ t).Finite) : h.toFinset = hs.toFinset ∆ ht.toFinset :=
-  by
-  ext
+    (h : (s ∆ t).Finite) : h.toFinset = hs.toFinset ∆ ht.toFinset := by ext;
   simp [mem_symm_diff, Finset.mem_symmDiff]
 #align set.finite.to_finset_symm_diff Set.Finite.toFinset_symmDiff
 
@@ -377,26 +359,19 @@ but is expected to have type
   forall {α : Type.{u1}} {s : Set.{u1} α} [_inst_1 : DecidableEq.{succ u1} α] [_inst_2 : Fintype.{u1} α] (hs : Set.Finite.{u1} α s) (h : Set.Finite.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)), Eq.{succ u1} (Finset.{u1} α) (Set.Finite.toFinset.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s) h) (HasCompl.compl.{u1} (Finset.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Finset.{u1} α) (Finset.booleanAlgebra.{u1} α _inst_2 (fun (a : α) (b : α) => _inst_1 a b))) (Set.Finite.toFinset.{u1} α s hs))
 Case conversion may be inaccurate. Consider using '#align set.finite.to_finset_compl Set.Finite.toFinset_complₓ'. -/
 protected theorem toFinset_compl [DecidableEq α] [Fintype α] (hs : s.Finite) (h : sᶜ.Finite) :
-    h.toFinset = hs.toFinsetᶜ := by
-  ext
-  simp
+    h.toFinset = hs.toFinsetᶜ := by ext; simp
 #align set.finite.to_finset_compl Set.Finite.toFinset_compl
 
 #print Set.Finite.toFinset_empty /-
 @[simp]
-protected theorem toFinset_empty (h : (∅ : Set α).Finite) : h.toFinset = ∅ :=
-  by
-  ext
-  simp
+protected theorem toFinset_empty (h : (∅ : Set α).Finite) : h.toFinset = ∅ := by ext; simp
 #align set.finite.to_finset_empty Set.Finite.toFinset_empty
 -/
 
 #print Set.Finite.toFinset_univ /-
 @[simp]
 protected theorem toFinset_univ [Fintype α] (h : (Set.univ : Set α).Finite) :
-    h.toFinset = Finset.univ := by
-  ext
-  simp
+    h.toFinset = Finset.univ := by ext; simp
 #align set.finite.to_finset_univ Set.Finite.toFinset_univ
 -/
 
@@ -417,18 +392,14 @@ protected theorem toFinset_eq_univ [Fintype α] {h : s.Finite} :
 
 #print Set.Finite.toFinset_image /-
 protected theorem toFinset_image [DecidableEq β] (f : α → β) (hs : s.Finite) (h : (f '' s).Finite) :
-    h.toFinset = hs.toFinset.image f := by
-  ext
-  simp
+    h.toFinset = hs.toFinset.image f := by ext; simp
 #align set.finite.to_finset_image Set.Finite.toFinset_image
 -/
 
 #print Set.Finite.toFinset_range /-
 @[simp]
 protected theorem toFinset_range [DecidableEq α] [Fintype β] (f : β → α) (h : (range f).Finite) :
-    h.toFinset = Finset.univ.image f := by
-  ext
-  simp
+    h.toFinset = Finset.univ.image f := by ext; simp
 #align set.finite.to_finset_range Set.Finite.toFinset_range
 -/
 
@@ -511,9 +482,7 @@ instance fintypeInterOfRight (s t : Set α) [Fintype t] [DecidablePred (· ∈ s
 #print Set.fintypeSubset /-
 /-- A `fintype` structure on a set defines a `fintype` structure on its subset. -/
 def fintypeSubset (s : Set α) {t : Set α} [Fintype s] [DecidablePred (· ∈ t)] (h : t ⊆ s) :
-    Fintype t := by
-  rw [← inter_eq_self_of_subset_right h]
-  apply Set.fintypeInterOfLeft
+    Fintype t := by rw [← inter_eq_self_of_subset_right h]; apply Set.fintypeInterOfLeft
 #align set.fintype_subset Set.fintypeSubset
 -/
 
@@ -548,9 +517,7 @@ instance fintypeiUnion [DecidableEq α] [Fintype (PLift ι)] (f : ι → Set α)
 
 #print Set.fintypesUnion /-
 instance fintypesUnion [DecidableEq α] {s : Set (Set α)} [Fintype s]
-    [H : ∀ t : s, Fintype (t : Set α)] : Fintype (⋃₀ s) :=
-  by
-  rw [sUnion_eq_Union]
+    [H : ∀ t : s, Fintype (t : Set α)] : Fintype (⋃₀ s) := by rw [sUnion_eq_Union];
   exact @Set.fintypeiUnion _ _ _ _ _ H
 #align set.fintype_sUnion Set.fintypesUnion
 -/
@@ -722,18 +689,14 @@ instance fintypeOffDiag [DecidableEq α] (s : Set α) [Fintype s] : Fintype s.of
 #print Set.fintypeImage2 /-
 /-- `image2 f s t` is `fintype` if `s` and `t` are. -/
 instance fintypeImage2 [DecidableEq γ] (f : α → β → γ) (s : Set α) (t : Set β) [hs : Fintype s]
-    [ht : Fintype t] : Fintype (image2 f s t : Set γ) :=
-  by
-  rw [← image_prod]
+    [ht : Fintype t] : Fintype (image2 f s t : Set γ) := by rw [← image_prod];
   apply Set.fintypeImage
 #align set.fintype_image2 Set.fintypeImage2
 -/
 
 #print Set.fintypeSeq /-
 instance fintypeSeq [DecidableEq β] (f : Set (α → β)) (s : Set α) [Fintype f] [Fintype s] :
-    Fintype (f.seq s) := by
-  rw [seq_def]
-  apply Set.fintypeBiUnion'
+    Fintype (f.seq s) := by rw [seq_def]; apply Set.fintypeBiUnion'
 #align set.fintype_seq Set.fintypeSeq
 -/
 
@@ -774,9 +737,7 @@ theorem finite_toSet (s : Finset α) : (s : Set α).Finite :=
 
 #print Finset.finite_toSet_toFinset /-
 @[simp]
-theorem finite_toSet_toFinset (s : Finset α) : s.finite_toSet.toFinset = s :=
-  by
-  ext
+theorem finite_toSet_toFinset (s : Finset α) : s.finite_toSet.toFinset = s := by ext;
   rw [Set.Finite.mem_toFinset, mem_coe]
 #align finset.finite_to_set_to_finset Finset.finite_toSet_toFinset
 -/
@@ -795,9 +756,7 @@ theorem finite_toSet (s : Multiset α) : { x | x ∈ s }.Finite := by
 #print Multiset.finite_toSet_toFinset /-
 @[simp]
 theorem finite_toSet_toFinset [DecidableEq α] (s : Multiset α) :
-    s.finite_toSet.toFinset = s.toFinset := by
-  ext x
-  simp
+    s.finite_toSet.toFinset = s.toFinset := by ext x; simp
 #align multiset.finite_to_set_to_finset Multiset.finite_toSet_toFinset
 -/
 
@@ -841,26 +800,19 @@ lean 3 declaration is
 but is expected to have type
   forall {α : Type.{u1}} (s : Set.{u1} α) (t : Set.{u1} α) [_inst_1 : Finite.{succ u1} (Set.Elem.{u1} α s)] [_inst_2 : Finite.{succ u1} (Set.Elem.{u1} α t)], Finite.{succ u1} (Set.Elem.{u1} α (Union.union.{u1} (Set.{u1} α) (Set.instUnionSet.{u1} α) s t))
 Case conversion may be inaccurate. Consider using '#align finite.set.finite_union Finite.Set.finite_unionₓ'. -/
-instance finite_union (s t : Set α) [Finite s] [Finite t] : Finite (s ∪ t : Set α) :=
-  by
-  cases nonempty_fintype s
-  cases nonempty_fintype t
-  infer_instance
+instance finite_union (s t : Set α) [Finite s] [Finite t] : Finite (s ∪ t : Set α) := by
+  cases nonempty_fintype s; cases nonempty_fintype t; infer_instance
 #align finite.set.finite_union Finite.Set.finite_union
 
 #print Finite.Set.finite_sep /-
-instance finite_sep (s : Set α) (p : α → Prop) [Finite s] : Finite ({ a ∈ s | p a } : Set α) :=
-  by
-  cases nonempty_fintype s
-  infer_instance
+instance finite_sep (s : Set α) (p : α → Prop) [Finite s] : Finite ({ a ∈ s | p a } : Set α) := by
+  cases nonempty_fintype s; infer_instance
 #align finite.set.finite_sep Finite.Set.finite_sep
 -/
 
 #print Finite.Set.subset /-
-protected theorem subset (s : Set α) {t : Set α} [Finite s] (h : t ⊆ s) : Finite t :=
-  by
-  rw [← sep_eq_of_subset h]
-  infer_instance
+protected theorem subset (s : Set α) {t : Set α} [Finite s] (h : t ⊆ s) : Finite t := by
+  rw [← sep_eq_of_subset h]; infer_instance
 #align finite.set.subset Finite.Set.subset
 -/
 
@@ -895,10 +847,8 @@ instance finite_diff (s t : Set α) [Finite s] : Finite (s \ t : Set α) :=
 #align finite.set.finite_diff Finite.Set.finite_diff
 
 #print Finite.Set.finite_range /-
-instance finite_range (f : ι → α) [Finite ι] : Finite (range f) :=
-  by
-  haveI := Fintype.ofFinite (PLift ι)
-  infer_instance
+instance finite_range (f : ι → α) [Finite ι] : Finite (range f) := by
+  haveI := Fintype.ofFinite (PLift ι); infer_instance
 #align finite.set.finite_range Finite.Set.finite_range
 -/
 
@@ -912,9 +862,7 @@ instance finite_iUnion [Finite ι] (f : ι → Set α) [∀ i, Finite (f i)] : F
 
 #print Finite.Set.finite_sUnion /-
 instance finite_sUnion {s : Set (Set α)} [Finite s] [H : ∀ t : s, Finite (t : Set α)] :
-    Finite (⋃₀ s) := by
-  rw [sUnion_eq_Union]
-  exact @Finite.Set.finite_iUnion _ _ _ _ H
+    Finite (⋃₀ s) := by rw [sUnion_eq_Union]; exact @Finite.Set.finite_iUnion _ _ _ _ H
 #align finite.set.finite_sUnion Finite.Set.finite_sUnion
 -/
 
@@ -963,10 +911,8 @@ instance finite_insert (a : α) (s : Set α) [Finite s] : Finite (insert a s : S
 -/
 
 #print Finite.Set.finite_image /-
-instance finite_image (s : Set α) (f : α → β) [Finite s] : Finite (f '' s) :=
-  by
-  cases nonempty_fintype s
-  infer_instance
+instance finite_image (s : Set α) (f : α → β) [Finite s] : Finite (f '' s) := by
+  cases nonempty_fintype s; infer_instance
 #align finite.set.finite_image Finite.Set.finite_image
 -/
 
@@ -989,17 +935,13 @@ instance finite_prod (s : Set α) (t : Set β) [Finite s] [Finite t] :
 
 #print Finite.Set.finite_image2 /-
 instance finite_image2 (f : α → β → γ) (s : Set α) (t : Set β) [Finite s] [Finite t] :
-    Finite (image2 f s t : Set γ) := by
-  rw [← image_prod]
-  infer_instance
+    Finite (image2 f s t : Set γ) := by rw [← image_prod]; infer_instance
 #align finite.set.finite_image2 Finite.Set.finite_image2
 -/
 
 #print Finite.Set.finite_seq /-
-instance finite_seq (f : Set (α → β)) (s : Set α) [Finite f] [Finite s] : Finite (f.seq s) :=
-  by
-  rw [seq_def]
-  infer_instance
+instance finite_seq (f : Set (α → β)) (s : Set α) [Finite f] [Finite s] : Finite (f.seq s) := by
+  rw [seq_def]; infer_instance
 #align finite.set.finite_seq Finite.Set.finite_seq
 -/
 
@@ -1047,11 +989,8 @@ lean 3 declaration is
 but is expected to have type
   forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α}, (Set.Finite.{u1} α s) -> (Set.Finite.{u1} α t) -> (Set.Finite.{u1} α (Union.union.{u1} (Set.{u1} α) (Set.instUnionSet.{u1} α) s t))
 Case conversion may be inaccurate. Consider using '#align set.finite.union Set.Finite.unionₓ'. -/
-theorem Finite.union {s t : Set α} (hs : s.Finite) (ht : t.Finite) : (s ∪ t).Finite :=
-  by
-  cases hs
-  cases ht
-  apply to_finite
+theorem Finite.union {s t : Set α} (hs : s.Finite) (ht : t.Finite) : (s ∪ t).Finite := by cases hs;
+  cases ht; apply to_finite
 #align set.finite.union Set.Finite.union
 
 /- warning: set.finite.finite_of_compl -> Set.Finite.finite_of_compl is a dubious translation:
@@ -1060,10 +999,8 @@ lean 3 declaration is
 but is expected to have type
   forall {α : Type.{u1}} {s : Set.{u1} α}, (Set.Finite.{u1} α s) -> (Set.Finite.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)) -> (Finite.{succ u1} α)
 Case conversion may be inaccurate. Consider using '#align set.finite.finite_of_compl Set.Finite.finite_of_complₓ'. -/
-theorem Finite.finite_of_compl {s : Set α} (hs : s.Finite) (hsc : sᶜ.Finite) : Finite α :=
-  by
-  rw [← finite_univ_iff, ← union_compl_self s]
-  exact hs.union hsc
+theorem Finite.finite_of_compl {s : Set α} (hs : s.Finite) (hsc : sᶜ.Finite) : Finite α := by
+  rw [← finite_univ_iff, ← union_compl_self s]; exact hs.union hsc
 #align set.finite.finite_of_compl Set.Finite.finite_of_compl
 
 /- warning: set.finite.sup -> Set.Finite.sup is a dubious translation:
@@ -1077,10 +1014,8 @@ theorem Finite.sup {s t : Set α} : s.Finite → t.Finite → (s ⊔ t).Finite :
 #align set.finite.sup Set.Finite.sup
 
 #print Set.Finite.sep /-
-theorem Finite.sep {s : Set α} (hs : s.Finite) (p : α → Prop) : { a ∈ s | p a }.Finite :=
-  by
-  cases hs
-  apply to_finite
+theorem Finite.sep {s : Set α} (hs : s.Finite) (p : α → Prop) : { a ∈ s | p a }.Finite := by
+  cases hs; apply to_finite
 #align set.finite.sep Set.Finite.sep
 -/
 
@@ -1090,10 +1025,8 @@ lean 3 declaration is
 but is expected to have type
   forall {α : Type.{u1}} {s : Set.{u1} α}, (Set.Finite.{u1} α s) -> (forall (t : Set.{u1} α), Set.Finite.{u1} α (Inter.inter.{u1} (Set.{u1} α) (Set.instInterSet.{u1} α) s t))
 Case conversion may be inaccurate. Consider using '#align set.finite.inter_of_left Set.Finite.inter_of_leftₓ'. -/
-theorem Finite.inter_of_left {s : Set α} (hs : s.Finite) (t : Set α) : (s ∩ t).Finite :=
-  by
-  cases hs
-  apply to_finite
+theorem Finite.inter_of_left {s : Set α} (hs : s.Finite) (t : Set α) : (s ∩ t).Finite := by
+  cases hs; apply to_finite
 #align set.finite.inter_of_left Set.Finite.inter_of_left
 
 /- warning: set.finite.inter_of_right -> Set.Finite.inter_of_right is a dubious translation:
@@ -1102,10 +1035,8 @@ lean 3 declaration is
 but is expected to have type
   forall {α : Type.{u1}} {s : Set.{u1} α}, (Set.Finite.{u1} α s) -> (forall (t : Set.{u1} α), Set.Finite.{u1} α (Inter.inter.{u1} (Set.{u1} α) (Set.instInterSet.{u1} α) t s))
 Case conversion may be inaccurate. Consider using '#align set.finite.inter_of_right Set.Finite.inter_of_rightₓ'. -/
-theorem Finite.inter_of_right {s : Set α} (hs : s.Finite) (t : Set α) : (t ∩ s).Finite :=
-  by
-  cases hs
-  apply to_finite
+theorem Finite.inter_of_right {s : Set α} (hs : s.Finite) (t : Set α) : (t ∩ s).Finite := by
+  cases hs; apply to_finite
 #align set.finite.inter_of_right Set.Finite.inter_of_right
 
 /- warning: set.finite.inf_of_left -> Set.Finite.inf_of_left is a dubious translation:
@@ -1129,11 +1060,8 @@ theorem Finite.inf_of_right {s : Set α} (h : s.Finite) (t : Set α) : (t ⊓ s)
 #align set.finite.inf_of_right Set.Finite.inf_of_right
 
 #print Set.Finite.subset /-
-theorem Finite.subset {s : Set α} (hs : s.Finite) {t : Set α} (ht : t ⊆ s) : t.Finite :=
-  by
-  cases hs
-  haveI := Finite.Set.subset _ ht
-  apply to_finite
+theorem Finite.subset {s : Set α} (hs : s.Finite) {t : Set α} (ht : t ⊆ s) : t.Finite := by
+  cases hs; haveI := Finite.Set.subset _ ht; apply to_finite
 #align set.finite.subset Set.Finite.subset
 -/
 
@@ -1143,9 +1071,7 @@ lean 3 declaration is
 but is expected to have type
   forall {α : Type.{u1}} {s : Set.{u1} α}, (Set.Finite.{u1} α s) -> (forall (t : Set.{u1} α), Set.Finite.{u1} α (SDiff.sdiff.{u1} (Set.{u1} α) (Set.instSDiffSet.{u1} α) s t))
 Case conversion may be inaccurate. Consider using '#align set.finite.diff Set.Finite.diffₓ'. -/
-theorem Finite.diff {s : Set α} (hs : s.Finite) (t : Set α) : (s \ t).Finite :=
-  by
-  cases hs
+theorem Finite.diff {s : Set α} (hs : s.Finite) (t : Set α) : (s \ t).Finite := by cases hs;
   apply to_finite
 #align set.finite.diff Set.Finite.diff
 
@@ -1160,19 +1086,14 @@ theorem Finite.of_diff {s t : Set α} (hd : (s \ t).Finite) (ht : t.Finite) : s.
 #align set.finite.of_diff Set.Finite.of_diff
 
 #print Set.finite_iUnion /-
-theorem finite_iUnion [Finite ι] {f : ι → Set α} (H : ∀ i, (f i).Finite) : (⋃ i, f i).Finite :=
-  by
-  haveI := fun i => (H i).Fintype
-  apply to_finite
+theorem finite_iUnion [Finite ι] {f : ι → Set α} (H : ∀ i, (f i).Finite) : (⋃ i, f i).Finite := by
+  haveI := fun i => (H i).Fintype; apply to_finite
 #align set.finite_Union Set.finite_iUnion
 -/
 
 #print Set.Finite.sUnion /-
 theorem Finite.sUnion {s : Set (Set α)} (hs : s.Finite) (H : ∀ t ∈ s, Set.Finite t) :
-    (⋃₀ s).Finite := by
-  cases hs
-  haveI := fun i : s => (H i i.2).to_subtype
-  apply to_finite
+    (⋃₀ s).Finite := by cases hs; haveI := fun i : s => (H i i.2).to_subtype; apply to_finite
 #align set.finite.sUnion Set.Finite.sUnion
 -/
 
@@ -1198,11 +1119,8 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align set.finite.bUnion' Set.Finite.biUnion'ₓ'. -/
 /-- Dependent version of `finite.bUnion`. -/
 theorem Finite.biUnion' {ι} {s : Set ι} (hs : s.Finite) {t : ∀ i ∈ s, Set α}
-    (ht : ∀ i ∈ s, (t i ‹_›).Finite) : (⋃ i ∈ s, t i ‹_›).Finite :=
-  by
-  cases hs
-  rw [bUnion_eq_Union]
-  apply finite_Union fun i : s => ht i.1 i.2
+    (ht : ∀ i ∈ s, (t i ‹_›).Finite) : (⋃ i ∈ s, t i ‹_›).Finite := by cases hs;
+  rw [bUnion_eq_Union]; apply finite_Union fun i : s => ht i.1 i.2
 #align set.finite.bUnion' Set.Finite.biUnion'
 
 #print Set.Finite.sInter /-
@@ -1242,9 +1160,7 @@ theorem finite_empty : (∅ : Set α).Finite :=
 
 #print Set.Infinite.nonempty /-
 protected theorem Infinite.nonempty {s : Set α} (h : s.Infinite) : s.Nonempty :=
-  nonempty_iff_ne_empty.2 <| by
-    rintro rfl
-    exact h finite_empty
+  nonempty_iff_ne_empty.2 <| by rintro rfl; exact h finite_empty
 #align set.infinite.nonempty Set.Infinite.nonempty
 -/
 
@@ -1263,17 +1179,13 @@ theorem finite_pure (a : α) : (pure a : Set α).Finite :=
 
 #print Set.Finite.insert /-
 @[simp]
-theorem Finite.insert (a : α) {s : Set α} (hs : s.Finite) : (insert a s).Finite :=
-  by
-  cases hs
+theorem Finite.insert (a : α) {s : Set α} (hs : s.Finite) : (insert a s).Finite := by cases hs;
   apply to_finite
 #align set.finite.insert Set.Finite.insert
 -/
 
 #print Set.Finite.image /-
-theorem Finite.image {s : Set α} (f : α → β) (hs : s.Finite) : (f '' s).Finite :=
-  by
-  cases hs
+theorem Finite.image {s : Set α} (f : α → β) (hs : s.Finite) : (f '' s).Finite := by cases hs;
   apply to_finite
 #align set.finite.image Set.Finite.image
 -/
@@ -1286,9 +1198,7 @@ theorem finite_range (f : ι → α) [Finite ι] : (range f).Finite :=
 
 #print Set.Finite.dependent_image /-
 theorem Finite.dependent_image {s : Set α} (hs : s.Finite) (F : ∀ i ∈ s, β) :
-    { y : β | ∃ (x : _)(hx : x ∈ s), y = F x hx }.Finite :=
-  by
-  cases hs
+    { y : β | ∃ (x : _)(hx : x ∈ s), y = F x hx }.Finite := by cases hs;
   simpa [range, eq_comm] using finite_range fun x : s => F x x.2
 #align set.finite.dependent_image Set.Finite.dependent_image
 -/
@@ -1301,8 +1211,7 @@ theorem Finite.map {α β} {s : Set α} : ∀ f : α → β, s.Finite → (f <$>
 
 #print Set.Finite.of_finite_image /-
 theorem Finite.of_finite_image {s : Set α} {f : α → β} (h : (f '' s).Finite) (hi : Set.InjOn f s) :
-    s.Finite := by
-  cases h
+    s.Finite := by cases h;
   exact
     ⟨Fintype.ofInjective (fun a => (⟨f a.1, mem_image_of_mem f a.2⟩ : f '' s)) fun a b eq =>
         Subtype.eq <| hi a.2 b.2 <| Subtype.ext_iff_val.1 Eq⟩
@@ -1311,9 +1220,7 @@ theorem Finite.of_finite_image {s : Set α} {f : α → β} (h : (f '' s).Finite
 
 #print Set.finite_of_finite_preimage /-
 theorem finite_of_finite_preimage {f : α → β} {s : Set β} (h : (f ⁻¹' s).Finite)
-    (hs : s ⊆ range f) : s.Finite :=
-  by
-  rw [← image_preimage_eq_of_subset hs]
+    (hs : s ⊆ range f) : s.Finite := by rw [← image_preimage_eq_of_subset hs];
   exact finite.image f h
 #align set.finite_of_finite_preimage Set.finite_of_finite_preimage
 -/
@@ -1356,11 +1263,8 @@ variable {s : Set α} {t : Set β}
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 #print Set.Finite.prod /-
-protected theorem Finite.prod (hs : s.Finite) (ht : t.Finite) : (s ×ˢ t : Set (α × β)).Finite :=
-  by
-  cases hs
-  cases ht
-  apply to_finite
+protected theorem Finite.prod (hs : s.Finite) (ht : t.Finite) : (s ×ˢ t : Set (α × β)).Finite := by
+  cases hs; cases ht; apply to_finite
 #align set.finite.prod Set.Finite.prod
 -/
 
@@ -1424,10 +1328,7 @@ protected theorem Finite.offDiag (hs : s.Finite) : s.offDiag.Finite := by
 
 #print Set.Finite.image2 /-
 protected theorem Finite.image2 (f : α → β → γ) (hs : s.Finite) (ht : t.Finite) :
-    (image2 f s t).Finite := by
-  cases hs
-  cases ht
-  apply to_finite
+    (image2 f s t).Finite := by cases hs; cases ht; apply to_finite
 #align set.finite.image2 Set.Finite.image2
 -/
 
@@ -1507,9 +1408,7 @@ theorem Finite.pi {δ : Type _} [Finite δ] {κ : δ → Type _} {t : ∀ d, Set
 #print Set.union_finset_finite_of_range_finite /-
 /-- A finite union of finsets is finite. -/
 theorem union_finset_finite_of_range_finite (f : α → Finset β) (h : (range f).Finite) :
-    (⋃ a, (f a : Set β)).Finite := by
-  rw [← bUnion_range]
-  exact h.bUnion fun y hy => y.finite_toSet
+    (⋃ a, (f a : Set β)).Finite := by rw [← bUnion_range]; exact h.bUnion fun y hy => y.finite_toSet
 #align set.union_finset_finite_of_range_finite Set.union_finset_finite_of_range_finite
 -/
 
@@ -1739,10 +1638,8 @@ theorem seq_of_forall_finite_exists {γ : Type _} {P : γ → Set γ → Prop}
       convert Classical.choose_spec (h _ _)
       ext x
       constructor
-      · rintro ⟨m, hmn, rfl⟩
-        exact ⟨⟨m, hmn⟩, rfl⟩
-      · rintro ⟨⟨m, hmn⟩, rfl⟩
-        exact ⟨m, hmn, rfl⟩⟩
+      · rintro ⟨m, hmn, rfl⟩; exact ⟨⟨m, hmn⟩, rfl⟩
+      · rintro ⟨⟨m, hmn⟩, rfl⟩; exact ⟨m, hmn, rfl⟩⟩
 #align set.seq_of_forall_finite_exists Set.seq_of_forall_finite_exists
 -/
 
@@ -2021,18 +1918,14 @@ theorem Infinite.exists_ne_map_eq_of_mapsTo {s : Set α} {t : Set β} {f : α 
 
 #print Set.infinite_range_of_injective /-
 theorem infinite_range_of_injective [Infinite α] {f : α → β} (hi : Injective f) :
-    (range f).Infinite :=
-  by
-  rw [← image_univ, infinite_image_iff (inj_on_of_injective hi _)]
+    (range f).Infinite := by rw [← image_univ, infinite_image_iff (inj_on_of_injective hi _)];
   exact infinite_univ
 #align set.infinite_range_of_injective Set.infinite_range_of_injective
 -/
 
 #print Set.infinite_of_injective_forall_mem /-
 theorem infinite_of_injective_forall_mem [Infinite α] {s : Set β} {f : α → β} (hi : Injective f)
-    (hf : ∀ x : α, f x ∈ s) : s.Infinite :=
-  by
-  rw [← range_subset_iff] at hf
+    (hf : ∀ x : α, f x ∈ s) : s.Infinite := by rw [← range_subset_iff] at hf;
   exact (infinite_range_of_injective hi).mono hf
 #align set.infinite_of_injective_forall_mem Set.infinite_of_injective_forall_mem
 -/
@@ -2215,8 +2108,7 @@ theorem Finite.iSup_biInf_of_monotone {ι ι' α : Type _} [Preorder ι'] [Nonem
   by
   revert hf
   refine' hs.induction_on _ _
-  · intro hf
-    simp [iSup_const]
+  · intro hf; simp [iSup_const]
   · intro a s has hs ihs hf
     rw [ball_insert_iff] at hf
     simp only [iInf_insert, ← ihs hf.2]
@@ -2406,8 +2298,7 @@ theorem Finite.exists_maximal_wrt [PartialOrder β] (f : α → β) (s : Set α)
   · exact fun h => absurd h not_nonempty_empty
   intro a s his _ ih _
   cases' s.eq_empty_or_nonempty with h h
-  · use a
-    simp [h]
+  · use a; simp [h]
   rcases ih h with ⟨b, hb, ih⟩
   by_cases f b ≤ f a
   · refine' ⟨a, Set.mem_insert _ _, fun c hc hac => le_antisymm hac _⟩
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Mario Carneiro, Kyle Miller
 
 ! This file was ported from Lean 3 source module data.set.finite
-! leanprover-community/mathlib commit 52fa514ec337dd970d71d8de8d0fd68b455a1e54
+! leanprover-community/mathlib commit 5bb9fffd23f9f65b367f5d451da18cc60bf47335
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -754,6 +754,10 @@ end FintypeInstances
 
 end Set
 
+theorem Equiv.set_finite_iff {s : Set α} {t : Set β} (hst : s ≃ t) : s.Finite ↔ t.Finite := by
+  simp_rw [← Set.finite_coe_iff, hst.finite_iff]
+#align equiv.set_finite_iff Equiv.set_finite_iff
+
 /-! ### Finset -/
 
 
@@ -1208,6 +1212,20 @@ theorem Finite.sInter {α : Type _} {s : Set (Set α)} {t : Set α} (ht : t ∈
 #align set.finite.sInter Set.Finite.sInter
 -/
 
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (i «expr ∉ » t) -/
+/-- If sets `s i` are finite for all `i` from a finite set `t` and are empty for `i ∉ t`, then the
+union `⋃ i, s i` is a finite set. -/
+theorem Finite.iUnion {ι : Type _} {s : ι → Set α} {t : Set ι} (ht : t.Finite)
+    (hs : ∀ i ∈ t, (s i).Finite) (he : ∀ (i) (_ : i ∉ t), s i = ∅) : (⋃ i, s i).Finite :=
+  by
+  suffices (⋃ i, s i) ⊆ ⋃ i ∈ t, s i by exact (ht.bUnion hs).Subset this
+  refine' Union_subset fun i x hx => _
+  by_cases hi : i ∈ t
+  · exact mem_bUnion hi hx
+  · rw [he i hi, mem_empty_iff_false] at hx
+    contradiction
+#align set.finite.Union Set.Finite.iUnion
+
 #print Set.Finite.bind /-
 theorem Finite.bind {α β} {s : Set α} {f : α → Set β} (h : s.Finite) (hf : ∀ a ∈ s, (f a).Finite) :
     (s >>= f).Finite :=
@@ -1639,10 +1657,7 @@ theorem finite_subset_iUnion {s : Set α} (hs : s.Finite) {ι} {t : ι → Set 
 #align set.finite_subset_Union Set.finite_subset_iUnion
 
 /- warning: set.eq_finite_Union_of_finite_subset_Union -> Set.eq_finite_iUnion_of_finite_subset_iUnion is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Type.{u2}} {s : ι -> (Set.{u1} α)} {t : Set.{u1} α}, (Set.Finite.{u1} α t) -> (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) t (Set.iUnion.{u1, succ u2} α ι (fun (i : ι) => s i))) -> (Exists.{succ u2} (Set.{u2} ι) (fun (I : Set.{u2} ι) => And (Set.Finite.{u2} ι I) (Exists.{max (succ u2) (succ u1)} ((coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (setOf.{u2} ι (fun (i : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i I))) -> (Set.{u1} α)) (fun (σ : (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (setOf.{u2} ι (fun (i : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i I))) -> (Set.{u1} α)) => And (forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (setOf.{u2} ι (fun (i : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i I))), Set.Finite.{u1} α (σ i)) (And (forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (setOf.{u2} ι (fun (i : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i I))), HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (σ i) (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} ι) (setOf.{u2} ι (fun (i : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i I))) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (setOf.{u2} ι (fun (i : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i I))) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (setOf.{u2} ι (fun (i : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i I))) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (setOf.{u2} ι (fun (i : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i I))) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x (setOf.{u2} ι (fun (i : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i I))))))) i))) (Eq.{succ u1} (Set.{u1} α) t (Set.iUnion.{u1, succ u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (setOf.{u2} ι (fun (i : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i I))) (fun (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (setOf.{u2} ι (fun (i : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i I))) => σ i))))))))
-but is expected to have type
-  forall {α : Type.{u2}} {ι : Type.{u1}} {s : ι -> (Set.{u2} α)} {t : Set.{u2} α}, (Set.Finite.{u2} α t) -> (HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) t (Set.iUnion.{u2, succ u1} α ι (fun (i : ι) => s i))) -> (Exists.{succ u1} (Set.{u1} ι) (fun (I : Set.{u1} ι) => And (Set.Finite.{u1} ι I) (Exists.{max (succ u2) (succ u1)} ((Set.Elem.{u1} ι (setOf.{u1} ι (fun (i : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i I))) -> (Set.{u2} α)) (fun (σ : (Set.Elem.{u1} ι (setOf.{u1} ι (fun (i : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i I))) -> (Set.{u2} α)) => And (forall (i : Set.Elem.{u1} ι (setOf.{u1} ι (fun (i : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i I))), Set.Finite.{u2} α (σ i)) (And (forall (i : Set.Elem.{u1} ι (setOf.{u1} ι (fun (i : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i I))), HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) (σ i) (s (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (setOf.{u1} ι (fun (i : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i I))) i))) (Eq.{succ u2} (Set.{u2} α) t (Set.iUnion.{u2, succ u1} α (Set.Elem.{u1} ι (setOf.{u1} ι (fun (i : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i I))) (fun (i : Set.Elem.{u1} ι (setOf.{u1} ι (fun (i : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i I))) => σ i))))))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align set.eq_finite_Union_of_finite_subset_Union Set.eq_finite_iUnion_of_finite_subset_iUnionₓ'. -/
 theorem eq_finite_iUnion_of_finite_subset_iUnion {ι} {s : ι → Set α} {t : Set α} (tfin : t.Finite)
     (h : t ⊆ ⋃ i, s i) :
Diff
@@ -2057,7 +2057,7 @@ variable [Preorder α] [Nonempty α] {s : Set α}
 
 /- warning: set.infinite_of_forall_exists_gt -> Set.infinite_of_forall_exists_gt is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : Preorder.{u1} α] [_inst_2 : Nonempty.{succ u1} α] {s : Set.{u1} α}, (forall (a : α), Exists.{succ u1} α (fun (b : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) b s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) b s) => LT.lt.{u1} α (Preorder.toLT.{u1} α _inst_1) a b))) -> (Set.Infinite.{u1} α s)
+  forall {α : Type.{u1}} [_inst_1 : Preorder.{u1} α] [_inst_2 : Nonempty.{succ u1} α] {s : Set.{u1} α}, (forall (a : α), Exists.{succ u1} α (fun (b : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) b s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) b s) => LT.lt.{u1} α (Preorder.toHasLt.{u1} α _inst_1) a b))) -> (Set.Infinite.{u1} α s)
 but is expected to have type
   forall {α : Type.{u1}} [_inst_1 : Preorder.{u1} α] [_inst_2 : Nonempty.{succ u1} α] {s : Set.{u1} α}, (forall (a : α), Exists.{succ u1} α (fun (b : α) => And (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) b s) (LT.lt.{u1} α (Preorder.toLT.{u1} α _inst_1) a b))) -> (Set.Infinite.{u1} α s)
 Case conversion may be inaccurate. Consider using '#align set.infinite_of_forall_exists_gt Set.infinite_of_forall_exists_gtₓ'. -/
@@ -2072,7 +2072,7 @@ theorem infinite_of_forall_exists_gt (h : ∀ a, ∃ b ∈ s, a < b) : s.Infinit
 
 /- warning: set.infinite_of_forall_exists_lt -> Set.infinite_of_forall_exists_lt is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : Preorder.{u1} α] [_inst_2 : Nonempty.{succ u1} α] {s : Set.{u1} α}, (forall (a : α), Exists.{succ u1} α (fun (b : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) b s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) b s) => LT.lt.{u1} α (Preorder.toLT.{u1} α _inst_1) b a))) -> (Set.Infinite.{u1} α s)
+  forall {α : Type.{u1}} [_inst_1 : Preorder.{u1} α] [_inst_2 : Nonempty.{succ u1} α] {s : Set.{u1} α}, (forall (a : α), Exists.{succ u1} α (fun (b : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) b s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) b s) => LT.lt.{u1} α (Preorder.toHasLt.{u1} α _inst_1) b a))) -> (Set.Infinite.{u1} α s)
 but is expected to have type
   forall {α : Type.{u1}} [_inst_1 : Preorder.{u1} α] [_inst_2 : Nonempty.{succ u1} α] {s : Set.{u1} α}, (forall (a : α), Exists.{succ u1} α (fun (b : α) => And (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) b s) (LT.lt.{u1} α (Preorder.toLT.{u1} α _inst_1) b a))) -> (Set.Infinite.{u1} α s)
 Case conversion may be inaccurate. Consider using '#align set.infinite_of_forall_exists_lt Set.infinite_of_forall_exists_ltₓ'. -/
@@ -2082,21 +2082,29 @@ theorem infinite_of_forall_exists_lt (h : ∀ a, ∃ b ∈ s, b < a) : s.Infinit
 
 end Preorder
 
-#print Set.finite_isTop /-
+/- warning: set.finite_is_top -> Set.finite_isTop is a dubious translation:
+lean 3 declaration is
+  forall (α : Type.{u1}) [_inst_1 : PartialOrder.{u1} α], Set.Finite.{u1} α (setOf.{u1} α (fun (x : α) => IsTop.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x))
+but is expected to have type
+  forall (α : Type.{u1}) [_inst_1 : PartialOrder.{u1} α], Set.Finite.{u1} α (setOf.{u1} α (fun (x : α) => IsTop.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x))
+Case conversion may be inaccurate. Consider using '#align set.finite_is_top Set.finite_isTopₓ'. -/
 theorem finite_isTop (α : Type _) [PartialOrder α] : { x : α | IsTop x }.Finite :=
   (subsingleton_isTop α).Finite
 #align set.finite_is_top Set.finite_isTop
--/
 
-#print Set.finite_isBot /-
+/- warning: set.finite_is_bot -> Set.finite_isBot is a dubious translation:
+lean 3 declaration is
+  forall (α : Type.{u1}) [_inst_1 : PartialOrder.{u1} α], Set.Finite.{u1} α (setOf.{u1} α (fun (x : α) => IsBot.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x))
+but is expected to have type
+  forall (α : Type.{u1}) [_inst_1 : PartialOrder.{u1} α], Set.Finite.{u1} α (setOf.{u1} α (fun (x : α) => IsBot.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x))
+Case conversion may be inaccurate. Consider using '#align set.finite_is_bot Set.finite_isBotₓ'. -/
 theorem finite_isBot (α : Type _) [PartialOrder α] : { x : α | IsBot x }.Finite :=
   (subsingleton_isBot α).Finite
 #align set.finite_is_bot Set.finite_isBot
--/
 
 /- warning: set.infinite.exists_lt_map_eq_of_maps_to -> Set.Infinite.exists_lt_map_eq_of_mapsTo is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrder.{u1} α] {s : Set.{u1} α} {t : Set.{u2} β} {f : α -> β}, (Set.Infinite.{u1} α s) -> (Set.MapsTo.{u1, u2} α β f s t) -> (Set.Finite.{u2} β t) -> (Exists.{succ u1} α (fun (x : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) => Exists.{succ u1} α (fun (y : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) y s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) y s) => And (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) x y) (Eq.{succ u2} β (f x) (f y)))))))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrder.{u1} α] {s : Set.{u1} α} {t : Set.{u2} β} {f : α -> β}, (Set.Infinite.{u1} α s) -> (Set.MapsTo.{u1, u2} α β f s t) -> (Set.Finite.{u2} β t) -> (Exists.{succ u1} α (fun (x : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) => Exists.{succ u1} α (fun (y : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) y s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) y s) => And (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) x y) (Eq.{succ u2} β (f x) (f y)))))))
 but is expected to have type
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrder.{u1} α] {s : Set.{u1} α} {t : Set.{u2} β} {f : α -> β}, (Set.Infinite.{u1} α s) -> (Set.MapsTo.{u1, u2} α β f s t) -> (Set.Finite.{u2} β t) -> (Exists.{succ u1} α (fun (x : α) => And (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s) (Exists.{succ u1} α (fun (y : α) => And (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) y s) (And (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1)))))) x y) (Eq.{succ u2} β (f x) (f y)))))))
 Case conversion may be inaccurate. Consider using '#align set.infinite.exists_lt_map_eq_of_maps_to Set.Infinite.exists_lt_map_eq_of_mapsToₓ'. -/
@@ -2106,7 +2114,12 @@ theorem Infinite.exists_lt_map_eq_of_mapsTo [LinearOrder α] {s : Set α} {t : S
   hxy.lt_or_lt.elim (fun hxy => ⟨x, hx, y, hy, hxy, hf⟩) fun hyx => ⟨y, hy, x, hx, hyx, hf.symm⟩
 #align set.infinite.exists_lt_map_eq_of_maps_to Set.Infinite.exists_lt_map_eq_of_mapsTo
 
-#print Set.Finite.exists_lt_map_eq_of_forall_mem /-
+/- warning: set.finite.exists_lt_map_eq_of_forall_mem -> Set.Finite.exists_lt_map_eq_of_forall_mem is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrder.{u1} α] [_inst_2 : Infinite.{succ u1} α] {t : Set.{u2} β} {f : α -> β}, (forall (a : α), Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) (f a) t) -> (Set.Finite.{u2} β t) -> (Exists.{succ u1} α (fun (a : α) => Exists.{succ u1} α (fun (b : α) => And (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) a b) (Eq.{succ u2} β (f a) (f b)))))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrder.{u1} α] [_inst_2 : Infinite.{succ u1} α] {t : Set.{u2} β} {f : α -> β}, (forall (a : α), Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) (f a) t) -> (Set.Finite.{u2} β t) -> (Exists.{succ u1} α (fun (a : α) => Exists.{succ u1} α (fun (b : α) => And (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1)))))) a b) (Eq.{succ u2} β (f a) (f b)))))
+Case conversion may be inaccurate. Consider using '#align set.finite.exists_lt_map_eq_of_forall_mem Set.Finite.exists_lt_map_eq_of_forall_memₓ'. -/
 theorem Finite.exists_lt_map_eq_of_forall_mem [LinearOrder α] [Infinite α] {t : Set β} {f : α → β}
     (hf : ∀ a, f a ∈ t) (ht : t.Finite) : ∃ a b, a < b ∧ f a = f b :=
   by
@@ -2114,11 +2127,10 @@ theorem Finite.exists_lt_map_eq_of_forall_mem [LinearOrder α] [Infinite α] {t
   obtain ⟨a, -, b, -, h⟩ := (@infinite_univ α _).exists_lt_map_eq_of_mapsTo hf ht
   exact ⟨a, b, h⟩
 #align set.finite.exists_lt_map_eq_of_forall_mem Set.Finite.exists_lt_map_eq_of_forall_mem
--/
 
 /- warning: set.exists_min_image -> Set.exists_min_image is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrder.{u2} β] (s : Set.{u1} α) (f : α -> β), (Set.Finite.{u1} α s) -> (Set.Nonempty.{u1} α s) -> (Exists.{succ u1} α (fun (a : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) a s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) a s) => forall (b : α), (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) b s) -> (LE.le.{u2} β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_1))))) (f a) (f b)))))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrder.{u2} β] (s : Set.{u1} α) (f : α -> β), (Set.Finite.{u1} α s) -> (Set.Nonempty.{u1} α s) -> (Exists.{succ u1} α (fun (a : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) a s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) a s) => forall (b : α), (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) b s) -> (LE.le.{u2} β (Preorder.toHasLe.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_1))))) (f a) (f b)))))
 but is expected to have type
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrder.{u2} β] (s : Set.{u1} α) (f : α -> β), (Set.Finite.{u1} α s) -> (Set.Nonempty.{u1} α s) -> (Exists.{succ u1} α (fun (a : α) => And (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) a s) (forall (b : α), (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) b s) -> (LE.le.{u2} β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (DistribLattice.toLattice.{u2} β (instDistribLattice.{u2} β _inst_1)))))) (f a) (f b)))))
 Case conversion may be inaccurate. Consider using '#align set.exists_min_image Set.exists_min_imageₓ'. -/
@@ -2131,7 +2143,7 @@ theorem exists_min_image [LinearOrder β] (s : Set α) (f : α → β) (h1 : s.F
 
 /- warning: set.exists_max_image -> Set.exists_max_image is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrder.{u2} β] (s : Set.{u1} α) (f : α -> β), (Set.Finite.{u1} α s) -> (Set.Nonempty.{u1} α s) -> (Exists.{succ u1} α (fun (a : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) a s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) a s) => forall (b : α), (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) b s) -> (LE.le.{u2} β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_1))))) (f b) (f a)))))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrder.{u2} β] (s : Set.{u1} α) (f : α -> β), (Set.Finite.{u1} α s) -> (Set.Nonempty.{u1} α s) -> (Exists.{succ u1} α (fun (a : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) a s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) a s) => forall (b : α), (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) b s) -> (LE.le.{u2} β (Preorder.toHasLe.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_1))))) (f b) (f a)))))
 but is expected to have type
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrder.{u2} β] (s : Set.{u1} α) (f : α -> β), (Set.Finite.{u1} α s) -> (Set.Nonempty.{u1} α s) -> (Exists.{succ u1} α (fun (a : α) => And (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) a s) (forall (b : α), (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) b s) -> (LE.le.{u2} β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (DistribLattice.toLattice.{u2} β (instDistribLattice.{u2} β _inst_1)))))) (f b) (f a)))))
 Case conversion may be inaccurate. Consider using '#align set.exists_max_image Set.exists_max_imageₓ'. -/
@@ -2142,7 +2154,12 @@ theorem exists_max_image [LinearOrder β] (s : Set α) (f : α → β) (h1 : s.F
       h1.to_finset.exists_max_image f ⟨x, h1.mem_to_finset.2 hx⟩
 #align set.exists_max_image Set.exists_max_image
 
-#print Set.exists_lower_bound_image /-
+/- warning: set.exists_lower_bound_image -> Set.exists_lower_bound_image is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [hα : Nonempty.{succ u1} α] [_inst_1 : LinearOrder.{u2} β] (s : Set.{u1} α) (f : α -> β), (Set.Finite.{u1} α s) -> (Exists.{succ u1} α (fun (a : α) => forall (b : α), (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) b s) -> (LE.le.{u2} β (Preorder.toHasLe.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_1))))) (f a) (f b))))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [hα : Nonempty.{succ u1} α] [_inst_1 : LinearOrder.{u2} β] (s : Set.{u1} α) (f : α -> β), (Set.Finite.{u1} α s) -> (Exists.{succ u1} α (fun (a : α) => forall (b : α), (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) b s) -> (LE.le.{u2} β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (DistribLattice.toLattice.{u2} β (instDistribLattice.{u2} β _inst_1)))))) (f a) (f b))))
+Case conversion may be inaccurate. Consider using '#align set.exists_lower_bound_image Set.exists_lower_bound_imageₓ'. -/
 theorem exists_lower_bound_image [hα : Nonempty α] [LinearOrder β] (s : Set α) (f : α → β)
     (h : s.Finite) : ∃ a : α, ∀ b ∈ s, f a ≤ f b :=
   by
@@ -2153,9 +2170,13 @@ theorem exists_lower_bound_image [hα : Nonempty α] [LinearOrder β] (s : Set 
       ⟨x₀, fun x hx => hx₀ x hx⟩
   · exact Nonempty.elim hα fun a => ⟨a, fun x hx => absurd (Set.nonempty_of_mem hx) hs⟩
 #align set.exists_lower_bound_image Set.exists_lower_bound_image
--/
 
-#print Set.exists_upper_bound_image /-
+/- warning: set.exists_upper_bound_image -> Set.exists_upper_bound_image is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [hα : Nonempty.{succ u1} α] [_inst_1 : LinearOrder.{u2} β] (s : Set.{u1} α) (f : α -> β), (Set.Finite.{u1} α s) -> (Exists.{succ u1} α (fun (a : α) => forall (b : α), (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) b s) -> (LE.le.{u2} β (Preorder.toHasLe.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (LinearOrder.toLattice.{u2} β _inst_1))))) (f b) (f a))))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [hα : Nonempty.{succ u1} α] [_inst_1 : LinearOrder.{u2} β] (s : Set.{u1} α) (f : α -> β), (Set.Finite.{u1} α s) -> (Exists.{succ u1} α (fun (a : α) => forall (b : α), (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) b s) -> (LE.le.{u2} β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (SemilatticeInf.toPartialOrder.{u2} β (Lattice.toSemilatticeInf.{u2} β (DistribLattice.toLattice.{u2} β (instDistribLattice.{u2} β _inst_1)))))) (f b) (f a))))
+Case conversion may be inaccurate. Consider using '#align set.exists_upper_bound_image Set.exists_upper_bound_imageₓ'. -/
 theorem exists_upper_bound_image [hα : Nonempty α] [LinearOrder β] (s : Set α) (f : α → β)
     (h : s.Finite) : ∃ a : α, ∀ b ∈ s, f b ≤ f a :=
   by
@@ -2166,11 +2187,10 @@ theorem exists_upper_bound_image [hα : Nonempty α] [LinearOrder β] (s : Set 
       ⟨x₀, fun x hx => hx₀ x hx⟩
   · exact Nonempty.elim hα fun a => ⟨a, fun x hx => absurd (Set.nonempty_of_mem hx) hs⟩
 #align set.exists_upper_bound_image Set.exists_upper_bound_image
--/
 
 /- warning: set.finite.supr_binfi_of_monotone -> Set.Finite.iSup_biInf_of_monotone is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1))] [_inst_4 : Order.Frame.{u3} α] {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) -> (Monotone.{u2, u3} ι' α _inst_1 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4)))) (f i))) -> (Eq.{succ u3} α (iSup.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => iInf.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => iInf.{u3, 0} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => f i j)))) (iInf.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => iInf.{u3, 0} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => iSup.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => f i j))))))
+  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toHasLe.{u2} ι' _inst_1))] [_inst_4 : Order.Frame.{u3} α] {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) -> (Monotone.{u2, u3} ι' α _inst_1 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4)))) (f i))) -> (Eq.{succ u3} α (iSup.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => iInf.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => iInf.{u3, 0} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => f i j)))) (iInf.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => iInf.{u3, 0} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => iSup.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => f i j))))))
 but is expected to have type
   forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.13041 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13043 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.13041 x._@.Mathlib.Data.Set.Finite._hyg.13043)] [_inst_4 : Order.Frame.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Monotone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (iSup.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => iInf.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => iInf.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (iInf.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => iInf.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => iSup.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
 Case conversion may be inaccurate. Consider using '#align set.finite.supr_binfi_of_monotone Set.Finite.iSup_biInf_of_monotoneₓ'. -/
@@ -2190,7 +2210,7 @@ theorem Finite.iSup_biInf_of_monotone {ι ι' α : Type _} [Preorder ι'] [Nonem
 
 /- warning: set.finite.supr_binfi_of_antitone -> Set.Finite.iSup_biInf_of_antitone is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1)))] [_inst_4 : Order.Frame.{u3} α] {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) -> (Antitone.{u2, u3} ι' α _inst_1 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4)))) (f i))) -> (Eq.{succ u3} α (iSup.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => iInf.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => iInf.{u3, 0} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => f i j)))) (iInf.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => iInf.{u3, 0} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => iSup.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => f i j))))))
+  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toHasLe.{u2} ι' _inst_1)))] [_inst_4 : Order.Frame.{u3} α] {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) -> (Antitone.{u2, u3} ι' α _inst_1 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4)))) (f i))) -> (Eq.{succ u3} α (iSup.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => iInf.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => iInf.{u3, 0} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => f i j)))) (iInf.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => iInf.{u3, 0} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => iSup.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => f i j))))))
 but is expected to have type
   forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.13263 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13265 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.13263 x._@.Mathlib.Data.Set.Finite._hyg.13265))] [_inst_4 : Order.Frame.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Antitone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (iSup.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => iInf.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => iInf.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (iInf.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => iInf.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => iSup.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
 Case conversion may be inaccurate. Consider using '#align set.finite.supr_binfi_of_antitone Set.Finite.iSup_biInf_of_antitoneₓ'. -/
@@ -2202,7 +2222,7 @@ theorem Finite.iSup_biInf_of_antitone {ι ι' α : Type _} [Preorder ι'] [Nonem
 
 /- warning: set.finite.infi_bsupr_of_monotone -> Set.Finite.iInf_biSup_of_monotone is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1)))] [_inst_4 : Order.Coframe.{u3} α] {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) -> (Monotone.{u2, u3} ι' α _inst_1 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4)))) (f i))) -> (Eq.{succ u3} α (iInf.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => iSup.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => iSup.{u3, 0} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => f i j)))) (iSup.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => iSup.{u3, 0} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => iInf.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => f i j))))))
+  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toHasLe.{u2} ι' _inst_1)))] [_inst_4 : Order.Coframe.{u3} α] {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) -> (Monotone.{u2, u3} ι' α _inst_1 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4)))) (f i))) -> (Eq.{succ u3} α (iInf.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => iSup.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => iSup.{u3, 0} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => f i j)))) (iSup.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => iSup.{u3, 0} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => iInf.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => f i j))))))
 but is expected to have type
   forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.13443 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13445 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.13443 x._@.Mathlib.Data.Set.Finite._hyg.13445))] [_inst_4 : Order.Coframe.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Monotone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (iInf.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => iSup.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => iSup.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (iSup.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => iSup.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => iInf.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
 Case conversion may be inaccurate. Consider using '#align set.finite.infi_bsupr_of_monotone Set.Finite.iInf_biSup_of_monotoneₓ'. -/
@@ -2214,7 +2234,7 @@ theorem Finite.iInf_biSup_of_monotone {ι ι' α : Type _} [Preorder ι'] [Nonem
 
 /- warning: set.finite.infi_bsupr_of_antitone -> Set.Finite.iInf_biSup_of_antitone is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1))] [_inst_4 : Order.Coframe.{u3} α] {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) -> (Antitone.{u2, u3} ι' α _inst_1 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4)))) (f i))) -> (Eq.{succ u3} α (iInf.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => iSup.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => iSup.{u3, 0} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => f i j)))) (iSup.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => iSup.{u3, 0} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => iInf.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => f i j))))))
+  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toHasLe.{u2} ι' _inst_1))] [_inst_4 : Order.Coframe.{u3} α] {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) -> (Antitone.{u2, u3} ι' α _inst_1 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4)))) (f i))) -> (Eq.{succ u3} α (iInf.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => iSup.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => iSup.{u3, 0} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => f i j)))) (iSup.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => iSup.{u3, 0} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => iInf.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => f i j))))))
 but is expected to have type
   forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.13615 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13617 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.13615 x._@.Mathlib.Data.Set.Finite._hyg.13617)] [_inst_4 : Order.Coframe.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Antitone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (iInf.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => iSup.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => iSup.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (iSup.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => iSup.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => iInf.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
 Case conversion may be inaccurate. Consider using '#align set.finite.infi_bsupr_of_antitone Set.Finite.iInf_biSup_of_antitoneₓ'. -/
@@ -2226,7 +2246,7 @@ theorem Finite.iInf_biSup_of_antitone {ι ι' α : Type _} [Preorder ι'] [Nonem
 
 /- warning: supr_infi_of_monotone -> Set.iSup_iInf_of_monotone is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2))] [_inst_5 : Order.Frame.{u3} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u3} ι' α _inst_2 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5)))) (f i)) -> (Eq.{succ u3} α (iSup.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => iInf.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => f i j))) (iInf.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => iSup.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => f i j))))
+  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toHasLe.{u2} ι' _inst_2))] [_inst_5 : Order.Frame.{u3} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u3} ι' α _inst_2 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5)))) (f i)) -> (Eq.{succ u3} α (iSup.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => iInf.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => f i j))) (iInf.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => iSup.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => f i j))))
 but is expected to have type
   forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.13787 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13789 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13787 x._@.Mathlib.Data.Set.Finite._hyg.13789)] [_inst_5 : Order.Frame.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (iSup.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => iInf.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (iInf.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => iSup.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
 Case conversion may be inaccurate. Consider using '#align supr_infi_of_monotone Set.iSup_iInf_of_monotoneₓ'. -/
@@ -2238,7 +2258,7 @@ theorem Set.iSup_iInf_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'
 
 /- warning: supr_infi_of_antitone -> Set.iSup_iInf_of_antitone is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2)))] [_inst_5 : Order.Frame.{u3} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u3} ι' α _inst_2 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5)))) (f i)) -> (Eq.{succ u3} α (iSup.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => iInf.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => f i j))) (iInf.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => iSup.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => f i j))))
+  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toHasLe.{u2} ι' _inst_2)))] [_inst_5 : Order.Frame.{u3} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u3} ι' α _inst_2 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5)))) (f i)) -> (Eq.{succ u3} α (iSup.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => iInf.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => f i j))) (iInf.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => iSup.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => f i j))))
 but is expected to have type
   forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.13924 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13926 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13924 x._@.Mathlib.Data.Set.Finite._hyg.13926))] [_inst_5 : Order.Frame.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (iSup.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => iInf.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (iInf.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => iSup.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
 Case conversion may be inaccurate. Consider using '#align supr_infi_of_antitone Set.iSup_iInf_of_antitoneₓ'. -/
@@ -2250,7 +2270,7 @@ theorem Set.iSup_iInf_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι'
 
 /- warning: infi_supr_of_monotone -> Set.iInf_iSup_of_monotone is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2)))] [_inst_5 : Order.Coframe.{u3} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u3} ι' α _inst_2 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5)))) (f i)) -> (Eq.{succ u3} α (iInf.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => iSup.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => f i j))) (iSup.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => iInf.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => f i j))))
+  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toHasLe.{u2} ι' _inst_2)))] [_inst_5 : Order.Coframe.{u3} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u3} ι' α _inst_2 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5)))) (f i)) -> (Eq.{succ u3} α (iInf.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => iSup.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => f i j))) (iSup.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => iInf.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => f i j))))
 but is expected to have type
   forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.14062 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14064 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14062 x._@.Mathlib.Data.Set.Finite._hyg.14064))] [_inst_5 : Order.Coframe.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (iInf.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => iSup.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (iSup.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => iInf.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
 Case conversion may be inaccurate. Consider using '#align infi_supr_of_monotone Set.iInf_iSup_of_monotoneₓ'. -/
@@ -2262,7 +2282,7 @@ theorem Set.iInf_iSup_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'
 
 /- warning: infi_supr_of_antitone -> Set.iInf_iSup_of_antitone is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2))] [_inst_5 : Order.Coframe.{u3} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u3} ι' α _inst_2 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5)))) (f i)) -> (Eq.{succ u3} α (iInf.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => iSup.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => f i j))) (iSup.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => iInf.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => f i j))))
+  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toHasLe.{u2} ι' _inst_2))] [_inst_5 : Order.Coframe.{u3} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u3} ι' α _inst_2 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5)))) (f i)) -> (Eq.{succ u3} α (iInf.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => iSup.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => f i j))) (iSup.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => iInf.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => f i j))))
 but is expected to have type
   forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.14194 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14196 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14194 x._@.Mathlib.Data.Set.Finite._hyg.14196)] [_inst_5 : Order.Coframe.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (iInf.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => iSup.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (iSup.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => iInf.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
 Case conversion may be inaccurate. Consider using '#align infi_supr_of_antitone Set.iInf_iSup_of_antitoneₓ'. -/
@@ -2274,7 +2294,7 @@ theorem Set.iInf_iSup_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι'
 
 /- warning: set.Union_Inter_of_monotone -> Set.iUnion_iInter_of_monotone is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u3} α)}, (forall (i : ι), Monotone.{u2, u3} ι' (Set.{u3} α) _inst_2 (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.completeBooleanAlgebra.{u3} α))))))) (s i)) -> (Eq.{succ u3} (Set.{u3} α) (Set.iUnion.{u3, succ u2} α ι' (fun (j : ι') => Set.iInter.{u3, succ u1} α ι (fun (i : ι) => s i j))) (Set.iInter.{u3, succ u1} α ι (fun (i : ι) => Set.iUnion.{u3, succ u2} α ι' (fun (j : ι') => s i j))))
+  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toHasLe.{u2} ι' _inst_2))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u3} α)}, (forall (i : ι), Monotone.{u2, u3} ι' (Set.{u3} α) _inst_2 (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.completeBooleanAlgebra.{u3} α))))))) (s i)) -> (Eq.{succ u3} (Set.{u3} α) (Set.iUnion.{u3, succ u2} α ι' (fun (j : ι') => Set.iInter.{u3, succ u1} α ι (fun (i : ι) => s i j))) (Set.iInter.{u3, succ u1} α ι (fun (i : ι) => Set.iUnion.{u3, succ u2} α ι' (fun (j : ι') => s i j))))
 but is expected to have type
   forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.14323 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14325 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14323 x._@.Mathlib.Data.Set.Finite._hyg.14325)] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Monotone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.iUnion.{u1, succ u2} α ι' (fun (j : ι') => Set.iInter.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.iInter.{u1, succ u3} α ι (fun (i : ι) => Set.iUnion.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
 Case conversion may be inaccurate. Consider using '#align set.Union_Inter_of_monotone Set.iUnion_iInter_of_monotoneₓ'. -/
@@ -2287,7 +2307,7 @@ theorem iUnion_iInter_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'
 
 /- warning: set.Union_Inter_of_antitone -> Set.iUnion_iInter_of_antitone is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2)))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u3} α)}, (forall (i : ι), Antitone.{u2, u3} ι' (Set.{u3} α) _inst_2 (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.completeBooleanAlgebra.{u3} α))))))) (s i)) -> (Eq.{succ u3} (Set.{u3} α) (Set.iUnion.{u3, succ u2} α ι' (fun (j : ι') => Set.iInter.{u3, succ u1} α ι (fun (i : ι) => s i j))) (Set.iInter.{u3, succ u1} α ι (fun (i : ι) => Set.iUnion.{u3, succ u2} α ι' (fun (j : ι') => s i j))))
+  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toHasLe.{u2} ι' _inst_2)))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u3} α)}, (forall (i : ι), Antitone.{u2, u3} ι' (Set.{u3} α) _inst_2 (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.completeBooleanAlgebra.{u3} α))))))) (s i)) -> (Eq.{succ u3} (Set.{u3} α) (Set.iUnion.{u3, succ u2} α ι' (fun (j : ι') => Set.iInter.{u3, succ u1} α ι (fun (i : ι) => s i j))) (Set.iInter.{u3, succ u1} α ι (fun (i : ι) => Set.iUnion.{u3, succ u2} α ι' (fun (j : ι') => s i j))))
 but is expected to have type
   forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.14445 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14447 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14445 x._@.Mathlib.Data.Set.Finite._hyg.14447))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Antitone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.iUnion.{u1, succ u2} α ι' (fun (j : ι') => Set.iInter.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.iInter.{u1, succ u3} α ι (fun (i : ι) => Set.iUnion.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
 Case conversion may be inaccurate. Consider using '#align set.Union_Inter_of_antitone Set.iUnion_iInter_of_antitoneₓ'. -/
@@ -2300,7 +2320,7 @@ theorem iUnion_iInter_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι'
 
 /- warning: set.Inter_Union_of_monotone -> Set.iInter_iUnion_of_monotone is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2)))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u3} α)}, (forall (i : ι), Monotone.{u2, u3} ι' (Set.{u3} α) _inst_2 (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.completeBooleanAlgebra.{u3} α))))))) (s i)) -> (Eq.{succ u3} (Set.{u3} α) (Set.iInter.{u3, succ u2} α ι' (fun (j : ι') => Set.iUnion.{u3, succ u1} α ι (fun (i : ι) => s i j))) (Set.iUnion.{u3, succ u1} α ι (fun (i : ι) => Set.iInter.{u3, succ u2} α ι' (fun (j : ι') => s i j))))
+  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toHasLe.{u2} ι' _inst_2)))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u3} α)}, (forall (i : ι), Monotone.{u2, u3} ι' (Set.{u3} α) _inst_2 (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.completeBooleanAlgebra.{u3} α))))))) (s i)) -> (Eq.{succ u3} (Set.{u3} α) (Set.iInter.{u3, succ u2} α ι' (fun (j : ι') => Set.iUnion.{u3, succ u1} α ι (fun (i : ι) => s i j))) (Set.iUnion.{u3, succ u1} α ι (fun (i : ι) => Set.iInter.{u3, succ u2} α ι' (fun (j : ι') => s i j))))
 but is expected to have type
   forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.14567 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14569 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14567 x._@.Mathlib.Data.Set.Finite._hyg.14569))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Monotone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.iInter.{u1, succ u2} α ι' (fun (j : ι') => Set.iUnion.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.iUnion.{u1, succ u3} α ι (fun (i : ι) => Set.iInter.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
 Case conversion may be inaccurate. Consider using '#align set.Inter_Union_of_monotone Set.iInter_iUnion_of_monotoneₓ'. -/
@@ -2313,7 +2333,7 @@ theorem iInter_iUnion_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'
 
 /- warning: set.Inter_Union_of_antitone -> Set.iInter_iUnion_of_antitone is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u3} α)}, (forall (i : ι), Antitone.{u2, u3} ι' (Set.{u3} α) _inst_2 (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.completeBooleanAlgebra.{u3} α))))))) (s i)) -> (Eq.{succ u3} (Set.{u3} α) (Set.iInter.{u3, succ u2} α ι' (fun (j : ι') => Set.iUnion.{u3, succ u1} α ι (fun (i : ι) => s i j))) (Set.iUnion.{u3, succ u1} α ι (fun (i : ι) => Set.iInter.{u3, succ u2} α ι' (fun (j : ι') => s i j))))
+  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toHasLe.{u2} ι' _inst_2))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u3} α)}, (forall (i : ι), Antitone.{u2, u3} ι' (Set.{u3} α) _inst_2 (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.completeBooleanAlgebra.{u3} α))))))) (s i)) -> (Eq.{succ u3} (Set.{u3} α) (Set.iInter.{u3, succ u2} α ι' (fun (j : ι') => Set.iUnion.{u3, succ u1} α ι (fun (i : ι) => s i j))) (Set.iUnion.{u3, succ u1} α ι (fun (i : ι) => Set.iInter.{u3, succ u2} α ι' (fun (j : ι') => s i j))))
 but is expected to have type
   forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.14686 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14688 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14686 x._@.Mathlib.Data.Set.Finite._hyg.14688)] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Antitone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.iInter.{u1, succ u2} α ι' (fun (j : ι') => Set.iUnion.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.iUnion.{u1, succ u3} α ι (fun (i : ι) => Set.iInter.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
 Case conversion may be inaccurate. Consider using '#align set.Inter_Union_of_antitone Set.iInter_iUnion_of_antitoneₓ'. -/
@@ -2360,7 +2380,7 @@ theorem finite_range_findGreatest {P : α → ℕ → Prop} [∀ x, DecidablePre
 
 /- warning: set.finite.exists_maximal_wrt -> Set.Finite.exists_maximal_wrt is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PartialOrder.{u2} β] (f : α -> β) (s : Set.{u1} α), (Set.Finite.{u1} α s) -> (Set.Nonempty.{u1} α s) -> (Exists.{succ u1} α (fun (a : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) a s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) a s) => forall (a' : α), (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) a' s) -> (LE.le.{u2} β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β _inst_1)) (f a) (f a')) -> (Eq.{succ u2} β (f a) (f a')))))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PartialOrder.{u2} β] (f : α -> β) (s : Set.{u1} α), (Set.Finite.{u1} α s) -> (Set.Nonempty.{u1} α s) -> (Exists.{succ u1} α (fun (a : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) a s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) a s) => forall (a' : α), (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) a' s) -> (LE.le.{u2} β (Preorder.toHasLe.{u2} β (PartialOrder.toPreorder.{u2} β _inst_1)) (f a) (f a')) -> (Eq.{succ u2} β (f a) (f a')))))
 but is expected to have type
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PartialOrder.{u2} β] (f : α -> β) (s : Set.{u1} α), (Set.Finite.{u1} α s) -> (Set.Nonempty.{u1} α s) -> (Exists.{succ u1} α (fun (a : α) => And (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) a s) (forall (a' : α), (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) a' s) -> (LE.le.{u2} β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β _inst_1)) (f a) (f a')) -> (Eq.{succ u2} β (f a) (f a')))))
 Case conversion may be inaccurate. Consider using '#align set.finite.exists_maximal_wrt Set.Finite.exists_maximal_wrtₓ'. -/
@@ -2465,7 +2485,12 @@ end Finset
 
 variable [LinearOrder α]
 
-#print Finite.of_forall_not_lt_lt /-
+/- warning: finite.of_forall_not_lt_lt -> Finite.of_forall_not_lt_lt is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : LinearOrder.{u1} α], (forall {{x : α}} {{y : α}} {{z : α}}, (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) x y) -> (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) y z) -> False) -> (Finite.{succ u1} α)
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : LinearOrder.{u1} α], (forall {{x : α}} {{y : α}} {{z : α}}, (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1)))))) x y) -> (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1)))))) y z) -> False) -> (Finite.{succ u1} α)
+Case conversion may be inaccurate. Consider using '#align finite.of_forall_not_lt_lt Finite.of_forall_not_lt_ltₓ'. -/
 /-- If a linear order does not contain any triple of elements `x < y < z`, then this type
 is finite. -/
 theorem Finite.of_forall_not_lt_lt (h : ∀ ⦃x y z : α⦄, x < y → y < z → False) : Finite α :=
@@ -2475,16 +2500,19 @@ theorem Finite.of_forall_not_lt_lt (h : ∀ ⦃x y z : α⦄, x < y → y < z 
   refine' @Finite.of_fintype α ⟨{x, y}, fun z => _⟩
   simpa [hne] using eq_or_eq_or_eq_of_forall_not_lt_lt h z x y
 #align finite.of_forall_not_lt_lt Finite.of_forall_not_lt_lt
--/
 
+/- warning: set.finite_of_forall_not_lt_lt -> Set.finite_of_forall_not_lt_lt is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : LinearOrder.{u1} α] {s : Set.{u1} α}, (forall (x : α), (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) -> (forall (y : α), (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) y s) -> (forall (z : α), (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) z s) -> (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) x y) -> (LT.lt.{u1} α (Preorder.toHasLt.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1))))) y z) -> False))) -> (Set.Finite.{u1} α s)
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : LinearOrder.{u1} α] {s : Set.{u1} α}, (forall (x : α), (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s) -> (forall (y : α), (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) y s) -> (forall (z : α), (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) z s) -> (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1)))))) x y) -> (LT.lt.{u1} α (Preorder.toLT.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1)))))) y z) -> False))) -> (Set.Finite.{u1} α s)
+Case conversion may be inaccurate. Consider using '#align set.finite_of_forall_not_lt_lt Set.finite_of_forall_not_lt_ltₓ'. -/
 /- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (x y z «expr ∈ » s) -/
-#print Set.finite_of_forall_not_lt_lt /-
 /-- If a set `s` does not contain any triple of elements `x < y < z`, then `s` is finite. -/
 theorem Set.finite_of_forall_not_lt_lt {s : Set α}
     (h : ∀ (x) (_ : x ∈ s) (y) (_ : y ∈ s) (z) (_ : z ∈ s), x < y → y < z → False) : Set.Finite s :=
   @Set.toFinite _ s <| Finite.of_forall_not_lt_lt <| by simpa only [SetCoe.forall'] using h
 #align set.finite_of_forall_not_lt_lt Set.finite_of_forall_not_lt_lt
--/
 
 /- warning: set.finite_diff_Union_Ioo -> Set.finite_diff_iUnion_Ioo is a dubious translation:
 lean 3 declaration is
Diff
@@ -539,40 +539,40 @@ instance fintypeDiffLeft (s t : Set α) [Fintype s] [DecidablePred (· ∈ t)] :
   Set.fintypeSep s (· ∈ tᶜ)
 #align set.fintype_diff_left Set.fintypeDiffLeft
 
-#print Set.fintypeUnionᵢ /-
-instance fintypeUnionᵢ [DecidableEq α] [Fintype (PLift ι)] (f : ι → Set α) [∀ i, Fintype (f i)] :
+#print Set.fintypeiUnion /-
+instance fintypeiUnion [DecidableEq α] [Fintype (PLift ι)] (f : ι → Set α) [∀ i, Fintype (f i)] :
     Fintype (⋃ i, f i) :=
-  Fintype.ofFinset (Finset.univ.bunionᵢ fun i : PLift ι => (f i.down).toFinset) <| by simp
-#align set.fintype_Union Set.fintypeUnionᵢ
+  Fintype.ofFinset (Finset.univ.biUnion fun i : PLift ι => (f i.down).toFinset) <| by simp
+#align set.fintype_Union Set.fintypeiUnion
 -/
 
-#print Set.fintypeUnionₛ /-
-instance fintypeUnionₛ [DecidableEq α] {s : Set (Set α)} [Fintype s]
+#print Set.fintypesUnion /-
+instance fintypesUnion [DecidableEq α] {s : Set (Set α)} [Fintype s]
     [H : ∀ t : s, Fintype (t : Set α)] : Fintype (⋃₀ s) :=
   by
   rw [sUnion_eq_Union]
-  exact @Set.fintypeUnionᵢ _ _ _ _ _ H
-#align set.fintype_sUnion Set.fintypeUnionₛ
+  exact @Set.fintypeiUnion _ _ _ _ _ H
+#align set.fintype_sUnion Set.fintypesUnion
 -/
 
-#print Set.fintypeBUnionᵢ /-
+#print Set.fintypeBiUnion /-
 /-- A union of sets with `fintype` structure over a set with `fintype` structure has a `fintype`
 structure. -/
-def fintypeBUnionᵢ [DecidableEq α] {ι : Type _} (s : Set ι) [Fintype s] (t : ι → Set α)
+def fintypeBiUnion [DecidableEq α] {ι : Type _} (s : Set ι) [Fintype s] (t : ι → Set α)
     (H : ∀ i ∈ s, Fintype (t i)) : Fintype (⋃ x ∈ s, t x) :=
   Fintype.ofFinset
-      (s.toFinset.attach.bunionᵢ fun x =>
+      (s.toFinset.attach.biUnion fun x =>
         haveI := H x (by simpa using x.property)
         (t x).toFinset) <|
     by simp
-#align set.fintype_bUnion Set.fintypeBUnionᵢ
+#align set.fintype_bUnion Set.fintypeBiUnion
 -/
 
-#print Set.fintypeBUnionᵢ' /-
-instance fintypeBUnionᵢ' [DecidableEq α] {ι : Type _} (s : Set ι) [Fintype s] (t : ι → Set α)
+#print Set.fintypeBiUnion' /-
+instance fintypeBiUnion' [DecidableEq α] {ι : Type _} (s : Set ι) [Fintype s] (t : ι → Set α)
     [∀ i, Fintype (t i)] : Fintype (⋃ x ∈ s, t x) :=
-  Fintype.ofFinset (s.toFinset.bunionᵢ fun x => (t x).toFinset) <| by simp
-#align set.fintype_bUnion' Set.fintypeBUnionᵢ'
+  Fintype.ofFinset (s.toFinset.biUnion fun x => (t x).toFinset) <| by simp
+#align set.fintype_bUnion' Set.fintypeBiUnion'
 -/
 
 #print Set.fintypeBind /-
@@ -580,14 +580,14 @@ instance fintypeBUnionᵢ' [DecidableEq α] {ι : Type _} (s : Set ι) [Fintype
 each `f a`, `a ∈ s`, has a `fintype` structure, then `s >>= f` has a `fintype` structure. -/
 def fintypeBind {α β} [DecidableEq β] (s : Set α) [Fintype s] (f : α → Set β)
     (H : ∀ a ∈ s, Fintype (f a)) : Fintype (s >>= f) :=
-  Set.fintypeBUnionᵢ s f H
+  Set.fintypeBiUnion s f H
 #align set.fintype_bind Set.fintypeBind
 -/
 
 #print Set.fintypeBind' /-
 instance fintypeBind' {α β} [DecidableEq β] (s : Set α) [Fintype s] (f : α → Set β)
     [H : ∀ a, Fintype (f a)] : Fintype (s >>= f) :=
-  Set.fintypeBUnionᵢ' s f
+  Set.fintypeBiUnion' s f
 #align set.fintype_bind' Set.fintypeBind'
 -/
 
@@ -733,7 +733,7 @@ instance fintypeImage2 [DecidableEq γ] (f : α → β → γ) (s : Set α) (t :
 instance fintypeSeq [DecidableEq β] (f : Set (α → β)) (s : Set α) [Fintype f] [Fintype s] :
     Fintype (f.seq s) := by
   rw [seq_def]
-  apply Set.fintypeBUnionᵢ'
+  apply Set.fintypeBiUnion'
 #align set.fintype_seq Set.fintypeSeq
 -/
 
@@ -898,58 +898,58 @@ instance finite_range (f : ι → α) [Finite ι] : Finite (range f) :=
 #align finite.set.finite_range Finite.Set.finite_range
 -/
 
-#print Finite.Set.finite_unionᵢ /-
-instance finite_unionᵢ [Finite ι] (f : ι → Set α) [∀ i, Finite (f i)] : Finite (⋃ i, f i) :=
+#print Finite.Set.finite_iUnion /-
+instance finite_iUnion [Finite ι] (f : ι → Set α) [∀ i, Finite (f i)] : Finite (⋃ i, f i) :=
   by
   rw [Union_eq_range_psigma]
   apply Set.finite_range
-#align finite.set.finite_Union Finite.Set.finite_unionᵢ
+#align finite.set.finite_Union Finite.Set.finite_iUnion
 -/
 
-#print Finite.Set.finite_unionₛ /-
-instance finite_unionₛ {s : Set (Set α)} [Finite s] [H : ∀ t : s, Finite (t : Set α)] :
+#print Finite.Set.finite_sUnion /-
+instance finite_sUnion {s : Set (Set α)} [Finite s] [H : ∀ t : s, Finite (t : Set α)] :
     Finite (⋃₀ s) := by
   rw [sUnion_eq_Union]
-  exact @Finite.Set.finite_unionᵢ _ _ _ _ H
-#align finite.set.finite_sUnion Finite.Set.finite_unionₛ
+  exact @Finite.Set.finite_iUnion _ _ _ _ H
+#align finite.set.finite_sUnion Finite.Set.finite_sUnion
 -/
 
-/- warning: finite.set.finite_bUnion -> Finite.Set.finite_bunionᵢ is a dubious translation:
+/- warning: finite.set.finite_bUnion -> Finite.Set.finite_biUnion is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Type.{u2}} (s : Set.{u2} ι) [_inst_1 : Finite.{succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) s)] (t : ι -> (Set.{u1} α)), (forall (i : ι), (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i s) -> (Finite.{succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (t i)))) -> (Finite.{succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (Set.unionᵢ.{u1, succ u2} α ι (fun (x : ι) => Set.unionᵢ.{u1, 0} α (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x s) (fun (H : Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x s) => t x)))))
+  forall {α : Type.{u1}} {ι : Type.{u2}} (s : Set.{u2} ι) [_inst_1 : Finite.{succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) s)] (t : ι -> (Set.{u1} α)), (forall (i : ι), (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i s) -> (Finite.{succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (t i)))) -> (Finite.{succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (Set.iUnion.{u1, succ u2} α ι (fun (x : ι) => Set.iUnion.{u1, 0} α (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x s) (fun (H : Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x s) => t x)))))
 but is expected to have type
-  forall {α : Type.{u2}} {ι : Type.{u1}} (s : Set.{u1} ι) [_inst_1 : Finite.{succ u1} (Set.Elem.{u1} ι s)] (t : ι -> (Set.{u2} α)), (forall (i : ι), (Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i s) -> (Finite.{succ u2} (Set.Elem.{u2} α (t i)))) -> (Finite.{succ u2} (Set.Elem.{u2} α (Set.unionᵢ.{u2, succ u1} α ι (fun (x : ι) => Set.unionᵢ.{u2, 0} α (Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x s) (fun (H : Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x s) => t x)))))
-Case conversion may be inaccurate. Consider using '#align finite.set.finite_bUnion Finite.Set.finite_bunionᵢₓ'. -/
-theorem finite_bunionᵢ {ι : Type _} (s : Set ι) [Finite s] (t : ι → Set α)
+  forall {α : Type.{u2}} {ι : Type.{u1}} (s : Set.{u1} ι) [_inst_1 : Finite.{succ u1} (Set.Elem.{u1} ι s)] (t : ι -> (Set.{u2} α)), (forall (i : ι), (Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i s) -> (Finite.{succ u2} (Set.Elem.{u2} α (t i)))) -> (Finite.{succ u2} (Set.Elem.{u2} α (Set.iUnion.{u2, succ u1} α ι (fun (x : ι) => Set.iUnion.{u2, 0} α (Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x s) (fun (H : Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x s) => t x)))))
+Case conversion may be inaccurate. Consider using '#align finite.set.finite_bUnion Finite.Set.finite_biUnionₓ'. -/
+theorem finite_biUnion {ι : Type _} (s : Set ι) [Finite s] (t : ι → Set α)
     (H : ∀ i ∈ s, Finite (t i)) : Finite (⋃ x ∈ s, t x) :=
   by
   rw [bUnion_eq_Union]
   haveI : ∀ i : s, Finite (t i) := fun i => H i i.property
   infer_instance
-#align finite.set.finite_bUnion Finite.Set.finite_bunionᵢ
+#align finite.set.finite_bUnion Finite.Set.finite_biUnion
 
-#print Finite.Set.finite_bunionᵢ' /-
-instance finite_bunionᵢ' {ι : Type _} (s : Set ι) [Finite s] (t : ι → Set α) [∀ i, Finite (t i)] :
+#print Finite.Set.finite_biUnion' /-
+instance finite_biUnion' {ι : Type _} (s : Set ι) [Finite s] (t : ι → Set α) [∀ i, Finite (t i)] :
     Finite (⋃ x ∈ s, t x) :=
-  finite_bunionᵢ s t fun i h => inferInstance
-#align finite.set.finite_bUnion' Finite.Set.finite_bunionᵢ'
+  finite_biUnion s t fun i h => inferInstance
+#align finite.set.finite_bUnion' Finite.Set.finite_biUnion'
 -/
 
-#print Finite.Set.finite_bunionᵢ'' /-
+#print Finite.Set.finite_biUnion'' /-
 /-- Example: `finite (⋃ (i < n), f i)` where `f : ℕ → set α` and `[∀ i, finite (f i)]`
 (when given instances from `data.nat.interval`).
 -/
-instance finite_bunionᵢ'' {ι : Type _} (p : ι → Prop) [h : Finite { x | p x }] (t : ι → Set α)
+instance finite_biUnion'' {ι : Type _} (p : ι → Prop) [h : Finite { x | p x }] (t : ι → Set α)
     [∀ i, Finite (t i)] : Finite (⋃ (x) (h : p x), t x) :=
-  @Finite.Set.finite_bunionᵢ' _ _ (setOf p) h t _
-#align finite.set.finite_bUnion'' Finite.Set.finite_bunionᵢ''
+  @Finite.Set.finite_biUnion' _ _ (setOf p) h t _
+#align finite.set.finite_bUnion'' Finite.Set.finite_biUnion''
 -/
 
-#print Finite.Set.finite_interᵢ /-
-instance finite_interᵢ {ι : Sort _} [Nonempty ι] (t : ι → Set α) [∀ i, Finite (t i)] :
+#print Finite.Set.finite_iInter /-
+instance finite_iInter {ι : Sort _} [Nonempty ι] (t : ι → Set α) [∀ i, Finite (t i)] :
     Finite (⋂ i, t i) :=
-  Finite.Set.subset (t <| Classical.arbitrary ι) (interᵢ_subset _ _)
-#align finite.set.finite_Inter Finite.Set.finite_interᵢ
+  Finite.Set.subset (t <| Classical.arbitrary ι) (iInter_subset _ _)
+#align finite.set.finite_Inter Finite.Set.finite_iInter
 -/
 
 #print Finite.Set.finite_insert /-
@@ -1155,63 +1155,63 @@ theorem Finite.of_diff {s t : Set α} (hd : (s \ t).Finite) (ht : t.Finite) : s.
   (hd.union ht).Subset <| subset_diff_union _ _
 #align set.finite.of_diff Set.Finite.of_diff
 
-#print Set.finite_unionᵢ /-
-theorem finite_unionᵢ [Finite ι] {f : ι → Set α} (H : ∀ i, (f i).Finite) : (⋃ i, f i).Finite :=
+#print Set.finite_iUnion /-
+theorem finite_iUnion [Finite ι] {f : ι → Set α} (H : ∀ i, (f i).Finite) : (⋃ i, f i).Finite :=
   by
   haveI := fun i => (H i).Fintype
   apply to_finite
-#align set.finite_Union Set.finite_unionᵢ
+#align set.finite_Union Set.finite_iUnion
 -/
 
-#print Set.Finite.unionₛ /-
-theorem Finite.unionₛ {s : Set (Set α)} (hs : s.Finite) (H : ∀ t ∈ s, Set.Finite t) :
+#print Set.Finite.sUnion /-
+theorem Finite.sUnion {s : Set (Set α)} (hs : s.Finite) (H : ∀ t ∈ s, Set.Finite t) :
     (⋃₀ s).Finite := by
   cases hs
   haveI := fun i : s => (H i i.2).to_subtype
   apply to_finite
-#align set.finite.sUnion Set.Finite.unionₛ
+#align set.finite.sUnion Set.Finite.sUnion
 -/
 
-/- warning: set.finite.bUnion -> Set.Finite.bunionᵢ is a dubious translation:
+/- warning: set.finite.bUnion -> Set.Finite.biUnion is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Type.{u2}} {s : Set.{u2} ι}, (Set.Finite.{u2} ι s) -> (forall {t : ι -> (Set.{u1} α)}, (forall (i : ι), (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i s) -> (Set.Finite.{u1} α (t i))) -> (Set.Finite.{u1} α (Set.unionᵢ.{u1, succ u2} α ι (fun (i : ι) => Set.unionᵢ.{u1, 0} α (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i s) (fun (H : Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i s) => t i)))))
+  forall {α : Type.{u1}} {ι : Type.{u2}} {s : Set.{u2} ι}, (Set.Finite.{u2} ι s) -> (forall {t : ι -> (Set.{u1} α)}, (forall (i : ι), (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i s) -> (Set.Finite.{u1} α (t i))) -> (Set.Finite.{u1} α (Set.iUnion.{u1, succ u2} α ι (fun (i : ι) => Set.iUnion.{u1, 0} α (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i s) (fun (H : Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i s) => t i)))))
 but is expected to have type
-  forall {α : Type.{u2}} {ι : Type.{u1}} {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {t : ι -> (Set.{u2} α)}, (forall (i : ι), (Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i s) -> (Set.Finite.{u2} α (t i))) -> (Set.Finite.{u2} α (Set.unionᵢ.{u2, succ u1} α ι (fun (i : ι) => Set.unionᵢ.{u2, 0} α (Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i s) (fun (H : Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i s) => t i)))))
-Case conversion may be inaccurate. Consider using '#align set.finite.bUnion Set.Finite.bunionᵢₓ'. -/
-theorem Finite.bunionᵢ {ι} {s : Set ι} (hs : s.Finite) {t : ι → Set α}
+  forall {α : Type.{u2}} {ι : Type.{u1}} {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {t : ι -> (Set.{u2} α)}, (forall (i : ι), (Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i s) -> (Set.Finite.{u2} α (t i))) -> (Set.Finite.{u2} α (Set.iUnion.{u2, succ u1} α ι (fun (i : ι) => Set.iUnion.{u2, 0} α (Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i s) (fun (H : Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i s) => t i)))))
+Case conversion may be inaccurate. Consider using '#align set.finite.bUnion Set.Finite.biUnionₓ'. -/
+theorem Finite.biUnion {ι} {s : Set ι} (hs : s.Finite) {t : ι → Set α}
     (ht : ∀ i ∈ s, (t i).Finite) : (⋃ i ∈ s, t i).Finite := by
   classical
     cases hs
     haveI := fintype_bUnion s t fun i hi => (ht i hi).Fintype
     apply to_finite
-#align set.finite.bUnion Set.Finite.bunionᵢ
+#align set.finite.bUnion Set.Finite.biUnion
 
-/- warning: set.finite.bUnion' -> Set.Finite.bunionᵢ' is a dubious translation:
+/- warning: set.finite.bUnion' -> Set.Finite.biUnion' is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Type.{u2}} {s : Set.{u2} ι}, (Set.Finite.{u2} ι s) -> (forall {t : forall (i : ι), (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i s) -> (Set.{u1} α)}, (forall (i : ι) (H : Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i s), Set.Finite.{u1} α (t i H)) -> (Set.Finite.{u1} α (Set.unionᵢ.{u1, succ u2} α ι (fun (i : ι) => Set.unionᵢ.{u1, 0} α (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i s) (fun (H : Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i s) => t i H)))))
+  forall {α : Type.{u1}} {ι : Type.{u2}} {s : Set.{u2} ι}, (Set.Finite.{u2} ι s) -> (forall {t : forall (i : ι), (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i s) -> (Set.{u1} α)}, (forall (i : ι) (H : Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i s), Set.Finite.{u1} α (t i H)) -> (Set.Finite.{u1} α (Set.iUnion.{u1, succ u2} α ι (fun (i : ι) => Set.iUnion.{u1, 0} α (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i s) (fun (H : Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i s) => t i H)))))
 but is expected to have type
-  forall {α : Type.{u2}} {ι : Type.{u1}} {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {t : forall (i : ι), (Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i s) -> (Set.{u2} α)}, (forall (i : ι) (H : Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i s), Set.Finite.{u2} α (t i H)) -> (Set.Finite.{u2} α (Set.unionᵢ.{u2, succ u1} α ι (fun (i : ι) => Set.unionᵢ.{u2, 0} α (Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i s) (fun (H : Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i s) => t i H)))))
-Case conversion may be inaccurate. Consider using '#align set.finite.bUnion' Set.Finite.bunionᵢ'ₓ'. -/
+  forall {α : Type.{u2}} {ι : Type.{u1}} {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {t : forall (i : ι), (Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i s) -> (Set.{u2} α)}, (forall (i : ι) (H : Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i s), Set.Finite.{u2} α (t i H)) -> (Set.Finite.{u2} α (Set.iUnion.{u2, succ u1} α ι (fun (i : ι) => Set.iUnion.{u2, 0} α (Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i s) (fun (H : Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i s) => t i H)))))
+Case conversion may be inaccurate. Consider using '#align set.finite.bUnion' Set.Finite.biUnion'ₓ'. -/
 /-- Dependent version of `finite.bUnion`. -/
-theorem Finite.bunionᵢ' {ι} {s : Set ι} (hs : s.Finite) {t : ∀ i ∈ s, Set α}
+theorem Finite.biUnion' {ι} {s : Set ι} (hs : s.Finite) {t : ∀ i ∈ s, Set α}
     (ht : ∀ i ∈ s, (t i ‹_›).Finite) : (⋃ i ∈ s, t i ‹_›).Finite :=
   by
   cases hs
   rw [bUnion_eq_Union]
   apply finite_Union fun i : s => ht i.1 i.2
-#align set.finite.bUnion' Set.Finite.bunionᵢ'
+#align set.finite.bUnion' Set.Finite.biUnion'
 
-#print Set.Finite.interₛ /-
-theorem Finite.interₛ {α : Type _} {s : Set (Set α)} {t : Set α} (ht : t ∈ s) (hf : t.Finite) :
+#print Set.Finite.sInter /-
+theorem Finite.sInter {α : Type _} {s : Set (Set α)} {t : Set α} (ht : t ∈ s) (hf : t.Finite) :
     (⋂₀ s).Finite :=
-  hf.Subset (interₛ_subset_of_mem ht)
-#align set.finite.sInter Set.Finite.interₛ
+  hf.Subset (sInter_subset_of_mem ht)
+#align set.finite.sInter Set.Finite.sInter
 -/
 
 #print Set.Finite.bind /-
 theorem Finite.bind {α β} {s : Set α} {f : α → Set β} (h : s.Finite) (hf : ∀ a ∈ s, (f a).Finite) :
     (s >>= f).Finite :=
-  h.bunionᵢ hf
+  h.biUnion hf
 #align set.finite.bind Set.Finite.bind
 -/
 
@@ -1622,13 +1622,13 @@ theorem forall_finite_image_eval_iff {δ : Type _} [Finite δ] {κ : δ → Type
   ⟨fun h => (Finite.pi h).Subset <| subset_pi_eval_image _ _, fun h d => h.image _⟩
 #align set.forall_finite_image_eval_iff Set.forall_finite_image_eval_iff
 
-/- warning: set.finite_subset_Union -> Set.finite_subset_unionᵢ is a dubious translation:
+/- warning: set.finite_subset_Union -> Set.finite_subset_iUnion is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {s : Set.{u1} α}, (Set.Finite.{u1} α s) -> (forall {ι : Type.{u2}} {t : ι -> (Set.{u1} α)}, (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) s (Set.unionᵢ.{u1, succ u2} α ι (fun (i : ι) => t i))) -> (Exists.{succ u2} (Set.{u2} ι) (fun (I : Set.{u2} ι) => And (Set.Finite.{u2} ι I) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) s (Set.unionᵢ.{u1, succ u2} α ι (fun (i : ι) => Set.unionᵢ.{u1, 0} α (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i I) (fun (H : Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i I) => t i)))))))
+  forall {α : Type.{u1}} {s : Set.{u1} α}, (Set.Finite.{u1} α s) -> (forall {ι : Type.{u2}} {t : ι -> (Set.{u1} α)}, (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) s (Set.iUnion.{u1, succ u2} α ι (fun (i : ι) => t i))) -> (Exists.{succ u2} (Set.{u2} ι) (fun (I : Set.{u2} ι) => And (Set.Finite.{u2} ι I) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) s (Set.iUnion.{u1, succ u2} α ι (fun (i : ι) => Set.iUnion.{u1, 0} α (Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i I) (fun (H : Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i I) => t i)))))))
 but is expected to have type
-  forall {α : Type.{u2}} {s : Set.{u2} α}, (Set.Finite.{u2} α s) -> (forall {ι : Type.{u1}} {t : ι -> (Set.{u2} α)}, (HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) s (Set.unionᵢ.{u2, succ u1} α ι (fun (i : ι) => t i))) -> (Exists.{succ u1} (Set.{u1} ι) (fun (I : Set.{u1} ι) => And (Set.Finite.{u1} ι I) (HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) s (Set.unionᵢ.{u2, succ u1} α ι (fun (i : ι) => Set.unionᵢ.{u2, 0} α (Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i I) (fun (H : Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i I) => t i)))))))
-Case conversion may be inaccurate. Consider using '#align set.finite_subset_Union Set.finite_subset_unionᵢₓ'. -/
-theorem finite_subset_unionᵢ {s : Set α} (hs : s.Finite) {ι} {t : ι → Set α} (h : s ⊆ ⋃ i, t i) :
+  forall {α : Type.{u2}} {s : Set.{u2} α}, (Set.Finite.{u2} α s) -> (forall {ι : Type.{u1}} {t : ι -> (Set.{u2} α)}, (HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) s (Set.iUnion.{u2, succ u1} α ι (fun (i : ι) => t i))) -> (Exists.{succ u1} (Set.{u1} ι) (fun (I : Set.{u1} ι) => And (Set.Finite.{u1} ι I) (HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) s (Set.iUnion.{u2, succ u1} α ι (fun (i : ι) => Set.iUnion.{u2, 0} α (Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i I) (fun (H : Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i I) => t i)))))))
+Case conversion may be inaccurate. Consider using '#align set.finite_subset_Union Set.finite_subset_iUnionₓ'. -/
+theorem finite_subset_iUnion {s : Set α} (hs : s.Finite) {ι} {t : ι → Set α} (h : s ⊆ ⋃ i, t i) :
     ∃ I : Set ι, I.Finite ∧ s ⊆ ⋃ i ∈ I, t i :=
   by
   cases hs
@@ -1636,20 +1636,20 @@ theorem finite_subset_unionᵢ {s : Set α} (hs : s.Finite) {ι} {t : ι → Set
   refine' ⟨range f, finite_range f, fun x hx => _⟩
   rw [bUnion_range, mem_Union]
   exact ⟨⟨x, hx⟩, hf _⟩
-#align set.finite_subset_Union Set.finite_subset_unionᵢ
+#align set.finite_subset_Union Set.finite_subset_iUnion
 
-/- warning: set.eq_finite_Union_of_finite_subset_Union -> Set.eq_finite_unionᵢ_of_finite_subset_unionᵢ is a dubious translation:
+/- warning: set.eq_finite_Union_of_finite_subset_Union -> Set.eq_finite_iUnion_of_finite_subset_iUnion is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Type.{u2}} {s : ι -> (Set.{u1} α)} {t : Set.{u1} α}, (Set.Finite.{u1} α t) -> (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) t (Set.unionᵢ.{u1, succ u2} α ι (fun (i : ι) => s i))) -> (Exists.{succ u2} (Set.{u2} ι) (fun (I : Set.{u2} ι) => And (Set.Finite.{u2} ι I) (Exists.{max (succ u2) (succ u1)} ((coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (setOf.{u2} ι (fun (i : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i I))) -> (Set.{u1} α)) (fun (σ : (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (setOf.{u2} ι (fun (i : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i I))) -> (Set.{u1} α)) => And (forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (setOf.{u2} ι (fun (i : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i I))), Set.Finite.{u1} α (σ i)) (And (forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (setOf.{u2} ι (fun (i : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i I))), HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (σ i) (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} ι) (setOf.{u2} ι (fun (i : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i I))) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (setOf.{u2} ι (fun (i : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i I))) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (setOf.{u2} ι (fun (i : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i I))) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (setOf.{u2} ι (fun (i : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i I))) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x (setOf.{u2} ι (fun (i : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i I))))))) i))) (Eq.{succ u1} (Set.{u1} α) t (Set.unionᵢ.{u1, succ u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (setOf.{u2} ι (fun (i : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i I))) (fun (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (setOf.{u2} ι (fun (i : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i I))) => σ i))))))))
+  forall {α : Type.{u1}} {ι : Type.{u2}} {s : ι -> (Set.{u1} α)} {t : Set.{u1} α}, (Set.Finite.{u1} α t) -> (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) t (Set.iUnion.{u1, succ u2} α ι (fun (i : ι) => s i))) -> (Exists.{succ u2} (Set.{u2} ι) (fun (I : Set.{u2} ι) => And (Set.Finite.{u2} ι I) (Exists.{max (succ u2) (succ u1)} ((coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (setOf.{u2} ι (fun (i : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i I))) -> (Set.{u1} α)) (fun (σ : (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (setOf.{u2} ι (fun (i : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i I))) -> (Set.{u1} α)) => And (forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (setOf.{u2} ι (fun (i : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i I))), Set.Finite.{u1} α (σ i)) (And (forall (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (setOf.{u2} ι (fun (i : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i I))), HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (σ i) (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} ι) (setOf.{u2} ι (fun (i : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i I))) ι (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (setOf.{u2} ι (fun (i : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i I))) ι (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (setOf.{u2} ι (fun (i : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i I))) ι (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (setOf.{u2} ι (fun (i : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i I))) ι (coeSubtype.{succ u2} ι (fun (x : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) x (setOf.{u2} ι (fun (i : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i I))))))) i))) (Eq.{succ u1} (Set.{u1} α) t (Set.iUnion.{u1, succ u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (setOf.{u2} ι (fun (i : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i I))) (fun (i : coeSort.{succ u2, succ (succ u2)} (Set.{u2} ι) Type.{u2} (Set.hasCoeToSort.{u2} ι) (setOf.{u2} ι (fun (i : ι) => Membership.Mem.{u2, u2} ι (Set.{u2} ι) (Set.hasMem.{u2} ι) i I))) => σ i))))))))
 but is expected to have type
-  forall {α : Type.{u2}} {ι : Type.{u1}} {s : ι -> (Set.{u2} α)} {t : Set.{u2} α}, (Set.Finite.{u2} α t) -> (HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) t (Set.unionᵢ.{u2, succ u1} α ι (fun (i : ι) => s i))) -> (Exists.{succ u1} (Set.{u1} ι) (fun (I : Set.{u1} ι) => And (Set.Finite.{u1} ι I) (Exists.{max (succ u2) (succ u1)} ((Set.Elem.{u1} ι (setOf.{u1} ι (fun (i : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i I))) -> (Set.{u2} α)) (fun (σ : (Set.Elem.{u1} ι (setOf.{u1} ι (fun (i : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i I))) -> (Set.{u2} α)) => And (forall (i : Set.Elem.{u1} ι (setOf.{u1} ι (fun (i : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i I))), Set.Finite.{u2} α (σ i)) (And (forall (i : Set.Elem.{u1} ι (setOf.{u1} ι (fun (i : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i I))), HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) (σ i) (s (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (setOf.{u1} ι (fun (i : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i I))) i))) (Eq.{succ u2} (Set.{u2} α) t (Set.unionᵢ.{u2, succ u1} α (Set.Elem.{u1} ι (setOf.{u1} ι (fun (i : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i I))) (fun (i : Set.Elem.{u1} ι (setOf.{u1} ι (fun (i : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i I))) => σ i))))))))
-Case conversion may be inaccurate. Consider using '#align set.eq_finite_Union_of_finite_subset_Union Set.eq_finite_unionᵢ_of_finite_subset_unionᵢₓ'. -/
-theorem eq_finite_unionᵢ_of_finite_subset_unionᵢ {ι} {s : ι → Set α} {t : Set α} (tfin : t.Finite)
+  forall {α : Type.{u2}} {ι : Type.{u1}} {s : ι -> (Set.{u2} α)} {t : Set.{u2} α}, (Set.Finite.{u2} α t) -> (HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) t (Set.iUnion.{u2, succ u1} α ι (fun (i : ι) => s i))) -> (Exists.{succ u1} (Set.{u1} ι) (fun (I : Set.{u1} ι) => And (Set.Finite.{u1} ι I) (Exists.{max (succ u2) (succ u1)} ((Set.Elem.{u1} ι (setOf.{u1} ι (fun (i : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i I))) -> (Set.{u2} α)) (fun (σ : (Set.Elem.{u1} ι (setOf.{u1} ι (fun (i : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i I))) -> (Set.{u2} α)) => And (forall (i : Set.Elem.{u1} ι (setOf.{u1} ι (fun (i : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i I))), Set.Finite.{u2} α (σ i)) (And (forall (i : Set.Elem.{u1} ι (setOf.{u1} ι (fun (i : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i I))), HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) (σ i) (s (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (setOf.{u1} ι (fun (i : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i I))) i))) (Eq.{succ u2} (Set.{u2} α) t (Set.iUnion.{u2, succ u1} α (Set.Elem.{u1} ι (setOf.{u1} ι (fun (i : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i I))) (fun (i : Set.Elem.{u1} ι (setOf.{u1} ι (fun (i : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i I))) => σ i))))))))
+Case conversion may be inaccurate. Consider using '#align set.eq_finite_Union_of_finite_subset_Union Set.eq_finite_iUnion_of_finite_subset_iUnionₓ'. -/
+theorem eq_finite_iUnion_of_finite_subset_iUnion {ι} {s : ι → Set α} {t : Set α} (tfin : t.Finite)
     (h : t ⊆ ⋃ i, s i) :
     ∃ I : Set ι,
       I.Finite ∧
         ∃ σ : { i | i ∈ I } → Set α, (∀ i, (σ i).Finite) ∧ (∀ i, σ i ⊆ s i) ∧ t = ⋃ i, σ i :=
-  let ⟨I, Ifin, hI⟩ := finite_subset_unionᵢ tfin h
+  let ⟨I, Ifin, hI⟩ := finite_subset_iUnion tfin h
   ⟨I, Ifin, fun x => s x ∩ t, fun i => tfin.Subset (inter_subset_right _ _), fun i =>
     inter_subset_left _ _, by
     ext x
@@ -1660,7 +1660,7 @@ theorem eq_finite_unionᵢ_of_finite_subset_unionᵢ {ι} {s : ι → Set α} {t
       use i, hi, H, x_in
     · rintro ⟨i, hi, H⟩
       exact H⟩
-#align set.eq_finite_Union_of_finite_subset_Union Set.eq_finite_unionᵢ_of_finite_subset_unionᵢ
+#align set.eq_finite_Union_of_finite_subset_Union Set.eq_finite_iUnion_of_finite_subset_iUnion
 
 #print Set.Finite.induction_on /-
 @[elab_as_elim]
@@ -2168,188 +2168,188 @@ theorem exists_upper_bound_image [hα : Nonempty α] [LinearOrder β] (s : Set 
 #align set.exists_upper_bound_image Set.exists_upper_bound_image
 -/
 
-/- warning: set.finite.supr_binfi_of_monotone -> Set.Finite.supᵢ_binfᵢ_of_monotone is a dubious translation:
+/- warning: set.finite.supr_binfi_of_monotone -> Set.Finite.iSup_biInf_of_monotone is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1))] [_inst_4 : Order.Frame.{u3} α] {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) -> (Monotone.{u2, u3} ι' α _inst_1 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4)))) (f i))) -> (Eq.{succ u3} α (supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => infᵢ.{u3, 0} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => f i j)))) (infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => infᵢ.{u3, 0} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => f i j))))))
+  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1))] [_inst_4 : Order.Frame.{u3} α] {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) -> (Monotone.{u2, u3} ι' α _inst_1 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4)))) (f i))) -> (Eq.{succ u3} α (iSup.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => iInf.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => iInf.{u3, 0} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => f i j)))) (iInf.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => iInf.{u3, 0} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => iSup.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => f i j))))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.13041 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13043 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.13041 x._@.Mathlib.Data.Set.Finite._hyg.13043)] [_inst_4 : Order.Frame.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Monotone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => infᵢ.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => infᵢ.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
-Case conversion may be inaccurate. Consider using '#align set.finite.supr_binfi_of_monotone Set.Finite.supᵢ_binfᵢ_of_monotoneₓ'. -/
-theorem Finite.supᵢ_binfᵢ_of_monotone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.13041 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13043 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.13041 x._@.Mathlib.Data.Set.Finite._hyg.13043)] [_inst_4 : Order.Frame.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Monotone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (iSup.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => iInf.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => iInf.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (iInf.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => iInf.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => iSup.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
+Case conversion may be inaccurate. Consider using '#align set.finite.supr_binfi_of_monotone Set.Finite.iSup_biInf_of_monotoneₓ'. -/
+theorem Finite.iSup_biInf_of_monotone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Frame α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
     (hf : ∀ i ∈ s, Monotone (f i)) : (⨆ j, ⨅ i ∈ s, f i j) = ⨅ i ∈ s, ⨆ j, f i j :=
   by
   revert hf
   refine' hs.induction_on _ _
   · intro hf
-    simp [supᵢ_const]
+    simp [iSup_const]
   · intro a s has hs ihs hf
     rw [ball_insert_iff] at hf
-    simp only [infᵢ_insert, ← ihs hf.2]
-    exact supᵢ_inf_of_monotone hf.1 fun j₁ j₂ hj => infᵢ₂_mono fun i hi => hf.2 i hi hj
-#align set.finite.supr_binfi_of_monotone Set.Finite.supᵢ_binfᵢ_of_monotone
+    simp only [iInf_insert, ← ihs hf.2]
+    exact iSup_inf_of_monotone hf.1 fun j₁ j₂ hj => iInf₂_mono fun i hi => hf.2 i hi hj
+#align set.finite.supr_binfi_of_monotone Set.Finite.iSup_biInf_of_monotone
 
-/- warning: set.finite.supr_binfi_of_antitone -> Set.Finite.supᵢ_binfᵢ_of_antitone is a dubious translation:
+/- warning: set.finite.supr_binfi_of_antitone -> Set.Finite.iSup_biInf_of_antitone is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1)))] [_inst_4 : Order.Frame.{u3} α] {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) -> (Antitone.{u2, u3} ι' α _inst_1 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4)))) (f i))) -> (Eq.{succ u3} α (supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => infᵢ.{u3, 0} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => f i j)))) (infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => infᵢ.{u3, 0} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => f i j))))))
+  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1)))] [_inst_4 : Order.Frame.{u3} α] {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) -> (Antitone.{u2, u3} ι' α _inst_1 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4)))) (f i))) -> (Eq.{succ u3} α (iSup.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => iInf.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => iInf.{u3, 0} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => f i j)))) (iInf.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => iInf.{u3, 0} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => iSup.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => f i j))))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.13263 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13265 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.13263 x._@.Mathlib.Data.Set.Finite._hyg.13265))] [_inst_4 : Order.Frame.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Antitone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => infᵢ.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => infᵢ.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
-Case conversion may be inaccurate. Consider using '#align set.finite.supr_binfi_of_antitone Set.Finite.supᵢ_binfᵢ_of_antitoneₓ'. -/
-theorem Finite.supᵢ_binfᵢ_of_antitone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.13263 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13265 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.13263 x._@.Mathlib.Data.Set.Finite._hyg.13265))] [_inst_4 : Order.Frame.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Antitone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (iSup.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => iInf.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => iInf.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (iInf.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => iInf.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => iSup.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
+Case conversion may be inaccurate. Consider using '#align set.finite.supr_binfi_of_antitone Set.Finite.iSup_biInf_of_antitoneₓ'. -/
+theorem Finite.iSup_biInf_of_antitone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Frame α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
     (hf : ∀ i ∈ s, Antitone (f i)) : (⨆ j, ⨅ i ∈ s, f i j) = ⨅ i ∈ s, ⨆ j, f i j :=
-  @Finite.supᵢ_binfᵢ_of_monotone ι ι'ᵒᵈ α _ _ _ _ _ hs _ fun i hi => (hf i hi).dual_left
-#align set.finite.supr_binfi_of_antitone Set.Finite.supᵢ_binfᵢ_of_antitone
+  @Finite.iSup_biInf_of_monotone ι ι'ᵒᵈ α _ _ _ _ _ hs _ fun i hi => (hf i hi).dual_left
+#align set.finite.supr_binfi_of_antitone Set.Finite.iSup_biInf_of_antitone
 
-/- warning: set.finite.infi_bsupr_of_monotone -> Set.Finite.infᵢ_bsupᵢ_of_monotone is a dubious translation:
+/- warning: set.finite.infi_bsupr_of_monotone -> Set.Finite.iInf_biSup_of_monotone is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1)))] [_inst_4 : Order.Coframe.{u3} α] {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) -> (Monotone.{u2, u3} ι' α _inst_1 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4)))) (f i))) -> (Eq.{succ u3} α (infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => supᵢ.{u3, 0} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => f i j)))) (supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => supᵢ.{u3, 0} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => f i j))))))
+  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1)))] [_inst_4 : Order.Coframe.{u3} α] {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) -> (Monotone.{u2, u3} ι' α _inst_1 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4)))) (f i))) -> (Eq.{succ u3} α (iInf.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => iSup.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => iSup.{u3, 0} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => f i j)))) (iSup.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => iSup.{u3, 0} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => iInf.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => f i j))))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.13443 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13445 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.13443 x._@.Mathlib.Data.Set.Finite._hyg.13445))] [_inst_4 : Order.Coframe.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Monotone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => supᵢ.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => supᵢ.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
-Case conversion may be inaccurate. Consider using '#align set.finite.infi_bsupr_of_monotone Set.Finite.infᵢ_bsupᵢ_of_monotoneₓ'. -/
-theorem Finite.infᵢ_bsupᵢ_of_monotone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.13443 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13445 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.13443 x._@.Mathlib.Data.Set.Finite._hyg.13445))] [_inst_4 : Order.Coframe.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Monotone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (iInf.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => iSup.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => iSup.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (iSup.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => iSup.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => iInf.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
+Case conversion may be inaccurate. Consider using '#align set.finite.infi_bsupr_of_monotone Set.Finite.iInf_biSup_of_monotoneₓ'. -/
+theorem Finite.iInf_biSup_of_monotone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Coframe α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
     (hf : ∀ i ∈ s, Monotone (f i)) : (⨅ j, ⨆ i ∈ s, f i j) = ⨆ i ∈ s, ⨅ j, f i j :=
-  hs.supᵢ_binfᵢ_of_antitone fun i hi => (hf i hi).dual_right
-#align set.finite.infi_bsupr_of_monotone Set.Finite.infᵢ_bsupᵢ_of_monotone
+  hs.iSup_biInf_of_antitone fun i hi => (hf i hi).dual_right
+#align set.finite.infi_bsupr_of_monotone Set.Finite.iInf_biSup_of_monotone
 
-/- warning: set.finite.infi_bsupr_of_antitone -> Set.Finite.infᵢ_bsupᵢ_of_antitone is a dubious translation:
+/- warning: set.finite.infi_bsupr_of_antitone -> Set.Finite.iInf_biSup_of_antitone is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1))] [_inst_4 : Order.Coframe.{u3} α] {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) -> (Antitone.{u2, u3} ι' α _inst_1 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4)))) (f i))) -> (Eq.{succ u3} α (infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => supᵢ.{u3, 0} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => f i j)))) (supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => supᵢ.{u3, 0} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => f i j))))))
+  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1))] [_inst_4 : Order.Coframe.{u3} α] {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) -> (Antitone.{u2, u3} ι' α _inst_1 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4)))) (f i))) -> (Eq.{succ u3} α (iInf.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => iSup.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => iSup.{u3, 0} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => f i j)))) (iSup.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => iSup.{u3, 0} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => iInf.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => f i j))))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.13615 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13617 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.13615 x._@.Mathlib.Data.Set.Finite._hyg.13617)] [_inst_4 : Order.Coframe.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Antitone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => supᵢ.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => supᵢ.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
-Case conversion may be inaccurate. Consider using '#align set.finite.infi_bsupr_of_antitone Set.Finite.infᵢ_bsupᵢ_of_antitoneₓ'. -/
-theorem Finite.infᵢ_bsupᵢ_of_antitone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.13615 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13617 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.13615 x._@.Mathlib.Data.Set.Finite._hyg.13617)] [_inst_4 : Order.Coframe.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Antitone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (iInf.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => iSup.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => iSup.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (iSup.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => iSup.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => iInf.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
+Case conversion may be inaccurate. Consider using '#align set.finite.infi_bsupr_of_antitone Set.Finite.iInf_biSup_of_antitoneₓ'. -/
+theorem Finite.iInf_biSup_of_antitone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Coframe α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
     (hf : ∀ i ∈ s, Antitone (f i)) : (⨅ j, ⨆ i ∈ s, f i j) = ⨆ i ∈ s, ⨅ j, f i j :=
-  hs.supᵢ_binfᵢ_of_monotone fun i hi => (hf i hi).dual_right
-#align set.finite.infi_bsupr_of_antitone Set.Finite.infᵢ_bsupᵢ_of_antitone
+  hs.iSup_biInf_of_monotone fun i hi => (hf i hi).dual_right
+#align set.finite.infi_bsupr_of_antitone Set.Finite.iInf_biSup_of_antitone
 
-/- warning: supr_infi_of_monotone -> Set.supᵢ_infᵢ_of_monotone is a dubious translation:
+/- warning: supr_infi_of_monotone -> Set.iSup_iInf_of_monotone is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2))] [_inst_5 : Order.Frame.{u3} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u3} ι' α _inst_2 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5)))) (f i)) -> (Eq.{succ u3} α (supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => f i j))) (infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => f i j))))
+  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2))] [_inst_5 : Order.Frame.{u3} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u3} ι' α _inst_2 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5)))) (f i)) -> (Eq.{succ u3} α (iSup.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => iInf.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => f i j))) (iInf.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => iSup.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => f i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.13787 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13789 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13787 x._@.Mathlib.Data.Set.Finite._hyg.13789)] [_inst_5 : Order.Frame.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
-Case conversion may be inaccurate. Consider using '#align supr_infi_of_monotone Set.supᵢ_infᵢ_of_monotoneₓ'. -/
-theorem Set.supᵢ_infᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.13787 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13789 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13787 x._@.Mathlib.Data.Set.Finite._hyg.13789)] [_inst_5 : Order.Frame.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (iSup.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => iInf.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (iInf.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => iSup.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
+Case conversion may be inaccurate. Consider using '#align supr_infi_of_monotone Set.iSup_iInf_of_monotoneₓ'. -/
+theorem Set.iSup_iInf_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Frame α] {f : ι → ι' → α} (hf : ∀ i, Monotone (f i)) :
     (⨆ j, ⨅ i, f i j) = ⨅ i, ⨆ j, f i j := by
-  simpa only [infᵢ_univ] using finite_univ.supr_binfi_of_monotone fun i hi => hf i
-#align supr_infi_of_monotone Set.supᵢ_infᵢ_of_monotone
+  simpa only [iInf_univ] using finite_univ.supr_binfi_of_monotone fun i hi => hf i
+#align supr_infi_of_monotone Set.iSup_iInf_of_monotone
 
-/- warning: supr_infi_of_antitone -> Set.supᵢ_infᵢ_of_antitone is a dubious translation:
+/- warning: supr_infi_of_antitone -> Set.iSup_iInf_of_antitone is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2)))] [_inst_5 : Order.Frame.{u3} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u3} ι' α _inst_2 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5)))) (f i)) -> (Eq.{succ u3} α (supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => f i j))) (infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => f i j))))
+  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2)))] [_inst_5 : Order.Frame.{u3} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u3} ι' α _inst_2 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5)))) (f i)) -> (Eq.{succ u3} α (iSup.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => iInf.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => f i j))) (iInf.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => iSup.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => f i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.13924 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13926 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13924 x._@.Mathlib.Data.Set.Finite._hyg.13926))] [_inst_5 : Order.Frame.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
-Case conversion may be inaccurate. Consider using '#align supr_infi_of_antitone Set.supᵢ_infᵢ_of_antitoneₓ'. -/
-theorem Set.supᵢ_infᵢ_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.13924 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13926 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13924 x._@.Mathlib.Data.Set.Finite._hyg.13926))] [_inst_5 : Order.Frame.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (iSup.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => iInf.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (iInf.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => iSup.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
+Case conversion may be inaccurate. Consider using '#align supr_infi_of_antitone Set.iSup_iInf_of_antitoneₓ'. -/
+theorem Set.iSup_iInf_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Frame α] {f : ι → ι' → α} (hf : ∀ i, Antitone (f i)) :
     (⨆ j, ⨅ i, f i j) = ⨅ i, ⨆ j, f i j :=
-  @Set.supᵢ_infᵢ_of_monotone ι ι'ᵒᵈ α _ _ _ _ _ _ fun i => (hf i).dual_left
-#align supr_infi_of_antitone Set.supᵢ_infᵢ_of_antitone
+  @Set.iSup_iInf_of_monotone ι ι'ᵒᵈ α _ _ _ _ _ _ fun i => (hf i).dual_left
+#align supr_infi_of_antitone Set.iSup_iInf_of_antitone
 
-/- warning: infi_supr_of_monotone -> Set.infᵢ_supᵢ_of_monotone is a dubious translation:
+/- warning: infi_supr_of_monotone -> Set.iInf_iSup_of_monotone is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2)))] [_inst_5 : Order.Coframe.{u3} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u3} ι' α _inst_2 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5)))) (f i)) -> (Eq.{succ u3} α (infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => f i j))) (supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => f i j))))
+  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2)))] [_inst_5 : Order.Coframe.{u3} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u3} ι' α _inst_2 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5)))) (f i)) -> (Eq.{succ u3} α (iInf.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => iSup.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => f i j))) (iSup.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => iInf.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => f i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.14062 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14064 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14062 x._@.Mathlib.Data.Set.Finite._hyg.14064))] [_inst_5 : Order.Coframe.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
-Case conversion may be inaccurate. Consider using '#align infi_supr_of_monotone Set.infᵢ_supᵢ_of_monotoneₓ'. -/
-theorem Set.infᵢ_supᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.14062 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14064 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14062 x._@.Mathlib.Data.Set.Finite._hyg.14064))] [_inst_5 : Order.Coframe.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (iInf.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => iSup.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (iSup.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => iInf.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
+Case conversion may be inaccurate. Consider using '#align infi_supr_of_monotone Set.iInf_iSup_of_monotoneₓ'. -/
+theorem Set.iInf_iSup_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Coframe α] {f : ι → ι' → α} (hf : ∀ i, Monotone (f i)) :
     (⨅ j, ⨆ i, f i j) = ⨆ i, ⨅ j, f i j :=
-  Set.supᵢ_infᵢ_of_antitone fun i => (hf i).dual_right
-#align infi_supr_of_monotone Set.infᵢ_supᵢ_of_monotone
+  Set.iSup_iInf_of_antitone fun i => (hf i).dual_right
+#align infi_supr_of_monotone Set.iInf_iSup_of_monotone
 
-/- warning: infi_supr_of_antitone -> Set.infᵢ_supᵢ_of_antitone is a dubious translation:
+/- warning: infi_supr_of_antitone -> Set.iInf_iSup_of_antitone is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2))] [_inst_5 : Order.Coframe.{u3} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u3} ι' α _inst_2 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5)))) (f i)) -> (Eq.{succ u3} α (infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => f i j))) (supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => f i j))))
+  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2))] [_inst_5 : Order.Coframe.{u3} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u3} ι' α _inst_2 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5)))) (f i)) -> (Eq.{succ u3} α (iInf.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => iSup.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => f i j))) (iSup.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => iInf.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => f i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.14194 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14196 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14194 x._@.Mathlib.Data.Set.Finite._hyg.14196)] [_inst_5 : Order.Coframe.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
-Case conversion may be inaccurate. Consider using '#align infi_supr_of_antitone Set.infᵢ_supᵢ_of_antitoneₓ'. -/
-theorem Set.infᵢ_supᵢ_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.14194 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14196 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14194 x._@.Mathlib.Data.Set.Finite._hyg.14196)] [_inst_5 : Order.Coframe.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (iInf.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => iSup.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (iSup.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => iInf.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
+Case conversion may be inaccurate. Consider using '#align infi_supr_of_antitone Set.iInf_iSup_of_antitoneₓ'. -/
+theorem Set.iInf_iSup_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Coframe α] {f : ι → ι' → α} (hf : ∀ i, Antitone (f i)) :
     (⨅ j, ⨆ i, f i j) = ⨆ i, ⨅ j, f i j :=
-  Set.supᵢ_infᵢ_of_monotone fun i => (hf i).dual_right
-#align infi_supr_of_antitone Set.infᵢ_supᵢ_of_antitone
+  Set.iSup_iInf_of_monotone fun i => (hf i).dual_right
+#align infi_supr_of_antitone Set.iInf_iSup_of_antitone
 
-/- warning: set.Union_Inter_of_monotone -> Set.unionᵢ_interᵢ_of_monotone is a dubious translation:
+/- warning: set.Union_Inter_of_monotone -> Set.iUnion_iInter_of_monotone is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u3} α)}, (forall (i : ι), Monotone.{u2, u3} ι' (Set.{u3} α) _inst_2 (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.completeBooleanAlgebra.{u3} α))))))) (s i)) -> (Eq.{succ u3} (Set.{u3} α) (Set.unionᵢ.{u3, succ u2} α ι' (fun (j : ι') => Set.interᵢ.{u3, succ u1} α ι (fun (i : ι) => s i j))) (Set.interᵢ.{u3, succ u1} α ι (fun (i : ι) => Set.unionᵢ.{u3, succ u2} α ι' (fun (j : ι') => s i j))))
+  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u3} α)}, (forall (i : ι), Monotone.{u2, u3} ι' (Set.{u3} α) _inst_2 (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.completeBooleanAlgebra.{u3} α))))))) (s i)) -> (Eq.{succ u3} (Set.{u3} α) (Set.iUnion.{u3, succ u2} α ι' (fun (j : ι') => Set.iInter.{u3, succ u1} α ι (fun (i : ι) => s i j))) (Set.iInter.{u3, succ u1} α ι (fun (i : ι) => Set.iUnion.{u3, succ u2} α ι' (fun (j : ι') => s i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.14323 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14325 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14323 x._@.Mathlib.Data.Set.Finite._hyg.14325)] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Monotone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.unionᵢ.{u1, succ u2} α ι' (fun (j : ι') => Set.interᵢ.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.interᵢ.{u1, succ u3} α ι (fun (i : ι) => Set.unionᵢ.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
-Case conversion may be inaccurate. Consider using '#align set.Union_Inter_of_monotone Set.unionᵢ_interᵢ_of_monotoneₓ'. -/
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.14323 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14325 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14323 x._@.Mathlib.Data.Set.Finite._hyg.14325)] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Monotone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.iUnion.{u1, succ u2} α ι' (fun (j : ι') => Set.iInter.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.iInter.{u1, succ u3} α ι (fun (i : ι) => Set.iUnion.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
+Case conversion may be inaccurate. Consider using '#align set.Union_Inter_of_monotone Set.iUnion_iInter_of_monotoneₓ'. -/
 /-- An increasing union distributes over finite intersection. -/
-theorem unionᵢ_interᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [IsDirected ι' (· ≤ ·)]
+theorem iUnion_iInter_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [IsDirected ι' (· ≤ ·)]
     [Nonempty ι'] {s : ι → ι' → Set α} (hs : ∀ i, Monotone (s i)) :
     (⋃ j : ι', ⋂ i : ι, s i j) = ⋂ i : ι, ⋃ j : ι', s i j :=
-  Set.supᵢ_infᵢ_of_monotone hs
-#align set.Union_Inter_of_monotone Set.unionᵢ_interᵢ_of_monotone
+  Set.iSup_iInf_of_monotone hs
+#align set.Union_Inter_of_monotone Set.iUnion_iInter_of_monotone
 
-/- warning: set.Union_Inter_of_antitone -> Set.unionᵢ_interᵢ_of_antitone is a dubious translation:
+/- warning: set.Union_Inter_of_antitone -> Set.iUnion_iInter_of_antitone is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2)))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u3} α)}, (forall (i : ι), Antitone.{u2, u3} ι' (Set.{u3} α) _inst_2 (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.completeBooleanAlgebra.{u3} α))))))) (s i)) -> (Eq.{succ u3} (Set.{u3} α) (Set.unionᵢ.{u3, succ u2} α ι' (fun (j : ι') => Set.interᵢ.{u3, succ u1} α ι (fun (i : ι) => s i j))) (Set.interᵢ.{u3, succ u1} α ι (fun (i : ι) => Set.unionᵢ.{u3, succ u2} α ι' (fun (j : ι') => s i j))))
+  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2)))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u3} α)}, (forall (i : ι), Antitone.{u2, u3} ι' (Set.{u3} α) _inst_2 (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.completeBooleanAlgebra.{u3} α))))))) (s i)) -> (Eq.{succ u3} (Set.{u3} α) (Set.iUnion.{u3, succ u2} α ι' (fun (j : ι') => Set.iInter.{u3, succ u1} α ι (fun (i : ι) => s i j))) (Set.iInter.{u3, succ u1} α ι (fun (i : ι) => Set.iUnion.{u3, succ u2} α ι' (fun (j : ι') => s i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.14445 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14447 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14445 x._@.Mathlib.Data.Set.Finite._hyg.14447))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Antitone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.unionᵢ.{u1, succ u2} α ι' (fun (j : ι') => Set.interᵢ.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.interᵢ.{u1, succ u3} α ι (fun (i : ι) => Set.unionᵢ.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
-Case conversion may be inaccurate. Consider using '#align set.Union_Inter_of_antitone Set.unionᵢ_interᵢ_of_antitoneₓ'. -/
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.14445 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14447 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14445 x._@.Mathlib.Data.Set.Finite._hyg.14447))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Antitone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.iUnion.{u1, succ u2} α ι' (fun (j : ι') => Set.iInter.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.iInter.{u1, succ u3} α ι (fun (i : ι) => Set.iUnion.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
+Case conversion may be inaccurate. Consider using '#align set.Union_Inter_of_antitone Set.iUnion_iInter_of_antitoneₓ'. -/
 /-- A decreasing union distributes over finite intersection. -/
-theorem unionᵢ_interᵢ_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι']
+theorem iUnion_iInter_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι']
     [IsDirected ι' (swap (· ≤ ·))] [Nonempty ι'] {s : ι → ι' → Set α} (hs : ∀ i, Antitone (s i)) :
     (⋃ j : ι', ⋂ i : ι, s i j) = ⋂ i : ι, ⋃ j : ι', s i j :=
-  Set.supᵢ_infᵢ_of_antitone hs
-#align set.Union_Inter_of_antitone Set.unionᵢ_interᵢ_of_antitone
+  Set.iSup_iInf_of_antitone hs
+#align set.Union_Inter_of_antitone Set.iUnion_iInter_of_antitone
 
-/- warning: set.Inter_Union_of_monotone -> Set.interᵢ_unionᵢ_of_monotone is a dubious translation:
+/- warning: set.Inter_Union_of_monotone -> Set.iInter_iUnion_of_monotone is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2)))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u3} α)}, (forall (i : ι), Monotone.{u2, u3} ι' (Set.{u3} α) _inst_2 (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.completeBooleanAlgebra.{u3} α))))))) (s i)) -> (Eq.{succ u3} (Set.{u3} α) (Set.interᵢ.{u3, succ u2} α ι' (fun (j : ι') => Set.unionᵢ.{u3, succ u1} α ι (fun (i : ι) => s i j))) (Set.unionᵢ.{u3, succ u1} α ι (fun (i : ι) => Set.interᵢ.{u3, succ u2} α ι' (fun (j : ι') => s i j))))
+  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2)))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u3} α)}, (forall (i : ι), Monotone.{u2, u3} ι' (Set.{u3} α) _inst_2 (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.completeBooleanAlgebra.{u3} α))))))) (s i)) -> (Eq.{succ u3} (Set.{u3} α) (Set.iInter.{u3, succ u2} α ι' (fun (j : ι') => Set.iUnion.{u3, succ u1} α ι (fun (i : ι) => s i j))) (Set.iUnion.{u3, succ u1} α ι (fun (i : ι) => Set.iInter.{u3, succ u2} α ι' (fun (j : ι') => s i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.14567 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14569 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14567 x._@.Mathlib.Data.Set.Finite._hyg.14569))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Monotone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.interᵢ.{u1, succ u2} α ι' (fun (j : ι') => Set.unionᵢ.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.unionᵢ.{u1, succ u3} α ι (fun (i : ι) => Set.interᵢ.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
-Case conversion may be inaccurate. Consider using '#align set.Inter_Union_of_monotone Set.interᵢ_unionᵢ_of_monotoneₓ'. -/
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.14567 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14569 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14567 x._@.Mathlib.Data.Set.Finite._hyg.14569))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Monotone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.iInter.{u1, succ u2} α ι' (fun (j : ι') => Set.iUnion.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.iUnion.{u1, succ u3} α ι (fun (i : ι) => Set.iInter.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
+Case conversion may be inaccurate. Consider using '#align set.Inter_Union_of_monotone Set.iInter_iUnion_of_monotoneₓ'. -/
 /-- An increasing intersection distributes over finite union. -/
-theorem interᵢ_unionᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι']
+theorem iInter_iUnion_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι']
     [IsDirected ι' (swap (· ≤ ·))] [Nonempty ι'] {s : ι → ι' → Set α} (hs : ∀ i, Monotone (s i)) :
     (⋂ j : ι', ⋃ i : ι, s i j) = ⋃ i : ι, ⋂ j : ι', s i j :=
-  Set.infᵢ_supᵢ_of_monotone hs
-#align set.Inter_Union_of_monotone Set.interᵢ_unionᵢ_of_monotone
+  Set.iInf_iSup_of_monotone hs
+#align set.Inter_Union_of_monotone Set.iInter_iUnion_of_monotone
 
-/- warning: set.Inter_Union_of_antitone -> Set.interᵢ_unionᵢ_of_antitone is a dubious translation:
+/- warning: set.Inter_Union_of_antitone -> Set.iInter_iUnion_of_antitone is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u3} α)}, (forall (i : ι), Antitone.{u2, u3} ι' (Set.{u3} α) _inst_2 (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.completeBooleanAlgebra.{u3} α))))))) (s i)) -> (Eq.{succ u3} (Set.{u3} α) (Set.interᵢ.{u3, succ u2} α ι' (fun (j : ι') => Set.unionᵢ.{u3, succ u1} α ι (fun (i : ι) => s i j))) (Set.unionᵢ.{u3, succ u1} α ι (fun (i : ι) => Set.interᵢ.{u3, succ u2} α ι' (fun (j : ι') => s i j))))
+  forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u3} α)}, (forall (i : ι), Antitone.{u2, u3} ι' (Set.{u3} α) _inst_2 (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.completeBooleanAlgebra.{u3} α))))))) (s i)) -> (Eq.{succ u3} (Set.{u3} α) (Set.iInter.{u3, succ u2} α ι' (fun (j : ι') => Set.iUnion.{u3, succ u1} α ι (fun (i : ι) => s i j))) (Set.iUnion.{u3, succ u1} α ι (fun (i : ι) => Set.iInter.{u3, succ u2} α ι' (fun (j : ι') => s i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.14686 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14688 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14686 x._@.Mathlib.Data.Set.Finite._hyg.14688)] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Antitone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.interᵢ.{u1, succ u2} α ι' (fun (j : ι') => Set.unionᵢ.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.unionᵢ.{u1, succ u3} α ι (fun (i : ι) => Set.interᵢ.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
-Case conversion may be inaccurate. Consider using '#align set.Inter_Union_of_antitone Set.interᵢ_unionᵢ_of_antitoneₓ'. -/
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.14686 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14688 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14686 x._@.Mathlib.Data.Set.Finite._hyg.14688)] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Antitone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.iInter.{u1, succ u2} α ι' (fun (j : ι') => Set.iUnion.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.iUnion.{u1, succ u3} α ι (fun (i : ι) => Set.iInter.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
+Case conversion may be inaccurate. Consider using '#align set.Inter_Union_of_antitone Set.iInter_iUnion_of_antitoneₓ'. -/
 /-- A decreasing intersection distributes over finite union. -/
-theorem interᵢ_unionᵢ_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [IsDirected ι' (· ≤ ·)]
+theorem iInter_iUnion_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [IsDirected ι' (· ≤ ·)]
     [Nonempty ι'] {s : ι → ι' → Set α} (hs : ∀ i, Antitone (s i)) :
     (⋂ j : ι', ⋃ i : ι, s i j) = ⋃ i : ι, ⋂ j : ι', s i j :=
-  Set.infᵢ_supᵢ_of_antitone hs
-#align set.Inter_Union_of_antitone Set.interᵢ_unionᵢ_of_antitone
+  Set.iInf_iSup_of_antitone hs
+#align set.Inter_Union_of_antitone Set.iInter_iUnion_of_antitone
 
-/- warning: set.Union_pi_of_monotone -> Set.unionᵢ_pi_of_monotone is a dubious translation:
+/- warning: set.Union_pi_of_monotone -> Set.iUnion_pi_of_monotone is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {ι' : Type.{u2}} [_inst_1 : LinearOrder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] {α : ι -> Type.{u3}} {I : Set.{u1} ι} {s : forall (i : ι), ι' -> (Set.{u3} (α i))}, (Set.Finite.{u1} ι I) -> (forall (i : ι), (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i I) -> (Monotone.{u2, u3} ι' (Set.{u3} (α i)) (PartialOrder.toPreorder.{u2} ι' (SemilatticeInf.toPartialOrder.{u2} ι' (Lattice.toSemilatticeInf.{u2} ι' (LinearOrder.toLattice.{u2} ι' _inst_1)))) (PartialOrder.toPreorder.{u3} (Set.{u3} (α i)) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} (α i)) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} (α i)) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} (α i)) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} (α i)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} (α i)) (Set.completeBooleanAlgebra.{u3} (α i)))))))) (s i))) -> (Eq.{succ (max u1 u3)} (Set.{max u1 u3} (forall (i : ι), α i)) (Set.unionᵢ.{max u1 u3, succ u2} (forall (i : ι), α i) ι' (fun (j : ι') => Set.pi.{u1, u3} ι (fun (i : ι) => α i) I (fun (i : ι) => s i j))) (Set.pi.{u1, u3} ι (fun (i : ι) => α i) I (fun (i : ι) => Set.unionᵢ.{u3, succ u2} (α i) ι' (fun (j : ι') => s i j))))
+  forall {ι : Type.{u1}} {ι' : Type.{u2}} [_inst_1 : LinearOrder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] {α : ι -> Type.{u3}} {I : Set.{u1} ι} {s : forall (i : ι), ι' -> (Set.{u3} (α i))}, (Set.Finite.{u1} ι I) -> (forall (i : ι), (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i I) -> (Monotone.{u2, u3} ι' (Set.{u3} (α i)) (PartialOrder.toPreorder.{u2} ι' (SemilatticeInf.toPartialOrder.{u2} ι' (Lattice.toSemilatticeInf.{u2} ι' (LinearOrder.toLattice.{u2} ι' _inst_1)))) (PartialOrder.toPreorder.{u3} (Set.{u3} (α i)) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} (α i)) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} (α i)) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} (α i)) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} (α i)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} (α i)) (Set.completeBooleanAlgebra.{u3} (α i)))))))) (s i))) -> (Eq.{succ (max u1 u3)} (Set.{max u1 u3} (forall (i : ι), α i)) (Set.iUnion.{max u1 u3, succ u2} (forall (i : ι), α i) ι' (fun (j : ι') => Set.pi.{u1, u3} ι (fun (i : ι) => α i) I (fun (i : ι) => s i j))) (Set.pi.{u1, u3} ι (fun (i : ι) => α i) I (fun (i : ι) => Set.iUnion.{u3, succ u2} (α i) ι' (fun (j : ι') => s i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} [_inst_1 : LinearOrder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] {α : ι -> Type.{u1}} {I : Set.{u3} ι} {s : forall (i : ι), ι' -> (Set.{u1} (α i))}, (Set.Finite.{u3} ι I) -> (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i I) -> (Monotone.{u2, u1} ι' (Set.{u1} (α i)) (PartialOrder.toPreorder.{u2} ι' (SemilatticeInf.toPartialOrder.{u2} ι' (Lattice.toSemilatticeInf.{u2} ι' (DistribLattice.toLattice.{u2} ι' (instDistribLattice.{u2} ι' _inst_1))))) (PartialOrder.toPreorder.{u1} (Set.{u1} (α i)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (α i)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (α i)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (α i)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (α i)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (α i)) (Set.instCompleteBooleanAlgebraSet.{u1} (α i)))))))) (s i))) -> (Eq.{max (succ u3) (succ u1)} (Set.{max u3 u1} (forall (i : ι), α i)) (Set.unionᵢ.{max u3 u1, succ u2} (forall (i : ι), α i) ι' (fun (j : ι') => Set.pi.{u3, u1} ι (fun (i : ι) => α i) I (fun (i : ι) => s i j))) (Set.pi.{u3, u1} ι (fun (i : ι) => α i) I (fun (i : ι) => Set.unionᵢ.{u1, succ u2} (α i) ι' (fun (j : ι') => s i j))))
-Case conversion may be inaccurate. Consider using '#align set.Union_pi_of_monotone Set.unionᵢ_pi_of_monotoneₓ'. -/
-theorem unionᵢ_pi_of_monotone {ι ι' : Type _} [LinearOrder ι'] [Nonempty ι'] {α : ι → Type _}
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} [_inst_1 : LinearOrder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] {α : ι -> Type.{u1}} {I : Set.{u3} ι} {s : forall (i : ι), ι' -> (Set.{u1} (α i))}, (Set.Finite.{u3} ι I) -> (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i I) -> (Monotone.{u2, u1} ι' (Set.{u1} (α i)) (PartialOrder.toPreorder.{u2} ι' (SemilatticeInf.toPartialOrder.{u2} ι' (Lattice.toSemilatticeInf.{u2} ι' (DistribLattice.toLattice.{u2} ι' (instDistribLattice.{u2} ι' _inst_1))))) (PartialOrder.toPreorder.{u1} (Set.{u1} (α i)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (α i)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (α i)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (α i)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (α i)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (α i)) (Set.instCompleteBooleanAlgebraSet.{u1} (α i)))))))) (s i))) -> (Eq.{max (succ u3) (succ u1)} (Set.{max u3 u1} (forall (i : ι), α i)) (Set.iUnion.{max u3 u1, succ u2} (forall (i : ι), α i) ι' (fun (j : ι') => Set.pi.{u3, u1} ι (fun (i : ι) => α i) I (fun (i : ι) => s i j))) (Set.pi.{u3, u1} ι (fun (i : ι) => α i) I (fun (i : ι) => Set.iUnion.{u1, succ u2} (α i) ι' (fun (j : ι') => s i j))))
+Case conversion may be inaccurate. Consider using '#align set.Union_pi_of_monotone Set.iUnion_pi_of_monotoneₓ'. -/
+theorem iUnion_pi_of_monotone {ι ι' : Type _} [LinearOrder ι'] [Nonempty ι'] {α : ι → Type _}
     {I : Set ι} {s : ∀ i, ι' → Set (α i)} (hI : I.Finite) (hs : ∀ i ∈ I, Monotone (s i)) :
     (⋃ j : ι', I.pi fun i => s i j) = I.pi fun i => ⋃ j, s i j :=
   by
   simp only [pi_def, bInter_eq_Inter, preimage_Union]
   haveI := hI.fintype
   exact Union_Inter_of_monotone fun i j₁ j₂ h => preimage_mono <| hs i i.2 h
-#align set.Union_pi_of_monotone Set.unionᵢ_pi_of_monotone
+#align set.Union_pi_of_monotone Set.iUnion_pi_of_monotone
 
-/- warning: set.Union_univ_pi_of_monotone -> Set.unionᵢ_univ_pi_of_monotone is a dubious translation:
+/- warning: set.Union_univ_pi_of_monotone -> Set.iUnion_univ_pi_of_monotone is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {ι' : Type.{u2}} [_inst_1 : LinearOrder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : Finite.{succ u1} ι] {α : ι -> Type.{u3}} {s : forall (i : ι), ι' -> (Set.{u3} (α i))}, (forall (i : ι), Monotone.{u2, u3} ι' (Set.{u3} (α i)) (PartialOrder.toPreorder.{u2} ι' (SemilatticeInf.toPartialOrder.{u2} ι' (Lattice.toSemilatticeInf.{u2} ι' (LinearOrder.toLattice.{u2} ι' _inst_1)))) (PartialOrder.toPreorder.{u3} (Set.{u3} (α i)) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} (α i)) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} (α i)) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} (α i)) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} (α i)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} (α i)) (Set.completeBooleanAlgebra.{u3} (α i)))))))) (s i)) -> (Eq.{succ (max u1 u3)} (Set.{max u1 u3} (forall (i : ι), α i)) (Set.unionᵢ.{max u1 u3, succ u2} (forall (i : ι), α i) ι' (fun (j : ι') => Set.pi.{u1, u3} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => s i j))) (Set.pi.{u1, u3} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => Set.unionᵢ.{u3, succ u2} (α i) ι' (fun (j : ι') => s i j))))
+  forall {ι : Type.{u1}} {ι' : Type.{u2}} [_inst_1 : LinearOrder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : Finite.{succ u1} ι] {α : ι -> Type.{u3}} {s : forall (i : ι), ι' -> (Set.{u3} (α i))}, (forall (i : ι), Monotone.{u2, u3} ι' (Set.{u3} (α i)) (PartialOrder.toPreorder.{u2} ι' (SemilatticeInf.toPartialOrder.{u2} ι' (Lattice.toSemilatticeInf.{u2} ι' (LinearOrder.toLattice.{u2} ι' _inst_1)))) (PartialOrder.toPreorder.{u3} (Set.{u3} (α i)) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} (α i)) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} (α i)) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} (α i)) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} (α i)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} (α i)) (Set.completeBooleanAlgebra.{u3} (α i)))))))) (s i)) -> (Eq.{succ (max u1 u3)} (Set.{max u1 u3} (forall (i : ι), α i)) (Set.iUnion.{max u1 u3, succ u2} (forall (i : ι), α i) ι' (fun (j : ι') => Set.pi.{u1, u3} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => s i j))) (Set.pi.{u1, u3} ι (fun (i : ι) => α i) (Set.univ.{u1} ι) (fun (i : ι) => Set.iUnion.{u3, succ u2} (α i) ι' (fun (j : ι') => s i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} [_inst_1 : LinearOrder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : Finite.{succ u3} ι] {α : ι -> Type.{u1}} {s : forall (i : ι), ι' -> (Set.{u1} (α i))}, (forall (i : ι), Monotone.{u2, u1} ι' (Set.{u1} (α i)) (PartialOrder.toPreorder.{u2} ι' (SemilatticeInf.toPartialOrder.{u2} ι' (Lattice.toSemilatticeInf.{u2} ι' (DistribLattice.toLattice.{u2} ι' (instDistribLattice.{u2} ι' _inst_1))))) (PartialOrder.toPreorder.{u1} (Set.{u1} (α i)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (α i)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (α i)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (α i)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (α i)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (α i)) (Set.instCompleteBooleanAlgebraSet.{u1} (α i)))))))) (s i)) -> (Eq.{max (succ u3) (succ u1)} (Set.{max u1 u3} (forall (i : ι), α i)) (Set.unionᵢ.{max u1 u3, succ u2} (forall (i : ι), α i) ι' (fun (j : ι') => Set.pi.{u3, u1} ι (fun (i : ι) => α i) (Set.univ.{u3} ι) (fun (i : ι) => s i j))) (Set.pi.{u3, u1} ι (fun (i : ι) => α i) (Set.univ.{u3} ι) (fun (i : ι) => Set.unionᵢ.{u1, succ u2} (α i) ι' (fun (j : ι') => s i j))))
-Case conversion may be inaccurate. Consider using '#align set.Union_univ_pi_of_monotone Set.unionᵢ_univ_pi_of_monotoneₓ'. -/
-theorem unionᵢ_univ_pi_of_monotone {ι ι' : Type _} [LinearOrder ι'] [Nonempty ι'] [Finite ι]
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} [_inst_1 : LinearOrder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : Finite.{succ u3} ι] {α : ι -> Type.{u1}} {s : forall (i : ι), ι' -> (Set.{u1} (α i))}, (forall (i : ι), Monotone.{u2, u1} ι' (Set.{u1} (α i)) (PartialOrder.toPreorder.{u2} ι' (SemilatticeInf.toPartialOrder.{u2} ι' (Lattice.toSemilatticeInf.{u2} ι' (DistribLattice.toLattice.{u2} ι' (instDistribLattice.{u2} ι' _inst_1))))) (PartialOrder.toPreorder.{u1} (Set.{u1} (α i)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (α i)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (α i)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (α i)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (α i)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (α i)) (Set.instCompleteBooleanAlgebraSet.{u1} (α i)))))))) (s i)) -> (Eq.{max (succ u3) (succ u1)} (Set.{max u1 u3} (forall (i : ι), α i)) (Set.iUnion.{max u1 u3, succ u2} (forall (i : ι), α i) ι' (fun (j : ι') => Set.pi.{u3, u1} ι (fun (i : ι) => α i) (Set.univ.{u3} ι) (fun (i : ι) => s i j))) (Set.pi.{u3, u1} ι (fun (i : ι) => α i) (Set.univ.{u3} ι) (fun (i : ι) => Set.iUnion.{u1, succ u2} (α i) ι' (fun (j : ι') => s i j))))
+Case conversion may be inaccurate. Consider using '#align set.Union_univ_pi_of_monotone Set.iUnion_univ_pi_of_monotoneₓ'. -/
+theorem iUnion_univ_pi_of_monotone {ι ι' : Type _} [LinearOrder ι'] [Nonempty ι'] [Finite ι]
     {α : ι → Type _} {s : ∀ i, ι' → Set (α i)} (hs : ∀ i, Monotone (s i)) :
     (⋃ j : ι', pi univ fun i => s i j) = pi univ fun i => ⋃ j, s i j :=
-  unionᵢ_pi_of_monotone finite_univ fun i _ => hs i
-#align set.Union_univ_pi_of_monotone Set.unionᵢ_univ_pi_of_monotone
+  iUnion_pi_of_monotone finite_univ fun i _ => hs i
+#align set.Union_univ_pi_of_monotone Set.iUnion_univ_pi_of_monotone
 
 #print Set.finite_range_findGreatest /-
 theorem finite_range_findGreatest {P : α → ℕ → Prop} [∀ x, DecidablePred (P x)] {b : ℕ} :
@@ -2396,13 +2396,13 @@ protected theorem Finite.bddAbove (hs : s.Finite) : BddAbove s :=
 #align set.finite.bdd_above Set.Finite.bddAbove
 -/
 
-#print Set.Finite.bddAbove_bunionᵢ /-
+#print Set.Finite.bddAbove_biUnion /-
 /-- A finite union of sets which are all bounded above is still bounded above.-/
-theorem Finite.bddAbove_bunionᵢ {I : Set β} {S : β → Set α} (H : I.Finite) :
+theorem Finite.bddAbove_biUnion {I : Set β} {S : β → Set α} (H : I.Finite) :
     BddAbove (⋃ i ∈ I, S i) ↔ ∀ i ∈ I, BddAbove (S i) :=
   Finite.induction_on H (by simp only [bUnion_empty, bddAbove_empty, ball_empty_iff])
     fun a s ha _ hs => by simp only [bUnion_insert, ball_insert_iff, bddAbove_union, hs]
-#align set.finite.bdd_above_bUnion Set.Finite.bddAbove_bunionᵢ
+#align set.finite.bdd_above_bUnion Set.Finite.bddAbove_biUnion
 -/
 
 #print Set.infinite_of_not_bddAbove /-
@@ -2424,12 +2424,12 @@ protected theorem Finite.bddBelow (hs : s.Finite) : BddBelow s :=
 #align set.finite.bdd_below Set.Finite.bddBelow
 -/
 
-#print Set.Finite.bddBelow_bunionᵢ /-
+#print Set.Finite.bddBelow_biUnion /-
 /-- A finite union of sets which are all bounded below is still bounded below.-/
-theorem Finite.bddBelow_bunionᵢ {I : Set β} {S : β → Set α} (H : I.Finite) :
+theorem Finite.bddBelow_biUnion {I : Set β} {S : β → Set α} (H : I.Finite) :
     BddBelow (⋃ i ∈ I, S i) ↔ ∀ i ∈ I, BddBelow (S i) :=
-  @Finite.bddAbove_bunionᵢ αᵒᵈ _ _ _ _ _ H
-#align set.finite.bdd_below_bUnion Set.Finite.bddBelow_bunionᵢ
+  @Finite.bddAbove_biUnion αᵒᵈ _ _ _ _ _ H
+#align set.finite.bdd_below_bUnion Set.Finite.bddBelow_biUnion
 -/
 
 #print Set.infinite_of_not_bddBelow /-
@@ -2486,24 +2486,24 @@ theorem Set.finite_of_forall_not_lt_lt {s : Set α}
 #align set.finite_of_forall_not_lt_lt Set.finite_of_forall_not_lt_lt
 -/
 
-/- warning: set.finite_diff_Union_Ioo -> Set.finite_diff_unionᵢ_Ioo is a dubious translation:
+/- warning: set.finite_diff_Union_Ioo -> Set.finite_diff_iUnion_Ioo is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : LinearOrder.{u1} α] (s : Set.{u1} α), Set.Finite.{u1} α (SDiff.sdiff.{u1} (Set.{u1} α) (BooleanAlgebra.toHasSdiff.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s (Set.unionᵢ.{u1, succ u1} α α (fun (x : α) => Set.unionᵢ.{u1, 0} α (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) => Set.unionᵢ.{u1, succ u1} α α (fun (y : α) => Set.unionᵢ.{u1, 0} α (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) y s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) y s) => Set.Ioo.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1)))) x y))))))
+  forall {α : Type.{u1}} [_inst_1 : LinearOrder.{u1} α] (s : Set.{u1} α), Set.Finite.{u1} α (SDiff.sdiff.{u1} (Set.{u1} α) (BooleanAlgebra.toHasSdiff.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s (Set.iUnion.{u1, succ u1} α α (fun (x : α) => Set.iUnion.{u1, 0} α (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) => Set.iUnion.{u1, succ u1} α α (fun (y : α) => Set.iUnion.{u1, 0} α (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) y s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) y s) => Set.Ioo.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1)))) x y))))))
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : LinearOrder.{u1} α] (s : Set.{u1} α), Set.Finite.{u1} α (SDiff.sdiff.{u1} (Set.{u1} α) (Set.instSDiffSet.{u1} α) s (Set.unionᵢ.{u1, succ u1} α α (fun (x : α) => Set.unionᵢ.{u1, 0} α (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s) (fun (H : Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s) => Set.unionᵢ.{u1, succ u1} α α (fun (y : α) => Set.unionᵢ.{u1, 0} α (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) y s) (fun (H : Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) y s) => Set.Ioo.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1))))) x y))))))
-Case conversion may be inaccurate. Consider using '#align set.finite_diff_Union_Ioo Set.finite_diff_unionᵢ_Iooₓ'. -/
-theorem Set.finite_diff_unionᵢ_Ioo (s : Set α) : (s \ ⋃ (x ∈ s) (y ∈ s), Ioo x y).Finite :=
+  forall {α : Type.{u1}} [_inst_1 : LinearOrder.{u1} α] (s : Set.{u1} α), Set.Finite.{u1} α (SDiff.sdiff.{u1} (Set.{u1} α) (Set.instSDiffSet.{u1} α) s (Set.iUnion.{u1, succ u1} α α (fun (x : α) => Set.iUnion.{u1, 0} α (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s) (fun (H : Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s) => Set.iUnion.{u1, succ u1} α α (fun (y : α) => Set.iUnion.{u1, 0} α (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) y s) (fun (H : Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) y s) => Set.Ioo.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1))))) x y))))))
+Case conversion may be inaccurate. Consider using '#align set.finite_diff_Union_Ioo Set.finite_diff_iUnion_Iooₓ'. -/
+theorem Set.finite_diff_iUnion_Ioo (s : Set α) : (s \ ⋃ (x ∈ s) (y ∈ s), Ioo x y).Finite :=
   Set.finite_of_forall_not_lt_lt fun x hx y hy z hz hxy hyz =>
-    hy.2 <| mem_unionᵢ₂_of_mem hx.1 <| mem_unionᵢ₂_of_mem hz.1 ⟨hxy, hyz⟩
-#align set.finite_diff_Union_Ioo Set.finite_diff_unionᵢ_Ioo
+    hy.2 <| mem_iUnion₂_of_mem hx.1 <| mem_iUnion₂_of_mem hz.1 ⟨hxy, hyz⟩
+#align set.finite_diff_Union_Ioo Set.finite_diff_iUnion_Ioo
 
-/- warning: set.finite_diff_Union_Ioo' -> Set.finite_diff_unionᵢ_Ioo' is a dubious translation:
+/- warning: set.finite_diff_Union_Ioo' -> Set.finite_diff_iUnion_Ioo' is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : LinearOrder.{u1} α] (s : Set.{u1} α), Set.Finite.{u1} α (SDiff.sdiff.{u1} (Set.{u1} α) (BooleanAlgebra.toHasSdiff.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s (Set.unionᵢ.{u1, succ u1} α (Prod.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s)) (fun (x : Prod.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s)) => Set.Ioo.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1)))) ((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} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) α (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) α (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) α (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) α (coeSubtype.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s))))) (Prod.fst.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) x)) ((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} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) α (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) α (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) α (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) α (coeSubtype.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s))))) (Prod.snd.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) x)))))
+  forall {α : Type.{u1}} [_inst_1 : LinearOrder.{u1} α] (s : Set.{u1} α), Set.Finite.{u1} α (SDiff.sdiff.{u1} (Set.{u1} α) (BooleanAlgebra.toHasSdiff.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s (Set.iUnion.{u1, succ u1} α (Prod.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s)) (fun (x : Prod.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s)) => Set.Ioo.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (LinearOrder.toLattice.{u1} α _inst_1)))) ((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} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) α (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) α (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) α (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) α (coeSubtype.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s))))) (Prod.fst.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) x)) ((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} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) α (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) α (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) α (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) α (coeSubtype.{succ u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s))))) (Prod.snd.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) x)))))
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : LinearOrder.{u1} α] (s : Set.{u1} α), Set.Finite.{u1} α (SDiff.sdiff.{u1} (Set.{u1} α) (Set.instSDiffSet.{u1} α) s (Set.unionᵢ.{u1, succ u1} α (Prod.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α s)) (fun (x : Prod.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α s)) => Set.Ioo.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1))))) (Subtype.val.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s) (Prod.fst.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α s) x)) (Subtype.val.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s) (Prod.snd.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α s) x)))))
-Case conversion may be inaccurate. Consider using '#align set.finite_diff_Union_Ioo' Set.finite_diff_unionᵢ_Ioo'ₓ'. -/
-theorem Set.finite_diff_unionᵢ_Ioo' (s : Set α) : (s \ ⋃ x : s × s, Ioo x.1 x.2).Finite := by
-  simpa only [Union, supᵢ_prod, supᵢ_subtype] using s.finite_diff_Union_Ioo
-#align set.finite_diff_Union_Ioo' Set.finite_diff_unionᵢ_Ioo'
+  forall {α : Type.{u1}} [_inst_1 : LinearOrder.{u1} α] (s : Set.{u1} α), Set.Finite.{u1} α (SDiff.sdiff.{u1} (Set.{u1} α) (Set.instSDiffSet.{u1} α) s (Set.iUnion.{u1, succ u1} α (Prod.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α s)) (fun (x : Prod.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α s)) => Set.Ioo.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α (Lattice.toSemilatticeInf.{u1} α (DistribLattice.toLattice.{u1} α (instDistribLattice.{u1} α _inst_1))))) (Subtype.val.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s) (Prod.fst.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α s) x)) (Subtype.val.{succ u1} α (fun (x : α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s) (Prod.snd.{u1, u1} (Set.Elem.{u1} α s) (Set.Elem.{u1} α s) x)))))
+Case conversion may be inaccurate. Consider using '#align set.finite_diff_Union_Ioo' Set.finite_diff_iUnion_Ioo'ₓ'. -/
+theorem Set.finite_diff_iUnion_Ioo' (s : Set α) : (s \ ⋃ x : s × s, Ioo x.1 x.2).Finite := by
+  simpa only [Union, iSup_prod, iSup_subtype] using s.finite_diff_Union_Ioo
+#align set.finite_diff_Union_Ioo' Set.finite_diff_iUnion_Ioo'
 
Diff
@@ -2172,7 +2172,7 @@ theorem exists_upper_bound_image [hα : Nonempty α] [LinearOrder β] (s : Set 
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1))] [_inst_4 : Order.Frame.{u3} α] {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) -> (Monotone.{u2, u3} ι' α _inst_1 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4)))) (f i))) -> (Eq.{succ u3} α (supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => infᵢ.{u3, 0} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => f i j)))) (infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => infᵢ.{u3, 0} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => f i j))))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.13043 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13045 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.13043 x._@.Mathlib.Data.Set.Finite._hyg.13045)] [_inst_4 : Order.Frame.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Monotone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => infᵢ.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => infᵢ.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.13041 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13043 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.13041 x._@.Mathlib.Data.Set.Finite._hyg.13043)] [_inst_4 : Order.Frame.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Monotone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => infᵢ.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => infᵢ.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
 Case conversion may be inaccurate. Consider using '#align set.finite.supr_binfi_of_monotone Set.Finite.supᵢ_binfᵢ_of_monotoneₓ'. -/
 theorem Finite.supᵢ_binfᵢ_of_monotone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Frame α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
@@ -2192,7 +2192,7 @@ theorem Finite.supᵢ_binfᵢ_of_monotone {ι ι' α : Type _} [Preorder ι'] [N
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1)))] [_inst_4 : Order.Frame.{u3} α] {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) -> (Antitone.{u2, u3} ι' α _inst_1 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4)))) (f i))) -> (Eq.{succ u3} α (supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => infᵢ.{u3, 0} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => f i j)))) (infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => infᵢ.{u3, 0} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => f i j))))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.13265 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13267 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.13265 x._@.Mathlib.Data.Set.Finite._hyg.13267))] [_inst_4 : Order.Frame.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Antitone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => infᵢ.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => infᵢ.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.13263 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13265 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.13263 x._@.Mathlib.Data.Set.Finite._hyg.13265))] [_inst_4 : Order.Frame.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Antitone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => infᵢ.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => infᵢ.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
 Case conversion may be inaccurate. Consider using '#align set.finite.supr_binfi_of_antitone Set.Finite.supᵢ_binfᵢ_of_antitoneₓ'. -/
 theorem Finite.supᵢ_binfᵢ_of_antitone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Frame α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
@@ -2204,7 +2204,7 @@ theorem Finite.supᵢ_binfᵢ_of_antitone {ι ι' α : Type _} [Preorder ι'] [N
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1)))] [_inst_4 : Order.Coframe.{u3} α] {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) -> (Monotone.{u2, u3} ι' α _inst_1 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4)))) (f i))) -> (Eq.{succ u3} α (infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => supᵢ.{u3, 0} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => f i j)))) (supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => supᵢ.{u3, 0} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => f i j))))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.13445 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13447 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.13445 x._@.Mathlib.Data.Set.Finite._hyg.13447))] [_inst_4 : Order.Coframe.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Monotone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => supᵢ.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => supᵢ.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.13443 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13445 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.13443 x._@.Mathlib.Data.Set.Finite._hyg.13445))] [_inst_4 : Order.Coframe.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Monotone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => supᵢ.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => supᵢ.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
 Case conversion may be inaccurate. Consider using '#align set.finite.infi_bsupr_of_monotone Set.Finite.infᵢ_bsupᵢ_of_monotoneₓ'. -/
 theorem Finite.infᵢ_bsupᵢ_of_monotone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Coframe α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
@@ -2216,7 +2216,7 @@ theorem Finite.infᵢ_bsupᵢ_of_monotone {ι ι' α : Type _} [Preorder ι'] [N
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1))] [_inst_4 : Order.Coframe.{u3} α] {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) -> (Antitone.{u2, u3} ι' α _inst_1 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4)))) (f i))) -> (Eq.{succ u3} α (infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => supᵢ.{u3, 0} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => f i j)))) (supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => supᵢ.{u3, 0} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => f i j))))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.13617 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13619 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.13617 x._@.Mathlib.Data.Set.Finite._hyg.13619)] [_inst_4 : Order.Coframe.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Antitone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => supᵢ.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => supᵢ.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.13615 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13617 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.13615 x._@.Mathlib.Data.Set.Finite._hyg.13617)] [_inst_4 : Order.Coframe.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Antitone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => supᵢ.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => supᵢ.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
 Case conversion may be inaccurate. Consider using '#align set.finite.infi_bsupr_of_antitone Set.Finite.infᵢ_bsupᵢ_of_antitoneₓ'. -/
 theorem Finite.infᵢ_bsupᵢ_of_antitone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Coframe α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
@@ -2228,7 +2228,7 @@ theorem Finite.infᵢ_bsupᵢ_of_antitone {ι ι' α : Type _} [Preorder ι'] [N
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2))] [_inst_5 : Order.Frame.{u3} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u3} ι' α _inst_2 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5)))) (f i)) -> (Eq.{succ u3} α (supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => f i j))) (infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => f i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.13789 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13791 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13789 x._@.Mathlib.Data.Set.Finite._hyg.13791)] [_inst_5 : Order.Frame.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.13787 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13789 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13787 x._@.Mathlib.Data.Set.Finite._hyg.13789)] [_inst_5 : Order.Frame.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
 Case conversion may be inaccurate. Consider using '#align supr_infi_of_monotone Set.supᵢ_infᵢ_of_monotoneₓ'. -/
 theorem Set.supᵢ_infᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Frame α] {f : ι → ι' → α} (hf : ∀ i, Monotone (f i)) :
@@ -2240,7 +2240,7 @@ theorem Set.supᵢ_infᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2)))] [_inst_5 : Order.Frame.{u3} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u3} ι' α _inst_2 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5)))) (f i)) -> (Eq.{succ u3} α (supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => f i j))) (infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => f i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.13926 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13928 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13926 x._@.Mathlib.Data.Set.Finite._hyg.13928))] [_inst_5 : Order.Frame.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.13924 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13926 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13924 x._@.Mathlib.Data.Set.Finite._hyg.13926))] [_inst_5 : Order.Frame.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
 Case conversion may be inaccurate. Consider using '#align supr_infi_of_antitone Set.supᵢ_infᵢ_of_antitoneₓ'. -/
 theorem Set.supᵢ_infᵢ_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Frame α] {f : ι → ι' → α} (hf : ∀ i, Antitone (f i)) :
@@ -2252,7 +2252,7 @@ theorem Set.supᵢ_infᵢ_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2)))] [_inst_5 : Order.Coframe.{u3} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u3} ι' α _inst_2 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5)))) (f i)) -> (Eq.{succ u3} α (infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => f i j))) (supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => f i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.14064 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14066 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14064 x._@.Mathlib.Data.Set.Finite._hyg.14066))] [_inst_5 : Order.Coframe.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.14062 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14064 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14062 x._@.Mathlib.Data.Set.Finite._hyg.14064))] [_inst_5 : Order.Coframe.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
 Case conversion may be inaccurate. Consider using '#align infi_supr_of_monotone Set.infᵢ_supᵢ_of_monotoneₓ'. -/
 theorem Set.infᵢ_supᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Coframe α] {f : ι → ι' → α} (hf : ∀ i, Monotone (f i)) :
@@ -2264,7 +2264,7 @@ theorem Set.infᵢ_supᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2))] [_inst_5 : Order.Coframe.{u3} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u3} ι' α _inst_2 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5)))) (f i)) -> (Eq.{succ u3} α (infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => f i j))) (supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => f i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.14196 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14198 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14196 x._@.Mathlib.Data.Set.Finite._hyg.14198)] [_inst_5 : Order.Coframe.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.14194 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14196 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14194 x._@.Mathlib.Data.Set.Finite._hyg.14196)] [_inst_5 : Order.Coframe.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
 Case conversion may be inaccurate. Consider using '#align infi_supr_of_antitone Set.infᵢ_supᵢ_of_antitoneₓ'. -/
 theorem Set.infᵢ_supᵢ_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Coframe α] {f : ι → ι' → α} (hf : ∀ i, Antitone (f i)) :
@@ -2276,7 +2276,7 @@ theorem Set.infᵢ_supᵢ_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u3} α)}, (forall (i : ι), Monotone.{u2, u3} ι' (Set.{u3} α) _inst_2 (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.completeBooleanAlgebra.{u3} α))))))) (s i)) -> (Eq.{succ u3} (Set.{u3} α) (Set.unionᵢ.{u3, succ u2} α ι' (fun (j : ι') => Set.interᵢ.{u3, succ u1} α ι (fun (i : ι) => s i j))) (Set.interᵢ.{u3, succ u1} α ι (fun (i : ι) => Set.unionᵢ.{u3, succ u2} α ι' (fun (j : ι') => s i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.14325 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14327 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14325 x._@.Mathlib.Data.Set.Finite._hyg.14327)] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Monotone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.unionᵢ.{u1, succ u2} α ι' (fun (j : ι') => Set.interᵢ.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.interᵢ.{u1, succ u3} α ι (fun (i : ι) => Set.unionᵢ.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.14323 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14325 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14323 x._@.Mathlib.Data.Set.Finite._hyg.14325)] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Monotone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.unionᵢ.{u1, succ u2} α ι' (fun (j : ι') => Set.interᵢ.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.interᵢ.{u1, succ u3} α ι (fun (i : ι) => Set.unionᵢ.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
 Case conversion may be inaccurate. Consider using '#align set.Union_Inter_of_monotone Set.unionᵢ_interᵢ_of_monotoneₓ'. -/
 /-- An increasing union distributes over finite intersection. -/
 theorem unionᵢ_interᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [IsDirected ι' (· ≤ ·)]
@@ -2289,7 +2289,7 @@ theorem unionᵢ_interᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2)))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u3} α)}, (forall (i : ι), Antitone.{u2, u3} ι' (Set.{u3} α) _inst_2 (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.completeBooleanAlgebra.{u3} α))))))) (s i)) -> (Eq.{succ u3} (Set.{u3} α) (Set.unionᵢ.{u3, succ u2} α ι' (fun (j : ι') => Set.interᵢ.{u3, succ u1} α ι (fun (i : ι) => s i j))) (Set.interᵢ.{u3, succ u1} α ι (fun (i : ι) => Set.unionᵢ.{u3, succ u2} α ι' (fun (j : ι') => s i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.14447 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14449 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14447 x._@.Mathlib.Data.Set.Finite._hyg.14449))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Antitone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.unionᵢ.{u1, succ u2} α ι' (fun (j : ι') => Set.interᵢ.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.interᵢ.{u1, succ u3} α ι (fun (i : ι) => Set.unionᵢ.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.14445 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14447 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14445 x._@.Mathlib.Data.Set.Finite._hyg.14447))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Antitone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.unionᵢ.{u1, succ u2} α ι' (fun (j : ι') => Set.interᵢ.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.interᵢ.{u1, succ u3} α ι (fun (i : ι) => Set.unionᵢ.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
 Case conversion may be inaccurate. Consider using '#align set.Union_Inter_of_antitone Set.unionᵢ_interᵢ_of_antitoneₓ'. -/
 /-- A decreasing union distributes over finite intersection. -/
 theorem unionᵢ_interᵢ_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι']
@@ -2302,7 +2302,7 @@ theorem unionᵢ_interᵢ_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2)))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u3} α)}, (forall (i : ι), Monotone.{u2, u3} ι' (Set.{u3} α) _inst_2 (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.completeBooleanAlgebra.{u3} α))))))) (s i)) -> (Eq.{succ u3} (Set.{u3} α) (Set.interᵢ.{u3, succ u2} α ι' (fun (j : ι') => Set.unionᵢ.{u3, succ u1} α ι (fun (i : ι) => s i j))) (Set.unionᵢ.{u3, succ u1} α ι (fun (i : ι) => Set.interᵢ.{u3, succ u2} α ι' (fun (j : ι') => s i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.14569 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14571 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14569 x._@.Mathlib.Data.Set.Finite._hyg.14571))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Monotone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.interᵢ.{u1, succ u2} α ι' (fun (j : ι') => Set.unionᵢ.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.unionᵢ.{u1, succ u3} α ι (fun (i : ι) => Set.interᵢ.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.14567 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14569 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14567 x._@.Mathlib.Data.Set.Finite._hyg.14569))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Monotone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.interᵢ.{u1, succ u2} α ι' (fun (j : ι') => Set.unionᵢ.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.unionᵢ.{u1, succ u3} α ι (fun (i : ι) => Set.interᵢ.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
 Case conversion may be inaccurate. Consider using '#align set.Inter_Union_of_monotone Set.interᵢ_unionᵢ_of_monotoneₓ'. -/
 /-- An increasing intersection distributes over finite union. -/
 theorem interᵢ_unionᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι']
@@ -2315,7 +2315,7 @@ theorem interᵢ_unionᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u3} α)}, (forall (i : ι), Antitone.{u2, u3} ι' (Set.{u3} α) _inst_2 (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.completeBooleanAlgebra.{u3} α))))))) (s i)) -> (Eq.{succ u3} (Set.{u3} α) (Set.interᵢ.{u3, succ u2} α ι' (fun (j : ι') => Set.unionᵢ.{u3, succ u1} α ι (fun (i : ι) => s i j))) (Set.unionᵢ.{u3, succ u1} α ι (fun (i : ι) => Set.interᵢ.{u3, succ u2} α ι' (fun (j : ι') => s i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.14688 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14690 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14688 x._@.Mathlib.Data.Set.Finite._hyg.14690)] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Antitone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.interᵢ.{u1, succ u2} α ι' (fun (j : ι') => Set.unionᵢ.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.unionᵢ.{u1, succ u3} α ι (fun (i : ι) => Set.interᵢ.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.14686 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14688 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14686 x._@.Mathlib.Data.Set.Finite._hyg.14688)] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Antitone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.interᵢ.{u1, succ u2} α ι' (fun (j : ι') => Set.unionᵢ.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.unionᵢ.{u1, succ u3} α ι (fun (i : ι) => Set.interᵢ.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
 Case conversion may be inaccurate. Consider using '#align set.Inter_Union_of_antitone Set.interᵢ_unionᵢ_of_antitoneₓ'. -/
 /-- A decreasing intersection distributes over finite union. -/
 theorem interᵢ_unionᵢ_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [IsDirected ι' (· ≤ ·)]
Diff
@@ -2055,6 +2055,12 @@ section Preorder
 
 variable [Preorder α] [Nonempty α] {s : Set α}
 
+/- warning: set.infinite_of_forall_exists_gt -> Set.infinite_of_forall_exists_gt is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : Preorder.{u1} α] [_inst_2 : Nonempty.{succ u1} α] {s : Set.{u1} α}, (forall (a : α), Exists.{succ u1} α (fun (b : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) b s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) b s) => LT.lt.{u1} α (Preorder.toLT.{u1} α _inst_1) a b))) -> (Set.Infinite.{u1} α s)
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : Preorder.{u1} α] [_inst_2 : Nonempty.{succ u1} α] {s : Set.{u1} α}, (forall (a : α), Exists.{succ u1} α (fun (b : α) => And (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) b s) (LT.lt.{u1} α (Preorder.toLT.{u1} α _inst_1) a b))) -> (Set.Infinite.{u1} α s)
+Case conversion may be inaccurate. Consider using '#align set.infinite_of_forall_exists_gt Set.infinite_of_forall_exists_gtₓ'. -/
 theorem infinite_of_forall_exists_gt (h : ∀ a, ∃ b ∈ s, a < b) : s.Infinite :=
   by
   inhabit α
@@ -2064,6 +2070,12 @@ theorem infinite_of_forall_exists_gt (h : ∀ a, ∃ b ∈ s, a < b) : s.Infinit
   exact (h _).choose_spec.choose_spec
 #align set.infinite_of_forall_exists_gt Set.infinite_of_forall_exists_gt
 
+/- warning: set.infinite_of_forall_exists_lt -> Set.infinite_of_forall_exists_lt is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : Preorder.{u1} α] [_inst_2 : Nonempty.{succ u1} α] {s : Set.{u1} α}, (forall (a : α), Exists.{succ u1} α (fun (b : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) b s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) b s) => LT.lt.{u1} α (Preorder.toLT.{u1} α _inst_1) b a))) -> (Set.Infinite.{u1} α s)
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : Preorder.{u1} α] [_inst_2 : Nonempty.{succ u1} α] {s : Set.{u1} α}, (forall (a : α), Exists.{succ u1} α (fun (b : α) => And (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) b s) (LT.lt.{u1} α (Preorder.toLT.{u1} α _inst_1) b a))) -> (Set.Infinite.{u1} α s)
+Case conversion may be inaccurate. Consider using '#align set.infinite_of_forall_exists_lt Set.infinite_of_forall_exists_ltₓ'. -/
 theorem infinite_of_forall_exists_lt (h : ∀ a, ∃ b ∈ s, b < a) : s.Infinite :=
   @infinite_of_forall_exists_gt αᵒᵈ _ _ _ h
 #align set.infinite_of_forall_exists_lt Set.infinite_of_forall_exists_lt
@@ -2160,7 +2172,7 @@ theorem exists_upper_bound_image [hα : Nonempty α] [LinearOrder β] (s : Set 
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1))] [_inst_4 : Order.Frame.{u3} α] {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) -> (Monotone.{u2, u3} ι' α _inst_1 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4)))) (f i))) -> (Eq.{succ u3} α (supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => infᵢ.{u3, 0} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => f i j)))) (infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => infᵢ.{u3, 0} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => f i j))))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.12523 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.12525 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.12523 x._@.Mathlib.Data.Set.Finite._hyg.12525)] [_inst_4 : Order.Frame.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Monotone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => infᵢ.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => infᵢ.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.13043 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13045 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.13043 x._@.Mathlib.Data.Set.Finite._hyg.13045)] [_inst_4 : Order.Frame.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Monotone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => infᵢ.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => infᵢ.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
 Case conversion may be inaccurate. Consider using '#align set.finite.supr_binfi_of_monotone Set.Finite.supᵢ_binfᵢ_of_monotoneₓ'. -/
 theorem Finite.supᵢ_binfᵢ_of_monotone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Frame α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
@@ -2180,7 +2192,7 @@ theorem Finite.supᵢ_binfᵢ_of_monotone {ι ι' α : Type _} [Preorder ι'] [N
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1)))] [_inst_4 : Order.Frame.{u3} α] {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) -> (Antitone.{u2, u3} ι' α _inst_1 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4)))) (f i))) -> (Eq.{succ u3} α (supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => infᵢ.{u3, 0} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => f i j)))) (infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => infᵢ.{u3, 0} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => f i j))))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.12745 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.12747 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.12745 x._@.Mathlib.Data.Set.Finite._hyg.12747))] [_inst_4 : Order.Frame.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Antitone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => infᵢ.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => infᵢ.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.13265 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13267 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.13265 x._@.Mathlib.Data.Set.Finite._hyg.13267))] [_inst_4 : Order.Frame.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Antitone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => infᵢ.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => infᵢ.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
 Case conversion may be inaccurate. Consider using '#align set.finite.supr_binfi_of_antitone Set.Finite.supᵢ_binfᵢ_of_antitoneₓ'. -/
 theorem Finite.supᵢ_binfᵢ_of_antitone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Frame α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
@@ -2192,7 +2204,7 @@ theorem Finite.supᵢ_binfᵢ_of_antitone {ι ι' α : Type _} [Preorder ι'] [N
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1)))] [_inst_4 : Order.Coframe.{u3} α] {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) -> (Monotone.{u2, u3} ι' α _inst_1 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4)))) (f i))) -> (Eq.{succ u3} α (infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => supᵢ.{u3, 0} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => f i j)))) (supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => supᵢ.{u3, 0} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => f i j))))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.12925 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.12927 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.12925 x._@.Mathlib.Data.Set.Finite._hyg.12927))] [_inst_4 : Order.Coframe.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Monotone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => supᵢ.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => supᵢ.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.13445 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13447 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.13445 x._@.Mathlib.Data.Set.Finite._hyg.13447))] [_inst_4 : Order.Coframe.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Monotone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => supᵢ.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => supᵢ.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
 Case conversion may be inaccurate. Consider using '#align set.finite.infi_bsupr_of_monotone Set.Finite.infᵢ_bsupᵢ_of_monotoneₓ'. -/
 theorem Finite.infᵢ_bsupᵢ_of_monotone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Coframe α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
@@ -2204,7 +2216,7 @@ theorem Finite.infᵢ_bsupᵢ_of_monotone {ι ι' α : Type _} [Preorder ι'] [N
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1))] [_inst_4 : Order.Coframe.{u3} α] {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) -> (Antitone.{u2, u3} ι' α _inst_1 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4)))) (f i))) -> (Eq.{succ u3} α (infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => supᵢ.{u3, 0} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => f i j)))) (supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => supᵢ.{u3, 0} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => f i j))))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.13097 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13099 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.13097 x._@.Mathlib.Data.Set.Finite._hyg.13099)] [_inst_4 : Order.Coframe.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Antitone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => supᵢ.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => supᵢ.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.13617 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13619 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.13617 x._@.Mathlib.Data.Set.Finite._hyg.13619)] [_inst_4 : Order.Coframe.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Antitone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => supᵢ.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => supᵢ.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
 Case conversion may be inaccurate. Consider using '#align set.finite.infi_bsupr_of_antitone Set.Finite.infᵢ_bsupᵢ_of_antitoneₓ'. -/
 theorem Finite.infᵢ_bsupᵢ_of_antitone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Coframe α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
@@ -2216,7 +2228,7 @@ theorem Finite.infᵢ_bsupᵢ_of_antitone {ι ι' α : Type _} [Preorder ι'] [N
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2))] [_inst_5 : Order.Frame.{u3} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u3} ι' α _inst_2 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5)))) (f i)) -> (Eq.{succ u3} α (supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => f i j))) (infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => f i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.13269 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13271 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13269 x._@.Mathlib.Data.Set.Finite._hyg.13271)] [_inst_5 : Order.Frame.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.13789 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13791 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13789 x._@.Mathlib.Data.Set.Finite._hyg.13791)] [_inst_5 : Order.Frame.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
 Case conversion may be inaccurate. Consider using '#align supr_infi_of_monotone Set.supᵢ_infᵢ_of_monotoneₓ'. -/
 theorem Set.supᵢ_infᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Frame α] {f : ι → ι' → α} (hf : ∀ i, Monotone (f i)) :
@@ -2228,7 +2240,7 @@ theorem Set.supᵢ_infᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2)))] [_inst_5 : Order.Frame.{u3} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u3} ι' α _inst_2 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5)))) (f i)) -> (Eq.{succ u3} α (supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => f i j))) (infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => f i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.13406 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13408 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13406 x._@.Mathlib.Data.Set.Finite._hyg.13408))] [_inst_5 : Order.Frame.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.13926 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13928 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13926 x._@.Mathlib.Data.Set.Finite._hyg.13928))] [_inst_5 : Order.Frame.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
 Case conversion may be inaccurate. Consider using '#align supr_infi_of_antitone Set.supᵢ_infᵢ_of_antitoneₓ'. -/
 theorem Set.supᵢ_infᵢ_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Frame α] {f : ι → ι' → α} (hf : ∀ i, Antitone (f i)) :
@@ -2240,7 +2252,7 @@ theorem Set.supᵢ_infᵢ_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2)))] [_inst_5 : Order.Coframe.{u3} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u3} ι' α _inst_2 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5)))) (f i)) -> (Eq.{succ u3} α (infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => f i j))) (supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => f i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.13544 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13546 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13544 x._@.Mathlib.Data.Set.Finite._hyg.13546))] [_inst_5 : Order.Coframe.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.14064 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14066 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14064 x._@.Mathlib.Data.Set.Finite._hyg.14066))] [_inst_5 : Order.Coframe.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
 Case conversion may be inaccurate. Consider using '#align infi_supr_of_monotone Set.infᵢ_supᵢ_of_monotoneₓ'. -/
 theorem Set.infᵢ_supᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Coframe α] {f : ι → ι' → α} (hf : ∀ i, Monotone (f i)) :
@@ -2252,7 +2264,7 @@ theorem Set.infᵢ_supᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2))] [_inst_5 : Order.Coframe.{u3} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u3} ι' α _inst_2 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5)))) (f i)) -> (Eq.{succ u3} α (infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => f i j))) (supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => f i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.13676 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13678 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13676 x._@.Mathlib.Data.Set.Finite._hyg.13678)] [_inst_5 : Order.Coframe.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.14196 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14198 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14196 x._@.Mathlib.Data.Set.Finite._hyg.14198)] [_inst_5 : Order.Coframe.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
 Case conversion may be inaccurate. Consider using '#align infi_supr_of_antitone Set.infᵢ_supᵢ_of_antitoneₓ'. -/
 theorem Set.infᵢ_supᵢ_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Coframe α] {f : ι → ι' → α} (hf : ∀ i, Antitone (f i)) :
@@ -2264,7 +2276,7 @@ theorem Set.infᵢ_supᵢ_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u3} α)}, (forall (i : ι), Monotone.{u2, u3} ι' (Set.{u3} α) _inst_2 (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.completeBooleanAlgebra.{u3} α))))))) (s i)) -> (Eq.{succ u3} (Set.{u3} α) (Set.unionᵢ.{u3, succ u2} α ι' (fun (j : ι') => Set.interᵢ.{u3, succ u1} α ι (fun (i : ι) => s i j))) (Set.interᵢ.{u3, succ u1} α ι (fun (i : ι) => Set.unionᵢ.{u3, succ u2} α ι' (fun (j : ι') => s i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.13805 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13807 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13805 x._@.Mathlib.Data.Set.Finite._hyg.13807)] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Monotone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.unionᵢ.{u1, succ u2} α ι' (fun (j : ι') => Set.interᵢ.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.interᵢ.{u1, succ u3} α ι (fun (i : ι) => Set.unionᵢ.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.14325 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14327 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14325 x._@.Mathlib.Data.Set.Finite._hyg.14327)] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Monotone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.unionᵢ.{u1, succ u2} α ι' (fun (j : ι') => Set.interᵢ.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.interᵢ.{u1, succ u3} α ι (fun (i : ι) => Set.unionᵢ.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
 Case conversion may be inaccurate. Consider using '#align set.Union_Inter_of_monotone Set.unionᵢ_interᵢ_of_monotoneₓ'. -/
 /-- An increasing union distributes over finite intersection. -/
 theorem unionᵢ_interᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [IsDirected ι' (· ≤ ·)]
@@ -2277,7 +2289,7 @@ theorem unionᵢ_interᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2)))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u3} α)}, (forall (i : ι), Antitone.{u2, u3} ι' (Set.{u3} α) _inst_2 (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.completeBooleanAlgebra.{u3} α))))))) (s i)) -> (Eq.{succ u3} (Set.{u3} α) (Set.unionᵢ.{u3, succ u2} α ι' (fun (j : ι') => Set.interᵢ.{u3, succ u1} α ι (fun (i : ι) => s i j))) (Set.interᵢ.{u3, succ u1} α ι (fun (i : ι) => Set.unionᵢ.{u3, succ u2} α ι' (fun (j : ι') => s i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.13927 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13929 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13927 x._@.Mathlib.Data.Set.Finite._hyg.13929))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Antitone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.unionᵢ.{u1, succ u2} α ι' (fun (j : ι') => Set.interᵢ.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.interᵢ.{u1, succ u3} α ι (fun (i : ι) => Set.unionᵢ.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.14447 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14449 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14447 x._@.Mathlib.Data.Set.Finite._hyg.14449))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Antitone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.unionᵢ.{u1, succ u2} α ι' (fun (j : ι') => Set.interᵢ.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.interᵢ.{u1, succ u3} α ι (fun (i : ι) => Set.unionᵢ.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
 Case conversion may be inaccurate. Consider using '#align set.Union_Inter_of_antitone Set.unionᵢ_interᵢ_of_antitoneₓ'. -/
 /-- A decreasing union distributes over finite intersection. -/
 theorem unionᵢ_interᵢ_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι']
@@ -2290,7 +2302,7 @@ theorem unionᵢ_interᵢ_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2)))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u3} α)}, (forall (i : ι), Monotone.{u2, u3} ι' (Set.{u3} α) _inst_2 (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.completeBooleanAlgebra.{u3} α))))))) (s i)) -> (Eq.{succ u3} (Set.{u3} α) (Set.interᵢ.{u3, succ u2} α ι' (fun (j : ι') => Set.unionᵢ.{u3, succ u1} α ι (fun (i : ι) => s i j))) (Set.unionᵢ.{u3, succ u1} α ι (fun (i : ι) => Set.interᵢ.{u3, succ u2} α ι' (fun (j : ι') => s i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.14049 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14051 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14049 x._@.Mathlib.Data.Set.Finite._hyg.14051))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Monotone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.interᵢ.{u1, succ u2} α ι' (fun (j : ι') => Set.unionᵢ.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.unionᵢ.{u1, succ u3} α ι (fun (i : ι) => Set.interᵢ.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.14569 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14571 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14569 x._@.Mathlib.Data.Set.Finite._hyg.14571))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Monotone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.interᵢ.{u1, succ u2} α ι' (fun (j : ι') => Set.unionᵢ.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.unionᵢ.{u1, succ u3} α ι (fun (i : ι) => Set.interᵢ.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
 Case conversion may be inaccurate. Consider using '#align set.Inter_Union_of_monotone Set.interᵢ_unionᵢ_of_monotoneₓ'. -/
 /-- An increasing intersection distributes over finite union. -/
 theorem interᵢ_unionᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι']
@@ -2303,7 +2315,7 @@ theorem interᵢ_unionᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u3} α)}, (forall (i : ι), Antitone.{u2, u3} ι' (Set.{u3} α) _inst_2 (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.completeBooleanAlgebra.{u3} α))))))) (s i)) -> (Eq.{succ u3} (Set.{u3} α) (Set.interᵢ.{u3, succ u2} α ι' (fun (j : ι') => Set.unionᵢ.{u3, succ u1} α ι (fun (i : ι) => s i j))) (Set.unionᵢ.{u3, succ u1} α ι (fun (i : ι) => Set.interᵢ.{u3, succ u2} α ι' (fun (j : ι') => s i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.14168 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14170 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14168 x._@.Mathlib.Data.Set.Finite._hyg.14170)] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Antitone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.interᵢ.{u1, succ u2} α ι' (fun (j : ι') => Set.unionᵢ.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.unionᵢ.{u1, succ u3} α ι (fun (i : ι) => Set.interᵢ.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.14688 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14690 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14688 x._@.Mathlib.Data.Set.Finite._hyg.14690)] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Antitone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.interᵢ.{u1, succ u2} α ι' (fun (j : ι') => Set.unionᵢ.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.unionᵢ.{u1, succ u3} α ι (fun (i : ι) => Set.interᵢ.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
 Case conversion may be inaccurate. Consider using '#align set.Inter_Union_of_antitone Set.interᵢ_unionᵢ_of_antitoneₓ'. -/
 /-- A decreasing intersection distributes over finite union. -/
 theorem interᵢ_unionᵢ_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [IsDirected ι' (· ≤ ·)]
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Mario Carneiro, Kyle Miller
 
 ! This file was ported from Lean 3 source module data.set.finite
-! leanprover-community/mathlib commit c941bb9426d62e266612b6d99e6c9fc93e7a1d07
+! leanprover-community/mathlib commit 52fa514ec337dd970d71d8de8d0fd68b455a1e54
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -2022,17 +2022,6 @@ theorem infinite_of_injective_forall_mem [Infinite α] {s : Set β} {f : α →
 #align set.infinite_of_injective_forall_mem Set.infinite_of_injective_forall_mem
 -/
 
-/- warning: set.infinite.exists_nat_lt -> Set.Infinite.exists_nat_lt is a dubious translation:
-lean 3 declaration is
-  forall {s : Set.{0} Nat}, (Set.Infinite.{0} Nat s) -> (forall (n : Nat), Exists.{1} Nat (fun (m : Nat) => Exists.{0} (Membership.Mem.{0, 0} Nat (Set.{0} Nat) (Set.hasMem.{0} Nat) m s) (fun (H : Membership.Mem.{0, 0} Nat (Set.{0} Nat) (Set.hasMem.{0} Nat) m s) => LT.lt.{0} Nat Nat.hasLt n m)))
-but is expected to have type
-  forall {s : Set.{0} Nat}, (Set.Infinite.{0} Nat s) -> (forall (n : Nat), Exists.{1} Nat (fun (m : Nat) => And (Membership.mem.{0, 0} Nat (Set.{0} Nat) (Set.instMembershipSet.{0} Nat) m s) (LT.lt.{0} Nat instLTNat n m)))
-Case conversion may be inaccurate. Consider using '#align set.infinite.exists_nat_lt Set.Infinite.exists_nat_ltₓ'. -/
-theorem Infinite.exists_nat_lt {s : Set ℕ} (hs : s.Infinite) (n : ℕ) : ∃ m ∈ s, n < m :=
-  let ⟨m, hm⟩ := (hs.diffₓ <| Set.finite_le_nat n).Nonempty
-  ⟨m, by simpa using hm⟩
-#align set.infinite.exists_nat_lt Set.Infinite.exists_nat_lt
-
 /- warning: set.infinite.exists_not_mem_finset -> Set.Infinite.exists_not_mem_finset is a dubious translation:
 lean 3 declaration is
   forall {α : Type.{u1}} {s : Set.{u1} α}, (Set.Infinite.{u1} α s) -> (forall (f : Finset.{u1} α), Exists.{succ u1} α (fun (a : α) => Exists.{0} (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) a s) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) a s) => Not (Membership.Mem.{u1, u1} α (Finset.{u1} α) (Finset.hasMem.{u1} α) a f))))
@@ -2062,6 +2051,25 @@ theorem not_injOn_infinite_finite_image {f : α → β} {s : Set α} (h_inf : s.
 /-! ### Order properties -/
 
 
+section Preorder
+
+variable [Preorder α] [Nonempty α] {s : Set α}
+
+theorem infinite_of_forall_exists_gt (h : ∀ a, ∃ b ∈ s, a < b) : s.Infinite :=
+  by
+  inhabit α
+  set f : ℕ → α := fun n => Nat.recOn n (h default).some fun n a => (h a).some
+  have hf : ∀ n, f n ∈ s := by rintro (_ | _) <;> exact (h _).choose_spec.some
+  refine' infinite_of_injective_forall_mem (strictMono_nat_of_lt_succ fun n => _).Injective hf
+  exact (h _).choose_spec.choose_spec
+#align set.infinite_of_forall_exists_gt Set.infinite_of_forall_exists_gt
+
+theorem infinite_of_forall_exists_lt (h : ∀ a, ∃ b ∈ s, b < a) : s.Infinite :=
+  @infinite_of_forall_exists_gt αᵒᵈ _ _ _ h
+#align set.infinite_of_forall_exists_lt Set.infinite_of_forall_exists_lt
+
+end Preorder
+
 #print Set.finite_isTop /-
 theorem finite_isTop (α : Type _) [PartialOrder α] : { x : α | IsTop x }.Finite :=
   (subsingleton_isTop α).Finite
Diff
@@ -180,9 +180,11 @@ protected theorem finite_or_infinite (s : Set α) : s.Finite ∨ s.Infinite :=
 #align set.finite_or_infinite Set.finite_or_infinite
 -/
 
+#print Set.infinite_or_finite /-
 protected theorem infinite_or_finite (s : Set α) : s.Infinite ∨ s.Finite :=
   em' _
 #align set.infinite_or_finite Set.infinite_or_finite
+-/
 
 /-! ### Basic properties of `set.finite.to_finset` -/
 
@@ -1345,26 +1347,35 @@ protected theorem Finite.prod (hs : s.Finite) (ht : t.Finite) : (s ×ˢ t : Set
 -/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print Set.Finite.of_prod_left /-
 theorem Finite.of_prod_left (h : (s ×ˢ t : Set (α × β)).Finite) : t.Nonempty → s.Finite :=
   fun ⟨b, hb⟩ => (h.image Prod.fst).Subset fun a ha => ⟨(a, b), ⟨ha, hb⟩, rfl⟩
 #align set.finite.of_prod_left Set.Finite.of_prod_left
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print Set.Finite.of_prod_right /-
 theorem Finite.of_prod_right (h : (s ×ˢ t : Set (α × β)).Finite) : s.Nonempty → t.Finite :=
   fun ⟨a, ha⟩ => (h.image Prod.snd).Subset fun b hb => ⟨(a, b), ⟨ha, hb⟩, rfl⟩
 #align set.finite.of_prod_right Set.Finite.of_prod_right
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print Set.Infinite.prod_left /-
 protected theorem Infinite.prod_left (hs : s.Infinite) (ht : t.Nonempty) : (s ×ˢ t).Infinite :=
   fun h => hs <| h.of_prod_left ht
 #align set.infinite.prod_left Set.Infinite.prod_left
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print Set.Infinite.prod_right /-
 protected theorem Infinite.prod_right (ht : t.Infinite) (hs : s.Nonempty) : (s ×ˢ t).Infinite :=
   fun h => ht <| h.of_prod_right hs
 #align set.infinite.prod_right Set.Infinite.prod_right
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print Set.infinite_prod /-
 protected theorem infinite_prod :
     (s ×ˢ t).Infinite ↔ s.Infinite ∧ t.Nonempty ∨ t.Infinite ∧ s.Nonempty :=
   by
@@ -1376,11 +1387,14 @@ protected theorem infinite_prod :
     · exact h.1.prodLeft h.2
     · exact h.1.prodRight h.2
 #align set.infinite_prod Set.infinite_prod
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print Set.finite_prod /-
 theorem finite_prod : (s ×ˢ t).Finite ↔ (s.Finite ∨ t = ∅) ∧ (t.Finite ∨ s = ∅) := by
   simp only [← not_infinite, Set.infinite_prod, not_or, not_and_or, not_nonempty_iff_eq_empty]
 #align set.finite_prod Set.finite_prod
+-/
 
 #print Set.Finite.offDiag /-
 protected theorem Finite.offDiag (hs : s.Finite) : s.offDiag.Finite := by
@@ -1390,18 +1404,14 @@ protected theorem Finite.offDiag (hs : s.Finite) : s.offDiag.Finite := by
 #align set.finite.off_diag Set.Finite.offDiag
 -/
 
-/- warning: set.finite.image2 -> Set.Finite.image2 is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {s : Set.{u1} α} {t : Set.{u2} β} (f : α -> β -> γ), (Set.Finite.{u1} α s) -> (Set.Finite.{u2} β t) -> (Set.Finite.{u3} γ (Set.image2.{u1, u2, u3} α β γ f s t))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} (s : α -> β -> γ) {t : Set.{u1} α} {f : Set.{u2} β}, (Set.Finite.{u1} α t) -> (Set.Finite.{u2} β f) -> (Set.Finite.{u3} γ (Set.image2.{u1, u2, u3} α β γ s t f))
-Case conversion may be inaccurate. Consider using '#align set.finite.image2 Set.Finite.image2ₓ'. -/
+#print Set.Finite.image2 /-
 protected theorem Finite.image2 (f : α → β → γ) (hs : s.Finite) (ht : t.Finite) :
     (image2 f s t).Finite := by
   cases hs
   cases ht
   apply to_finite
 #align set.finite.image2 Set.Finite.image2
+-/
 
 end Prod
 
@@ -1923,9 +1933,11 @@ theorem infinite_union {s t : Set α} : (s ∪ t).Infinite ↔ s.Infinite ∨ t.
   simp only [Set.Infinite, finite_union, not_and_or]
 #align set.infinite_union Set.infinite_union
 
+#print Set.Infinite.of_image /-
 theorem Infinite.of_image (f : α → β) {s : Set α} (hs : (f '' s).Infinite) : s.Infinite :=
   mt (Finite.image f) hs
 #align set.infinite.of_image Set.Infinite.of_image
+-/
 
 #print Set.infinite_image_iff /-
 theorem infinite_image_iff {s : Set α} {f : α → β} (hi : InjOn f s) :
@@ -1943,16 +1955,21 @@ section Image2
 
 variable {f : α → β → γ} {s : Set α} {t : Set β} {a : α} {b : β}
 
+#print Set.Infinite.image2_left /-
 protected theorem Infinite.image2_left (hs : s.Infinite) (hb : b ∈ t)
     (hf : InjOn (fun a => f a b) s) : (image2 f s t).Infinite :=
   (hs.image hf).mono <| image_subset_image2_left hb
 #align set.infinite.image2_left Set.Infinite.image2_left
+-/
 
+#print Set.Infinite.image2_right /-
 protected theorem Infinite.image2_right (ht : t.Infinite) (ha : a ∈ s) (hf : InjOn (f a) t) :
     (image2 f s t).Infinite :=
   (ht.image hf).mono <| image_subset_image2_right ha
 #align set.infinite.image2_right Set.Infinite.image2_right
+-/
 
+#print Set.infinite_image2 /-
 theorem infinite_image2 (hfs : ∀ b ∈ t, InjOn (fun a => f a b) s) (hft : ∀ a ∈ s, InjOn (f a) t) :
     (image2 f s t).Infinite ↔ s.Infinite ∧ t.Nonempty ∨ t.Infinite ∧ s.Nonempty :=
   by
@@ -1963,6 +1980,7 @@ theorem infinite_image2 (hfs : ∀ b ∈ t, InjOn (fun a => f a b) s) (hft : ∀
     · exact hs.image2_left hb (hfs _ hb)
     · exact ht.image2_right ha (hft _ ha)
 #align set.infinite_image2 Set.infinite_image2
+-/
 
 end Image2
 
@@ -2134,7 +2152,7 @@ theorem exists_upper_bound_image [hα : Nonempty α] [LinearOrder β] (s : Set 
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1))] [_inst_4 : Order.Frame.{u3} α] {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) -> (Monotone.{u2, u3} ι' α _inst_1 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4)))) (f i))) -> (Eq.{succ u3} α (supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => infᵢ.{u3, 0} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => f i j)))) (infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => infᵢ.{u3, 0} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => f i j))))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.11758 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.11760 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.11758 x._@.Mathlib.Data.Set.Finite._hyg.11760)] [_inst_4 : Order.Frame.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Monotone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => infᵢ.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => infᵢ.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.12523 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.12525 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.12523 x._@.Mathlib.Data.Set.Finite._hyg.12525)] [_inst_4 : Order.Frame.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Monotone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => infᵢ.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => infᵢ.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
 Case conversion may be inaccurate. Consider using '#align set.finite.supr_binfi_of_monotone Set.Finite.supᵢ_binfᵢ_of_monotoneₓ'. -/
 theorem Finite.supᵢ_binfᵢ_of_monotone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Frame α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
@@ -2154,7 +2172,7 @@ theorem Finite.supᵢ_binfᵢ_of_monotone {ι ι' α : Type _} [Preorder ι'] [N
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1)))] [_inst_4 : Order.Frame.{u3} α] {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) -> (Antitone.{u2, u3} ι' α _inst_1 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4)))) (f i))) -> (Eq.{succ u3} α (supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => infᵢ.{u3, 0} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => f i j)))) (infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => infᵢ.{u3, 0} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => f i j))))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.11980 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.11982 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.11980 x._@.Mathlib.Data.Set.Finite._hyg.11982))] [_inst_4 : Order.Frame.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Antitone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => infᵢ.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => infᵢ.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.12745 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.12747 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.12745 x._@.Mathlib.Data.Set.Finite._hyg.12747))] [_inst_4 : Order.Frame.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Antitone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => infᵢ.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => infᵢ.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
 Case conversion may be inaccurate. Consider using '#align set.finite.supr_binfi_of_antitone Set.Finite.supᵢ_binfᵢ_of_antitoneₓ'. -/
 theorem Finite.supᵢ_binfᵢ_of_antitone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Frame α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
@@ -2166,7 +2184,7 @@ theorem Finite.supᵢ_binfᵢ_of_antitone {ι ι' α : Type _} [Preorder ι'] [N
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1)))] [_inst_4 : Order.Coframe.{u3} α] {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) -> (Monotone.{u2, u3} ι' α _inst_1 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4)))) (f i))) -> (Eq.{succ u3} α (infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => supᵢ.{u3, 0} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => f i j)))) (supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => supᵢ.{u3, 0} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => f i j))))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.12160 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.12162 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.12160 x._@.Mathlib.Data.Set.Finite._hyg.12162))] [_inst_4 : Order.Coframe.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Monotone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => supᵢ.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => supᵢ.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.12925 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.12927 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.12925 x._@.Mathlib.Data.Set.Finite._hyg.12927))] [_inst_4 : Order.Coframe.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Monotone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => supᵢ.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => supᵢ.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
 Case conversion may be inaccurate. Consider using '#align set.finite.infi_bsupr_of_monotone Set.Finite.infᵢ_bsupᵢ_of_monotoneₓ'. -/
 theorem Finite.infᵢ_bsupᵢ_of_monotone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Coframe α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
@@ -2178,7 +2196,7 @@ theorem Finite.infᵢ_bsupᵢ_of_monotone {ι ι' α : Type _} [Preorder ι'] [N
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1))] [_inst_4 : Order.Coframe.{u3} α] {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) -> (Antitone.{u2, u3} ι' α _inst_1 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4)))) (f i))) -> (Eq.{succ u3} α (infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => supᵢ.{u3, 0} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => f i j)))) (supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => supᵢ.{u3, 0} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => f i j))))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.12332 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.12334 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.12332 x._@.Mathlib.Data.Set.Finite._hyg.12334)] [_inst_4 : Order.Coframe.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Antitone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => supᵢ.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => supᵢ.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.13097 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13099 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.13097 x._@.Mathlib.Data.Set.Finite._hyg.13099)] [_inst_4 : Order.Coframe.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Antitone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => supᵢ.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => supᵢ.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
 Case conversion may be inaccurate. Consider using '#align set.finite.infi_bsupr_of_antitone Set.Finite.infᵢ_bsupᵢ_of_antitoneₓ'. -/
 theorem Finite.infᵢ_bsupᵢ_of_antitone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Coframe α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
@@ -2190,7 +2208,7 @@ theorem Finite.infᵢ_bsupᵢ_of_antitone {ι ι' α : Type _} [Preorder ι'] [N
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2))] [_inst_5 : Order.Frame.{u3} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u3} ι' α _inst_2 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5)))) (f i)) -> (Eq.{succ u3} α (supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => f i j))) (infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => f i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.12504 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.12506 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.12504 x._@.Mathlib.Data.Set.Finite._hyg.12506)] [_inst_5 : Order.Frame.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.13269 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13271 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13269 x._@.Mathlib.Data.Set.Finite._hyg.13271)] [_inst_5 : Order.Frame.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
 Case conversion may be inaccurate. Consider using '#align supr_infi_of_monotone Set.supᵢ_infᵢ_of_monotoneₓ'. -/
 theorem Set.supᵢ_infᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Frame α] {f : ι → ι' → α} (hf : ∀ i, Monotone (f i)) :
@@ -2202,7 +2220,7 @@ theorem Set.supᵢ_infᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2)))] [_inst_5 : Order.Frame.{u3} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u3} ι' α _inst_2 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5)))) (f i)) -> (Eq.{succ u3} α (supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => f i j))) (infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => f i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.12641 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.12643 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.12641 x._@.Mathlib.Data.Set.Finite._hyg.12643))] [_inst_5 : Order.Frame.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.13406 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13408 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13406 x._@.Mathlib.Data.Set.Finite._hyg.13408))] [_inst_5 : Order.Frame.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
 Case conversion may be inaccurate. Consider using '#align supr_infi_of_antitone Set.supᵢ_infᵢ_of_antitoneₓ'. -/
 theorem Set.supᵢ_infᵢ_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Frame α] {f : ι → ι' → α} (hf : ∀ i, Antitone (f i)) :
@@ -2214,7 +2232,7 @@ theorem Set.supᵢ_infᵢ_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2)))] [_inst_5 : Order.Coframe.{u3} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u3} ι' α _inst_2 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5)))) (f i)) -> (Eq.{succ u3} α (infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => f i j))) (supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => f i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.12779 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.12781 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.12779 x._@.Mathlib.Data.Set.Finite._hyg.12781))] [_inst_5 : Order.Coframe.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.13544 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13546 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13544 x._@.Mathlib.Data.Set.Finite._hyg.13546))] [_inst_5 : Order.Coframe.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
 Case conversion may be inaccurate. Consider using '#align infi_supr_of_monotone Set.infᵢ_supᵢ_of_monotoneₓ'. -/
 theorem Set.infᵢ_supᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Coframe α] {f : ι → ι' → α} (hf : ∀ i, Monotone (f i)) :
@@ -2226,7 +2244,7 @@ theorem Set.infᵢ_supᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2))] [_inst_5 : Order.Coframe.{u3} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u3} ι' α _inst_2 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5)))) (f i)) -> (Eq.{succ u3} α (infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => f i j))) (supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => f i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.12911 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.12913 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.12911 x._@.Mathlib.Data.Set.Finite._hyg.12913)] [_inst_5 : Order.Coframe.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.13676 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13678 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13676 x._@.Mathlib.Data.Set.Finite._hyg.13678)] [_inst_5 : Order.Coframe.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
 Case conversion may be inaccurate. Consider using '#align infi_supr_of_antitone Set.infᵢ_supᵢ_of_antitoneₓ'. -/
 theorem Set.infᵢ_supᵢ_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Coframe α] {f : ι → ι' → α} (hf : ∀ i, Antitone (f i)) :
@@ -2238,7 +2256,7 @@ theorem Set.infᵢ_supᵢ_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u3} α)}, (forall (i : ι), Monotone.{u2, u3} ι' (Set.{u3} α) _inst_2 (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.completeBooleanAlgebra.{u3} α))))))) (s i)) -> (Eq.{succ u3} (Set.{u3} α) (Set.unionᵢ.{u3, succ u2} α ι' (fun (j : ι') => Set.interᵢ.{u3, succ u1} α ι (fun (i : ι) => s i j))) (Set.interᵢ.{u3, succ u1} α ι (fun (i : ι) => Set.unionᵢ.{u3, succ u2} α ι' (fun (j : ι') => s i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.13040 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13042 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13040 x._@.Mathlib.Data.Set.Finite._hyg.13042)] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Monotone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.unionᵢ.{u1, succ u2} α ι' (fun (j : ι') => Set.interᵢ.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.interᵢ.{u1, succ u3} α ι (fun (i : ι) => Set.unionᵢ.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.13805 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13807 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13805 x._@.Mathlib.Data.Set.Finite._hyg.13807)] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Monotone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.unionᵢ.{u1, succ u2} α ι' (fun (j : ι') => Set.interᵢ.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.interᵢ.{u1, succ u3} α ι (fun (i : ι) => Set.unionᵢ.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
 Case conversion may be inaccurate. Consider using '#align set.Union_Inter_of_monotone Set.unionᵢ_interᵢ_of_monotoneₓ'. -/
 /-- An increasing union distributes over finite intersection. -/
 theorem unionᵢ_interᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [IsDirected ι' (· ≤ ·)]
@@ -2251,7 +2269,7 @@ theorem unionᵢ_interᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2)))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u3} α)}, (forall (i : ι), Antitone.{u2, u3} ι' (Set.{u3} α) _inst_2 (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.completeBooleanAlgebra.{u3} α))))))) (s i)) -> (Eq.{succ u3} (Set.{u3} α) (Set.unionᵢ.{u3, succ u2} α ι' (fun (j : ι') => Set.interᵢ.{u3, succ u1} α ι (fun (i : ι) => s i j))) (Set.interᵢ.{u3, succ u1} α ι (fun (i : ι) => Set.unionᵢ.{u3, succ u2} α ι' (fun (j : ι') => s i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.13162 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13164 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13162 x._@.Mathlib.Data.Set.Finite._hyg.13164))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Antitone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.unionᵢ.{u1, succ u2} α ι' (fun (j : ι') => Set.interᵢ.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.interᵢ.{u1, succ u3} α ι (fun (i : ι) => Set.unionᵢ.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.13927 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13929 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13927 x._@.Mathlib.Data.Set.Finite._hyg.13929))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Antitone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.unionᵢ.{u1, succ u2} α ι' (fun (j : ι') => Set.interᵢ.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.interᵢ.{u1, succ u3} α ι (fun (i : ι) => Set.unionᵢ.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
 Case conversion may be inaccurate. Consider using '#align set.Union_Inter_of_antitone Set.unionᵢ_interᵢ_of_antitoneₓ'. -/
 /-- A decreasing union distributes over finite intersection. -/
 theorem unionᵢ_interᵢ_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι']
@@ -2264,7 +2282,7 @@ theorem unionᵢ_interᵢ_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2)))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u3} α)}, (forall (i : ι), Monotone.{u2, u3} ι' (Set.{u3} α) _inst_2 (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.completeBooleanAlgebra.{u3} α))))))) (s i)) -> (Eq.{succ u3} (Set.{u3} α) (Set.interᵢ.{u3, succ u2} α ι' (fun (j : ι') => Set.unionᵢ.{u3, succ u1} α ι (fun (i : ι) => s i j))) (Set.unionᵢ.{u3, succ u1} α ι (fun (i : ι) => Set.interᵢ.{u3, succ u2} α ι' (fun (j : ι') => s i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.13284 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13286 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13284 x._@.Mathlib.Data.Set.Finite._hyg.13286))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Monotone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.interᵢ.{u1, succ u2} α ι' (fun (j : ι') => Set.unionᵢ.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.unionᵢ.{u1, succ u3} α ι (fun (i : ι) => Set.interᵢ.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.14049 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14051 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14049 x._@.Mathlib.Data.Set.Finite._hyg.14051))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Monotone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.interᵢ.{u1, succ u2} α ι' (fun (j : ι') => Set.unionᵢ.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.unionᵢ.{u1, succ u3} α ι (fun (i : ι) => Set.interᵢ.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
 Case conversion may be inaccurate. Consider using '#align set.Inter_Union_of_monotone Set.interᵢ_unionᵢ_of_monotoneₓ'. -/
 /-- An increasing intersection distributes over finite union. -/
 theorem interᵢ_unionᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι']
@@ -2277,7 +2295,7 @@ theorem interᵢ_unionᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u3} α)}, (forall (i : ι), Antitone.{u2, u3} ι' (Set.{u3} α) _inst_2 (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.completeBooleanAlgebra.{u3} α))))))) (s i)) -> (Eq.{succ u3} (Set.{u3} α) (Set.interᵢ.{u3, succ u2} α ι' (fun (j : ι') => Set.unionᵢ.{u3, succ u1} α ι (fun (i : ι) => s i j))) (Set.unionᵢ.{u3, succ u1} α ι (fun (i : ι) => Set.interᵢ.{u3, succ u2} α ι' (fun (j : ι') => s i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.13403 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13405 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13403 x._@.Mathlib.Data.Set.Finite._hyg.13405)] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Antitone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.interᵢ.{u1, succ u2} α ι' (fun (j : ι') => Set.unionᵢ.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.unionᵢ.{u1, succ u3} α ι (fun (i : ι) => Set.interᵢ.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.14168 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.14170 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.14168 x._@.Mathlib.Data.Set.Finite._hyg.14170)] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Antitone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.interᵢ.{u1, succ u2} α ι' (fun (j : ι') => Set.unionᵢ.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.unionᵢ.{u1, succ u3} α ι (fun (i : ι) => Set.interᵢ.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
 Case conversion may be inaccurate. Consider using '#align set.Inter_Union_of_antitone Set.interᵢ_unionᵢ_of_antitoneₓ'. -/
 /-- A decreasing intersection distributes over finite union. -/
 theorem interᵢ_unionᵢ_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [IsDirected ι' (· ≤ ·)]
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Mario Carneiro, Kyle Miller
 
 ! This file was ported from Lean 3 source module data.set.finite
-! leanprover-community/mathlib commit 517cc149e0b515d2893baa376226ed10feb319c7
+! leanprover-community/mathlib commit c941bb9426d62e266612b6d99e6c9fc93e7a1d07
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -168,6 +168,11 @@ theorem not_infinite {s : Set α} : ¬s.Infinite ↔ s.Finite :=
 #align set.not_infinite Set.not_infinite
 -/
 
+alias not_infinite ↔ _ Finite.not_infinite
+#align set.finite.not_infinite Set.Finite.not_infinite
+
+attribute [simp] Finite.not_infinite
+
 #print Set.finite_or_infinite /-
 /-- See also `finite_or_infinite`, `fintype_or_infinite`. -/
 protected theorem finite_or_infinite (s : Set α) : s.Finite ∨ s.Infinite :=
@@ -175,6 +180,10 @@ protected theorem finite_or_infinite (s : Set α) : s.Finite ∨ s.Infinite :=
 #align set.finite_or_infinite Set.finite_or_infinite
 -/
 
+protected theorem infinite_or_finite (s : Set α) : s.Infinite ∨ s.Finite :=
+  em' _
+#align set.infinite_or_finite Set.infinite_or_finite
+
 /-! ### Basic properties of `set.finite.to_finset` -/
 
 
@@ -1211,6 +1220,14 @@ theorem finite_empty : (∅ : Set α).Finite :=
 #align set.finite_empty Set.finite_empty
 -/
 
+#print Set.Infinite.nonempty /-
+protected theorem Infinite.nonempty {s : Set α} (h : s.Infinite) : s.Nonempty :=
+  nonempty_iff_ne_empty.2 <| by
+    rintro rfl
+    exact h finite_empty
+#align set.infinite.nonempty Set.Infinite.nonempty
+-/
+
 #print Set.finite_singleton /-
 @[simp]
 theorem finite_singleton (a : α) : ({a} : Set α).Finite :=
@@ -1313,32 +1330,80 @@ theorem finite_le_nat (n : ℕ) : Set.Finite { i | i ≤ n } :=
 #align set.finite_le_nat Set.finite_le_nat
 -/
 
+section Prod
+
+variable {s : Set α} {t : Set β}
+
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 #print Set.Finite.prod /-
-theorem Finite.prod {s : Set α} {t : Set β} (hs : s.Finite) (ht : t.Finite) :
-    (s ×ˢ t : Set (α × β)).Finite := by
+protected theorem Finite.prod (hs : s.Finite) (ht : t.Finite) : (s ×ˢ t : Set (α × β)).Finite :=
+  by
   cases hs
   cases ht
   apply to_finite
 #align set.finite.prod Set.Finite.prod
 -/
 
+/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+theorem Finite.of_prod_left (h : (s ×ˢ t : Set (α × β)).Finite) : t.Nonempty → s.Finite :=
+  fun ⟨b, hb⟩ => (h.image Prod.fst).Subset fun a ha => ⟨(a, b), ⟨ha, hb⟩, rfl⟩
+#align set.finite.of_prod_left Set.Finite.of_prod_left
+
+/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+theorem Finite.of_prod_right (h : (s ×ˢ t : Set (α × β)).Finite) : s.Nonempty → t.Finite :=
+  fun ⟨a, ha⟩ => (h.image Prod.snd).Subset fun b hb => ⟨(a, b), ⟨ha, hb⟩, rfl⟩
+#align set.finite.of_prod_right Set.Finite.of_prod_right
+
+/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+protected theorem Infinite.prod_left (hs : s.Infinite) (ht : t.Nonempty) : (s ×ˢ t).Infinite :=
+  fun h => hs <| h.of_prod_left ht
+#align set.infinite.prod_left Set.Infinite.prod_left
+
+/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+protected theorem Infinite.prod_right (ht : t.Infinite) (hs : s.Nonempty) : (s ×ˢ t).Infinite :=
+  fun h => ht <| h.of_prod_right hs
+#align set.infinite.prod_right Set.Infinite.prod_right
+
+/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+protected theorem infinite_prod :
+    (s ×ˢ t).Infinite ↔ s.Infinite ∧ t.Nonempty ∨ t.Infinite ∧ s.Nonempty :=
+  by
+  refine' ⟨fun h => _, _⟩
+  · simp_rw [Set.Infinite, and_comm' ¬_, ← not_imp]
+    by_contra'
+    exact h ((this.1 h.nonempty.snd).Prod <| this.2 h.nonempty.fst)
+  · rintro (h | h)
+    · exact h.1.prodLeft h.2
+    · exact h.1.prodRight h.2
+#align set.infinite_prod Set.infinite_prod
+
+/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+theorem finite_prod : (s ×ˢ t).Finite ↔ (s.Finite ∨ t = ∅) ∧ (t.Finite ∨ s = ∅) := by
+  simp only [← not_infinite, Set.infinite_prod, not_or, not_and_or, not_nonempty_iff_eq_empty]
+#align set.finite_prod Set.finite_prod
+
 #print Set.Finite.offDiag /-
-theorem Finite.offDiag {s : Set α} (hs : s.Finite) : s.offDiag.Finite := by
+protected theorem Finite.offDiag (hs : s.Finite) : s.offDiag.Finite := by
   classical
     cases hs
     apply Set.toFinite
 #align set.finite.off_diag Set.Finite.offDiag
 -/
 
-#print Set.Finite.image2 /-
-theorem Finite.image2 (f : α → β → γ) {s : Set α} {t : Set β} (hs : s.Finite) (ht : t.Finite) :
+/- warning: set.finite.image2 -> Set.Finite.image2 is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {s : Set.{u1} α} {t : Set.{u2} β} (f : α -> β -> γ), (Set.Finite.{u1} α s) -> (Set.Finite.{u2} β t) -> (Set.Finite.{u3} γ (Set.image2.{u1, u2, u3} α β γ f s t))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} (s : α -> β -> γ) {t : Set.{u1} α} {f : Set.{u2} β}, (Set.Finite.{u1} α t) -> (Set.Finite.{u2} β f) -> (Set.Finite.{u3} γ (Set.image2.{u1, u2, u3} α β γ s t f))
+Case conversion may be inaccurate. Consider using '#align set.finite.image2 Set.Finite.image2ₓ'. -/
+protected theorem Finite.image2 (f : α → β → γ) (hs : s.Finite) (ht : t.Finite) :
     (image2 f s t).Finite := by
   cases hs
   cases ht
   apply to_finite
 #align set.finite.image2 Set.Finite.image2
--/
+
+end Prod
 
 #print Set.Finite.seq /-
 theorem Finite.seq {f : Set (α → β)} {s : Set α} (hf : f.Finite) (hs : s.Finite) :
@@ -1811,13 +1876,6 @@ theorem Infinite.exists_subset_card_eq {s : Set α} (hs : s.Infinite) (n : ℕ)
 #align set.infinite.exists_subset_card_eq Set.Infinite.exists_subset_card_eq
 -/
 
-#print Set.Infinite.nonempty /-
-theorem Infinite.nonempty {s : Set α} (h : s.Infinite) : s.Nonempty :=
-  let a := Infinite.natEmbedding s h 37
-  ⟨a.1, a.2⟩
-#align set.infinite.nonempty Set.Infinite.nonempty
--/
-
 /- warning: set.infinite_of_finite_compl -> Set.infinite_of_finite_compl is a dubious translation:
 lean 3 declaration is
   forall {α : Type.{u1}} [_inst_1 : Infinite.{succ u1} α] {s : Set.{u1} α}, (Set.Finite.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) -> (Set.Infinite.{u1} α s)
@@ -1865,11 +1923,9 @@ theorem infinite_union {s t : Set α} : (s ∪ t).Infinite ↔ s.Infinite ∨ t.
   simp only [Set.Infinite, finite_union, not_and_or]
 #align set.infinite_union Set.infinite_union
 
-#print Set.infinite_of_infinite_image /-
-theorem infinite_of_infinite_image (f : α → β) {s : Set α} (hs : (f '' s).Infinite) : s.Infinite :=
+theorem Infinite.of_image (f : α → β) {s : Set α} (hs : (f '' s).Infinite) : s.Infinite :=
   mt (Finite.image f) hs
-#align set.infinite_of_infinite_image Set.infinite_of_infinite_image
--/
+#align set.infinite.of_image Set.Infinite.of_image
 
 #print Set.infinite_image_iff /-
 theorem infinite_image_iff {s : Set α} {f : α → β} (hi : InjOn f s) :
@@ -1878,6 +1934,38 @@ theorem infinite_image_iff {s : Set α} {f : α → β} (hi : InjOn f s) :
 #align set.infinite_image_iff Set.infinite_image_iff
 -/
 
+alias infinite_image_iff ↔ _ infinite.image
+#align set.infinite.image Set.Infinite.image
+
+attribute [protected] infinite.image
+
+section Image2
+
+variable {f : α → β → γ} {s : Set α} {t : Set β} {a : α} {b : β}
+
+protected theorem Infinite.image2_left (hs : s.Infinite) (hb : b ∈ t)
+    (hf : InjOn (fun a => f a b) s) : (image2 f s t).Infinite :=
+  (hs.image hf).mono <| image_subset_image2_left hb
+#align set.infinite.image2_left Set.Infinite.image2_left
+
+protected theorem Infinite.image2_right (ht : t.Infinite) (ha : a ∈ s) (hf : InjOn (f a) t) :
+    (image2 f s t).Infinite :=
+  (ht.image hf).mono <| image_subset_image2_right ha
+#align set.infinite.image2_right Set.Infinite.image2_right
+
+theorem infinite_image2 (hfs : ∀ b ∈ t, InjOn (fun a => f a b) s) (hft : ∀ a ∈ s, InjOn (f a) t) :
+    (image2 f s t).Infinite ↔ s.Infinite ∧ t.Nonempty ∨ t.Infinite ∧ s.Nonempty :=
+  by
+  refine' ⟨fun h => Set.infinite_prod.1 _, _⟩
+  · rw [← image_uncurry_prod] at h
+    exact h.of_image _
+  · rintro (⟨hs, b, hb⟩ | ⟨ht, a, ha⟩)
+    · exact hs.image2_left hb (hfs _ hb)
+    · exact ht.image2_right ha (hft _ ha)
+#align set.infinite_image2 Set.infinite_image2
+
+end Image2
+
 #print Set.infinite_of_injOn_mapsTo /-
 theorem infinite_of_injOn_mapsTo {s : Set α} {t : Set β} {f : α → β} (hi : InjOn f s)
     (hm : MapsTo f s t) (hs : s.Infinite) : t.Infinite :=
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Mario Carneiro, Kyle Miller
 
 ! This file was ported from Lean 3 source module data.set.finite
-! leanprover-community/mathlib commit 327c3c0d9232d80e250dc8f65e7835b82b266ea5
+! leanprover-community/mathlib commit 517cc149e0b515d2893baa376226ed10feb319c7
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -381,7 +381,6 @@ protected theorem toFinset_empty (h : (∅ : Set α).Finite) : h.toFinset = ∅
 -/
 
 #print Set.Finite.toFinset_univ /-
--- Note: Not `simp` because `set.finite.to_finset_set_of` already proves it
 @[simp]
 protected theorem toFinset_univ [Fintype α] (h : (Set.univ : Set α).Finite) :
     h.toFinset = Finset.univ := by
Diff
@@ -2047,7 +2047,7 @@ theorem exists_upper_bound_image [hα : Nonempty α] [LinearOrder β] (s : Set 
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1))] [_inst_4 : Order.Frame.{u3} α] {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) -> (Monotone.{u2, u3} ι' α _inst_1 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4)))) (f i))) -> (Eq.{succ u3} α (supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => infᵢ.{u3, 0} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => f i j)))) (infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => infᵢ.{u3, 0} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => f i j))))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.11736 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.11738 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.11736 x._@.Mathlib.Data.Set.Finite._hyg.11738)] [_inst_4 : Order.Frame.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Monotone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => infᵢ.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => infᵢ.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.11758 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.11760 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.11758 x._@.Mathlib.Data.Set.Finite._hyg.11760)] [_inst_4 : Order.Frame.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Monotone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => infᵢ.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => infᵢ.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
 Case conversion may be inaccurate. Consider using '#align set.finite.supr_binfi_of_monotone Set.Finite.supᵢ_binfᵢ_of_monotoneₓ'. -/
 theorem Finite.supᵢ_binfᵢ_of_monotone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Frame α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
@@ -2067,7 +2067,7 @@ theorem Finite.supᵢ_binfᵢ_of_monotone {ι ι' α : Type _} [Preorder ι'] [N
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1)))] [_inst_4 : Order.Frame.{u3} α] {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) -> (Antitone.{u2, u3} ι' α _inst_1 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4)))) (f i))) -> (Eq.{succ u3} α (supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => infᵢ.{u3, 0} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => f i j)))) (infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => infᵢ.{u3, 0} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => f i j))))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.11958 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.11960 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.11958 x._@.Mathlib.Data.Set.Finite._hyg.11960))] [_inst_4 : Order.Frame.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Antitone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => infᵢ.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => infᵢ.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.11980 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.11982 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.11980 x._@.Mathlib.Data.Set.Finite._hyg.11982))] [_inst_4 : Order.Frame.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Antitone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => infᵢ.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => infᵢ.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
 Case conversion may be inaccurate. Consider using '#align set.finite.supr_binfi_of_antitone Set.Finite.supᵢ_binfᵢ_of_antitoneₓ'. -/
 theorem Finite.supᵢ_binfᵢ_of_antitone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Frame α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
@@ -2079,7 +2079,7 @@ theorem Finite.supᵢ_binfᵢ_of_antitone {ι ι' α : Type _} [Preorder ι'] [N
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1)))] [_inst_4 : Order.Coframe.{u3} α] {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) -> (Monotone.{u2, u3} ι' α _inst_1 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4)))) (f i))) -> (Eq.{succ u3} α (infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => supᵢ.{u3, 0} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => f i j)))) (supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => supᵢ.{u3, 0} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => f i j))))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.12138 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.12140 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.12138 x._@.Mathlib.Data.Set.Finite._hyg.12140))] [_inst_4 : Order.Coframe.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Monotone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => supᵢ.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => supᵢ.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.12160 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.12162 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.12160 x._@.Mathlib.Data.Set.Finite._hyg.12162))] [_inst_4 : Order.Coframe.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Monotone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => supᵢ.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => supᵢ.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
 Case conversion may be inaccurate. Consider using '#align set.finite.infi_bsupr_of_monotone Set.Finite.infᵢ_bsupᵢ_of_monotoneₓ'. -/
 theorem Finite.infᵢ_bsupᵢ_of_monotone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Coframe α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
@@ -2091,7 +2091,7 @@ theorem Finite.infᵢ_bsupᵢ_of_monotone {ι ι' α : Type _} [Preorder ι'] [N
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1))] [_inst_4 : Order.Coframe.{u3} α] {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) -> (Antitone.{u2, u3} ι' α _inst_1 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4)))) (f i))) -> (Eq.{succ u3} α (infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => supᵢ.{u3, 0} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => f i j)))) (supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => supᵢ.{u3, 0} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => f i j))))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.12310 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.12312 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.12310 x._@.Mathlib.Data.Set.Finite._hyg.12312)] [_inst_4 : Order.Coframe.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Antitone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => supᵢ.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => supᵢ.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.12332 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.12334 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.12332 x._@.Mathlib.Data.Set.Finite._hyg.12334)] [_inst_4 : Order.Coframe.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Antitone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => supᵢ.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => supᵢ.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
 Case conversion may be inaccurate. Consider using '#align set.finite.infi_bsupr_of_antitone Set.Finite.infᵢ_bsupᵢ_of_antitoneₓ'. -/
 theorem Finite.infᵢ_bsupᵢ_of_antitone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Coframe α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
@@ -2103,7 +2103,7 @@ theorem Finite.infᵢ_bsupᵢ_of_antitone {ι ι' α : Type _} [Preorder ι'] [N
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2))] [_inst_5 : Order.Frame.{u3} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u3} ι' α _inst_2 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5)))) (f i)) -> (Eq.{succ u3} α (supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => f i j))) (infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => f i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.12482 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.12484 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.12482 x._@.Mathlib.Data.Set.Finite._hyg.12484)] [_inst_5 : Order.Frame.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.12504 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.12506 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.12504 x._@.Mathlib.Data.Set.Finite._hyg.12506)] [_inst_5 : Order.Frame.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
 Case conversion may be inaccurate. Consider using '#align supr_infi_of_monotone Set.supᵢ_infᵢ_of_monotoneₓ'. -/
 theorem Set.supᵢ_infᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Frame α] {f : ι → ι' → α} (hf : ∀ i, Monotone (f i)) :
@@ -2115,7 +2115,7 @@ theorem Set.supᵢ_infᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2)))] [_inst_5 : Order.Frame.{u3} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u3} ι' α _inst_2 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5)))) (f i)) -> (Eq.{succ u3} α (supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => f i j))) (infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => f i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.12619 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.12621 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.12619 x._@.Mathlib.Data.Set.Finite._hyg.12621))] [_inst_5 : Order.Frame.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.12641 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.12643 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.12641 x._@.Mathlib.Data.Set.Finite._hyg.12643))] [_inst_5 : Order.Frame.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
 Case conversion may be inaccurate. Consider using '#align supr_infi_of_antitone Set.supᵢ_infᵢ_of_antitoneₓ'. -/
 theorem Set.supᵢ_infᵢ_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Frame α] {f : ι → ι' → α} (hf : ∀ i, Antitone (f i)) :
@@ -2127,7 +2127,7 @@ theorem Set.supᵢ_infᵢ_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2)))] [_inst_5 : Order.Coframe.{u3} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u3} ι' α _inst_2 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5)))) (f i)) -> (Eq.{succ u3} α (infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => f i j))) (supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => f i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.12757 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.12759 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.12757 x._@.Mathlib.Data.Set.Finite._hyg.12759))] [_inst_5 : Order.Coframe.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.12779 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.12781 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.12779 x._@.Mathlib.Data.Set.Finite._hyg.12781))] [_inst_5 : Order.Coframe.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
 Case conversion may be inaccurate. Consider using '#align infi_supr_of_monotone Set.infᵢ_supᵢ_of_monotoneₓ'. -/
 theorem Set.infᵢ_supᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Coframe α] {f : ι → ι' → α} (hf : ∀ i, Monotone (f i)) :
@@ -2139,7 +2139,7 @@ theorem Set.infᵢ_supᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2))] [_inst_5 : Order.Coframe.{u3} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u3} ι' α _inst_2 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5)))) (f i)) -> (Eq.{succ u3} α (infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => f i j))) (supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => f i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.12889 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.12891 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.12889 x._@.Mathlib.Data.Set.Finite._hyg.12891)] [_inst_5 : Order.Coframe.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.12911 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.12913 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.12911 x._@.Mathlib.Data.Set.Finite._hyg.12913)] [_inst_5 : Order.Coframe.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
 Case conversion may be inaccurate. Consider using '#align infi_supr_of_antitone Set.infᵢ_supᵢ_of_antitoneₓ'. -/
 theorem Set.infᵢ_supᵢ_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Coframe α] {f : ι → ι' → α} (hf : ∀ i, Antitone (f i)) :
@@ -2151,7 +2151,7 @@ theorem Set.infᵢ_supᵢ_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u3} α)}, (forall (i : ι), Monotone.{u2, u3} ι' (Set.{u3} α) _inst_2 (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.completeBooleanAlgebra.{u3} α))))))) (s i)) -> (Eq.{succ u3} (Set.{u3} α) (Set.unionᵢ.{u3, succ u2} α ι' (fun (j : ι') => Set.interᵢ.{u3, succ u1} α ι (fun (i : ι) => s i j))) (Set.interᵢ.{u3, succ u1} α ι (fun (i : ι) => Set.unionᵢ.{u3, succ u2} α ι' (fun (j : ι') => s i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.13018 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13020 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13018 x._@.Mathlib.Data.Set.Finite._hyg.13020)] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Monotone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.unionᵢ.{u1, succ u2} α ι' (fun (j : ι') => Set.interᵢ.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.interᵢ.{u1, succ u3} α ι (fun (i : ι) => Set.unionᵢ.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.13040 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13042 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13040 x._@.Mathlib.Data.Set.Finite._hyg.13042)] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Monotone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.unionᵢ.{u1, succ u2} α ι' (fun (j : ι') => Set.interᵢ.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.interᵢ.{u1, succ u3} α ι (fun (i : ι) => Set.unionᵢ.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
 Case conversion may be inaccurate. Consider using '#align set.Union_Inter_of_monotone Set.unionᵢ_interᵢ_of_monotoneₓ'. -/
 /-- An increasing union distributes over finite intersection. -/
 theorem unionᵢ_interᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [IsDirected ι' (· ≤ ·)]
@@ -2164,7 +2164,7 @@ theorem unionᵢ_interᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2)))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u3} α)}, (forall (i : ι), Antitone.{u2, u3} ι' (Set.{u3} α) _inst_2 (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.completeBooleanAlgebra.{u3} α))))))) (s i)) -> (Eq.{succ u3} (Set.{u3} α) (Set.unionᵢ.{u3, succ u2} α ι' (fun (j : ι') => Set.interᵢ.{u3, succ u1} α ι (fun (i : ι) => s i j))) (Set.interᵢ.{u3, succ u1} α ι (fun (i : ι) => Set.unionᵢ.{u3, succ u2} α ι' (fun (j : ι') => s i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.13140 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13142 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13140 x._@.Mathlib.Data.Set.Finite._hyg.13142))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Antitone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.unionᵢ.{u1, succ u2} α ι' (fun (j : ι') => Set.interᵢ.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.interᵢ.{u1, succ u3} α ι (fun (i : ι) => Set.unionᵢ.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.13162 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13164 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13162 x._@.Mathlib.Data.Set.Finite._hyg.13164))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Antitone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.unionᵢ.{u1, succ u2} α ι' (fun (j : ι') => Set.interᵢ.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.interᵢ.{u1, succ u3} α ι (fun (i : ι) => Set.unionᵢ.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
 Case conversion may be inaccurate. Consider using '#align set.Union_Inter_of_antitone Set.unionᵢ_interᵢ_of_antitoneₓ'. -/
 /-- A decreasing union distributes over finite intersection. -/
 theorem unionᵢ_interᵢ_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι']
@@ -2177,7 +2177,7 @@ theorem unionᵢ_interᵢ_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2)))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u3} α)}, (forall (i : ι), Monotone.{u2, u3} ι' (Set.{u3} α) _inst_2 (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.completeBooleanAlgebra.{u3} α))))))) (s i)) -> (Eq.{succ u3} (Set.{u3} α) (Set.interᵢ.{u3, succ u2} α ι' (fun (j : ι') => Set.unionᵢ.{u3, succ u1} α ι (fun (i : ι) => s i j))) (Set.unionᵢ.{u3, succ u1} α ι (fun (i : ι) => Set.interᵢ.{u3, succ u2} α ι' (fun (j : ι') => s i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.13262 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13264 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13262 x._@.Mathlib.Data.Set.Finite._hyg.13264))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Monotone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.interᵢ.{u1, succ u2} α ι' (fun (j : ι') => Set.unionᵢ.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.unionᵢ.{u1, succ u3} α ι (fun (i : ι) => Set.interᵢ.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.13284 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13286 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13284 x._@.Mathlib.Data.Set.Finite._hyg.13286))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Monotone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.interᵢ.{u1, succ u2} α ι' (fun (j : ι') => Set.unionᵢ.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.unionᵢ.{u1, succ u3} α ι (fun (i : ι) => Set.interᵢ.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
 Case conversion may be inaccurate. Consider using '#align set.Inter_Union_of_monotone Set.interᵢ_unionᵢ_of_monotoneₓ'. -/
 /-- An increasing intersection distributes over finite union. -/
 theorem interᵢ_unionᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι']
@@ -2190,7 +2190,7 @@ theorem interᵢ_unionᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u3} α)}, (forall (i : ι), Antitone.{u2, u3} ι' (Set.{u3} α) _inst_2 (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.completeBooleanAlgebra.{u3} α))))))) (s i)) -> (Eq.{succ u3} (Set.{u3} α) (Set.interᵢ.{u3, succ u2} α ι' (fun (j : ι') => Set.unionᵢ.{u3, succ u1} α ι (fun (i : ι) => s i j))) (Set.unionᵢ.{u3, succ u1} α ι (fun (i : ι) => Set.interᵢ.{u3, succ u2} α ι' (fun (j : ι') => s i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.13381 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13383 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13381 x._@.Mathlib.Data.Set.Finite._hyg.13383)] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Antitone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.interᵢ.{u1, succ u2} α ι' (fun (j : ι') => Set.unionᵢ.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.unionᵢ.{u1, succ u3} α ι (fun (i : ι) => Set.interᵢ.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.13403 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13405 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13403 x._@.Mathlib.Data.Set.Finite._hyg.13405)] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Antitone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.interᵢ.{u1, succ u2} α ι' (fun (j : ι') => Set.unionᵢ.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.unionᵢ.{u1, succ u3} α ι (fun (i : ι) => Set.interᵢ.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
 Case conversion may be inaccurate. Consider using '#align set.Inter_Union_of_antitone Set.interᵢ_unionᵢ_of_antitoneₓ'. -/
 /-- A decreasing intersection distributes over finite union. -/
 theorem interᵢ_unionᵢ_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [IsDirected ι' (· ≤ ·)]
Diff
@@ -2047,7 +2047,7 @@ theorem exists_upper_bound_image [hα : Nonempty α] [LinearOrder β] (s : Set 
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1))] [_inst_4 : Order.Frame.{u3} α] {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) -> (Monotone.{u2, u3} ι' α _inst_1 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4)))) (f i))) -> (Eq.{succ u3} α (supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => infᵢ.{u3, 0} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => f i j)))) (infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => infᵢ.{u3, 0} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => f i j))))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.11732 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.11734 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.11732 x._@.Mathlib.Data.Set.Finite._hyg.11734)] [_inst_4 : Order.Frame.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Monotone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => infᵢ.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => infᵢ.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.11736 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.11738 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.11736 x._@.Mathlib.Data.Set.Finite._hyg.11738)] [_inst_4 : Order.Frame.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Monotone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => infᵢ.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => infᵢ.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
 Case conversion may be inaccurate. Consider using '#align set.finite.supr_binfi_of_monotone Set.Finite.supᵢ_binfᵢ_of_monotoneₓ'. -/
 theorem Finite.supᵢ_binfᵢ_of_monotone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Frame α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
@@ -2067,7 +2067,7 @@ theorem Finite.supᵢ_binfᵢ_of_monotone {ι ι' α : Type _} [Preorder ι'] [N
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1)))] [_inst_4 : Order.Frame.{u3} α] {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) -> (Antitone.{u2, u3} ι' α _inst_1 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4)))) (f i))) -> (Eq.{succ u3} α (supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => infᵢ.{u3, 0} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => f i j)))) (infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => infᵢ.{u3, 0} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => f i j))))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.11954 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.11956 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.11954 x._@.Mathlib.Data.Set.Finite._hyg.11956))] [_inst_4 : Order.Frame.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Antitone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => infᵢ.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => infᵢ.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.11958 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.11960 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.11958 x._@.Mathlib.Data.Set.Finite._hyg.11960))] [_inst_4 : Order.Frame.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Antitone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => infᵢ.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => infᵢ.{u1, 0} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
 Case conversion may be inaccurate. Consider using '#align set.finite.supr_binfi_of_antitone Set.Finite.supᵢ_binfᵢ_of_antitoneₓ'. -/
 theorem Finite.supᵢ_binfᵢ_of_antitone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Frame α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
@@ -2079,7 +2079,7 @@ theorem Finite.supᵢ_binfᵢ_of_antitone {ι ι' α : Type _} [Preorder ι'] [N
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1)))] [_inst_4 : Order.Coframe.{u3} α] {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) -> (Monotone.{u2, u3} ι' α _inst_1 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4)))) (f i))) -> (Eq.{succ u3} α (infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => supᵢ.{u3, 0} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => f i j)))) (supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => supᵢ.{u3, 0} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => f i j))))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.12134 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.12136 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.12134 x._@.Mathlib.Data.Set.Finite._hyg.12136))] [_inst_4 : Order.Coframe.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Monotone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => supᵢ.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => supᵢ.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.12138 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.12140 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.12138 x._@.Mathlib.Data.Set.Finite._hyg.12140))] [_inst_4 : Order.Coframe.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Monotone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => supᵢ.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => supᵢ.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
 Case conversion may be inaccurate. Consider using '#align set.finite.infi_bsupr_of_monotone Set.Finite.infᵢ_bsupᵢ_of_monotoneₓ'. -/
 theorem Finite.infᵢ_bsupᵢ_of_monotone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Coframe α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
@@ -2091,7 +2091,7 @@ theorem Finite.infᵢ_bsupᵢ_of_monotone {ι ι' α : Type _} [Preorder ι'] [N
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1))] [_inst_4 : Order.Coframe.{u3} α] {s : Set.{u1} ι}, (Set.Finite.{u1} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) -> (Antitone.{u2, u3} ι' α _inst_1 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4)))) (f i))) -> (Eq.{succ u3} α (infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => supᵢ.{u3, 0} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => f i j)))) (supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι (fun (i : ι) => supᵢ.{u3, 0} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) (Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) (fun (H : Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) i s) => infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_4))) ι' (fun (j : ι') => f i j))))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.12306 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.12308 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.12306 x._@.Mathlib.Data.Set.Finite._hyg.12308)] [_inst_4 : Order.Coframe.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Antitone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => supᵢ.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => supᵢ.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Preorder.{u2} ι'] [_inst_2 : Nonempty.{succ u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.12310 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.12312 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_1) x._@.Mathlib.Data.Set.Finite._hyg.12310 x._@.Mathlib.Data.Set.Finite._hyg.12312)] [_inst_4 : Order.Coframe.{u1} α] {s : Set.{u3} ι}, (Set.Finite.{u3} ι s) -> (forall {f : ι -> ι' -> α}, (forall (i : ι), (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) -> (Antitone.{u2, u1} ι' α _inst_1 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)))) (f i))) -> (Eq.{succ u1} α (infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => supᵢ.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => f i j)))) (supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι (fun (i : ι) => supᵢ.{u1, 0} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) (Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Set.{u3} ι) (Set.instMembershipSet.{u3} ι) i s) => infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_4)) ι' (fun (j : ι') => f i j))))))
 Case conversion may be inaccurate. Consider using '#align set.finite.infi_bsupr_of_antitone Set.Finite.infᵢ_bsupᵢ_of_antitoneₓ'. -/
 theorem Finite.infᵢ_bsupᵢ_of_antitone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Coframe α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
@@ -2103,7 +2103,7 @@ theorem Finite.infᵢ_bsupᵢ_of_antitone {ι ι' α : Type _} [Preorder ι'] [N
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2))] [_inst_5 : Order.Frame.{u3} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u3} ι' α _inst_2 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5)))) (f i)) -> (Eq.{succ u3} α (supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => f i j))) (infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => f i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.12478 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.12480 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.12478 x._@.Mathlib.Data.Set.Finite._hyg.12480)] [_inst_5 : Order.Frame.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.12482 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.12484 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.12482 x._@.Mathlib.Data.Set.Finite._hyg.12484)] [_inst_5 : Order.Frame.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
 Case conversion may be inaccurate. Consider using '#align supr_infi_of_monotone Set.supᵢ_infᵢ_of_monotoneₓ'. -/
 theorem Set.supᵢ_infᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Frame α] {f : ι → ι' → α} (hf : ∀ i, Monotone (f i)) :
@@ -2115,7 +2115,7 @@ theorem Set.supᵢ_infᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2)))] [_inst_5 : Order.Frame.{u3} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u3} ι' α _inst_2 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5)))) (f i)) -> (Eq.{succ u3} α (supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => f i j))) (infᵢ.{u3, succ u1} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => supᵢ.{u3, succ u2} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Frame.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => f i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.12615 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.12617 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.12615 x._@.Mathlib.Data.Set.Finite._hyg.12617))] [_inst_5 : Order.Frame.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.12619 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.12621 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.12619 x._@.Mathlib.Data.Set.Finite._hyg.12621))] [_inst_5 : Order.Frame.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (infᵢ.{u1, succ u3} α (CompleteLattice.toInfSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => supᵢ.{u1, succ u2} α (CompleteLattice.toSupSet.{u1} α (Order.Frame.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
 Case conversion may be inaccurate. Consider using '#align supr_infi_of_antitone Set.supᵢ_infᵢ_of_antitoneₓ'. -/
 theorem Set.supᵢ_infᵢ_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Frame α] {f : ι → ι' → α} (hf : ∀ i, Antitone (f i)) :
@@ -2127,7 +2127,7 @@ theorem Set.supᵢ_infᵢ_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2)))] [_inst_5 : Order.Coframe.{u3} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u3} ι' α _inst_2 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5)))) (f i)) -> (Eq.{succ u3} α (infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => f i j))) (supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => f i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.12753 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.12755 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.12753 x._@.Mathlib.Data.Set.Finite._hyg.12755))] [_inst_5 : Order.Coframe.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.12757 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.12759 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.12757 x._@.Mathlib.Data.Set.Finite._hyg.12759))] [_inst_5 : Order.Coframe.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Monotone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
 Case conversion may be inaccurate. Consider using '#align infi_supr_of_monotone Set.infᵢ_supᵢ_of_monotoneₓ'. -/
 theorem Set.infᵢ_supᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Coframe α] {f : ι → ι' → α} (hf : ∀ i, Monotone (f i)) :
@@ -2139,7 +2139,7 @@ theorem Set.infᵢ_supᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2))] [_inst_5 : Order.Coframe.{u3} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u3} ι' α _inst_2 (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5)))) (f i)) -> (Eq.{succ u3} α (infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => f i j))) (supᵢ.{u3, succ u1} α (CompleteSemilatticeSup.toHasSup.{u3} α (CompleteLattice.toCompleteSemilatticeSup.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι (fun (i : ι) => infᵢ.{u3, succ u2} α (CompleteSemilatticeInf.toHasInf.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α (Order.Coframe.toCompleteLattice.{u3} α _inst_5))) ι' (fun (j : ι') => f i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.12885 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.12887 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.12885 x._@.Mathlib.Data.Set.Finite._hyg.12887)] [_inst_5 : Order.Coframe.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : Nonempty.{succ u2} ι'] [_inst_4 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.12889 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.12891 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.12889 x._@.Mathlib.Data.Set.Finite._hyg.12891)] [_inst_5 : Order.Coframe.{u1} α] {f : ι -> ι' -> α}, (forall (i : ι), Antitone.{u2, u1} ι' α _inst_2 (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)))) (f i)) -> (Eq.{succ u1} α (infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => f i j))) (supᵢ.{u1, succ u3} α (CompleteLattice.toSupSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι (fun (i : ι) => infᵢ.{u1, succ u2} α (CompleteLattice.toInfSet.{u1} α (Order.Coframe.toCompleteLattice.{u1} α _inst_5)) ι' (fun (j : ι') => f i j))))
 Case conversion may be inaccurate. Consider using '#align infi_supr_of_antitone Set.infᵢ_supᵢ_of_antitoneₓ'. -/
 theorem Set.infᵢ_supᵢ_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Coframe α] {f : ι → ι' → α} (hf : ∀ i, Antitone (f i)) :
@@ -2151,7 +2151,7 @@ theorem Set.infᵢ_supᵢ_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u3} α)}, (forall (i : ι), Monotone.{u2, u3} ι' (Set.{u3} α) _inst_2 (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.completeBooleanAlgebra.{u3} α))))))) (s i)) -> (Eq.{succ u3} (Set.{u3} α) (Set.unionᵢ.{u3, succ u2} α ι' (fun (j : ι') => Set.interᵢ.{u3, succ u1} α ι (fun (i : ι) => s i j))) (Set.interᵢ.{u3, succ u1} α ι (fun (i : ι) => Set.unionᵢ.{u3, succ u2} α ι' (fun (j : ι') => s i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.13014 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13016 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13014 x._@.Mathlib.Data.Set.Finite._hyg.13016)] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Monotone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.unionᵢ.{u1, succ u2} α ι' (fun (j : ι') => Set.interᵢ.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.interᵢ.{u1, succ u3} α ι (fun (i : ι) => Set.unionᵢ.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.13018 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13020 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13018 x._@.Mathlib.Data.Set.Finite._hyg.13020)] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Monotone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.unionᵢ.{u1, succ u2} α ι' (fun (j : ι') => Set.interᵢ.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.interᵢ.{u1, succ u3} α ι (fun (i : ι) => Set.unionᵢ.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
 Case conversion may be inaccurate. Consider using '#align set.Union_Inter_of_monotone Set.unionᵢ_interᵢ_of_monotoneₓ'. -/
 /-- An increasing union distributes over finite intersection. -/
 theorem unionᵢ_interᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [IsDirected ι' (· ≤ ·)]
@@ -2164,7 +2164,7 @@ theorem unionᵢ_interᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2)))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u3} α)}, (forall (i : ι), Antitone.{u2, u3} ι' (Set.{u3} α) _inst_2 (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.completeBooleanAlgebra.{u3} α))))))) (s i)) -> (Eq.{succ u3} (Set.{u3} α) (Set.unionᵢ.{u3, succ u2} α ι' (fun (j : ι') => Set.interᵢ.{u3, succ u1} α ι (fun (i : ι) => s i j))) (Set.interᵢ.{u3, succ u1} α ι (fun (i : ι) => Set.unionᵢ.{u3, succ u2} α ι' (fun (j : ι') => s i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.13136 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13138 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13136 x._@.Mathlib.Data.Set.Finite._hyg.13138))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Antitone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.unionᵢ.{u1, succ u2} α ι' (fun (j : ι') => Set.interᵢ.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.interᵢ.{u1, succ u3} α ι (fun (i : ι) => Set.unionᵢ.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.13140 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13142 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13140 x._@.Mathlib.Data.Set.Finite._hyg.13142))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Antitone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.unionᵢ.{u1, succ u2} α ι' (fun (j : ι') => Set.interᵢ.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.interᵢ.{u1, succ u3} α ι (fun (i : ι) => Set.unionᵢ.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
 Case conversion may be inaccurate. Consider using '#align set.Union_Inter_of_antitone Set.unionᵢ_interᵢ_of_antitoneₓ'. -/
 /-- A decreasing union distributes over finite intersection. -/
 theorem unionᵢ_interᵢ_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι']
@@ -2177,7 +2177,7 @@ theorem unionᵢ_interᵢ_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2)))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u3} α)}, (forall (i : ι), Monotone.{u2, u3} ι' (Set.{u3} α) _inst_2 (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.completeBooleanAlgebra.{u3} α))))))) (s i)) -> (Eq.{succ u3} (Set.{u3} α) (Set.interᵢ.{u3, succ u2} α ι' (fun (j : ι') => Set.unionᵢ.{u3, succ u1} α ι (fun (i : ι) => s i j))) (Set.unionᵢ.{u3, succ u1} α ι (fun (i : ι) => Set.interᵢ.{u3, succ u2} α ι' (fun (j : ι') => s i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.13258 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13260 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13258 x._@.Mathlib.Data.Set.Finite._hyg.13260))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Monotone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.interᵢ.{u1, succ u2} α ι' (fun (j : ι') => Set.unionᵢ.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.unionᵢ.{u1, succ u3} α ι (fun (i : ι) => Set.interᵢ.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (Function.swap.{succ u2, succ u2, 1} ι' ι' (fun (ᾰ : ι') (ᾰ : ι') => Prop) (fun (x._@.Mathlib.Data.Set.Finite._hyg.13262 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13264 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13262 x._@.Mathlib.Data.Set.Finite._hyg.13264))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Monotone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.interᵢ.{u1, succ u2} α ι' (fun (j : ι') => Set.unionᵢ.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.unionᵢ.{u1, succ u3} α ι (fun (i : ι) => Set.interᵢ.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
 Case conversion may be inaccurate. Consider using '#align set.Inter_Union_of_monotone Set.interᵢ_unionᵢ_of_monotoneₓ'. -/
 /-- An increasing intersection distributes over finite union. -/
 theorem interᵢ_unionᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι']
@@ -2190,7 +2190,7 @@ theorem interᵢ_unionᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder
 lean 3 declaration is
   forall {ι : Type.{u1}} {ι' : Type.{u2}} {α : Type.{u3}} [_inst_1 : Finite.{succ u1} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2))] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u3} α)}, (forall (i : ι), Antitone.{u2, u3} ι' (Set.{u3} α) _inst_2 (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.completeBooleanAlgebra.{u3} α))))))) (s i)) -> (Eq.{succ u3} (Set.{u3} α) (Set.interᵢ.{u3, succ u2} α ι' (fun (j : ι') => Set.unionᵢ.{u3, succ u1} α ι (fun (i : ι) => s i j))) (Set.unionᵢ.{u3, succ u1} α ι (fun (i : ι) => Set.interᵢ.{u3, succ u2} α ι' (fun (j : ι') => s i j))))
 but is expected to have type
-  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.13377 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13379 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13377 x._@.Mathlib.Data.Set.Finite._hyg.13379)] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Antitone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.interᵢ.{u1, succ u2} α ι' (fun (j : ι') => Set.unionᵢ.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.unionᵢ.{u1, succ u3} α ι (fun (i : ι) => Set.interᵢ.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
+  forall {ι : Type.{u3}} {ι' : Type.{u2}} {α : Type.{u1}} [_inst_1 : Finite.{succ u3} ι] [_inst_2 : Preorder.{u2} ι'] [_inst_3 : IsDirected.{u2} ι' (fun (x._@.Mathlib.Data.Set.Finite._hyg.13381 : ι') (x._@.Mathlib.Data.Set.Finite._hyg.13383 : ι') => LE.le.{u2} ι' (Preorder.toLE.{u2} ι' _inst_2) x._@.Mathlib.Data.Set.Finite._hyg.13381 x._@.Mathlib.Data.Set.Finite._hyg.13383)] [_inst_4 : Nonempty.{succ u2} ι'] {s : ι -> ι' -> (Set.{u1} α)}, (forall (i : ι), Antitone.{u2, u1} ι' (Set.{u1} α) _inst_2 (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} α))))))) (s i)) -> (Eq.{succ u1} (Set.{u1} α) (Set.interᵢ.{u1, succ u2} α ι' (fun (j : ι') => Set.unionᵢ.{u1, succ u3} α ι (fun (i : ι) => s i j))) (Set.unionᵢ.{u1, succ u3} α ι (fun (i : ι) => Set.interᵢ.{u1, succ u2} α ι' (fun (j : ι') => s i j))))
 Case conversion may be inaccurate. Consider using '#align set.Inter_Union_of_antitone Set.interᵢ_unionᵢ_of_antitoneₓ'. -/
 /-- A decreasing intersection distributes over finite union. -/
 theorem interᵢ_unionᵢ_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [IsDirected ι' (· ≤ ·)]
Diff
@@ -363,7 +363,7 @@ protected theorem toFinset_symmDiff [DecidableEq α] (hs : s.Finite) (ht : t.Fin
 lean 3 declaration is
   forall {α : Type.{u1}} {s : Set.{u1} α} [_inst_1 : DecidableEq.{succ u1} α] [_inst_2 : Fintype.{u1} α] (hs : Set.Finite.{u1} α s) (h : Set.Finite.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)), Eq.{succ u1} (Finset.{u1} α) (Set.Finite.toFinset.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s) h) (HasCompl.compl.{u1} (Finset.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Finset.{u1} α) (Finset.booleanAlgebra.{u1} α _inst_2 (fun (a : α) (b : α) => _inst_1 a b))) (Set.Finite.toFinset.{u1} α s hs))
 but is expected to have type
-  forall {α : Type.{u1}} {s : Set.{u1} α} [_inst_1 : DecidableEq.{succ u1} α] [_inst_2 : Fintype.{u1} α] (hs : Set.Finite.{u1} α s) (h : Set.Finite.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)), Eq.{succ u1} (Finset.{u1} α) (Set.Finite.toFinset.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s) h) (HasCompl.compl.{u1} (Finset.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Finset.{u1} α) (Finset.instBooleanAlgebraFinset.{u1} α _inst_2 (fun (a : α) (b : α) => _inst_1 a b))) (Set.Finite.toFinset.{u1} α s hs))
+  forall {α : Type.{u1}} {s : Set.{u1} α} [_inst_1 : DecidableEq.{succ u1} α] [_inst_2 : Fintype.{u1} α] (hs : Set.Finite.{u1} α s) (h : Set.Finite.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)), Eq.{succ u1} (Finset.{u1} α) (Set.Finite.toFinset.{u1} α (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s) h) (HasCompl.compl.{u1} (Finset.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Finset.{u1} α) (Finset.booleanAlgebra.{u1} α _inst_2 (fun (a : α) (b : α) => _inst_1 a b))) (Set.Finite.toFinset.{u1} α s hs))
 Case conversion may be inaccurate. Consider using '#align set.finite.to_finset_compl Set.Finite.toFinset_complₓ'. -/
 protected theorem toFinset_compl [DecidableEq α] [Fintype α] (hs : s.Finite) (h : sᶜ.Finite) :
     h.toFinset = hs.toFinsetᶜ := by
Diff
@@ -956,11 +956,11 @@ instance finite_image (s : Set α) (f : α → β) [Finite s] : Finite (f '' s)
 #align finite.set.finite_image Finite.Set.finite_image
 -/
 
-/- ./././Mathport/Syntax/Translate/Expr.lean:370:4: unsupported set replacement {(f x) | x : α} -/
+/- ./././Mathport/Syntax/Translate/Expr.lean:366:4: unsupported set replacement {(f x) | x : α} -/
 #print Finite.Set.finite_replacement /-
 instance finite_replacement [Finite α] (f : α → β) :
     Finite
-      "./././Mathport/Syntax/Translate/Expr.lean:370:4: unsupported set replacement {(f x) | x : α}" :=
+      "./././Mathport/Syntax/Translate/Expr.lean:366:4: unsupported set replacement {(f x) | x : α}" :=
   Finite.Set.finite_range f
 #align finite.set.finite_replacement Finite.Set.finite_replacement
 -/
@@ -1697,8 +1697,8 @@ theorem card_image_of_inj_on {s : Set α} [Fintype s] {f : α → β} [Fintype (
   calc
     Fintype.card (f '' s) = (s.to_finset.image f).card := Fintype.card_of_finset' _ (by simp)
     _ = s.to_finset.card :=
-      Finset.card_image_of_injOn fun x hx y hy hxy =>
-        H x (mem_to_finset.1 hx) y (mem_to_finset.1 hy) hxy
+      (Finset.card_image_of_injOn fun x hx y hy hxy =>
+        H x (mem_to_finset.1 hx) y (mem_to_finset.1 hy) hxy)
     _ = Fintype.card s := (Fintype.card_of_finset' _ fun a => mem_to_finset).symm
     
 #align set.card_image_of_inj_on Set.card_image_of_inj_on
@@ -2352,7 +2352,7 @@ theorem Finite.of_forall_not_lt_lt (h : ∀ ⦃x y z : α⦄, x < y → y < z 
 #align finite.of_forall_not_lt_lt Finite.of_forall_not_lt_lt
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:628:2: warning: expanding binder collection (x y z «expr ∈ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (x y z «expr ∈ » s) -/
 #print Set.finite_of_forall_not_lt_lt /-
 /-- If a set `s` does not contain any triple of elements `x < y < z`, then `s` is finite. -/
 theorem Set.finite_of_forall_not_lt_lt {s : Set α}
Diff
@@ -350,7 +350,7 @@ protected theorem toFinset_diff [DecidableEq α] (hs : s.Finite) (ht : t.Finite)
 lean 3 declaration is
   forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α} [_inst_1 : DecidableEq.{succ u1} α] (hs : Set.Finite.{u1} α s) (ht : Set.Finite.{u1} α t) (h : Set.Finite.{u1} α (symmDiff.{u1} (Set.{u1} α) (SemilatticeSup.toHasSup.{u1} (Set.{u1} α) (Lattice.toSemilatticeSup.{u1} (Set.{u1} α) (CompleteLattice.toLattice.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α))))))) (BooleanAlgebra.toHasSdiff.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s t)), Eq.{succ u1} (Finset.{u1} α) (Set.Finite.toFinset.{u1} α (symmDiff.{u1} (Set.{u1} α) (SemilatticeSup.toHasSup.{u1} (Set.{u1} α) (Lattice.toSemilatticeSup.{u1} (Set.{u1} α) (CompleteLattice.toLattice.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α))))))) (BooleanAlgebra.toHasSdiff.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s t) h) (symmDiff.{u1} (Finset.{u1} α) (SemilatticeSup.toHasSup.{u1} (Finset.{u1} α) (Lattice.toSemilatticeSup.{u1} (Finset.{u1} α) (Finset.lattice.{u1} α (fun (a : α) (b : α) => _inst_1 a b)))) (Finset.hasSdiff.{u1} α (fun (a : α) (b : α) => _inst_1 a b)) (Set.Finite.toFinset.{u1} α s hs) (Set.Finite.toFinset.{u1} α t ht))
 but is expected to have type
-  forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α} [_inst_1 : DecidableEq.{succ u1} α] (hs : Set.Finite.{u1} α s) (ht : Set.Finite.{u1} α t) (h : Set.Finite.{u1} α (symmDiff.{u1} (Set.{u1} α) (SemilatticeSup.toHasSup.{u1} (Set.{u1} α) (Lattice.toSemilatticeSup.{u1} (Set.{u1} α) (CompleteLattice.toLattice.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α))))))) (Set.instSDiffSet.{u1} α) s t)), Eq.{succ u1} (Finset.{u1} α) (Set.Finite.toFinset.{u1} α (symmDiff.{u1} (Set.{u1} α) (SemilatticeSup.toHasSup.{u1} (Set.{u1} α) (Lattice.toSemilatticeSup.{u1} (Set.{u1} α) (CompleteLattice.toLattice.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α))))))) (Set.instSDiffSet.{u1} α) s t) h) (symmDiff.{u1} (Finset.{u1} α) (SemilatticeSup.toHasSup.{u1} (Finset.{u1} α) (Lattice.toSemilatticeSup.{u1} (Finset.{u1} α) (Finset.instLatticeFinset.{u1} α (fun (a : α) (b : α) => _inst_1 a b)))) (Finset.instSDiffFinset.{u1} α (fun (a : α) (b : α) => _inst_1 a b)) (Set.Finite.toFinset.{u1} α s hs) (Set.Finite.toFinset.{u1} α t ht))
+  forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α} [_inst_1 : DecidableEq.{succ u1} α] (hs : Set.Finite.{u1} α s) (ht : Set.Finite.{u1} α t) (h : Set.Finite.{u1} α (symmDiff.{u1} (Set.{u1} α) (SemilatticeSup.toSup.{u1} (Set.{u1} α) (Lattice.toSemilatticeSup.{u1} (Set.{u1} α) (CompleteLattice.toLattice.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α))))))) (Set.instSDiffSet.{u1} α) s t)), Eq.{succ u1} (Finset.{u1} α) (Set.Finite.toFinset.{u1} α (symmDiff.{u1} (Set.{u1} α) (SemilatticeSup.toSup.{u1} (Set.{u1} α) (Lattice.toSemilatticeSup.{u1} (Set.{u1} α) (CompleteLattice.toLattice.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α))))))) (Set.instSDiffSet.{u1} α) s t) h) (symmDiff.{u1} (Finset.{u1} α) (SemilatticeSup.toSup.{u1} (Finset.{u1} α) (Lattice.toSemilatticeSup.{u1} (Finset.{u1} α) (Finset.instLatticeFinset.{u1} α (fun (a : α) (b : α) => _inst_1 a b)))) (Finset.instSDiffFinset.{u1} α (fun (a : α) (b : α) => _inst_1 a b)) (Set.Finite.toFinset.{u1} α s hs) (Set.Finite.toFinset.{u1} α t ht))
 Case conversion may be inaccurate. Consider using '#align set.finite.to_finset_symm_diff Set.Finite.toFinset_symmDiffₓ'. -/
 protected theorem toFinset_symmDiff [DecidableEq α] (hs : s.Finite) (ht : t.Finite)
     (h : (s ∆ t).Finite) : h.toFinset = hs.toFinset ∆ ht.toFinset :=
@@ -1054,9 +1054,9 @@ theorem Finite.finite_of_compl {s : Set α} (hs : s.Finite) (hsc : sᶜ.Finite)
 
 /- warning: set.finite.sup -> Set.Finite.sup is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α}, (Set.Finite.{u1} α s) -> (Set.Finite.{u1} α t) -> (Set.Finite.{u1} α (HasSup.sup.{u1} (Set.{u1} α) (SemilatticeSup.toHasSup.{u1} (Set.{u1} α) (Lattice.toSemilatticeSup.{u1} (Set.{u1} α) (CompleteLattice.toLattice.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α))))))) s t))
+  forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α}, (Set.Finite.{u1} α s) -> (Set.Finite.{u1} α t) -> (Set.Finite.{u1} α (Sup.sup.{u1} (Set.{u1} α) (SemilatticeSup.toHasSup.{u1} (Set.{u1} α) (Lattice.toSemilatticeSup.{u1} (Set.{u1} α) (CompleteLattice.toLattice.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α))))))) s t))
 but is expected to have type
-  forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α}, (Set.Finite.{u1} α s) -> (Set.Finite.{u1} α t) -> (Set.Finite.{u1} α (HasSup.sup.{u1} (Set.{u1} α) (SemilatticeSup.toHasSup.{u1} (Set.{u1} α) (Lattice.toSemilatticeSup.{u1} (Set.{u1} α) (CompleteLattice.toLattice.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α))))))) s t))
+  forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α}, (Set.Finite.{u1} α s) -> (Set.Finite.{u1} α t) -> (Set.Finite.{u1} α (Sup.sup.{u1} (Set.{u1} α) (SemilatticeSup.toSup.{u1} (Set.{u1} α) (Lattice.toSemilatticeSup.{u1} (Set.{u1} α) (CompleteLattice.toLattice.{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 set.finite.sup Set.Finite.supₓ'. -/
 theorem Finite.sup {s t : Set α} : s.Finite → t.Finite → (s ⊔ t).Finite :=
   Finite.union
@@ -1096,9 +1096,9 @@ theorem Finite.inter_of_right {s : Set α} (hs : s.Finite) (t : Set α) : (t ∩
 
 /- warning: set.finite.inf_of_left -> Set.Finite.inf_of_left is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {s : Set.{u1} α}, (Set.Finite.{u1} α s) -> (forall (t : Set.{u1} α), Set.Finite.{u1} α (HasInf.inf.{u1} (Set.{u1} α) (SemilatticeInf.toHasInf.{u1} (Set.{u1} α) (Lattice.toSemilatticeInf.{u1} (Set.{u1} α) (CompleteLattice.toLattice.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α))))))) s t))
+  forall {α : Type.{u1}} {s : Set.{u1} α}, (Set.Finite.{u1} α s) -> (forall (t : Set.{u1} α), Set.Finite.{u1} α (Inf.inf.{u1} (Set.{u1} α) (SemilatticeInf.toHasInf.{u1} (Set.{u1} α) (Lattice.toSemilatticeInf.{u1} (Set.{u1} α) (CompleteLattice.toLattice.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α))))))) s t))
 but is expected to have type
-  forall {α : Type.{u1}} {s : Set.{u1} α}, (Set.Finite.{u1} α s) -> (forall (t : Set.{u1} α), Set.Finite.{u1} α (HasInf.inf.{u1} (Set.{u1} α) (Lattice.toHasInf.{u1} (Set.{u1} α) (CompleteLattice.toLattice.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α)))))) s t))
+  forall {α : Type.{u1}} {s : Set.{u1} α}, (Set.Finite.{u1} α s) -> (forall (t : Set.{u1} α), Set.Finite.{u1} α (Inf.inf.{u1} (Set.{u1} α) (Lattice.toInf.{u1} (Set.{u1} α) (CompleteLattice.toLattice.{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 set.finite.inf_of_left Set.Finite.inf_of_leftₓ'. -/
 theorem Finite.inf_of_left {s : Set α} (h : s.Finite) (t : Set α) : (s ⊓ t).Finite :=
   h.inter_of_left t
@@ -1106,9 +1106,9 @@ theorem Finite.inf_of_left {s : Set α} (h : s.Finite) (t : Set α) : (s ⊓ t).
 
 /- warning: set.finite.inf_of_right -> Set.Finite.inf_of_right is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {s : Set.{u1} α}, (Set.Finite.{u1} α s) -> (forall (t : Set.{u1} α), Set.Finite.{u1} α (HasInf.inf.{u1} (Set.{u1} α) (SemilatticeInf.toHasInf.{u1} (Set.{u1} α) (Lattice.toSemilatticeInf.{u1} (Set.{u1} α) (CompleteLattice.toLattice.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α))))))) t s))
+  forall {α : Type.{u1}} {s : Set.{u1} α}, (Set.Finite.{u1} α s) -> (forall (t : Set.{u1} α), Set.Finite.{u1} α (Inf.inf.{u1} (Set.{u1} α) (SemilatticeInf.toHasInf.{u1} (Set.{u1} α) (Lattice.toSemilatticeInf.{u1} (Set.{u1} α) (CompleteLattice.toLattice.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.completeBooleanAlgebra.{u1} α))))))) t s))
 but is expected to have type
-  forall {α : Type.{u1}} {s : Set.{u1} α}, (Set.Finite.{u1} α s) -> (forall (t : Set.{u1} α), Set.Finite.{u1} α (HasInf.inf.{u1} (Set.{u1} α) (Lattice.toHasInf.{u1} (Set.{u1} α) (CompleteLattice.toLattice.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α)))))) t s))
+  forall {α : Type.{u1}} {s : Set.{u1} α}, (Set.Finite.{u1} α s) -> (forall (t : Set.{u1} α), Set.Finite.{u1} α (Inf.inf.{u1} (Set.{u1} α) (Lattice.toInf.{u1} (Set.{u1} α) (CompleteLattice.toLattice.{u1} (Set.{u1} α) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} α) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} α) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} α) (Set.instCompleteBooleanAlgebraSet.{u1} α)))))) t s))
 Case conversion may be inaccurate. Consider using '#align set.finite.inf_of_right Set.Finite.inf_of_rightₓ'. -/
 theorem Finite.inf_of_right {s : Set α} (h : s.Finite) (t : Set α) : (t ⊓ s).Finite :=
   h.inter_of_right t

Changes in mathlib4

mathlib3
mathlib4
chore(*Set): golf (#12117)
  • Golf Directed.exists_mem_subset_of_finset_subset_biUnion using induction tactic.
  • Golf Set.fintype.
  • Reduce abuse of Set α = α → Prop defeq.
Diff
@@ -1758,17 +1758,13 @@ lemma Set.finite_diff_iUnion_Ioo' (s : Set α) : (s \ ⋃ x : s × s, Ioo x.1 x.
 lemma Directed.exists_mem_subset_of_finset_subset_biUnion {α ι : Type*} [Nonempty ι]
     {f : ι → Set α} (h : Directed (· ⊆ ·) f) {s : Finset α} (hs : (s : Set α) ⊆ ⋃ i, f i) :
     ∃ i, (s : Set α) ⊆ f i := by
-  classical
-  revert hs
-  refine s.induction_on ?_ ?_
-  · simp
-  intro b t _hbt htc hbtc
-  obtain ⟨i : ι, hti : (t : Set α) ⊆ f i⟩ := htc (Set.Subset.trans (t.subset_insert b) hbtc)
-  obtain ⟨j, hbj⟩ : ∃ j, b ∈ f j := by simpa [Set.mem_iUnion₂] using hbtc (t.mem_insert_self b)
-  rcases h j i with ⟨k, hk, hk'⟩
-  use k
-  rw [Finset.coe_insert, Set.insert_subset_iff]
-  exact ⟨hk hbj, _root_.trans hti hk'⟩
+  induction s using Finset.cons_induction with
+  | empty => simp
+  | cons hbt iht =>
+    simp only [Finset.coe_cons, Set.insert_subset_iff, Set.mem_iUnion] at hs ⊢
+    rcases hs.imp_right iht with ⟨⟨i, hi⟩, j, hj⟩
+    rcases h i j with ⟨k, hik, hjk⟩
+    exact ⟨k, hik hi, hj.trans hjk⟩
 #align directed.exists_mem_subset_of_finset_subset_bUnion Directed.exists_mem_subset_of_finset_subset_biUnion
 
 theorem DirectedOn.exists_mem_subset_of_finset_subset_biUnion {α ι : Type*} {f : ι → Set α}
chore: remove more bex and ball from lemma names (#11615)

Follow-up to #10816.

Remaining places containing such lemmas are

  • Option.bex_ne_none and Option.ball_ne_none: defined in Lean core
  • Nat.decidableBallLT and Nat.decidableBallLE: defined in Lean core
  • bef_def is still used in a number of places and could be renamed
  • BAll.imp_{left,right}, BEx.imp_{left,right}, BEx.intro and BEx.elim

I only audited the first ~150 lemmas mentioning "ball"; too many lemmas named after Metric.ball/openBall/closedBall.

Co-authored-by: Yaël Dillies <yael.dillies@gmail.com>

Diff
@@ -1531,7 +1531,7 @@ theorem Finite.iSup_biInf_of_monotone {ι ι' α : Type*} [Preorder ι'] [Nonemp
     (hf : ∀ i ∈ s, Monotone (f i)) : ⨆ j, ⨅ i ∈ s, f i j = ⨅ i ∈ s, ⨆ j, f i j := by
   induction' s, hs using Set.Finite.dinduction_on with a s _ _ ihs hf
   · simp [iSup_const]
-  · rw [ball_insert_iff] at hf
+  · rw [forall_mem_insert] at hf
     simp only [iInf_insert, ← ihs hf.2]
     exact iSup_inf_of_monotone hf.1 fun j₁ j₂ hj => iInf₂_mono fun i hi => hf.2 i hi hj
 #align set.finite.supr_binfi_of_monotone Set.Finite.iSup_biInf_of_monotone
@@ -1675,8 +1675,8 @@ protected theorem Finite.bddAbove (hs : s.Finite) : BddAbove s :=
 /-- A finite union of sets which are all bounded above is still bounded above. -/
 theorem Finite.bddAbove_biUnion {I : Set β} {S : β → Set α} (H : I.Finite) :
     BddAbove (⋃ i ∈ I, S i) ↔ ∀ i ∈ I, BddAbove (S i) :=
-  Finite.induction_on H (by simp only [biUnion_empty, bddAbove_empty, ball_empty_iff])
-    fun _ _ hs => by simp only [biUnion_insert, ball_insert_iff, bddAbove_union, hs]
+  Finite.induction_on H (by simp only [biUnion_empty, bddAbove_empty, forall_mem_empty])
+    fun _ _ hs => by simp only [biUnion_insert, forall_mem_insert, bddAbove_union, hs]
 #align set.finite.bdd_above_bUnion Set.Finite.bddAbove_biUnion
 
 theorem infinite_of_not_bddAbove : ¬BddAbove s → s.Infinite :=
style: replace '.-/' by '. -/' (#11938)

Purely automatic replacement. If this is in any way controversial; I'm happy to just close this PR.

Diff
@@ -1667,12 +1667,12 @@ section
 
 variable [Preorder α] [IsDirected α (· ≤ ·)] [Nonempty α] {s : Set α}
 
-/-- A finite set is bounded above.-/
+/-- A finite set is bounded above. -/
 protected theorem Finite.bddAbove (hs : s.Finite) : BddAbove s :=
   Finite.induction_on hs bddAbove_empty fun _ _ h => h.insert _
 #align set.finite.bdd_above Set.Finite.bddAbove
 
-/-- A finite union of sets which are all bounded above is still bounded above.-/
+/-- A finite union of sets which are all bounded above is still bounded above. -/
 theorem Finite.bddAbove_biUnion {I : Set β} {S : β → Set α} (H : I.Finite) :
     BddAbove (⋃ i ∈ I, S i) ↔ ∀ i ∈ I, BddAbove (S i) :=
   Finite.induction_on H (by simp only [biUnion_empty, bddAbove_empty, ball_empty_iff])
@@ -1689,12 +1689,12 @@ section
 
 variable [Preorder α] [IsDirected α (· ≥ ·)] [Nonempty α] {s : Set α}
 
-/-- A finite set is bounded below.-/
+/-- A finite set is bounded below. -/
 protected theorem Finite.bddBelow (hs : s.Finite) : BddBelow s :=
   @Finite.bddAbove αᵒᵈ _ _ _ _ hs
 #align set.finite.bdd_below Set.Finite.bddBelow
 
-/-- A finite union of sets which are all bounded below is still bounded below.-/
+/-- A finite union of sets which are all bounded below is still bounded below. -/
 theorem Finite.bddBelow_biUnion {I : Set β} {S : β → Set α} (H : I.Finite) :
     BddBelow (⋃ i ∈ I, S i) ↔ ∀ i ∈ I, BddBelow (S i) :=
   @Finite.bddAbove_biUnion αᵒᵈ _ _ _ _ _ _ H
chore(Data/Finset/Basic): Depend on less order theory (#11732)

Move Finset.biUnion and Finset.disjiUnion to a new file so that Data.Finset.Basic doesn't depend on that much order theory.

Diff
@@ -4,8 +4,9 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Mario Carneiro, Kyle Miller
 -/
 import Mathlib.Data.Finset.Basic
-import Mathlib.Data.Set.Functor
 import Mathlib.Data.Finite.Basic
+import Mathlib.Data.Set.Functor
+import Mathlib.Data.Set.Lattice
 
 #align_import data.set.finite from "leanprover-community/mathlib"@"65a1391a0106c9204fe45bc73a039f056558cb83"
 
@@ -1753,3 +1754,27 @@ lemma Set.finite_diff_iUnion_Ioo (s : Set α) : (s \ ⋃ (x ∈ s) (y ∈ s), Io
 lemma Set.finite_diff_iUnion_Ioo' (s : Set α) : (s \ ⋃ x : s × s, Ioo x.1 x.2).Finite := by
   simpa only [iUnion, iSup_prod, iSup_subtype] using s.finite_diff_iUnion_Ioo
 #align set.finite_diff_Union_Ioo' Set.finite_diff_iUnion_Ioo'
+
+lemma Directed.exists_mem_subset_of_finset_subset_biUnion {α ι : Type*} [Nonempty ι]
+    {f : ι → Set α} (h : Directed (· ⊆ ·) f) {s : Finset α} (hs : (s : Set α) ⊆ ⋃ i, f i) :
+    ∃ i, (s : Set α) ⊆ f i := by
+  classical
+  revert hs
+  refine s.induction_on ?_ ?_
+  · simp
+  intro b t _hbt htc hbtc
+  obtain ⟨i : ι, hti : (t : Set α) ⊆ f i⟩ := htc (Set.Subset.trans (t.subset_insert b) hbtc)
+  obtain ⟨j, hbj⟩ : ∃ j, b ∈ f j := by simpa [Set.mem_iUnion₂] using hbtc (t.mem_insert_self b)
+  rcases h j i with ⟨k, hk, hk'⟩
+  use k
+  rw [Finset.coe_insert, Set.insert_subset_iff]
+  exact ⟨hk hbj, _root_.trans hti hk'⟩
+#align directed.exists_mem_subset_of_finset_subset_bUnion Directed.exists_mem_subset_of_finset_subset_biUnion
+
+theorem DirectedOn.exists_mem_subset_of_finset_subset_biUnion {α ι : Type*} {f : ι → Set α}
+    {c : Set ι} (hn : c.Nonempty) (hc : DirectedOn (fun i j => f i ⊆ f j) c) {s : Finset α}
+    (hs : (s : Set α) ⊆ ⋃ i ∈ c, f i) : ∃ i ∈ c, (s : Set α) ⊆ f i := by
+  rw [Set.biUnion_eq_iUnion] at hs
+  haveI := hn.coe_sort
+  simpa using (directed_comp.2 hc.directed_val).exists_mem_subset_of_finset_subset_biUnion hs
+#align directed_on.exists_mem_subset_of_finset_subset_bUnion DirectedOn.exists_mem_subset_of_finset_subset_biUnion
chore: classify "simp can prove" porting notes (#11550)

Classifies by adding issue number #10618 to porting notes claiming "simp can prove it".

Diff
@@ -302,8 +302,8 @@ protected theorem toFinset_image [DecidableEq β] (f : α → β) (hs : s.Finite
   simp
 #align set.finite.to_finset_image Set.Finite.toFinset_image
 
--- Porting note: now `simp` can prove it but it needs the `fintypeRange` instance from the next
--- section
+-- Porting note (#10618): now `simp` can prove it but it needs the `fintypeRange` instance
+-- from the next section
 protected theorem toFinset_range [DecidableEq α] [Fintype β] (f : β → α) (h : (range f).Finite) :
     h.toFinset = Finset.univ.image f := by
   ext
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
@@ -589,7 +589,7 @@ Some set instances do not appear here since they are consequences of others, for
 
 namespace Finite.Set
 
-open Classical
+open scoped Classical
 
 example {s : Set α} [Finite α] : Finite s :=
   inferInstance
chore: move Mathlib to v4.7.0-rc1 (#11162)

This is a very large PR, but it has been reviewed piecemeal already in PRs to the bump/v4.7.0 branch as we update to intermediate nightlies.

Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Kyle Miller <kmill31415@gmail.com> Co-authored-by: damiano <adomani@gmail.com>

Diff
@@ -475,7 +475,7 @@ def fintypeOfFintypeImage (s : Set α) {f : α → β} {g} (I : IsPartialInv f g
 #align set.fintype_of_fintype_image Set.fintypeOfFintypeImage
 
 instance fintypeRange [DecidableEq α] (f : ι → α) [Fintype (PLift ι)] : Fintype (range f) :=
-  Fintype.ofFinset (Finset.univ.image <| f ∘ PLift.down) <| by simp [Equiv.plift.exists_congr_left]
+  Fintype.ofFinset (Finset.univ.image <| f ∘ PLift.down) <| by simp
 #align set.fintype_range Set.fintypeRange
 
 instance fintypeMap {α β} [DecidableEq β] :
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
@@ -100,7 +100,7 @@ protected noncomputable def Finite.toFinset {s : Set α} (h : s.Finite) : Finset
 
 theorem Finite.toFinset_eq_toFinset {s : Set α} [Fintype s] (h : s.Finite) :
     h.toFinset = s.toFinset := by
-  -- porting note: was `rw [Finite.toFinset]; congr`
+  -- Porting note: was `rw [Finite.toFinset]; congr`
   -- in Lean 4, a goal is left after `congr`
   have : h.fintype = ‹_› := Subsingleton.elim _ _
   rw [Finite.toFinset, this]
@@ -229,13 +229,13 @@ alias ⟨_, toFinset_strictMono⟩ := Finite.toFinset_ssubset_toFinset
 -- Porting note: attribute [protected] doesn't work
 -- attribute [protected] toFinset_mono toFinset_strictMono
 
--- porting note: `simp` can simplify LHS but then it simplifies something
+-- Porting note: `simp` can simplify LHS but then it simplifies something
 -- in the generated `Fintype {x | p x}` instance and fails to apply `Set.toFinset_setOf`
 @[simp high]
 protected theorem toFinset_setOf [Fintype α] (p : α → Prop) [DecidablePred p]
     (h : { x | p x }.Finite) : h.toFinset = Finset.univ.filter p := by
   ext
-  -- porting note: `simp` doesn't use the `simp` lemma `Set.toFinset_setOf` without the `_`
+  -- Porting note: `simp` doesn't use the `simp` lemma `Set.toFinset_setOf` without the `_`
   simp [Set.toFinset_setOf _]
 #align set.finite.to_finset_set_of Set.Finite.toFinset_setOf
 
@@ -302,7 +302,7 @@ protected theorem toFinset_image [DecidableEq β] (f : α → β) (hs : s.Finite
   simp
 #align set.finite.to_finset_image Set.Finite.toFinset_image
 
--- porting note: now `simp` can prove it but it needs the `fintypeRange` instance from the next
+-- Porting note: now `simp` can prove it but it needs the `fintypeRange` instance from the next
 -- section
 protected theorem toFinset_range [DecidableEq α] [Fintype β] (f : β → α) (h : (range f).Finite) :
     h.toFinset = Finset.univ.image f := by
@@ -1085,7 +1085,7 @@ theorem univ_finite_iff_nonempty_fintype : (univ : Set α).Finite ↔ Nonempty (
   ⟨fun h => ⟨fintypeOfFiniteUniv h⟩, fun ⟨_i⟩ => finite_univ⟩
 #align set.univ_finite_iff_nonempty_fintype Set.univ_finite_iff_nonempty_fintype
 
--- porting note: moved `@[simp]` to `Set.toFinset_singleton` because `simp` can now simplify LHS
+-- Porting note: moved `@[simp]` to `Set.toFinset_singleton` because `simp` can now simplify LHS
 theorem Finite.toFinset_singleton {a : α} (ha : ({a} : Set α).Finite := finite_singleton _) :
     ha.toFinset = {a} :=
   Set.toFinite_toFinset _
@@ -1329,7 +1329,7 @@ theorem infinite_coe_iff {s : Set α} : Infinite s ↔ s.Infinite :=
   not_finite_iff_infinite.symm.trans finite_coe_iff.not
 #align set.infinite_coe_iff Set.infinite_coe_iff
 
--- porting note: something weird happened here
+-- Porting note: something weird happened here
 alias ⟨_, Infinite.to_subtype⟩ := infinite_coe_iff
 #align set.infinite.to_subtype Set.Infinite.to_subtype
 
chore: classify simp can prove porting notes (#10930)

Classify by adding issue number (#10618) to porting notes claiming anything semantically equivalent to

  • "simp can prove this"
  • "simp can simplify this`"
  • "was @[simp], now can be proved by simp"
  • "was @[simp], but simp can prove it"
  • "removed simp attribute as the equality can already be obtained by simp"
  • "simp can already prove this"
  • "simp already proves this"
  • "simp can prove these"
Diff
@@ -547,7 +547,7 @@ theorem finite_toSet (s : Finset α) : (s : Set α).Finite :=
   Set.toFinite _
 #align finset.finite_to_set Finset.finite_toSet
 
--- porting note: was @[simp], now `simp` can prove it
+-- Porting note (#10618): was @[simp], now `simp` can prove it
 theorem finite_toSet_toFinset (s : Finset α) : s.finite_toSet.toFinset = s := by
   rw [toFinite_toFinset, toFinset_coe]
 #align finset.finite_to_set_to_finset Finset.finite_toSet_toFinset
chore: remove terminal, terminal refines (#10762)

I replaced a few "terminal" refine/refine's with exact.

The strategy was very simple-minded: essentially any refine whose following line had smaller indentation got replaced by exact and then I cleaned up the mess.

This PR certainly leaves some further terminal refines, but maybe the current change is beneficial.

Diff
@@ -1163,7 +1163,7 @@ theorem eq_finite_iUnion_of_finite_subset_iUnion {ι} {s : ι → Set α} {t : S
     constructor
     · intro x_in
       rcases mem_iUnion.mp (hI x_in) with ⟨i, _, ⟨hi, rfl⟩, H⟩
-      refine' ⟨⟨i, hi⟩, ⟨H, x_in⟩⟩
+      exact ⟨⟨i, hi⟩, ⟨H, x_in⟩⟩
     · rintro ⟨i, -, H⟩
       exact H⟩
 #align set.eq_finite_Union_of_finite_subset_Union Set.eq_finite_iUnion_of_finite_subset_iUnion
refactor(Set/Finite): redefine using _root_.Finite (#10542)
Diff
@@ -26,9 +26,7 @@ about finite sets and gives ways to manipulate `Set.Finite` expressions.
 
 ## Implementation
 
-A finite set is defined to be a set whose coercion to a type has a `Fintype` instance.
-Since `Set.Finite` is `Prop`-valued, this is the mere fact that the `Fintype` instance
-exists.
+A finite set is defined to be a set whose coercion to a type has a `Finite` instance.
 
 There are two components to finiteness constructions. The first is `Fintype` instances for each
 construction. This gives a way to actually compute a `Finset` that represents the set, and these
@@ -51,15 +49,9 @@ variable {α : Type u} {β : Type v} {ι : Sort w} {γ : Type x}
 
 namespace Set
 
-/-- A set is finite if there is a `Finset` with the same elements.
-This is represented as there being a `Fintype` instance for the set
-coerced to a type.
-
-Note: this is a custom inductive type rather than `Nonempty (Fintype s)`
-so that it won't be frozen as a local instance. -/
-protected
-inductive Finite (s : Set α) : Prop
-  | intro : Fintype s → s.Finite
+/-- A set is finite if the corresponding `Subtype` is finite,
+i.e., if there exists a natural `n : ℕ` and an equivalence `s ≃ Fin n`. -/
+protected def Finite (s : Set α) : Prop := Finite s
 #align set.finite Set.Finite
 
 -- The `protected` attribute does not take effect within the same namespace block.
@@ -68,31 +60,28 @@ end Set
 namespace Set
 
 theorem finite_def {s : Set α} : s.Finite ↔ Nonempty (Fintype s) :=
-  ⟨fun ⟨h⟩ => ⟨h⟩, fun ⟨h⟩ => ⟨h⟩⟩
+  finite_iff_nonempty_fintype s
 #align set.finite_def Set.finite_def
 
 protected alias ⟨Finite.nonempty_fintype, _⟩ := finite_def
 #align set.finite.nonempty_fintype Set.Finite.nonempty_fintype
 
-theorem finite_coe_iff {s : Set α} : Finite s ↔ s.Finite := by
-  rw [finite_iff_nonempty_fintype, finite_def]
+theorem finite_coe_iff {s : Set α} : Finite s ↔ s.Finite := .rfl
 #align set.finite_coe_iff Set.finite_coe_iff
 
 /-- Constructor for `Set.Finite` using a `Finite` instance. -/
-theorem toFinite (s : Set α) [Finite s] : s.Finite :=
-  finite_coe_iff.mp ‹_›
+theorem toFinite (s : Set α) [Finite s] : s.Finite := ‹_›
 #align set.to_finite Set.toFinite
 
 /-- Construct a `Finite` instance for a `Set` from a `Finset` with the same elements. -/
 protected theorem Finite.ofFinset {p : Set α} (s : Finset α) (H : ∀ x, x ∈ s ↔ x ∈ p) : p.Finite :=
-  ⟨Fintype.ofFinset s H⟩
+  have := Fintype.ofFinset s H; p.toFinite
 #align set.finite.of_finset Set.Finite.ofFinset
 
 /-- Projection of `Set.Finite` to its `Finite` instance.
 This is intended to be used with dot notation.
 See also `Set.Finite.Fintype` and `Set.Finite.nonempty_fintype`. -/
-protected theorem Finite.to_subtype {s : Set α} (h : s.Finite) : Finite s :=
-  finite_coe_iff.mpr h
+protected theorem Finite.to_subtype {s : Set α} (h : s.Finite) : Finite s := h
 #align set.finite.to_subtype Set.Finite.to_subtype
 
 /-- A finite set coerced to a type is a `Fintype`.
@@ -124,12 +113,12 @@ theorem toFinite_toFinset (s : Set α) [Fintype s] : s.toFinite.toFinset = s.toF
 
 theorem Finite.exists_finset {s : Set α} (h : s.Finite) :
     ∃ s' : Finset α, ∀ a : α, a ∈ s' ↔ a ∈ s := by
-  cases h
+  cases h.nonempty_fintype
   exact ⟨s.toFinset, fun _ => mem_toFinset⟩
 #align set.finite.exists_finset Set.Finite.exists_finset
 
 theorem Finite.exists_finset_coe {s : Set α} (h : s.Finite) : ∃ s' : Finset α, ↑s' = s := by
-  cases h
+  cases h.nonempty_fintype
   exact ⟨s.toFinset, s.coe_toFinset⟩
 #align set.finite.exists_finset_coe Set.Finite.exists_finset_coe
 
@@ -735,16 +724,19 @@ theorem finite_univ [Finite α] : (@univ α).Finite :=
   Set.toFinite _
 #align set.finite_univ Set.finite_univ
 
-theorem finite_univ_iff : (@univ α).Finite ↔ Finite α :=
-  finite_coe_iff.symm.trans (Equiv.Set.univ α).finite_iff
+theorem finite_univ_iff : (@univ α).Finite ↔ Finite α := (Equiv.Set.univ α).finite_iff
 #align set.finite_univ_iff Set.finite_univ_iff
 
 alias ⟨_root_.Finite.of_finite_univ, _⟩ := finite_univ_iff
 #align finite.of_finite_univ Finite.of_finite_univ
 
+theorem Finite.subset {s : Set α} (hs : s.Finite) {t : Set α} (ht : t ⊆ s) : t.Finite := by
+  have := hs.to_subtype
+  exact Finite.Set.subset _ ht
+#align set.finite.subset Set.Finite.subset
+
 theorem Finite.union {s t : Set α} (hs : s.Finite) (ht : t.Finite) : (s ∪ t).Finite := by
-  cases hs
-  cases ht
+  rw [Set.Finite] at hs ht
   apply toFinite
 #align set.finite.union Set.Finite.union
 
@@ -757,19 +749,16 @@ theorem Finite.sup {s t : Set α} : s.Finite → t.Finite → (s ⊔ t).Finite :
   Finite.union
 #align set.finite.sup Set.Finite.sup
 
-theorem Finite.sep {s : Set α} (hs : s.Finite) (p : α → Prop) : { a ∈ s | p a }.Finite := by
-  cases hs
-  apply toFinite
+theorem Finite.sep {s : Set α} (hs : s.Finite) (p : α → Prop) : { a ∈ s | p a }.Finite :=
+  hs.subset <| sep_subset _ _
 #align set.finite.sep Set.Finite.sep
 
-theorem Finite.inter_of_left {s : Set α} (hs : s.Finite) (t : Set α) : (s ∩ t).Finite := by
-  cases hs
-  apply toFinite
+theorem Finite.inter_of_left {s : Set α} (hs : s.Finite) (t : Set α) : (s ∩ t).Finite :=
+  hs.subset <| inter_subset_left _ _
 #align set.finite.inter_of_left Set.Finite.inter_of_left
 
-theorem Finite.inter_of_right {s : Set α} (hs : s.Finite) (t : Set α) : (t ∩ s).Finite := by
-  cases hs
-  apply toFinite
+theorem Finite.inter_of_right {s : Set α} (hs : s.Finite) (t : Set α) : (t ∩ s).Finite :=
+  hs.subset <| inter_subset_right _ _
 #align set.finite.inter_of_right Set.Finite.inter_of_right
 
 theorem Finite.inf_of_left {s : Set α} (h : s.Finite) (t : Set α) : (s ⊓ t).Finite :=
@@ -780,53 +769,41 @@ theorem Finite.inf_of_right {s : Set α} (h : s.Finite) (t : Set α) : (t ⊓ s)
   h.inter_of_right t
 #align set.finite.inf_of_right Set.Finite.inf_of_right
 
-theorem Finite.subset {s : Set α} (hs : s.Finite) {t : Set α} (ht : t ⊆ s) : t.Finite := by
-  cases hs
-  haveI := Finite.Set.subset _ ht
-  apply toFinite
-#align set.finite.subset Set.Finite.subset
-
 protected lemma Infinite.mono {s t : Set α} (h : s ⊆ t) : s.Infinite → t.Infinite :=
   mt fun ht ↦ ht.subset h
 #align set.infinite.mono Set.Infinite.mono
 
-theorem Finite.diff {s : Set α} (hs : s.Finite) (t : Set α) : (s \ t).Finite := by
-  cases hs
-  apply toFinite
+theorem Finite.diff {s : Set α} (hs : s.Finite) (t : Set α) : (s \ t).Finite :=
+  hs.subset <| diff_subset _ _
 #align set.finite.diff Set.Finite.diff
 
 theorem Finite.of_diff {s t : Set α} (hd : (s \ t).Finite) (ht : t.Finite) : s.Finite :=
   (hd.union ht).subset <| subset_diff_union _ _
 #align set.finite.of_diff Set.Finite.of_diff
 
-theorem finite_iUnion [Finite ι] {f : ι → Set α} (H : ∀ i, (f i).Finite) : (⋃ i, f i).Finite := by
-  haveI := fun i => (H i).fintype
-  apply toFinite
+theorem finite_iUnion [Finite ι] {f : ι → Set α} (H : ∀ i, (f i).Finite) : (⋃ i, f i).Finite :=
+  haveI := fun i => (H i).to_subtype
+  toFinite _
 #align set.finite_Union Set.finite_iUnion
 
-theorem Finite.sUnion {s : Set (Set α)} (hs : s.Finite) (H : ∀ t ∈ s, Set.Finite t) :
-    (⋃₀ s).Finite := by
-  cases hs
-  haveI := fun i : s => (H i i.2).to_subtype
-  apply toFinite
-#align set.finite.sUnion Set.Finite.sUnion
-
-theorem Finite.biUnion {ι} {s : Set ι} (hs : s.Finite) {t : ι → Set α}
-    (ht : ∀ i ∈ s, (t i).Finite) : (⋃ i ∈ s, t i).Finite := by
-  classical
-    cases hs
-    haveI := fintypeBiUnion s t fun i hi => (ht i hi).fintype
-    apply toFinite
-#align set.finite.bUnion Set.Finite.biUnion
-
 /-- Dependent version of `Finite.biUnion`. -/
 theorem Finite.biUnion' {ι} {s : Set ι} (hs : s.Finite) {t : ∀ i ∈ s, Set α}
     (ht : ∀ i (hi : i ∈ s), (t i hi).Finite) : (⋃ i ∈ s, t i ‹_›).Finite := by
-  cases hs
+  have := hs.to_subtype
   rw [biUnion_eq_iUnion]
   apply finite_iUnion fun i : s => ht i.1 i.2
 #align set.finite.bUnion' Set.Finite.biUnion'
 
+theorem Finite.biUnion {ι} {s : Set ι} (hs : s.Finite) {t : ι → Set α}
+    (ht : ∀ i ∈ s, (t i).Finite) : (⋃ i ∈ s, t i).Finite :=
+  hs.biUnion' ht
+#align set.finite.bUnion Set.Finite.biUnion
+
+theorem Finite.sUnion {s : Set (Set α)} (hs : s.Finite) (H : ∀ t ∈ s, Set.Finite t) :
+    (⋃₀ s).Finite := by
+  simpa only [sUnion_eq_biUnion] using hs.biUnion H
+#align set.finite.sUnion Set.Finite.sUnion
+
 theorem Finite.sInter {α : Type*} {s : Set (Set α)} {t : Set α} (ht : t ∈ s) (hf : t.Finite) :
     (⋂₀ s).Finite :=
   hf.subset (sInter_subset_of_mem ht)
@@ -875,13 +852,12 @@ theorem finite_pure (a : α) : (pure a : Set α).Finite :=
 #align set.finite_pure Set.finite_pure
 
 @[simp]
-protected theorem Finite.insert (a : α) {s : Set α} (hs : s.Finite) : (insert a s).Finite := by
-  cases hs
-  apply toFinite
+protected theorem Finite.insert (a : α) {s : Set α} (hs : s.Finite) : (insert a s).Finite :=
+  (finite_singleton a).union hs
 #align set.finite.insert Set.Finite.insert
 
 theorem Finite.image {s : Set α} (f : α → β) (hs : s.Finite) : (f '' s).Finite := by
-  cases hs
+  have := hs.to_subtype
   apply toFinite
 #align set.finite.image Set.Finite.image
 
@@ -894,8 +870,8 @@ lemma Finite.of_surjOn {s : Set α} {t : Set β} (f : α → β) (hf : SurjOn f
 
 theorem Finite.dependent_image {s : Set α} (hs : s.Finite) (F : ∀ i ∈ s, β) :
     {y : β | ∃ x hx, F x hx = y}.Finite := by
-  cases hs
-  simpa [range, eq_comm] using finite_range fun x : s => F x x.2
+  have := hs.to_subtype
+  simpa [range] using finite_range fun x : s => F x x.2
 #align set.finite.dependent_image Set.Finite.dependent_image
 
 theorem Finite.map {α β} {s : Set α} : ∀ f : α → β, s.Finite → (f <$> s).Finite :=
@@ -903,11 +879,9 @@ theorem Finite.map {α β} {s : Set α} : ∀ f : α → β, s.Finite → (f <$>
 #align set.finite.map Set.Finite.map
 
 theorem Finite.of_finite_image {s : Set α} {f : α → β} (h : (f '' s).Finite) (hi : Set.InjOn f s) :
-    s.Finite := by
-  cases h
-  exact
-    ⟨Fintype.ofInjective (fun a => (⟨f a.1, mem_image_of_mem f a.2⟩ : f '' s)) fun a b eq =>
-        Subtype.eq <| hi a.2 b.2 <| Subtype.ext_iff_val.1 eq⟩
+    s.Finite :=
+  have := h.to_subtype
+  .of_injective _ hi.bijOn_image.bijective.injective
 #align set.finite.of_finite_image Set.Finite.of_finite_image
 
 section preimage
@@ -967,8 +941,8 @@ section Prod
 variable {s : Set α} {t : Set β}
 
 protected theorem Finite.prod (hs : s.Finite) (ht : t.Finite) : (s ×ˢ t : Set (α × β)).Finite := by
-  cases hs
-  cases ht
+  have := hs.to_subtype
+  have := ht.to_subtype
   apply toFinite
 #align set.finite.prod Set.Finite.prod
 
@@ -1003,27 +977,22 @@ theorem finite_prod : (s ×ˢ t).Finite ↔ (s.Finite ∨ t = ∅) ∧ (t.Finite
   simp only [← not_infinite, Set.infinite_prod, not_or, not_and_or, not_nonempty_iff_eq_empty]
 #align set.finite_prod Set.finite_prod
 
-protected theorem Finite.offDiag {s : Set α} (hs : s.Finite) : s.offDiag.Finite := by
-  classical
-    cases hs
-    apply Set.toFinite
+protected theorem Finite.offDiag {s : Set α} (hs : s.Finite) : s.offDiag.Finite :=
+  (hs.prod hs).subset s.offDiag_subset_prod
 #align set.finite.off_diag Set.Finite.offDiag
 
 protected theorem Finite.image2 (f : α → β → γ) (hs : s.Finite) (ht : t.Finite) :
     (image2 f s t).Finite := by
-  cases hs
-  cases ht
+  have := hs.to_subtype
+  have := ht.to_subtype
   apply toFinite
 #align set.finite.image2 Set.Finite.image2
 
 end Prod
 
 theorem Finite.seq {f : Set (α → β)} {s : Set α} (hf : f.Finite) (hs : s.Finite) :
-    (f.seq s).Finite := by
-  classical
-    cases hf
-    cases hs
-    apply toFinite
+    (f.seq s).Finite :=
+  hf.image2 _ hs
 #align set.finite.seq Set.Finite.seq
 
 theorem Finite.seq' {α β : Type u} {f : Set (α → β)} {s : Set α} (hf : f.Finite) (hs : s.Finite) :
@@ -1052,10 +1021,11 @@ theorem exists_finite_iff_finset {p : Set α → Prop} :
 #align set.exists_finite_iff_finset Set.exists_finite_iff_finset
 
 /-- There are finitely many subsets of a given finite set -/
-theorem Finite.finite_subsets {α : Type u} {a : Set α} (h : a.Finite) : { b | b ⊆ a }.Finite :=
-  ⟨Fintype.ofFinset ((Finset.powerset h.toFinset).map Finset.coeEmb.1) fun s => by
-      simpa [← @exists_finite_iff_finset α fun t => t ⊆ a ∧ t = s, Finite.subset_toFinset, ←
-        and_assoc, Finset.coeEmb] using h.subset⟩
+theorem Finite.finite_subsets {α : Type u} {a : Set α} (h : a.Finite) : { b | b ⊆ a }.Finite := by
+  convert ((Finset.powerset h.toFinset).map Finset.coeEmb.1).finite_toSet
+  ext s
+  simpa [← @exists_finite_iff_finset α fun t => t ⊆ a ∧ t = s, Finite.subset_toFinset,
+    ← and_assoc, Finset.coeEmb] using h.subset
 #align set.finite.finite_subsets Set.Finite.finite_subsets
 
 section Pi
@@ -1097,7 +1067,6 @@ end SetFiniteConstructors
 
 /-! ### Properties -/
 
-
 instance Finite.inhabited : Inhabited { s : Set α // s.Finite } :=
   ⟨⟨∅, finite_empty⟩⟩
 #align set.finite.inhabited Set.Finite.inhabited
@@ -1174,7 +1143,7 @@ theorem forall_finite_image_eval_iff {δ : Type*} [Finite δ] {κ : δ → Type*
 
 theorem finite_subset_iUnion {s : Set α} (hs : s.Finite) {ι} {t : ι → Set α} (h : s ⊆ ⋃ i, t i) :
     ∃ I : Set ι, I.Finite ∧ s ⊆ ⋃ i ∈ I, t i := by
-  cases hs
+  have := hs.to_subtype
   choose f hf using show ∀ x : s, ∃ i, x.1 ∈ t i by simpa [subset_def] using h
   refine' ⟨range f, finite_range f, fun x hx => _⟩
   rw [biUnion_range, mem_iUnion]
chore: tidy various files (#9851)
Diff
@@ -1275,8 +1275,8 @@ theorem empty_card : Fintype.card (∅ : Set α) = 0 :=
   rfl
 #align set.empty_card Set.empty_card
 
-theorem empty_card' {h : Fintype.{u} (∅ : Set α)} : @Fintype.card (∅ : Set α) h = 0 :=
-  by simp
+theorem empty_card' {h : Fintype.{u} (∅ : Set α)} : @Fintype.card (∅ : Set α) h = 0 := by
+  simp
 #align set.empty_card' Set.empty_card'
 
 theorem card_fintypeInsertOfNotMem {a : α} (s : Set α) [Fintype s] (h : a ∉ s) :
feat(Data/Set/Finite): Induction principle for Set (#9123)

This PR adds another induction principle for Set where you prove that a property C holds of Set.univ by proving the inductive step C S → ∃ a ∉ S, C (insert a S) (the key being exists the use of exists rather than forall).

Co-authored-by: Thomas Browning <tb65536@users.noreply.github.com>

Diff
@@ -1228,6 +1228,23 @@ theorem Finite.dinduction_on {C : ∀ s : Set α, s.Finite → Prop} (s : Set α
   this h
 #align set.finite.dinduction_on Set.Finite.dinduction_on
 
+/-- Induction up to a finite set `S`. -/
+theorem Finite.induction_to {C : Set α → Prop} {S : Set α} (h : S.Finite)
+    (S0 : Set α) (hS0 : S0 ⊆ S) (H0 : C S0) (H1 : ∀ s ⊂ S, C s → ∃ a ∈ S \ s, C (insert a s)) :
+    C S := by
+  have : Finite S := Finite.to_subtype h
+  have : Finite {T : Set α // T ⊆ S} := Finite.of_equiv (Set S) (Equiv.Set.powerset S).symm
+  rw [← Subtype.coe_mk (p := (· ⊆ S)) _ le_rfl]
+  rw [← Subtype.coe_mk (p := (· ⊆ S)) _ hS0] at H0
+  refine Finite.to_wellFoundedGT.wf.induction_bot' (fun s hs hs' ↦ ?_) H0
+  obtain ⟨a, ⟨ha1, ha2⟩, ha'⟩ := H1 s (ssubset_of_ne_of_subset hs s.2) hs'
+  exact ⟨⟨insert a s.1, insert_subset ha1 s.2⟩, Set.ssubset_insert ha2, ha'⟩
+
+/-- Induction up to `univ`. -/
+theorem Finite.induction_to_univ [Finite α] {C : Set α → Prop} (S0 : Set α)
+    (H0 : C S0) (H1 : ∀ S ≠ univ, C S → ∃ a ∉ S, C (insert a S)) : C univ :=
+  finite_univ.induction_to S0 (subset_univ S0) H0 (by simpa [ssubset_univ_iff])
+
 section
 
 attribute [local instance] Nat.fintypeIio
chore: scope symmDiff notations (#9844)

Those notations are not scoped whereas the file is very low in the import hierarchy.

Diff
@@ -274,6 +274,7 @@ protected theorem toFinset_diff [DecidableEq α] (hs : s.Finite) (ht : t.Finite)
   simp
 #align set.finite.to_finset_diff Set.Finite.toFinset_diff
 
+open scoped symmDiff in
 protected theorem toFinset_symmDiff [DecidableEq α] (hs : s.Finite) (ht : t.Finite)
     (h : (s ∆ t).Finite) : h.toFinset = hs.toFinset ∆ ht.toFinset := by
   ext
chore(*): replace $ with <| (#9319)

See Zulip thread for the discussion.

Diff
@@ -859,7 +859,7 @@ theorem finite_empty : (∅ : Set α).Finite :=
 #align set.finite_empty Set.finite_empty
 
 protected theorem Infinite.nonempty {s : Set α} (h : s.Infinite) : s.Nonempty :=
-  nonempty_iff_ne_empty.2 $ by
+  nonempty_iff_ne_empty.2 <| by
     rintro rfl
     exact h finite_empty
 #align set.infinite.nonempty Set.Infinite.nonempty
@@ -926,10 +926,10 @@ theorem Finite.preimage (I : Set.InjOn f (f ⁻¹' s)) (h : s.Finite) : (f ⁻¹
 #align set.finite.preimage Set.Finite.preimage
 
 protected lemma Infinite.preimage (hs : s.Infinite) (hf : s ⊆ range f) : (f ⁻¹' s).Infinite :=
-  fun h ↦ hs $ finite_of_finite_preimage h hf
+  fun h ↦ hs <| finite_of_finite_preimage h hf
 
 lemma Infinite.preimage' (hs : (s ∩ range f).Infinite) : (f ⁻¹' s).Infinite :=
-  (hs.preimage $ inter_subset_right _ _).mono $ preimage_mono $ inter_subset_left _ _
+  (hs.preimage <| inter_subset_right _ _).mono <| preimage_mono <| inter_subset_left _ _
 
 theorem Finite.preimage_embedding {s : Set β} (f : α ↪ β) (h : s.Finite) : (f ⁻¹' s).Finite :=
   h.preimage fun _ _ _ _ h' => f.injective h'
@@ -992,7 +992,7 @@ protected theorem infinite_prod :
   refine' ⟨fun h => _, _⟩
   · simp_rw [Set.Infinite, @and_comm ¬_, ← not_imp]
     by_contra!
-    exact h ((this.1 h.nonempty.snd).prod $ this.2 h.nonempty.fst)
+    exact h ((this.1 h.nonempty.snd).prod <| this.2 h.nonempty.fst)
   · rintro (h | h)
     · exact h.1.prod_left h.2
     · exact h.1.prod_right h.2
@@ -1347,7 +1347,7 @@ alias ⟨_, Infinite.to_subtype⟩ := infinite_coe_iff
 #align set.infinite.to_subtype Set.Infinite.to_subtype
 
 lemma Infinite.exists_not_mem_finite (hs : s.Infinite) (ht : t.Finite) : ∃ a, a ∈ s ∧ a ∉ t := by
-  by_contra! h; exact hs $ ht.subset h
+  by_contra! h; exact hs <| ht.subset h
 
 lemma Infinite.exists_not_mem_finset (hs : s.Infinite) (t : Finset α) : ∃ a ∈ s, a ∉ t :=
   hs.exists_not_mem_finite t.finite_toSet
@@ -1755,7 +1755,7 @@ lemma Finite.of_forall_not_lt_lt (h : ∀ ⦃x y z : α⦄, x < y → y < z →
 /-- If a set `s` does not contain any triple of elements `x < y < z`, then `s` is finite. -/
 lemma Set.finite_of_forall_not_lt_lt (h : ∀ x ∈ s, ∀ y ∈ s, ∀ z ∈ s, x < y → y < z → False) :
     Set.Finite s :=
-  @Set.toFinite _ s <| Finite.of_forall_not_lt_lt $ by simpa only [SetCoe.forall'] using h
+  @Set.toFinite _ s <| Finite.of_forall_not_lt_lt <| by simpa only [SetCoe.forall'] using h
 #align set.finite_of_forall_not_lt_lt Set.finite_of_forall_not_lt_lt
 
 lemma Set.finite_diff_iUnion_Ioo (s : Set α) : (s \ ⋃ (x ∈ s) (y ∈ s), Ioo x y).Finite :=
chore: move a few results from Archive.Hairer into mathlib (#9315)

Co-authored-by: Yaël Dillies <yael.dillies@gmail.com>

Diff
@@ -71,7 +71,7 @@ theorem finite_def {s : Set α} : s.Finite ↔ Nonempty (Fintype s) :=
   ⟨fun ⟨h⟩ => ⟨h⟩, fun ⟨h⟩ => ⟨h⟩⟩
 #align set.finite_def Set.finite_def
 
-alias ⟨Finite.nonempty_fintype, _⟩ := finite_def
+protected alias ⟨Finite.nonempty_fintype, _⟩ := finite_def
 #align set.finite.nonempty_fintype Set.Finite.nonempty_fintype
 
 theorem finite_coe_iff {s : Set α} : Finite s ↔ s.Finite := by
@@ -1057,16 +1057,25 @@ theorem Finite.finite_subsets {α : Type u} {a : Set α} (h : a.Finite) : { b |
         and_assoc, Finset.coeEmb] using h.subset⟩
 #align set.finite.finite_subsets Set.Finite.finite_subsets
 
+section Pi
+variable {ι : Type*} [Finite ι] {κ : ι → Type*} {t : ∀ i, Set (κ i)}
+
 /-- Finite product of finite sets is finite -/
-theorem Finite.pi {δ : Type*} [Finite δ] {κ : δ → Type*} {t : ∀ d, Set (κ d)}
-    (ht : ∀ d, (t d).Finite) : (pi univ t).Finite := by
-  cases _root_.nonempty_fintype δ
+theorem Finite.pi (ht : ∀ i, (t i).Finite) : (pi univ t).Finite := by
+  cases nonempty_fintype ι
   lift t to ∀ d, Finset (κ d) using ht
   classical
     rw [← Fintype.coe_piFinset]
     apply Finset.finite_toSet
 #align set.finite.pi Set.Finite.pi
 
+/-- Finite product of finite sets is finite. Note this is a variant of `Set.Finite.pi` without the
+extra `i ∈ univ` binder. -/
+lemma Finite.pi' (ht : ∀ i, (t i).Finite) : {f : ∀ i, κ i | ∀ i, f i ∈ t i}.Finite := by
+  simpa [Set.pi] using Finite.pi ht
+
+end Pi
+
 /-- A finite union of finsets is finite. -/
 theorem union_finset_finite_of_range_finite (f : α → Finset β) (h : (range f).Finite) :
     (⋃ a, (f a : Set β)).Finite := by
chore(*): drop $/<| before fun (#9361)

Subset of #9319

Diff
@@ -192,7 +192,7 @@ theorem coeSort_toFinset : ↥hs.toFinset = ↥s := by
 /-- The identity map, bundled as an equivalence between the subtypes of `s : Set α` and of
 `h.toFinset : Finset α`, where `h` is a proof of finiteness of `s`. -/
 @[simps!] def subtypeEquivToFinset : {x // x ∈ s} ≃ {x // x ∈ hs.toFinset} :=
-  (Equiv.refl α).subtypeEquiv <| fun _ ↦ hs.mem_toFinset.symm
+  (Equiv.refl α).subtypeEquiv fun _ ↦ hs.mem_toFinset.symm
 
 variable {hs}
 
feat: Better lemmas for transferring finite sums along equivalences (#9237)

Lemmas around this were a mess, throth in terms of names, statement and location. This PR standardises everything to be in Algebra.BigOperators.Basic and changes the lemmas to take in InjOn and SurjOn assumptions where possible (and where impossible make sure the hypotheses are taken in the correct order) and moves the equality of functions hypothesis last.

Also add a few lemmas that help fix downstream uses by golfing.

From LeanAPAP and LeanCamCombi

Diff
@@ -892,7 +892,7 @@ lemma Finite.of_surjOn {s : Set α} {t : Set β} (f : α → β) (hf : SurjOn f
     t.Finite := (hs.image _).subset hf
 
 theorem Finite.dependent_image {s : Set α} (hs : s.Finite) (F : ∀ i ∈ s, β) :
-    { y : β | ∃ (x : _) (hx : x ∈ s), y = F x hx }.Finite := by
+    {y : β | ∃ x hx, F x hx = y}.Finite := by
   cases hs
   simpa [range, eq_comm] using finite_range fun x : s => F x x.2
 #align set.finite.dependent_image Set.Finite.dependent_image
chore: Improve Finset lemma names (#8894)

Change a few lemma names that have historically bothered me.

  • Finset.card_le_of_subsetFinset.card_le_card
  • Multiset.card_le_of_leMultiset.card_le_card
  • Multiset.card_lt_of_ltMultiset.card_lt_card
  • Set.ncard_le_of_subsetSet.ncard_le_ncard
  • Finset.image_filterFinset.filter_image
  • CompleteLattice.finset_sup_compact_of_compactCompleteLattice.isCompactElement_finset_sup
Diff
@@ -1290,10 +1290,10 @@ theorem card_lt_card {s t : Set α} [Fintype s] [Fintype t] (h : s ⊂ t) :
     fun hst => (ssubset_iff_subset_ne.1 h).2 (eq_of_inclusion_surjective hst)
 #align set.card_lt_card Set.card_lt_card
 
-theorem card_le_of_subset {s t : Set α} [Fintype s] [Fintype t] (hsub : s ⊆ t) :
+theorem card_le_card {s t : Set α} [Fintype s] [Fintype t] (hsub : s ⊆ t) :
     Fintype.card s ≤ Fintype.card t :=
   Fintype.card_le_of_injective (Set.inclusion hsub) (Set.inclusion_injective hsub)
-#align set.card_le_of_subset Set.card_le_of_subset
+#align set.card_le_card Set.card_le_card
 
 theorem eq_of_subset_of_card_le {s t : Set α} [Fintype s] [Fintype t] (hsub : s ⊆ t)
     (hcard : Fintype.card t ≤ Fintype.card s) : s = t :=
chore(Data/Set/Function): rename some lemmas (#9257)
  • Set.maps_image_toSet.mapsTo_image_iff;
  • Set.maps_univ_toSet.mapsTo_univ_iff;
  • Set.maps_range_toSet.mapsTo_range_iff.

In all cases, use implicit arguments instead of explicit arguments. In the last case, also generalize from Type* to Sort* and replace the RHS with its simp-normal form.

Old lemmas stay there but are now deprecated.

Diff
@@ -1497,7 +1497,7 @@ theorem Infinite.exists_lt_map_eq_of_mapsTo [LinearOrder α] {s : Set α} {t : S
 
 theorem Finite.exists_lt_map_eq_of_forall_mem [LinearOrder α] [Infinite α] {t : Set β} {f : α → β}
     (hf : ∀ a, f a ∈ t) (ht : t.Finite) : ∃ a b, a < b ∧ f a = f b := by
-  rw [← maps_univ_to] at hf
+  rw [← mapsTo_univ_iff] at hf
   obtain ⟨a, -, b, -, h⟩ := infinite_univ.exists_lt_map_eq_of_mapsTo hf ht
   exact ⟨a, b, h⟩
 #align set.finite.exists_lt_map_eq_of_forall_mem Set.Finite.exists_lt_map_eq_of_forall_mem
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
@@ -1634,7 +1634,7 @@ theorem Finite.exists_maximal_wrt [PartialOrder β] (f : α → β) (s : Set α)
   induction s, h using Set.Finite.dinduction_on with
   | H0 => exact absurd hs not_nonempty_empty
   | @H1 a s his _ ih =>
-    cases' s.eq_empty_or_nonempty with h h
+    rcases s.eq_empty_or_nonempty with h | h
     · use a
       simp [h]
     rcases ih h with ⟨b, hb, ih⟩
feat: Preimage of pointwise multiplication (#8956)

From PFR

Co-authored-by: Patrick Massot <patrickmassot@free.fr>

Diff
@@ -785,6 +785,10 @@ theorem Finite.subset {s : Set α} (hs : s.Finite) {t : Set α} (ht : t ⊆ s) :
   apply toFinite
 #align set.finite.subset Set.Finite.subset
 
+protected lemma Infinite.mono {s t : Set α} (h : s ⊆ t) : s.Infinite → t.Infinite :=
+  mt fun ht ↦ ht.subset h
+#align set.infinite.mono Set.Infinite.mono
+
 theorem Finite.diff {s : Set α} (hs : s.Finite) (t : Set α) : (s \ t).Finite := by
   cases hs
   apply toFinite
@@ -905,26 +909,34 @@ theorem Finite.of_finite_image {s : Set α} {f : α → β} (h : (f '' s).Finite
         Subtype.eq <| hi a.2 b.2 <| Subtype.ext_iff_val.1 eq⟩
 #align set.finite.of_finite_image Set.Finite.of_finite_image
 
-theorem finite_of_finite_preimage {f : α → β} {s : Set β} (h : (f ⁻¹' s).Finite)
-    (hs : s ⊆ range f) : s.Finite := by
+section preimage
+variable {f : α → β} {s : Set β}
+
+theorem finite_of_finite_preimage (h : (f ⁻¹' s).Finite) (hs : s ⊆ range f) : s.Finite := by
   rw [← image_preimage_eq_of_subset hs]
   exact Finite.image f h
 #align set.finite_of_finite_preimage Set.finite_of_finite_preimage
 
-theorem Finite.of_preimage {f : α → β} {s : Set β} (h : (f ⁻¹' s).Finite) (hf : Surjective f) :
-    s.Finite :=
+theorem Finite.of_preimage (h : (f ⁻¹' s).Finite) (hf : Surjective f) : s.Finite :=
   hf.image_preimage s ▸ h.image _
 #align set.finite.of_preimage Set.Finite.of_preimage
 
-theorem Finite.preimage {s : Set β} {f : α → β} (I : Set.InjOn f (f ⁻¹' s)) (h : s.Finite) :
-    (f ⁻¹' s).Finite :=
+theorem Finite.preimage (I : Set.InjOn f (f ⁻¹' s)) (h : s.Finite) : (f ⁻¹' s).Finite :=
   (h.subset (image_preimage_subset f s)).of_finite_image I
 #align set.finite.preimage Set.Finite.preimage
 
+protected lemma Infinite.preimage (hs : s.Infinite) (hf : s ⊆ range f) : (f ⁻¹' s).Infinite :=
+  fun h ↦ hs $ finite_of_finite_preimage h hf
+
+lemma Infinite.preimage' (hs : (s ∩ range f).Infinite) : (f ⁻¹' s).Infinite :=
+  (hs.preimage $ inter_subset_right _ _).mono $ preimage_mono $ inter_subset_left _ _
+
 theorem Finite.preimage_embedding {s : Set β} (f : α ↪ β) (h : s.Finite) : (f ⁻¹' s).Finite :=
   h.preimage fun _ _ _ _ h' => f.injective h'
 #align set.finite.preimage_embedding Set.Finite.preimage_embedding
 
+end preimage
+
 theorem finite_lt_nat (n : ℕ) : Set.Finite { i | i < n } :=
   toFinite _
 #align set.finite_lt_nat Set.finite_lt_nat
@@ -1360,10 +1372,6 @@ theorem Finite.infinite_compl [Infinite α] {s : Set α} (hs : s.Finite) : sᶜ.
   Set.infinite_univ (by simpa using hs.union h)
 #align set.finite.infinite_compl Set.Finite.infinite_compl
 
-protected theorem Infinite.mono {s t : Set α} (h : s ⊆ t) : s.Infinite → t.Infinite :=
-  mt fun ht => ht.subset h
-#align set.infinite.mono Set.Infinite.mono
-
 theorem Infinite.diff {s t : Set α} (hs : s.Infinite) (ht : t.Finite) : (s \ t).Infinite := fun h =>
   hs <| h.of_diff ht
 #align set.infinite.diff Set.Infinite.diff
@@ -1412,6 +1420,12 @@ theorem infinite_image2 (hfs : ∀ b ∈ t, InjOn (fun a => f a b) s) (hft : ∀
     · exact ht.image2_right ha (hft _ ha)
 #align set.infinite_image2 Set.infinite_image2
 
+lemma finite_image2 (hfs : ∀ b ∈ t, InjOn (f · b) s) (hft : ∀ a ∈ s, InjOn (f a) t) :
+    (image2 f s t).Finite ↔ s.Finite ∧ t.Finite ∨ s = ∅ ∨ t = ∅ := by
+  rw [← not_infinite, infinite_image2 hfs hft]
+  simp [not_or, -not_and, not_and_or, not_nonempty_iff_eq_empty]
+  aesop
+
 end Image2
 
 theorem infinite_of_injOn_mapsTo {s : Set α} {t : Set β} {f : α → β} (hi : InjOn f s)
feat: demote the instance Fintype.ofIsEmpty to a def (#8816)

Rationale: this instance creates (empty) data out of nothing, which may conflict with other data. If you have in the context [Fintype i] and case on whether i is empty or not, then this gave two non-defeq instances of [Fintype i] around.

Diff
@@ -286,11 +286,6 @@ protected theorem toFinset_compl [DecidableEq α] [Fintype α] (hs : s.Finite) (
   simp
 #align set.finite.to_finset_compl Set.Finite.toFinset_compl
 
--- porting note: was `@[simp]`, now `simp` can prove it
-protected theorem toFinset_empty (h : (∅ : Set α).Finite) : h.toFinset = ∅ :=
-  toFinite_toFinset _
-#align set.finite.to_finset_empty Set.Finite.toFinset_empty
-
 protected theorem toFinset_univ [Fintype α] (h : (Set.univ : Set α).Finite) :
     h.toFinset = Finset.univ := by
   simp
@@ -301,6 +296,10 @@ protected theorem toFinset_eq_empty {h : s.Finite} : h.toFinset = ∅ ↔ s = 
   @toFinset_eq_empty _ _ h.fintype
 #align set.finite.to_finset_eq_empty Set.Finite.toFinset_eq_empty
 
+protected theorem toFinset_empty (h : (∅ : Set α).Finite) : h.toFinset = ∅ := by
+  simp
+#align set.finite.to_finset_empty Set.Finite.toFinset_empty
+
 @[simp]
 protected theorem toFinset_eq_univ [Fintype α] {h : s.Finite} :
     h.toFinset = Finset.univ ↔ s = univ :=
@@ -1237,9 +1236,8 @@ theorem empty_card : Fintype.card (∅ : Set α) = 0 :=
   rfl
 #align set.empty_card Set.empty_card
 
-@[simp]
 theorem empty_card' {h : Fintype.{u} (∅ : Set α)} : @Fintype.card (∅ : Set α) h = 0 :=
-  Eq.trans (by congr; exact Subsingleton.elim _ _) empty_card
+  by simp
 #align set.empty_card' Set.empty_card'
 
 theorem card_fintypeInsertOfNotMem {a : α} (s : Set α) [Fintype s] (h : a ∉ s) :
feat: supporting lemmas for defining root systems (#8980)

A collection of loosely-related lemmas, split out from other work in the hopes of simplifying review.

Diff
@@ -934,6 +934,22 @@ theorem finite_le_nat (n : ℕ) : Set.Finite { i | i ≤ n } :=
   toFinite _
 #align set.finite_le_nat Set.finite_le_nat
 
+section MapsTo
+
+variable {s : Set α} {f : α → α} (hs : s.Finite) (hm : MapsTo f s s)
+
+theorem Finite.surjOn_iff_bijOn_of_mapsTo : SurjOn f s s ↔ BijOn f s s := by
+  refine ⟨fun h ↦ ⟨hm, ?_, h⟩, BijOn.surjOn⟩
+  have : Finite s := finite_coe_iff.mpr hs
+  exact hm.restrict_inj.mp (Finite.injective_iff_surjective.mpr <| hm.restrict_surjective_iff.mpr h)
+
+theorem Finite.injOn_iff_bijOn_of_mapsTo : InjOn f s ↔ BijOn f s s := by
+  refine ⟨fun h ↦ ⟨hm, h, ?_⟩, BijOn.injOn⟩
+  have : Finite s := finite_coe_iff.mpr hs
+  exact hm.restrict_surjective_iff.mp (Finite.injective_iff_surjective.mp <| hm.restrict_inj.mpr h)
+
+end MapsTo
+
 section Prod
 
 variable {s : Set α} {t : Set β}
chore: rename by_contra' to by_contra! (#8797)

To fit with the "please try harder" convention of ! tactics.

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -964,7 +964,7 @@ protected theorem infinite_prod :
     (s ×ˢ t).Infinite ↔ s.Infinite ∧ t.Nonempty ∨ t.Infinite ∧ s.Nonempty := by
   refine' ⟨fun h => _, _⟩
   · simp_rw [Set.Infinite, @and_comm ¬_, ← not_imp]
-    by_contra'
+    by_contra!
     exact h ((this.1 h.nonempty.snd).prod $ this.2 h.nonempty.fst)
   · rintro (h | h)
     · exact h.1.prod_left h.2
@@ -1312,7 +1312,7 @@ alias ⟨_, Infinite.to_subtype⟩ := infinite_coe_iff
 #align set.infinite.to_subtype Set.Infinite.to_subtype
 
 lemma Infinite.exists_not_mem_finite (hs : s.Infinite) (ht : t.Finite) : ∃ a, a ∈ s ∧ a ∉ t := by
-  by_contra' h; exact hs $ ht.subset h
+  by_contra! h; exact hs $ ht.subset h
 
 lemma Infinite.exists_not_mem_finset (hs : s.Infinite) (t : Finset α) : ∃ a ∈ s, a ∉ t :=
   hs.exists_not_mem_finite t.finite_toSet
@@ -1322,7 +1322,7 @@ section Infinite
 variable [Infinite α]
 
 lemma Finite.exists_not_mem (hs : s.Finite) : ∃ a, a ∉ s := by
-  by_contra' h; exact infinite_univ (hs.subset fun a _ ↦ h _)
+  by_contra! h; exact infinite_univ (hs.subset fun a _ ↦ h _)
 
 lemma _root_.Finset.exists_not_mem (s : Finset α) : ∃ a, a ∉ s := s.finite_toSet.exists_not_mem
 
feat: the trace of a direct sum is the sum of the traces (#8369)
Diff
@@ -167,28 +167,35 @@ protected theorem infinite_or_finite (s : Set α) : s.Infinite ∨ s.Finite :=
 
 namespace Finite
 
-variable {s t : Set α} {a : α} {hs : s.Finite} {ht : t.Finite}
+variable {s t : Set α} {a : α} (hs : s.Finite) {ht : t.Finite}
 
 @[simp]
-protected theorem mem_toFinset (h : s.Finite) : a ∈ h.toFinset ↔ a ∈ s :=
-  @mem_toFinset _ _ h.fintype _
+protected theorem mem_toFinset : a ∈ hs.toFinset ↔ a ∈ s :=
+  @mem_toFinset _ _ hs.fintype _
 #align set.finite.mem_to_finset Set.Finite.mem_toFinset
 
 @[simp]
-protected theorem coe_toFinset (h : s.Finite) : (h.toFinset : Set α) = s :=
-  @coe_toFinset _ _ h.fintype
+protected theorem coe_toFinset : (hs.toFinset : Set α) = s :=
+  @coe_toFinset _ _ hs.fintype
 #align set.finite.coe_to_finset Set.Finite.coe_toFinset
 
 @[simp]
-protected theorem toFinset_nonempty (h : s.Finite) : h.toFinset.Nonempty ↔ s.Nonempty := by
+protected theorem toFinset_nonempty : hs.toFinset.Nonempty ↔ s.Nonempty := by
   rw [← Finset.coe_nonempty, Finite.coe_toFinset]
 #align set.finite.to_finset_nonempty Set.Finite.toFinset_nonempty
 
 /-- Note that this is an equality of types not holding definitionally. Use wisely. -/
-theorem coeSort_toFinset (h : s.Finite) : ↥h.toFinset = ↥s := by
-  rw [← Finset.coe_sort_coe _, h.coe_toFinset]
+theorem coeSort_toFinset : ↥hs.toFinset = ↥s := by
+  rw [← Finset.coe_sort_coe _, hs.coe_toFinset]
 #align set.finite.coe_sort_to_finset Set.Finite.coeSort_toFinset
 
+/-- The identity map, bundled as an equivalence between the subtypes of `s : Set α` and of
+`h.toFinset : Finset α`, where `h` is a proof of finiteness of `s`. -/
+@[simps!] def subtypeEquivToFinset : {x // x ∈ s} ≃ {x // x ∈ hs.toFinset} :=
+  (Equiv.refl α).subtypeEquiv <| fun _ ↦ hs.mem_toFinset.symm
+
+variable {hs}
+
 @[simp]
 protected theorem toFinset_inj : hs.toFinset = ht.toFinset ↔ s = t :=
   @toFinset_inj _ _ _ hs.fintype ht.fintype
feat: make Set.monad not an instance and add (Subtype.val '' ·) coercion (#8413)

The monad instance on Set isn't computationally relevant, and it causes Lean's monad lifting coercion logic to activate. We introduce a coercion instance for the case that's actually used in practice: when s : Set X and t : Set s then (t : Set X) ought to be Subtype.val '' t. This way we do not see Lean.Internal.coeM terms.

If the monad is still wanted, it can be activated using a local attribute or by using the SetM.run function.

Diff
@@ -400,6 +400,9 @@ instance fintypeBiUnion' [DecidableEq α] {ι : Type*} (s : Set ι) [Fintype s]
   Fintype.ofFinset (s.toFinset.biUnion fun x => (t x).toFinset) <| by simp
 #align set.fintype_bUnion' Set.fintypeBiUnion'
 
+section monad
+attribute [local instance] Set.monad
+
 /-- If `s : Set α` is a set with `Fintype` instance and `f : α → Set β` is a function such that
 each `f a`, `a ∈ s`, has a `Fintype` structure, then `s >>= f` has a `Fintype` structure. -/
 def fintypeBind {α β} [DecidableEq β] (s : Set α) [Fintype s] (f : α → Set β)
@@ -412,6 +415,8 @@ instance fintypeBind' {α β} [DecidableEq β] (s : Set α) [Fintype s] (f : α
   Set.fintypeBiUnion' s f
 #align set.fintype_bind' Set.fintypeBind'
 
+end monad
+
 instance fintypeEmpty : Fintype (∅ : Set α) :=
   Fintype.ofFinset ∅ <| by simp
 #align set.fintype_empty Set.fintypeEmpty
@@ -828,11 +833,16 @@ theorem Finite.iUnion {ι : Type*} {s : ι → Set α} {t : Set ι} (ht : t.Fini
     contradiction
 #align set.finite.Union Set.Finite.iUnion
 
+section monad
+attribute [local instance] Set.monad
+
 theorem Finite.bind {α β} {s : Set α} {f : α → Set β} (h : s.Finite) (hf : ∀ a ∈ s, (f a).Finite) :
     (s >>= f).Finite :=
   h.biUnion hf
 #align set.finite.bind Set.Finite.bind
 
+end monad
+
 @[simp]
 theorem finite_empty : (∅ : Set α).Finite :=
   toFinite _
feat: Finset of arbitrary size in an infinite type (#8348)

and a few other easy lemmas

Diff
@@ -868,6 +868,9 @@ theorem finite_range (f : ι → α) [Finite ι] : (range f).Finite :=
   toFinite _
 #align set.finite_range Set.finite_range
 
+lemma Finite.of_surjOn {s : Set α} {t : Set β} (f : α → β) (hf : SurjOn f s t) (hs : s.Finite) :
+    t.Finite := (hs.image _).subset hf
+
 theorem Finite.dependent_image {s : Set α} (hs : s.Finite) (F : ∀ i ∈ s, β) :
     { y : β | ∃ (x : _) (hx : x ∈ s), y = F x hx }.Finite := by
   cases hs
@@ -1273,6 +1276,8 @@ theorem card_ne_eq [Fintype α] (a : α) [Fintype { x : α | x ≠ a }] :
 
 /-! ### Infinite sets -/
 
+variable {s t : Set α}
+
 theorem infinite_univ_iff : (@univ α).Infinite ↔ Infinite α := by
   rw [Set.Infinite, finite_univ_iff, not_finite_iff_infinite]
 #align set.infinite_univ_iff Set.infinite_univ_iff
@@ -1289,6 +1294,23 @@ theorem infinite_coe_iff {s : Set α} : Infinite s ↔ s.Infinite :=
 alias ⟨_, Infinite.to_subtype⟩ := infinite_coe_iff
 #align set.infinite.to_subtype Set.Infinite.to_subtype
 
+lemma Infinite.exists_not_mem_finite (hs : s.Infinite) (ht : t.Finite) : ∃ a, a ∈ s ∧ a ∉ t := by
+  by_contra' h; exact hs $ ht.subset h
+
+lemma Infinite.exists_not_mem_finset (hs : s.Infinite) (t : Finset α) : ∃ a ∈ s, a ∉ t :=
+  hs.exists_not_mem_finite t.finite_toSet
+#align set.infinite.exists_not_mem_finset Set.Infinite.exists_not_mem_finset
+
+section Infinite
+variable [Infinite α]
+
+lemma Finite.exists_not_mem (hs : s.Finite) : ∃ a, a ∉ s := by
+  by_contra' h; exact infinite_univ (hs.subset fun a _ ↦ h _)
+
+lemma _root_.Finset.exists_not_mem (s : Finset α) : ∃ a, a ∉ s := s.finite_toSet.exists_not_mem
+
+end Infinite
+
 /-- Embedding of `ℕ` into an infinite set. -/
 noncomputable def Infinite.natEmbedding (s : Set α) (h : s.Infinite) : ℕ ↪ s :=
   h.to_subtype.natEmbedding
@@ -1384,12 +1406,6 @@ theorem infinite_of_injective_forall_mem [Infinite α] {s : Set β} {f : α →
   exact (infinite_range_of_injective hi).mono hf
 #align set.infinite_of_injective_forall_mem Set.infinite_of_injective_forall_mem
 
-theorem Infinite.exists_not_mem_finset {s : Set α} (hs : s.Infinite) (f : Finset α) :
-    ∃ a ∈ s, a ∉ f :=
-  let ⟨a, has, haf⟩ := (hs.diff (toFinite f)).nonempty
-  ⟨a, has, fun h => haf <| Finset.mem_coe.1 h⟩
-#align set.infinite.exists_not_mem_finset Set.Infinite.exists_not_mem_finset
-
 theorem not_injOn_infinite_finite_image {f : α → β} {s : Set α} (h_inf : s.Infinite)
     (h_fin : (f '' s).Finite) : ¬InjOn f s := by
   have : Finite (f '' s) := finite_coe_iff.mpr h_fin
@@ -1651,6 +1667,14 @@ end Set
 
 namespace Finset
 
+lemma exists_card_eq [Infinite α] : ∀ n : ℕ, ∃ s : Finset α, s.card = n
+  | 0 => ⟨∅, card_empty⟩
+  | n + 1 => by
+    classical
+    obtain ⟨s, rfl⟩ := exists_card_eq n
+    obtain ⟨a, ha⟩ := s.exists_not_mem
+    exact ⟨insert a s, card_insert_of_not_mem ha⟩
+
 /-- A finset is bounded above. -/
 protected theorem bddAbove [SemilatticeSup α] [Nonempty α] (s : Finset α) : BddAbove (↑s : Set α) :=
   s.finite_toSet.bddAbove
Diff
@@ -7,7 +7,7 @@ import Mathlib.Data.Finset.Basic
 import Mathlib.Data.Set.Functor
 import Mathlib.Data.Finite.Basic
 
-#align_import data.set.finite from "leanprover-community/mathlib"@"ffde2d8a6e689149e44fd95fa862c23a57f8c780"
+#align_import data.set.finite from "leanprover-community/mathlib"@"65a1391a0106c9204fe45bc73a039f056558cb83"
 
 /-!
 # Finite sets
@@ -1208,10 +1208,7 @@ theorem empty_card' {h : Fintype.{u} (∅ : Set α)} : @Fintype.card (∅ : Set
 
 theorem card_fintypeInsertOfNotMem {a : α} (s : Set α) [Fintype s] (h : a ∉ s) :
     @Fintype.card _ (fintypeInsertOfNotMem s h) = Fintype.card s + 1 := by
-  rw [fintypeInsertOfNotMem, Fintype.card_ofFinset]
-  simp only [Finset.card, toFinset, Finset.map_val, Embedding.coe_subtype,
-             Multiset.card_cons, Multiset.card_map, add_left_inj]
-  rfl
+  simp [fintypeInsertOfNotMem, Fintype.card_ofFinset]
 #align set.card_fintype_insert_of_not_mem Set.card_fintypeInsertOfNotMem
 
 @[simp]
chore: Generalise and move liminf/limsup lemmas (#6846)

Forward-ports https://github.com/leanprover-community/mathlib/pull/18628

Diff
@@ -7,7 +7,7 @@ import Mathlib.Data.Finset.Basic
 import Mathlib.Data.Set.Functor
 import Mathlib.Data.Finite.Basic
 
-#align_import data.set.finite from "leanprover-community/mathlib"@"7fdd4f3746cb059edfdb5d52cba98f66fce418c0"
+#align_import data.set.finite from "leanprover-community/mathlib"@"ffde2d8a6e689149e44fd95fa862c23a57f8c780"
 
 /-!
 # Finite sets
@@ -1610,7 +1610,7 @@ lemma Finite.exists_minimal_wrt' [PartialOrder β] (f : α → β) (s : Set α)
 
 section
 
-variable [SemilatticeSup α] [Nonempty α] {s : Set α}
+variable [Preorder α] [IsDirected α (· ≤ ·)] [Nonempty α] {s : Set α}
 
 /-- A finite set is bounded above.-/
 protected theorem Finite.bddAbove (hs : s.Finite) : BddAbove s :=
@@ -1632,23 +1632,20 @@ end
 
 section
 
-variable [SemilatticeInf α] [Nonempty α] {s : Set α}
+variable [Preorder α] [IsDirected α (· ≥ ·)] [Nonempty α] {s : Set α}
 
 /-- A finite set is bounded below.-/
 protected theorem Finite.bddBelow (hs : s.Finite) : BddBelow s :=
-  @Finite.bddAbove αᵒᵈ _ _ _ hs
+  @Finite.bddAbove αᵒᵈ _ _ _ _ hs
 #align set.finite.bdd_below Set.Finite.bddBelow
 
 /-- A finite union of sets which are all bounded below is still bounded below.-/
 theorem Finite.bddBelow_biUnion {I : Set β} {S : β → Set α} (H : I.Finite) :
     BddBelow (⋃ i ∈ I, S i) ↔ ∀ i ∈ I, BddBelow (S i) :=
-  @Finite.bddAbove_biUnion αᵒᵈ _ _ _ _ _ H
+  @Finite.bddAbove_biUnion αᵒᵈ _ _ _ _ _ _ H
 #align set.finite.bdd_below_bUnion Set.Finite.bddBelow_biUnion
 
-theorem infinite_of_not_bddBelow : ¬BddBelow s → s.Infinite := by
-  contrapose!
-  rw [not_infinite]
-  exact Finite.bddBelow
+theorem infinite_of_not_bddBelow : ¬BddBelow s → s.Infinite := mt Finite.bddBelow
 #align set.infinite_of_not_bdd_below Set.infinite_of_not_bddBelow
 
 end
chore: tidy various files (#6838)
Diff
@@ -1595,7 +1595,7 @@ theorem Finite.exists_maximal_wrt [PartialOrder β] (f : α → β) (s : Set α)
   is finite rather than `s` itself. -/
 theorem Finite.exists_maximal_wrt' [PartialOrder β] (f : α → β) (s : Set α) (h : (f '' s).Finite)
     (hs : s.Nonempty) : (∃ a ∈ s, ∀ (a' : α), a' ∈ s → f a ≤ f a' → f a = f a') := by
-  obtain ⟨_, ⟨a, ha,rfl⟩, hmax⟩ := Finite.exists_maximal_wrt id (f '' s) h (hs.image f)
+  obtain ⟨_, ⟨a, ha, rfl⟩, hmax⟩ := Finite.exists_maximal_wrt id (f '' s) h (hs.image f)
   exact ⟨a, ha, fun a' ha' hf ↦ hmax _ (mem_image_of_mem f ha') hf⟩
 
 theorem Finite.exists_minimal_wrt [PartialOrder β] (f : α → β) (s : Set α) (h : s.Finite)
feat: patch for new alias command (#6172)
Diff
@@ -71,7 +71,7 @@ theorem finite_def {s : Set α} : s.Finite ↔ Nonempty (Fintype s) :=
   ⟨fun ⟨h⟩ => ⟨h⟩, fun ⟨h⟩ => ⟨h⟩⟩
 #align set.finite_def Set.finite_def
 
-alias finite_def ↔ Finite.nonempty_fintype _
+alias ⟨Finite.nonempty_fintype, _⟩ := finite_def
 #align set.finite.nonempty_fintype Set.Finite.nonempty_fintype
 
 theorem finite_coe_iff {s : Set α} : Finite s ↔ s.Finite := by
@@ -148,7 +148,7 @@ theorem not_infinite {s : Set α} : ¬s.Infinite ↔ s.Finite :=
   not_not
 #align set.not_infinite Set.not_infinite
 
-alias not_infinite ↔ _ Finite.not_infinite
+alias ⟨_, Finite.not_infinite⟩ := not_infinite
 #align set.finite.not_infinite Set.Finite.not_infinite
 
 attribute [simp] Finite.not_infinite
@@ -224,10 +224,10 @@ protected theorem toFinset_ssubset_toFinset : hs.toFinset ⊂ ht.toFinset ↔ s
   simp only [← Finset.coe_ssubset, Finite.coe_toFinset]
 #align set.finite.to_finset_ssubset_to_finset Set.Finite.toFinset_ssubset_toFinset
 
-alias Finite.toFinset_subset_toFinset ↔ _ toFinset_mono
+alias ⟨_, toFinset_mono⟩ := Finite.toFinset_subset_toFinset
 #align set.finite.to_finset_mono Set.Finite.toFinset_mono
 
-alias Finite.toFinset_ssubset_toFinset ↔ _ toFinset_strictMono
+alias ⟨_, toFinset_strictMono⟩ := Finite.toFinset_ssubset_toFinset
 #align set.finite.to_finset_strict_mono Set.Finite.toFinset_strictMono
 
 -- Porting note: attribute [protected] doesn't work
@@ -727,7 +727,7 @@ theorem finite_univ_iff : (@univ α).Finite ↔ Finite α :=
   finite_coe_iff.symm.trans (Equiv.Set.univ α).finite_iff
 #align set.finite_univ_iff Set.finite_univ_iff
 
-alias finite_univ_iff ↔ _root_.Finite.of_finite_univ _
+alias ⟨_root_.Finite.of_finite_univ, _⟩ := finite_univ_iff
 #align finite.of_finite_univ Finite.of_finite_univ
 
 theorem Finite.union {s t : Set α} (hs : s.Finite) (ht : t.Finite) : (s ∪ t).Finite := by
@@ -1289,7 +1289,7 @@ theorem infinite_coe_iff {s : Set α} : Infinite s ↔ s.Infinite :=
 #align set.infinite_coe_iff Set.infinite_coe_iff
 
 -- porting note: something weird happened here
-alias infinite_coe_iff ↔ _ Infinite.to_subtype
+alias ⟨_, Infinite.to_subtype⟩ := infinite_coe_iff
 #align set.infinite.to_subtype Set.Infinite.to_subtype
 
 /-- Embedding of `ℕ` into an infinite set. -/
@@ -1332,7 +1332,7 @@ theorem infinite_image_iff {s : Set α} {f : α → β} (hi : InjOn f s) :
   not_congr <| finite_image_iff hi
 #align set.infinite_image_iff Set.infinite_image_iff
 
-alias infinite_image_iff ↔ _ Infinite.image
+alias ⟨_, Infinite.image⟩ := infinite_image_iff
 #align set.infinite.image Set.Infinite.image
 
 -- Porting note: attribute [protected] doesn't work
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
@@ -389,13 +389,13 @@ instance fintypesUnion [DecidableEq α] {s : Set (Set α)} [Fintype s]
 
 /-- A union of sets with `Fintype` structure over a set with `Fintype` structure has a `Fintype`
 structure. -/
-def fintypeBiUnion [DecidableEq α] {ι : Type _} (s : Set ι) [Fintype s] (t : ι → Set α)
+def fintypeBiUnion [DecidableEq α] {ι : Type*} (s : Set ι) [Fintype s] (t : ι → Set α)
     (H : ∀ i ∈ s, Fintype (t i)) : Fintype (⋃ x ∈ s, t x) :=
   haveI : ∀ i : toFinset s, Fintype (t i) := fun i => H i (mem_toFinset.1 i.2)
   Fintype.ofFinset (s.toFinset.attach.biUnion fun x => (t x).toFinset) fun x => by simp
 #align set.fintype_bUnion Set.fintypeBiUnion
 
-instance fintypeBiUnion' [DecidableEq α] {ι : Type _} (s : Set ι) [Fintype s] (t : ι → Set α)
+instance fintypeBiUnion' [DecidableEq α] {ι : Type*} (s : Set ι) [Fintype s] (t : ι → Set α)
     [∀ i, Fintype (t i)] : Fintype (⋃ x ∈ s, t x) :=
   Fintype.ofFinset (s.toFinset.biUnion fun x => (t x).toFinset) <| by simp
 #align set.fintype_bUnion' Set.fintypeBiUnion'
@@ -643,14 +643,14 @@ instance finite_sUnion {s : Set (Set α)} [Finite s] [H : ∀ t : s, Finite (t :
   exact @Finite.Set.finite_iUnion _ _ _ _ H
 #align finite.set.finite_sUnion Finite.Set.finite_sUnion
 
-theorem finite_biUnion {ι : Type _} (s : Set ι) [Finite s] (t : ι → Set α)
+theorem finite_biUnion {ι : Type*} (s : Set ι) [Finite s] (t : ι → Set α)
     (H : ∀ i ∈ s, Finite (t i)) : Finite (⋃ x ∈ s, t x) := by
   rw [biUnion_eq_iUnion]
   haveI : ∀ i : s, Finite (t i) := fun i => H i i.property
   infer_instance
 #align finite.set.finite_bUnion Finite.Set.finite_biUnion
 
-instance finite_biUnion' {ι : Type _} (s : Set ι) [Finite s] (t : ι → Set α) [∀ i, Finite (t i)] :
+instance finite_biUnion' {ι : Type*} (s : Set ι) [Finite s] (t : ι → Set α) [∀ i, Finite (t i)] :
     Finite (⋃ x ∈ s, t x) :=
   finite_biUnion s t fun _ _ => inferInstance
 #align finite.set.finite_bUnion' Finite.Set.finite_biUnion'
@@ -658,12 +658,12 @@ instance finite_biUnion' {ι : Type _} (s : Set ι) [Finite s] (t : ι → Set 
 /-- Example: `Finite (⋃ (i < n), f i)` where `f : ℕ → Set α` and `[∀ i, Finite (f i)]`
 (when given instances from `Data.Nat.Interval`).
 -/
-instance finite_biUnion'' {ι : Type _} (p : ι → Prop) [h : Finite { x | p x }] (t : ι → Set α)
+instance finite_biUnion'' {ι : Type*} (p : ι → Prop) [h : Finite { x | p x }] (t : ι → Set α)
     [∀ i, Finite (t i)] : Finite (⋃ (x) (_ : p x), t x) :=
   @Finite.Set.finite_biUnion' _ _ (setOf p) h t _
 #align finite.set.finite_bUnion'' Finite.Set.finite_biUnion''
 
-instance finite_iInter {ι : Sort _} [Nonempty ι] (t : ι → Set α) [∀ i, Finite (t i)] :
+instance finite_iInter {ι : Sort*} [Nonempty ι] (t : ι → Set α) [∀ i, Finite (t i)] :
     Finite (⋂ i, t i) :=
   Finite.Set.subset (t <| Classical.arbitrary ι) (iInter_subset _ _)
 #align finite.set.finite_Inter Finite.Set.finite_iInter
@@ -811,14 +811,14 @@ theorem Finite.biUnion' {ι} {s : Set ι} (hs : s.Finite) {t : ∀ i ∈ s, Set
   apply finite_iUnion fun i : s => ht i.1 i.2
 #align set.finite.bUnion' Set.Finite.biUnion'
 
-theorem Finite.sInter {α : Type _} {s : Set (Set α)} {t : Set α} (ht : t ∈ s) (hf : t.Finite) :
+theorem Finite.sInter {α : Type*} {s : Set (Set α)} {t : Set α} (ht : t ∈ s) (hf : t.Finite) :
     (⋂₀ s).Finite :=
   hf.subset (sInter_subset_of_mem ht)
 #align set.finite.sInter Set.Finite.sInter
 
 /-- If sets `s i` are finite for all `i` from a finite set `t` and are empty for `i ∉ t`, then the
 union `⋃ i, s i` is a finite set. -/
-theorem Finite.iUnion {ι : Type _} {s : ι → Set α} {t : Set ι} (ht : t.Finite)
+theorem Finite.iUnion {ι : Type*} {s : ι → Set α} {t : Set ι} (ht : t.Finite)
     (hs : ∀ i ∈ t, (s i).Finite) (he : ∀ i, i ∉ t → s i = ∅) : (⋃ i, s i).Finite := by
   suffices ⋃ i, s i ⊆ ⋃ i ∈ t, s i by exact (ht.biUnion hs).subset this
   refine' iUnion_subset fun i x hx => _
@@ -1011,7 +1011,7 @@ theorem Finite.finite_subsets {α : Type u} {a : Set α} (h : a.Finite) : { b |
 #align set.finite.finite_subsets Set.Finite.finite_subsets
 
 /-- Finite product of finite sets is finite -/
-theorem Finite.pi {δ : Type _} [Finite δ] {κ : δ → Type _} {t : ∀ d, Set (κ d)}
+theorem Finite.pi {δ : Type*} [Finite δ] {κ : δ → Type*} {t : ∀ d, Set (κ d)}
     (ht : ∀ d, (t d).Finite) : (pi univ t).Finite := by
   cases _root_.nonempty_fintype δ
   lift t to ∀ d, Finset (κ d) using ht
@@ -1110,7 +1110,7 @@ theorem finite_image_fst_and_snd_iff {s : Set (α × β)} :
     fun h => ⟨h.image _, h.image _⟩⟩
 #align set.finite_image_fst_and_snd_iff Set.finite_image_fst_and_snd_iff
 
-theorem forall_finite_image_eval_iff {δ : Type _} [Finite δ] {κ : δ → Type _} {s : Set (∀ d, κ d)} :
+theorem forall_finite_image_eval_iff {δ : Type*} [Finite δ] {κ : δ → Type*} {s : Set (∀ d, κ d)} :
     (∀ d, (eval d '' s).Finite) ↔ s.Finite :=
   ⟨fun h => (Finite.pi h).subset <| subset_pi_eval_image _ _, fun h _ => h.image _⟩
 #align set.forall_finite_image_eval_iff Set.forall_finite_image_eval_iff
@@ -1181,7 +1181,7 @@ so `u n` is related to the image of `{0, 1, ..., n-1}` under `u`.
 
 (We use this later to show sequentially compact sets are totally bounded.)
 -/
-theorem seq_of_forall_finite_exists {γ : Type _} {P : γ → Set γ → Prop}
+theorem seq_of_forall_finite_exists {γ : Type*} {P : γ → Set γ → Prop}
     (h : ∀ t : Set γ, t.Finite → ∃ c, P c t) : ∃ u : ℕ → γ, ∀ n, P (u n) (u '' Iio n) := by
   haveI : Nonempty γ := (h ∅ finite_empty).nonempty
   choose! c hc using h
@@ -1423,11 +1423,11 @@ theorem infinite_of_forall_exists_lt (h : ∀ a, ∃ b ∈ s, b < a) : s.Infinit
 
 end Preorder
 
-theorem finite_isTop (α : Type _) [PartialOrder α] : { x : α | IsTop x }.Finite :=
+theorem finite_isTop (α : Type*) [PartialOrder α] : { x : α | IsTop x }.Finite :=
   (subsingleton_isTop α).finite
 #align set.finite_is_top Set.finite_isTop
 
-theorem finite_isBot (α : Type _) [PartialOrder α] : { x : α | IsBot x }.Finite :=
+theorem finite_isBot (α : Type*) [PartialOrder α] : { x : α | IsBot x }.Finite :=
   (subsingleton_isBot α).finite
 #align set.finite_is_bot Set.finite_isBot
 
@@ -1471,7 +1471,7 @@ theorem exists_upper_bound_image [Nonempty α] [LinearOrder β] (s : Set α) (f
   exists_lower_bound_image (β := βᵒᵈ) s f h
 #align set.exists_upper_bound_image Set.exists_upper_bound_image
 
-theorem Finite.iSup_biInf_of_monotone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
+theorem Finite.iSup_biInf_of_monotone {ι ι' α : Type*} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Frame α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
     (hf : ∀ i ∈ s, Monotone (f i)) : ⨆ j, ⨅ i ∈ s, f i j = ⨅ i ∈ s, ⨆ j, f i j := by
   induction' s, hs using Set.Finite.dinduction_on with a s _ _ ihs hf
@@ -1481,77 +1481,77 @@ theorem Finite.iSup_biInf_of_monotone {ι ι' α : Type _} [Preorder ι'] [Nonem
     exact iSup_inf_of_monotone hf.1 fun j₁ j₂ hj => iInf₂_mono fun i hi => hf.2 i hi hj
 #align set.finite.supr_binfi_of_monotone Set.Finite.iSup_biInf_of_monotone
 
-theorem Finite.iSup_biInf_of_antitone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
+theorem Finite.iSup_biInf_of_antitone {ι ι' α : Type*} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Frame α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
     (hf : ∀ i ∈ s, Antitone (f i)) : ⨆ j, ⨅ i ∈ s, f i j = ⨅ i ∈ s, ⨆ j, f i j :=
   @Finite.iSup_biInf_of_monotone ι ι'ᵒᵈ α _ _ _ _ _ hs _ fun i hi => (hf i hi).dual_left
 #align set.finite.supr_binfi_of_antitone Set.Finite.iSup_biInf_of_antitone
 
-theorem Finite.iInf_biSup_of_monotone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
+theorem Finite.iInf_biSup_of_monotone {ι ι' α : Type*} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Coframe α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
     (hf : ∀ i ∈ s, Monotone (f i)) : ⨅ j, ⨆ i ∈ s, f i j = ⨆ i ∈ s, ⨅ j, f i j :=
   hs.iSup_biInf_of_antitone (α := αᵒᵈ) fun i hi => (hf i hi).dual_right
 #align set.finite.infi_bsupr_of_monotone Set.Finite.iInf_biSup_of_monotone
 
-theorem Finite.iInf_biSup_of_antitone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
+theorem Finite.iInf_biSup_of_antitone {ι ι' α : Type*} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Coframe α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
     (hf : ∀ i ∈ s, Antitone (f i)) : ⨅ j, ⨆ i ∈ s, f i j = ⨆ i ∈ s, ⨅ j, f i j :=
   hs.iSup_biInf_of_monotone (α := αᵒᵈ) fun i hi => (hf i hi).dual_right
 #align set.finite.infi_bsupr_of_antitone Set.Finite.iInf_biSup_of_antitone
 
-theorem iSup_iInf_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
+theorem iSup_iInf_of_monotone {ι ι' α : Type*} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Frame α] {f : ι → ι' → α} (hf : ∀ i, Monotone (f i)) :
     ⨆ j, ⨅ i, f i j = ⨅ i, ⨆ j, f i j := by
   simpa only [iInf_univ] using finite_univ.iSup_biInf_of_monotone fun i _ => hf i
 #align supr_infi_of_monotone Set.iSup_iInf_of_monotone
 
-theorem iSup_iInf_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
+theorem iSup_iInf_of_antitone {ι ι' α : Type*} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Frame α] {f : ι → ι' → α} (hf : ∀ i, Antitone (f i)) :
     ⨆ j, ⨅ i, f i j = ⨅ i, ⨆ j, f i j :=
   @iSup_iInf_of_monotone ι ι'ᵒᵈ α _ _ _ _ _ _ fun i => (hf i).dual_left
 #align supr_infi_of_antitone Set.iSup_iInf_of_antitone
 
-theorem iInf_iSup_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
+theorem iInf_iSup_of_monotone {ι ι' α : Type*} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Coframe α] {f : ι → ι' → α} (hf : ∀ i, Monotone (f i)) :
     ⨅ j, ⨆ i, f i j = ⨆ i, ⨅ j, f i j :=
   iSup_iInf_of_antitone (α := αᵒᵈ) fun i => (hf i).dual_right
 #align infi_supr_of_monotone Set.iInf_iSup_of_monotone
 
-theorem iInf_iSup_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
+theorem iInf_iSup_of_antitone {ι ι' α : Type*} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Coframe α] {f : ι → ι' → α} (hf : ∀ i, Antitone (f i)) :
     ⨅ j, ⨆ i, f i j = ⨆ i, ⨅ j, f i j :=
   iSup_iInf_of_monotone (α := αᵒᵈ) fun i => (hf i).dual_right
 #align infi_supr_of_antitone Set.iInf_iSup_of_antitone
 
 /-- An increasing union distributes over finite intersection. -/
-theorem iUnion_iInter_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [IsDirected ι' (· ≤ ·)]
+theorem iUnion_iInter_of_monotone {ι ι' α : Type*} [Finite ι] [Preorder ι'] [IsDirected ι' (· ≤ ·)]
     [Nonempty ι'] {s : ι → ι' → Set α} (hs : ∀ i, Monotone (s i)) :
     ⋃ j : ι', ⋂ i : ι, s i j = ⋂ i : ι, ⋃ j : ι', s i j :=
   iSup_iInf_of_monotone hs
 #align set.Union_Inter_of_monotone Set.iUnion_iInter_of_monotone
 
 /-- A decreasing union distributes over finite intersection. -/
-theorem iUnion_iInter_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι']
+theorem iUnion_iInter_of_antitone {ι ι' α : Type*} [Finite ι] [Preorder ι']
     [IsDirected ι' (swap (· ≤ ·))] [Nonempty ι'] {s : ι → ι' → Set α} (hs : ∀ i, Antitone (s i)) :
     ⋃ j : ι', ⋂ i : ι, s i j = ⋂ i : ι, ⋃ j : ι', s i j :=
   iSup_iInf_of_antitone hs
 #align set.Union_Inter_of_antitone Set.iUnion_iInter_of_antitone
 
 /-- An increasing intersection distributes over finite union. -/
-theorem iInter_iUnion_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι']
+theorem iInter_iUnion_of_monotone {ι ι' α : Type*} [Finite ι] [Preorder ι']
     [IsDirected ι' (swap (· ≤ ·))] [Nonempty ι'] {s : ι → ι' → Set α} (hs : ∀ i, Monotone (s i)) :
     ⋂ j : ι', ⋃ i : ι, s i j = ⋃ i : ι, ⋂ j : ι', s i j :=
   iInf_iSup_of_monotone hs
 #align set.Inter_Union_of_monotone Set.iInter_iUnion_of_monotone
 
 /-- A decreasing intersection distributes over finite union. -/
-theorem iInter_iUnion_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [IsDirected ι' (· ≤ ·)]
+theorem iInter_iUnion_of_antitone {ι ι' α : Type*} [Finite ι] [Preorder ι'] [IsDirected ι' (· ≤ ·)]
     [Nonempty ι'] {s : ι → ι' → Set α} (hs : ∀ i, Antitone (s i)) :
     ⋂ j : ι', ⋃ i : ι, s i j = ⋃ i : ι, ⋂ j : ι', s i j :=
   iInf_iSup_of_antitone hs
 #align set.Inter_Union_of_antitone Set.iInter_iUnion_of_antitone
 
-theorem iUnion_pi_of_monotone {ι ι' : Type _} [LinearOrder ι'] [Nonempty ι'] {α : ι → Type _}
+theorem iUnion_pi_of_monotone {ι ι' : Type*} [LinearOrder ι'] [Nonempty ι'] {α : ι → Type*}
     {I : Set ι} {s : ∀ i, ι' → Set (α i)} (hI : I.Finite) (hs : ∀ i ∈ I, Monotone (s i)) :
     ⋃ j : ι', I.pi (fun i => s i j) = I.pi fun i => ⋃ j, s i j := by
   simp only [pi_def, biInter_eq_iInter, preimage_iUnion]
@@ -1560,8 +1560,8 @@ theorem iUnion_pi_of_monotone {ι ι' : Type _} [LinearOrder ι'] [Nonempty ι']
   exact preimage_mono <| hs i i.2 h
 #align set.Union_pi_of_monotone Set.iUnion_pi_of_monotone
 
-theorem iUnion_univ_pi_of_monotone {ι ι' : Type _} [LinearOrder ι'] [Nonempty ι'] [Finite ι]
-    {α : ι → Type _} {s : ∀ i, ι' → Set (α i)} (hs : ∀ i, Monotone (s i)) :
+theorem iUnion_univ_pi_of_monotone {ι ι' : Type*} [LinearOrder ι'] [Nonempty ι'] [Finite ι]
+    {α : ι → Type*} {s : ∀ i, ι' → Set (α i)} (hs : ∀ i, Monotone (s i)) :
     ⋃ j : ι', pi univ (fun i => s i j) = pi univ fun i => ⋃ j, s i j :=
   iUnion_pi_of_monotone finite_univ fun i _ => hs i
 #align set.Union_univ_pi_of_monotone Set.iUnion_univ_pi_of_monotone
feat: Finite maximality/minimality (#6337)

This PR slightly tidies the proof of Set.Finite.exists_maximal_wrt, and adds a minimality version. It also adds primed versions of both that alter the finiteness hypothesis to a weaker hypothesis where only the image is finite.

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

Diff
@@ -1571,26 +1571,43 @@ theorem finite_range_findGreatest {P : α → ℕ → Prop} [∀ x, DecidablePre
   (finite_le_nat b).subset <| range_subset_iff.2 fun _ => Nat.findGreatest_le _
 #align set.finite_range_find_greatest Set.finite_range_findGreatest
 
-theorem Finite.exists_maximal_wrt [PartialOrder β] (f : α → β) (s : Set α) (h : Set.Finite s) :
-    s.Nonempty → ∃ a ∈ s, ∀ a' ∈ s, f a ≤ f a' → f a = f a' := by
-  refine' h.induction_on _ _
-  · exact fun h => absurd h not_nonempty_empty
-  intro a s his _ ih _
-  cases' s.eq_empty_or_nonempty with h h
-  · use a
-    simp [h]
-  rcases ih h with ⟨b, hb, ih⟩
-  by_cases h : f b ≤ f a
-  · refine' ⟨a, Set.mem_insert _ _, fun c hc hac => le_antisymm hac _⟩
-    rcases Set.mem_insert_iff.1 hc with (rfl | hcs)
-    · rfl
-    · rwa [← ih c hcs (le_trans h hac)]
-  · refine' ⟨b, Set.mem_insert_of_mem _ hb, fun c hc hbc => _⟩
-    rcases Set.mem_insert_iff.1 hc with (rfl | hcs)
-    · exact (h hbc).elim
-    · exact ih c hcs hbc
+theorem Finite.exists_maximal_wrt [PartialOrder β] (f : α → β) (s : Set α) (h : s.Finite)
+    (hs : s.Nonempty) : ∃ a ∈ s, ∀ a' ∈ s, f a ≤ f a' → f a = f a' := by
+  induction s, h using Set.Finite.dinduction_on with
+  | H0 => exact absurd hs not_nonempty_empty
+  | @H1 a s his _ ih =>
+    cases' s.eq_empty_or_nonempty with h h
+    · use a
+      simp [h]
+    rcases ih h with ⟨b, hb, ih⟩
+    by_cases h : f b ≤ f a
+    · refine' ⟨a, Set.mem_insert _ _, fun c hc hac => le_antisymm hac _⟩
+      rcases Set.mem_insert_iff.1 hc with (rfl | hcs)
+      · rfl
+      · rwa [← ih c hcs (le_trans h hac)]
+    · refine' ⟨b, Set.mem_insert_of_mem _ hb, fun c hc hbc => _⟩
+      rcases Set.mem_insert_iff.1 hc with (rfl | hcs)
+      · exact (h hbc).elim
+      · exact ih c hcs hbc
 #align set.finite.exists_maximal_wrt Set.Finite.exists_maximal_wrt
 
+/-- A version of `Finite.exists_maximal_wrt` with the (weaker) hypothesis that the image of `s`
+  is finite rather than `s` itself. -/
+theorem Finite.exists_maximal_wrt' [PartialOrder β] (f : α → β) (s : Set α) (h : (f '' s).Finite)
+    (hs : s.Nonempty) : (∃ a ∈ s, ∀ (a' : α), a' ∈ s → f a ≤ f a' → f a = f a') := by
+  obtain ⟨_, ⟨a, ha,rfl⟩, hmax⟩ := Finite.exists_maximal_wrt id (f '' s) h (hs.image f)
+  exact ⟨a, ha, fun a' ha' hf ↦ hmax _ (mem_image_of_mem f ha') hf⟩
+
+theorem Finite.exists_minimal_wrt [PartialOrder β] (f : α → β) (s : Set α) (h : s.Finite)
+    (hs : s.Nonempty) : ∃ a ∈ s, ∀ a' ∈ s, f a' ≤ f a → f a = f a' :=
+  Finite.exists_maximal_wrt (β := βᵒᵈ) f s h hs
+
+/-- A version of `Finite.exists_minimal_wrt` with the (weaker) hypothesis that the image of `s`
+  is finite rather than `s` itself. -/
+lemma Finite.exists_minimal_wrt' [PartialOrder β] (f : α → β) (s : Set α) (h : (f '' s).Finite)
+    (hs : s.Nonempty) : (∃ a ∈ s, ∀ (a' : α), a' ∈ s → f a' ≤ f a → f a = f a') :=
+  Set.Finite.exists_maximal_wrt' (β := βᵒᵈ) f s h hs
+
 section
 
 variable [SemilatticeSup α] [Nonempty α] {s : Set α}
chore: fix some Set defeq abuse, golf (#6114)
  • Use {x | p x} instead of fun x ↦ p x to define a set here and there.
  • Golf some proofs.
  • Replace Con.ker_apply_eq_preimage with Con.ker_apply. The old version used to abuse definitional equality between Set M and M → Prop.
  • Fix Submonoid.mk* lemmas to use ⟨_, _⟩, not ⟨⟨_, _⟩, _⟩.
Diff
@@ -1263,12 +1263,8 @@ theorem card_range_of_injective [Fintype α] {f : α → β} (hf : Injective f)
 #align set.card_range_of_injective Set.card_range_of_injective
 
 theorem Finite.card_toFinset {s : Set α} [Fintype s] (h : s.Finite) :
-    h.toFinset.card = Fintype.card s := by
-  rw [← Finset.card_attach, Finset.attach_eq_univ, ← Fintype.card]
-  refine' Fintype.card_congr (Equiv.setCongr _)
-  ext x
-  show x ∈ h.toFinset ↔ x ∈ s
-  simp
+    h.toFinset.card = Fintype.card s :=
+  Eq.symm <| Fintype.card_of_finset' _ fun _ ↦ h.mem_toFinset
 #align set.finite.card_to_finset Set.Finite.card_toFinset
 
 theorem card_ne_eq [Fintype α] (a : α) [Fintype { x : α | x ≠ a }] :
chore(*): add protected to *.insert theorems (#6142)

Otherwise code like

theorem ContMDiffWithinAt.mythm (h : x ∈ insert y s) : _ = _

interprets insert as ContMDiffWithinAt.insert, not Insert.insert.

Diff
@@ -854,8 +854,7 @@ theorem finite_pure (a : α) : (pure a : Set α).Finite :=
 #align set.finite_pure Set.finite_pure
 
 @[simp]
-protected -- Porting note: added
-theorem Finite.insert (a : α) {s : Set α} (hs : s.Finite) : (insert a s).Finite := by
+protected theorem Finite.insert (a : α) {s : Set α} (hs : s.Finite) : (insert a s).Finite := by
   cases hs
   apply toFinite
 #align set.finite.insert Set.Finite.insert
chore: fix docstring (#6012)
Diff
@@ -20,7 +20,7 @@ about finite sets and gives ways to manipulate `Set.Finite` expressions.
 
 * `Set.Finite : Set α → Prop`
 * `Set.Infinite : Set α → Prop`
-* `Set.to_finite` to prove `Set.Finite` for a `Set` from a `Finite` instance.
+* `Set.toFinite` to prove `Set.Finite` for a `Set` from a `Finite` instance.
 * `Set.Finite.toFinset` to noncomputably produce a `Finset` from a `Set.Finite` proof.
   (See `Set.toFinset` for a computable version.)
 
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) 2017 Johannes Hölzl. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Mario Carneiro, Kyle Miller
-
-! This file was ported from Lean 3 source module data.set.finite
-! leanprover-community/mathlib commit 7fdd4f3746cb059edfdb5d52cba98f66fce418c0
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Data.Finset.Basic
 import Mathlib.Data.Set.Functor
 import Mathlib.Data.Finite.Basic
 
+#align_import data.set.finite from "leanprover-community/mathlib"@"7fdd4f3746cb059edfdb5d52cba98f66fce418c0"
+
 /-!
 # Finite sets
 
chore: cleanup whitespace (#5988)

Grepping for [^ .:{-] [^ :] and reviewing the results. Once I started I couldn't stop. :-)

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -1504,7 +1504,7 @@ theorem Finite.iInf_biSup_of_monotone {ι ι' α : Type _} [Preorder ι'] [Nonem
 theorem Finite.iInf_biSup_of_antitone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Coframe α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
     (hf : ∀ i ∈ s, Antitone (f i)) : ⨅ j, ⨆ i ∈ s, f i j = ⨆ i ∈ s, ⨅ j, f i j :=
-  hs.iSup_biInf_of_monotone (α := αᵒᵈ)  fun i hi => (hf i hi).dual_right
+  hs.iSup_biInf_of_monotone (α := αᵒᵈ) fun i hi => (hf i hi).dual_right
 #align set.finite.infi_bsupr_of_antitone Set.Finite.iInf_biSup_of_antitone
 
 theorem iSup_iInf_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
chore: remove occurrences of semicolon after space (#5713)

This is the second half of the changes originally in #5699, removing all occurrences of ; after a space and implementing a linter rule to enforce it.

In most cases this 2-character substring has a space after it, so the following command was run first:

find . -type f -name "*.lean" -exec sed -i -E 's/ ; /; /g' {} \;

The remaining cases were few enough in number that they were done manually.

Diff
@@ -1221,7 +1221,7 @@ theorem card_fintypeInsertOfNotMem {a : α} (s : Set α) [Fintype s] (h : a ∉
 @[simp]
 theorem card_insert {a : α} (s : Set α) [Fintype s] (h : a ∉ s)
     {d : Fintype.{u} (insert a s : Set α)} : @Fintype.card _ d = Fintype.card s + 1 := by
-  rw [← card_fintypeInsertOfNotMem s h] ; congr; exact Subsingleton.elim _ _
+  rw [← card_fintypeInsertOfNotMem s h]; congr; exact Subsingleton.elim _ _
 #align set.card_insert Set.card_insert
 
 theorem card_image_of_inj_on {s : Set α} [Fintype s] {f : α → β} [Fintype (f '' s)]
fix: precedences of ⨆⋃⋂⨅ (#5614)
Diff
@@ -823,7 +823,7 @@ theorem Finite.sInter {α : Type _} {s : Set (Set α)} {t : Set α} (ht : t ∈
 union `⋃ i, s i` is a finite set. -/
 theorem Finite.iUnion {ι : Type _} {s : ι → Set α} {t : Set ι} (ht : t.Finite)
     (hs : ∀ i ∈ t, (s i).Finite) (he : ∀ i, i ∉ t → s i = ∅) : (⋃ i, s i).Finite := by
-  suffices (⋃ i, s i) ⊆ ⋃ i ∈ t, s i by exact (ht.biUnion hs).subset this
+  suffices ⋃ i, s i ⊆ ⋃ i ∈ t, s i by exact (ht.biUnion hs).subset this
   refine' iUnion_subset fun i x hx => _
   by_cases hi : i ∈ t
   · exact mem_biUnion hi hx
@@ -1481,7 +1481,7 @@ theorem exists_upper_bound_image [Nonempty α] [LinearOrder β] (s : Set α) (f
 
 theorem Finite.iSup_biInf_of_monotone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Frame α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
-    (hf : ∀ i ∈ s, Monotone (f i)) : (⨆ j, ⨅ i ∈ s, f i j) = ⨅ i ∈ s, ⨆ j, f i j := by
+    (hf : ∀ i ∈ s, Monotone (f i)) : ⨆ j, ⨅ i ∈ s, f i j = ⨅ i ∈ s, ⨆ j, f i j := by
   induction' s, hs using Set.Finite.dinduction_on with a s _ _ ihs hf
   · simp [iSup_const]
   · rw [ball_insert_iff] at hf
@@ -1491,77 +1491,77 @@ theorem Finite.iSup_biInf_of_monotone {ι ι' α : Type _} [Preorder ι'] [Nonem
 
 theorem Finite.iSup_biInf_of_antitone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Frame α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
-    (hf : ∀ i ∈ s, Antitone (f i)) : (⨆ j, ⨅ i ∈ s, f i j) = ⨅ i ∈ s, ⨆ j, f i j :=
+    (hf : ∀ i ∈ s, Antitone (f i)) : ⨆ j, ⨅ i ∈ s, f i j = ⨅ i ∈ s, ⨆ j, f i j :=
   @Finite.iSup_biInf_of_monotone ι ι'ᵒᵈ α _ _ _ _ _ hs _ fun i hi => (hf i hi).dual_left
 #align set.finite.supr_binfi_of_antitone Set.Finite.iSup_biInf_of_antitone
 
 theorem Finite.iInf_biSup_of_monotone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Coframe α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
-    (hf : ∀ i ∈ s, Monotone (f i)) : (⨅ j, ⨆ i ∈ s, f i j) = ⨆ i ∈ s, ⨅ j, f i j :=
+    (hf : ∀ i ∈ s, Monotone (f i)) : ⨅ j, ⨆ i ∈ s, f i j = ⨆ i ∈ s, ⨅ j, f i j :=
   hs.iSup_biInf_of_antitone (α := αᵒᵈ) fun i hi => (hf i hi).dual_right
 #align set.finite.infi_bsupr_of_monotone Set.Finite.iInf_biSup_of_monotone
 
 theorem Finite.iInf_biSup_of_antitone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Coframe α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
-    (hf : ∀ i ∈ s, Antitone (f i)) : (⨅ j, ⨆ i ∈ s, f i j) = ⨆ i ∈ s, ⨅ j, f i j :=
+    (hf : ∀ i ∈ s, Antitone (f i)) : ⨅ j, ⨆ i ∈ s, f i j = ⨆ i ∈ s, ⨅ j, f i j :=
   hs.iSup_biInf_of_monotone (α := αᵒᵈ)  fun i hi => (hf i hi).dual_right
 #align set.finite.infi_bsupr_of_antitone Set.Finite.iInf_biSup_of_antitone
 
 theorem iSup_iInf_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Frame α] {f : ι → ι' → α} (hf : ∀ i, Monotone (f i)) :
-    (⨆ j, ⨅ i, f i j) = ⨅ i, ⨆ j, f i j := by
+    ⨆ j, ⨅ i, f i j = ⨅ i, ⨆ j, f i j := by
   simpa only [iInf_univ] using finite_univ.iSup_biInf_of_monotone fun i _ => hf i
 #align supr_infi_of_monotone Set.iSup_iInf_of_monotone
 
 theorem iSup_iInf_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Frame α] {f : ι → ι' → α} (hf : ∀ i, Antitone (f i)) :
-    (⨆ j, ⨅ i, f i j) = ⨅ i, ⨆ j, f i j :=
+    ⨆ j, ⨅ i, f i j = ⨅ i, ⨆ j, f i j :=
   @iSup_iInf_of_monotone ι ι'ᵒᵈ α _ _ _ _ _ _ fun i => (hf i).dual_left
 #align supr_infi_of_antitone Set.iSup_iInf_of_antitone
 
 theorem iInf_iSup_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Coframe α] {f : ι → ι' → α} (hf : ∀ i, Monotone (f i)) :
-    (⨅ j, ⨆ i, f i j) = ⨆ i, ⨅ j, f i j :=
+    ⨅ j, ⨆ i, f i j = ⨆ i, ⨅ j, f i j :=
   iSup_iInf_of_antitone (α := αᵒᵈ) fun i => (hf i).dual_right
 #align infi_supr_of_monotone Set.iInf_iSup_of_monotone
 
 theorem iInf_iSup_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Coframe α] {f : ι → ι' → α} (hf : ∀ i, Antitone (f i)) :
-    (⨅ j, ⨆ i, f i j) = ⨆ i, ⨅ j, f i j :=
+    ⨅ j, ⨆ i, f i j = ⨆ i, ⨅ j, f i j :=
   iSup_iInf_of_monotone (α := αᵒᵈ) fun i => (hf i).dual_right
 #align infi_supr_of_antitone Set.iInf_iSup_of_antitone
 
 /-- An increasing union distributes over finite intersection. -/
 theorem iUnion_iInter_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [IsDirected ι' (· ≤ ·)]
     [Nonempty ι'] {s : ι → ι' → Set α} (hs : ∀ i, Monotone (s i)) :
-    (⋃ j : ι', ⋂ i : ι, s i j) = ⋂ i : ι, ⋃ j : ι', s i j :=
+    ⋃ j : ι', ⋂ i : ι, s i j = ⋂ i : ι, ⋃ j : ι', s i j :=
   iSup_iInf_of_monotone hs
 #align set.Union_Inter_of_monotone Set.iUnion_iInter_of_monotone
 
 /-- A decreasing union distributes over finite intersection. -/
 theorem iUnion_iInter_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι']
     [IsDirected ι' (swap (· ≤ ·))] [Nonempty ι'] {s : ι → ι' → Set α} (hs : ∀ i, Antitone (s i)) :
-    (⋃ j : ι', ⋂ i : ι, s i j) = ⋂ i : ι, ⋃ j : ι', s i j :=
+    ⋃ j : ι', ⋂ i : ι, s i j = ⋂ i : ι, ⋃ j : ι', s i j :=
   iSup_iInf_of_antitone hs
 #align set.Union_Inter_of_antitone Set.iUnion_iInter_of_antitone
 
 /-- An increasing intersection distributes over finite union. -/
 theorem iInter_iUnion_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι']
     [IsDirected ι' (swap (· ≤ ·))] [Nonempty ι'] {s : ι → ι' → Set α} (hs : ∀ i, Monotone (s i)) :
-    (⋂ j : ι', ⋃ i : ι, s i j) = ⋃ i : ι, ⋂ j : ι', s i j :=
+    ⋂ j : ι', ⋃ i : ι, s i j = ⋃ i : ι, ⋂ j : ι', s i j :=
   iInf_iSup_of_monotone hs
 #align set.Inter_Union_of_monotone Set.iInter_iUnion_of_monotone
 
 /-- A decreasing intersection distributes over finite union. -/
 theorem iInter_iUnion_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [IsDirected ι' (· ≤ ·)]
     [Nonempty ι'] {s : ι → ι' → Set α} (hs : ∀ i, Antitone (s i)) :
-    (⋂ j : ι', ⋃ i : ι, s i j) = ⋃ i : ι, ⋂ j : ι', s i j :=
+    ⋂ j : ι', ⋃ i : ι, s i j = ⋃ i : ι, ⋂ j : ι', s i j :=
   iInf_iSup_of_antitone hs
 #align set.Inter_Union_of_antitone Set.iInter_iUnion_of_antitone
 
 theorem iUnion_pi_of_monotone {ι ι' : Type _} [LinearOrder ι'] [Nonempty ι'] {α : ι → Type _}
     {I : Set ι} {s : ∀ i, ι' → Set (α i)} (hI : I.Finite) (hs : ∀ i ∈ I, Monotone (s i)) :
-    (⋃ j : ι', I.pi fun i => s i j) = I.pi fun i => ⋃ j, s i j := by
+    ⋃ j : ι', I.pi (fun i => s i j) = I.pi fun i => ⋃ j, s i j := by
   simp only [pi_def, biInter_eq_iInter, preimage_iUnion]
   haveI := hI.fintype.finite
   refine' iUnion_iInter_of_monotone (ι' := ι') (fun (i : I) j₁ j₂ h => _)
@@ -1570,7 +1570,7 @@ theorem iUnion_pi_of_monotone {ι ι' : Type _} [LinearOrder ι'] [Nonempty ι']
 
 theorem iUnion_univ_pi_of_monotone {ι ι' : Type _} [LinearOrder ι'] [Nonempty ι'] [Finite ι]
     {α : ι → Type _} {s : ∀ i, ι' → Set (α i)} (hs : ∀ i, Monotone (s i)) :
-    (⋃ j : ι', pi univ fun i => s i j) = pi univ fun i => ⋃ j, s i j :=
+    ⋃ j : ι', pi univ (fun i => s i j) = pi univ fun i => ⋃ j, s i j :=
   iUnion_pi_of_monotone finite_univ fun i _ => hs i
 #align set.Union_univ_pi_of_monotone Set.iUnion_univ_pi_of_monotone
 
feat: don't re-elaborate terms in set (#5386)

Fix the set tactic to not time out when dealing with slow to elaborate terms and many local hypotheses.

The root cause of this is that the rewrite [blah] at * tactic causes blah to be elaborated again and again for each local hypothesis, this is possibly a core issue that should be fixed separately, but in set we have the elaborated term already so we can just use it.

We also add some functionality to simply test / demonstrate failures when elaboration takes too long, namely sleepAtLeastHeartbeats and a sleep_heartbeats tactic.

@urkud was facing some slow running set's in https://github.com/leanprover-community/mathlib4/pull/4912, see https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Timeout.20in.20.60set.20.2E.2E.20with.60/near/367958828 that this issue was minimized from and should fix.

Some other linter failures show up due to changes to the set internals so fix these too.

Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com>

Diff
@@ -1419,7 +1419,7 @@ variable [Preorder α] [Nonempty α] {s : Set α}
 
 theorem infinite_of_forall_exists_gt (h : ∀ a, ∃ b ∈ s, a < b) : s.Infinite := by
   inhabit α
-  set f : ℕ → α := fun n => Nat.recOn n (h default).choose fun n a => (h a).choose
+  set f : ℕ → α := fun n => Nat.recOn n (h default).choose fun _ a => (h a).choose
   have hf : ∀ n, f n ∈ s := by rintro (_ | _) <;> exact (h _).choose_spec.1
   exact infinite_of_injective_forall_mem
     (strictMono_nat_of_lt_succ fun n => (h _).choose_spec.2).injective hf
feat(Data.Set.Basic/Data.Finset.Basic): rename insert_subset (#5450)

Currently, (for both Set and Finset) insert_subset is an iff lemma stating that insert a s ⊆ t if and only if a ∈ t and s ⊆ t. For both types, this PR renames this lemma to insert_subset_iff, and adds an insert_subset lemma that gives the implication just in the reverse direction : namely theorem insert_subset (ha : a ∈ t) (hs : s ⊆ t) : insert a s ⊆ t .

This both aligns the naming with union_subset and union_subset_iff, and removes the need for the awkward insert_subset.mpr ⟨_,_⟩ idiom. It touches a lot of files (too many to list), but in a trivial way.

Diff
@@ -1162,7 +1162,7 @@ theorem Finite.induction_on' {C : Set α → Prop} {S : Set α} (h : S.Finite) (
     (H1 : ∀ {a s}, a ∈ S → s ⊆ S → a ∉ s → C s → C (insert a s)) : C S := by
   refine' @Set.Finite.induction_on α (fun s => s ⊆ S → C s) S h (fun _ => H0) _ Subset.rfl
   intro a s has _ hCs haS
-  rw [insert_subset] at haS
+  rw [insert_subset_iff] at haS
   exact H1 haS.1 haS.2 has (hCs haS.2)
 #align set.finite.induction_on' Set.Finite.induction_on'
 
fix(Tactic/PushNeg): add cleanupAnnotations to push_neg (#5082)

Exprs now have an mdata field. It seems that this gets in the way of push_neg, as reported on Zulip.

The above seems to fix the reported errors.

Co-authored-by: Ruben Van de Velde <65514131+Ruben-VandeVelde@users.noreply.github.com>

Diff
@@ -1408,9 +1408,7 @@ theorem not_injOn_infinite_finite_image {f : α → β} {s : Set α} (h_inf : s.
   have h := not_injective_infinite_finite
             ((f '' s).codRestrict (s.restrict f) fun x => ⟨x, x.property, rfl⟩)
   contrapose! h
-  --porting note: why do we have `contrapose!` if the `push_neg` behaviour doesn't work?
-  rw [injective_codRestrict, ← injOn_iff_injective]
-  rwa [not_not] at h
+  rwa [injective_codRestrict, ← injOn_iff_injective]
 #align set.not_inj_on_infinite_finite_image Set.not_injOn_infinite_finite_image
 
 /-! ### Order properties -/
chore: partially forward-port #18760 (#5034)

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

Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Mario Carneiro, Kyle Miller
 
 ! This file was ported from Lean 3 source module data.set.finite
-! leanprover-community/mathlib commit 5bb9fffd23f9f65b367f5d451da18cc60bf47335
+! leanprover-community/mathlib commit 7fdd4f3746cb059edfdb5d52cba98f66fce418c0
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -112,6 +112,19 @@ protected noncomputable def Finite.toFinset {s : Set α} (h : s.Finite) : Finset
   @Set.toFinset _ _ h.fintype
 #align set.finite.to_finset Set.Finite.toFinset
 
+theorem Finite.toFinset_eq_toFinset {s : Set α} [Fintype s] (h : s.Finite) :
+    h.toFinset = s.toFinset := by
+  -- porting note: was `rw [Finite.toFinset]; congr`
+  -- in Lean 4, a goal is left after `congr`
+  have : h.fintype = ‹_› := Subsingleton.elim _ _
+  rw [Finite.toFinset, this]
+#align set.finite.to_finset_eq_to_finset Set.Finite.toFinset_eq_toFinset
+
+@[simp]
+theorem toFinite_toFinset (s : Set α) [Fintype s] : s.toFinite.toFinset = s.toFinset :=
+  s.toFinite.toFinset_eq_toFinset
+#align set.to_finite_to_finset Set.toFinite_toFinset
+
 theorem Finite.exists_finset {s : Set α} (h : s.Finite) :
     ∃ s' : Finset α, ∀ a : α, a ∈ s' ↔ a ∈ s := by
   cases h
@@ -223,11 +236,14 @@ alias Finite.toFinset_ssubset_toFinset ↔ _ toFinset_strictMono
 -- Porting note: attribute [protected] doesn't work
 -- attribute [protected] toFinset_mono toFinset_strictMono
 
-@[simp]
+-- porting note: `simp` can simplify LHS but then it simplifies something
+-- in the generated `Fintype {x | p x}` instance and fails to apply `Set.toFinset_setOf`
+@[simp high]
 protected theorem toFinset_setOf [Fintype α] (p : α → Prop) [DecidablePred p]
     (h : { x | p x }.Finite) : h.toFinset = Finset.univ.filter p := by
   ext
-  simp
+  -- porting note: `simp` doesn't use the `simp` lemma `Set.toFinset_setOf` without the `_`
+  simp [Set.toFinset_setOf _]
 #align set.finite.to_finset_set_of Set.Finite.toFinset_setOf
 
 @[simp]
@@ -266,10 +282,9 @@ protected theorem toFinset_compl [DecidableEq α] [Fintype α] (hs : s.Finite) (
   simp
 #align set.finite.to_finset_compl Set.Finite.toFinset_compl
 
-@[simp]
-protected theorem toFinset_empty (h : (∅ : Set α).Finite) : h.toFinset = ∅ := by
-  ext
-  simp
+-- porting note: was `@[simp]`, now `simp` can prove it
+protected theorem toFinset_empty (h : (∅ : Set α).Finite) : h.toFinset = ∅ :=
+  toFinite_toFinset _
 #align set.finite.to_finset_empty Set.Finite.toFinset_empty
 
 protected theorem toFinset_univ [Fintype α] (h : (Set.univ : Set α).Finite) :
@@ -294,7 +309,8 @@ protected theorem toFinset_image [DecidableEq β] (f : α → β) (hs : s.Finite
   simp
 #align set.finite.to_finset_image Set.Finite.toFinset_image
 
-@[simp]
+-- porting note: now `simp` can prove it but it needs the `fintypeRange` instance from the next
+-- section
 protected theorem toFinset_range [DecidableEq α] [Fintype β] (f : β → α) (h : (range f).Finite) :
     h.toFinset = Finset.univ.image f := by
   ext
@@ -306,8 +322,7 @@ end Finite
 /-! ### Fintype instances
 
 Every instance here should have a corresponding `Set.Finite` constructor in the next section.
- -/
-
+-/
 
 section FintypeInstances
 
@@ -534,10 +549,9 @@ theorem finite_toSet (s : Finset α) : (s : Set α).Finite :=
   Set.toFinite _
 #align finset.finite_to_set Finset.finite_toSet
 
-@[simp]
+-- porting note: was @[simp], now `simp` can prove it
 theorem finite_toSet_toFinset (s : Finset α) : s.finite_toSet.toFinset = s := by
-  ext
-  rw [Set.Finite.mem_toFinset, mem_coe]
+  rw [toFinite_toFinset, toFinset_coe]
 #align finset.finite_to_set_to_finset Finset.finite_toSet_toFinset
 
 end Finset
@@ -1049,10 +1063,10 @@ theorem univ_finite_iff_nonempty_fintype : (univ : Set α).Finite ↔ Nonempty (
   ⟨fun h => ⟨fintypeOfFiniteUniv h⟩, fun ⟨_i⟩ => finite_univ⟩
 #align set.univ_finite_iff_nonempty_fintype Set.univ_finite_iff_nonempty_fintype
 
-@[simp]
+-- porting note: moved `@[simp]` to `Set.toFinset_singleton` because `simp` can now simplify LHS
 theorem Finite.toFinset_singleton {a : α} (ha : ({a} : Set α).Finite := finite_singleton _) :
     ha.toFinset = {a} :=
-  Finset.ext <| by simp
+  Set.toFinite_toFinset _
 #align set.finite.to_finset_singleton Set.Finite.toFinset_singleton
 
 @[simp]
chore: formatting issues (#4947)

Co-authored-by: Scott Morrison <scott.morrison@anu.edu.au> Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>

Diff
@@ -859,7 +859,7 @@ theorem finite_range (f : ι → α) [Finite ι] : (range f).Finite :=
 #align set.finite_range Set.finite_range
 
 theorem Finite.dependent_image {s : Set α} (hs : s.Finite) (F : ∀ i ∈ s, β) :
-    { y : β | ∃ (x : _)(hx : x ∈ s), y = F x hx }.Finite := by
+    { y : β | ∃ (x : _) (hx : x ∈ s), y = F x hx }.Finite := by
   cases hs
   simpa [range, eq_comm] using finite_range fun x : s => F x x.2
 #align set.finite.dependent_image Set.Finite.dependent_image
@@ -1083,7 +1083,7 @@ theorem Finite.fin_embedding {s : Set α} (h : s.Finite) :
 #align set.finite.fin_embedding Set.Finite.fin_embedding
 
 theorem Finite.fin_param {s : Set α} (h : s.Finite) :
-    ∃ (n : ℕ)(f : Fin n → α), Injective f ∧ range f = s :=
+    ∃ (n : ℕ) (f : Fin n → α), Injective f ∧ range f = s :=
   let ⟨n, f, hf⟩ := h.fin_embedding
   ⟨n, f, f.injective, hf⟩
 #align set.finite.fin_param Set.Finite.fin_param
style: allow _ for an argument in notation3 & replace _foo with _ in notation3 (#4652)
Diff
@@ -648,7 +648,7 @@ instance finite_biUnion' {ι : Type _} (s : Set ι) [Finite s] (t : ι → Set 
 (when given instances from `Data.Nat.Interval`).
 -/
 instance finite_biUnion'' {ι : Type _} (p : ι → Prop) [h : Finite { x | p x }] (t : ι → Set α)
-    [∀ i, Finite (t i)] : Finite (⋃ (x) (_h : p x), t x) :=
+    [∀ i, Finite (t i)] : Finite (⋃ (x) (_ : p x), t x) :=
   @Finite.Set.finite_biUnion' _ _ (setOf p) h t _
 #align finite.set.finite_bUnion'' Finite.Set.finite_biUnion''
 
feat: add a version of Set.Finite.biUnion (#4469)

forward-port leanprover-community/mathlib#19098

Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Mario Carneiro, Kyle Miller
 
 ! This file was ported from Lean 3 source module data.set.finite
-! leanprover-community/mathlib commit 52fa514ec337dd970d71d8de8d0fd68b455a1e54
+! leanprover-community/mathlib commit 5bb9fffd23f9f65b367f5d451da18cc60bf47335
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -519,8 +519,11 @@ end FintypeInstances
 
 end Set
 
-/-! ### Finset -/
+theorem Equiv.set_finite_iff {s : Set α} {t : Set β} (hst : s ≃ t) : s.Finite ↔ t.Finite := by
+  simp_rw [← Set.finite_coe_iff, hst.finite_iff]
+#align equiv.set_finite_iff Equiv.set_finite_iff
 
+/-! ### Finset -/
 
 namespace Finset
 
@@ -802,6 +805,18 @@ theorem Finite.sInter {α : Type _} {s : Set (Set α)} {t : Set α} (ht : t ∈
   hf.subset (sInter_subset_of_mem ht)
 #align set.finite.sInter Set.Finite.sInter
 
+/-- If sets `s i` are finite for all `i` from a finite set `t` and are empty for `i ∉ t`, then the
+union `⋃ i, s i` is a finite set. -/
+theorem Finite.iUnion {ι : Type _} {s : ι → Set α} {t : Set ι} (ht : t.Finite)
+    (hs : ∀ i ∈ t, (s i).Finite) (he : ∀ i, i ∉ t → s i = ∅) : (⋃ i, s i).Finite := by
+  suffices (⋃ i, s i) ⊆ ⋃ i ∈ t, s i by exact (ht.biUnion hs).subset this
+  refine' iUnion_subset fun i x hx => _
+  by_cases hi : i ∈ t
+  · exact mem_biUnion hi hx
+  · rw [he i hi, mem_empty_iff_false] at hx
+    contradiction
+#align set.finite.Union Set.Finite.iUnion
+
 theorem Finite.bind {α β} {s : Set α} {f : α → Set β} (h : s.Finite) (hf : ∀ a ∈ s, (f a).Finite) :
     (s >>= f).Finite :=
   h.biUnion hf
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
@@ -486,7 +486,7 @@ def Nat.fintypeIio (n : ℕ) : Fintype (Iio n) :=
 
 instance fintypeProd (s : Set α) (t : Set β) [Fintype s] [Fintype t] :
     Fintype (s ×ˢ t : Set (α × β)) :=
-  Fintype.ofFinset (s.toFinset ×ᶠ t.toFinset) <| by simp
+  Fintype.ofFinset (s.toFinset ×ˢ t.toFinset) <| by simp
 #align set.fintype_prod Set.fintypeProd
 
 instance fintypeOffDiag [DecidableEq α] (s : Set α) [Fintype s] : Fintype s.offDiag :=
@@ -1052,7 +1052,7 @@ theorem Finite.toFinset_insert' [DecidableEq α] {a : α} {s : Set α} (hs : s.F
 #align set.finite.to_finset_insert' Set.Finite.toFinset_insert'
 
 theorem Finite.toFinset_prod {s : Set α} {t : Set β} (hs : s.Finite) (ht : t.Finite) :
-    hs.toFinset ×ᶠ ht.toFinset = (hs.prod ht).toFinset :=
+    hs.toFinset ×ˢ ht.toFinset = (hs.prod ht).toFinset :=
   Finset.ext <| by simp
 #align set.finite.to_finset_prod Set.Finite.toFinset_prod
 
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
@@ -21,8 +21,8 @@ about finite sets and gives ways to manipulate `Set.Finite` expressions.
 
 ## Main definitions
 
-* `Set.Finite : set α → Prop`
-* `Set.Infinite : set α → Prop`
+* `Set.Finite : Set α → Prop`
+* `Set.Infinite : Set α → Prop`
 * `Set.to_finite` to prove `Set.Finite` for a `Set` from a `Finite` instance.
 * `Set.Finite.toFinset` to noncomputably produce a `Finset` from a `Set.Finite` proof.
   (See `Set.toFinset` for a computable version.)
@@ -143,7 +143,7 @@ alias not_infinite ↔ _ Finite.not_infinite
 
 attribute [simp] Finite.not_infinite
 
-/-- See also `finite_or_infinite`, `fintype_or_infinite`. -/
+/-- See also `finite_or_infinite`, `fintypeOrInfinite`. -/
 protected theorem finite_or_infinite (s : Set α) : s.Finite ∨ s.Infinite :=
   em _
 #align set.finite_or_infinite Set.finite_or_infinite
@@ -641,7 +641,7 @@ instance finite_biUnion' {ι : Type _} (s : Set ι) [Finite s] (t : ι → Set 
   finite_biUnion s t fun _ _ => inferInstance
 #align finite.set.finite_bUnion' Finite.Set.finite_biUnion'
 
-/-- Example: `Finite (⋃ (i < n), f i)` where `f : ℕ → set α` and `[∀ i, Finite (f i)]`
+/-- Example: `Finite (⋃ (i < n), f i)` where `f : ℕ → Set α` and `[∀ i, Finite (f i)]`
 (when given instances from `Data.Nat.Interval`).
 -/
 instance finite_biUnion'' {ι : Type _} (p : ι → Prop) [h : Finite { x | p x }] (t : ι → Set α)
@@ -688,7 +688,7 @@ end Finite.Set
 
 namespace Set
 
-/-! ### Constructors for `set.finite`
+/-! ### Constructors for `Set.Finite`
 
 Every constructor here should have a corresponding `Fintype` instance in the previous section
 (or in the `Fintype` module).
@@ -1151,7 +1151,7 @@ section
 attribute [local instance] Nat.fintypeIio
 
 /-- If `P` is some relation between terms of `γ` and sets in `γ`, such that every finite set
-`t : set γ` has some `c : γ` related to it, then there is a recursively defined sequence `u` in `γ`
+`t : Set γ` has some `c : γ` related to it, then there is a recursively defined sequence `u` in `γ`
 so `u n` is related to the image of `{0, 1, ..., n-1}` under `u`.
 
 (We use this later to show sequentially compact sets are totally bounded.)
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
@@ -364,40 +364,40 @@ instance fintypeDiffLeft (s t : Set α) [Fintype s] [DecidablePred (· ∈ t)] :
   Set.fintypeSep s (· ∈ tᶜ)
 #align set.fintype_diff_left Set.fintypeDiffLeft
 
-instance fintypeUnionᵢ [DecidableEq α] [Fintype (PLift ι)] (f : ι → Set α) [∀ i, Fintype (f i)] :
+instance fintypeiUnion [DecidableEq α] [Fintype (PLift ι)] (f : ι → Set α) [∀ i, Fintype (f i)] :
     Fintype (⋃ i, f i) :=
-  Fintype.ofFinset (Finset.univ.bunionᵢ fun i : PLift ι => (f i.down).toFinset) <| by simp
-#align set.fintype_Union Set.fintypeUnionᵢ
+  Fintype.ofFinset (Finset.univ.biUnion fun i : PLift ι => (f i.down).toFinset) <| by simp
+#align set.fintype_Union Set.fintypeiUnion
 
-instance fintypeUnionₛ [DecidableEq α] {s : Set (Set α)} [Fintype s]
+instance fintypesUnion [DecidableEq α] {s : Set (Set α)} [Fintype s]
     [H : ∀ t : s, Fintype (t : Set α)] : Fintype (⋃₀ s) := by
-  rw [unionₛ_eq_unionᵢ]
-  exact @Set.fintypeUnionᵢ _ _ _ _ _ H
-#align set.fintype_sUnion Set.fintypeUnionₛ
+  rw [sUnion_eq_iUnion]
+  exact @Set.fintypeiUnion _ _ _ _ _ H
+#align set.fintype_sUnion Set.fintypesUnion
 
 /-- A union of sets with `Fintype` structure over a set with `Fintype` structure has a `Fintype`
 structure. -/
-def fintypeBUnionᵢ [DecidableEq α] {ι : Type _} (s : Set ι) [Fintype s] (t : ι → Set α)
+def fintypeBiUnion [DecidableEq α] {ι : Type _} (s : Set ι) [Fintype s] (t : ι → Set α)
     (H : ∀ i ∈ s, Fintype (t i)) : Fintype (⋃ x ∈ s, t x) :=
   haveI : ∀ i : toFinset s, Fintype (t i) := fun i => H i (mem_toFinset.1 i.2)
-  Fintype.ofFinset (s.toFinset.attach.bunionᵢ fun x => (t x).toFinset) fun x => by simp
-#align set.fintype_bUnion Set.fintypeBUnionᵢ
+  Fintype.ofFinset (s.toFinset.attach.biUnion fun x => (t x).toFinset) fun x => by simp
+#align set.fintype_bUnion Set.fintypeBiUnion
 
-instance fintypeBUnionᵢ' [DecidableEq α] {ι : Type _} (s : Set ι) [Fintype s] (t : ι → Set α)
+instance fintypeBiUnion' [DecidableEq α] {ι : Type _} (s : Set ι) [Fintype s] (t : ι → Set α)
     [∀ i, Fintype (t i)] : Fintype (⋃ x ∈ s, t x) :=
-  Fintype.ofFinset (s.toFinset.bunionᵢ fun x => (t x).toFinset) <| by simp
-#align set.fintype_bUnion' Set.fintypeBUnionᵢ'
+  Fintype.ofFinset (s.toFinset.biUnion fun x => (t x).toFinset) <| by simp
+#align set.fintype_bUnion' Set.fintypeBiUnion'
 
 /-- If `s : Set α` is a set with `Fintype` instance and `f : α → Set β` is a function such that
 each `f a`, `a ∈ s`, has a `Fintype` structure, then `s >>= f` has a `Fintype` structure. -/
 def fintypeBind {α β} [DecidableEq β] (s : Set α) [Fintype s] (f : α → Set β)
     (H : ∀ a ∈ s, Fintype (f a)) : Fintype (s >>= f) :=
-  Set.fintypeBUnionᵢ s f H
+  Set.fintypeBiUnion s f H
 #align set.fintype_bind Set.fintypeBind
 
 instance fintypeBind' {α β} [DecidableEq β] (s : Set α) [Fintype s] (f : α → Set β)
     [∀ a, Fintype (f a)] : Fintype (s >>= f) :=
-  Set.fintypeBUnionᵢ' s f
+  Set.fintypeBiUnion' s f
 #align set.fintype_bind' Set.fintypeBind'
 
 instance fintypeEmpty : Fintype (∅ : Set α) :=
@@ -503,7 +503,7 @@ instance fintypeImage2 [DecidableEq γ] (f : α → β → γ) (s : Set α) (t :
 instance fintypeSeq [DecidableEq β] (f : Set (α → β)) (s : Set α) [Fintype f] [Fintype s] :
     Fintype (f.seq s) := by
   rw [seq_def]
-  apply Set.fintypeBUnionᵢ'
+  apply Set.fintypeBiUnion'
 #align set.fintype_seq Set.fintypeSeq
 
 instance fintypeSeq' {α β : Type u} [DecidableEq β] (f : Set (α → β)) (s : Set α) [Fintype f]
@@ -618,41 +618,41 @@ instance finite_range (f : ι → α) [Finite ι] : Finite (range f) := by
   infer_instance
 #align finite.set.finite_range Finite.Set.finite_range
 
-instance finite_unionᵢ [Finite ι] (f : ι → Set α) [∀ i, Finite (f i)] : Finite (⋃ i, f i) := by
-  rw [unionᵢ_eq_range_psigma]
+instance finite_iUnion [Finite ι] (f : ι → Set α) [∀ i, Finite (f i)] : Finite (⋃ i, f i) := by
+  rw [iUnion_eq_range_psigma]
   apply Set.finite_range
-#align finite.set.finite_Union Finite.Set.finite_unionᵢ
+#align finite.set.finite_Union Finite.Set.finite_iUnion
 
-instance finite_unionₛ {s : Set (Set α)} [Finite s] [H : ∀ t : s, Finite (t : Set α)] :
+instance finite_sUnion {s : Set (Set α)} [Finite s] [H : ∀ t : s, Finite (t : Set α)] :
     Finite (⋃₀ s) := by
-  rw [unionₛ_eq_unionᵢ]
-  exact @Finite.Set.finite_unionᵢ _ _ _ _ H
-#align finite.set.finite_sUnion Finite.Set.finite_unionₛ
+  rw [sUnion_eq_iUnion]
+  exact @Finite.Set.finite_iUnion _ _ _ _ H
+#align finite.set.finite_sUnion Finite.Set.finite_sUnion
 
-theorem finite_bunionᵢ {ι : Type _} (s : Set ι) [Finite s] (t : ι → Set α)
+theorem finite_biUnion {ι : Type _} (s : Set ι) [Finite s] (t : ι → Set α)
     (H : ∀ i ∈ s, Finite (t i)) : Finite (⋃ x ∈ s, t x) := by
-  rw [bunionᵢ_eq_unionᵢ]
+  rw [biUnion_eq_iUnion]
   haveI : ∀ i : s, Finite (t i) := fun i => H i i.property
   infer_instance
-#align finite.set.finite_bUnion Finite.Set.finite_bunionᵢ
+#align finite.set.finite_bUnion Finite.Set.finite_biUnion
 
-instance finite_bunionᵢ' {ι : Type _} (s : Set ι) [Finite s] (t : ι → Set α) [∀ i, Finite (t i)] :
+instance finite_biUnion' {ι : Type _} (s : Set ι) [Finite s] (t : ι → Set α) [∀ i, Finite (t i)] :
     Finite (⋃ x ∈ s, t x) :=
-  finite_bunionᵢ s t fun _ _ => inferInstance
-#align finite.set.finite_bUnion' Finite.Set.finite_bunionᵢ'
+  finite_biUnion s t fun _ _ => inferInstance
+#align finite.set.finite_bUnion' Finite.Set.finite_biUnion'
 
 /-- Example: `Finite (⋃ (i < n), f i)` where `f : ℕ → set α` and `[∀ i, Finite (f i)]`
 (when given instances from `Data.Nat.Interval`).
 -/
-instance finite_bunionᵢ'' {ι : Type _} (p : ι → Prop) [h : Finite { x | p x }] (t : ι → Set α)
+instance finite_biUnion'' {ι : Type _} (p : ι → Prop) [h : Finite { x | p x }] (t : ι → Set α)
     [∀ i, Finite (t i)] : Finite (⋃ (x) (_h : p x), t x) :=
-  @Finite.Set.finite_bunionᵢ' _ _ (setOf p) h t _
-#align finite.set.finite_bUnion'' Finite.Set.finite_bunionᵢ''
+  @Finite.Set.finite_biUnion' _ _ (setOf p) h t _
+#align finite.set.finite_bUnion'' Finite.Set.finite_biUnion''
 
-instance finite_interᵢ {ι : Sort _} [Nonempty ι] (t : ι → Set α) [∀ i, Finite (t i)] :
+instance finite_iInter {ι : Sort _} [Nonempty ι] (t : ι → Set α) [∀ i, Finite (t i)] :
     Finite (⋂ i, t i) :=
-  Finite.Set.subset (t <| Classical.arbitrary ι) (interᵢ_subset _ _)
-#align finite.set.finite_Inter Finite.Set.finite_interᵢ
+  Finite.Set.subset (t <| Classical.arbitrary ι) (iInter_subset _ _)
+#align finite.set.finite_Inter Finite.Set.finite_iInter
 
 instance finite_insert (a : α) (s : Set α) [Finite s] : Finite (insert a s : Set α) :=
   Finite.Set.finite_union {a} s
@@ -769,42 +769,42 @@ theorem Finite.of_diff {s t : Set α} (hd : (s \ t).Finite) (ht : t.Finite) : s.
   (hd.union ht).subset <| subset_diff_union _ _
 #align set.finite.of_diff Set.Finite.of_diff
 
-theorem finite_unionᵢ [Finite ι] {f : ι → Set α} (H : ∀ i, (f i).Finite) : (⋃ i, f i).Finite := by
+theorem finite_iUnion [Finite ι] {f : ι → Set α} (H : ∀ i, (f i).Finite) : (⋃ i, f i).Finite := by
   haveI := fun i => (H i).fintype
   apply toFinite
-#align set.finite_Union Set.finite_unionᵢ
+#align set.finite_Union Set.finite_iUnion
 
-theorem Finite.unionₛ {s : Set (Set α)} (hs : s.Finite) (H : ∀ t ∈ s, Set.Finite t) :
+theorem Finite.sUnion {s : Set (Set α)} (hs : s.Finite) (H : ∀ t ∈ s, Set.Finite t) :
     (⋃₀ s).Finite := by
   cases hs
   haveI := fun i : s => (H i i.2).to_subtype
   apply toFinite
-#align set.finite.sUnion Set.Finite.unionₛ
+#align set.finite.sUnion Set.Finite.sUnion
 
-theorem Finite.bunionᵢ {ι} {s : Set ι} (hs : s.Finite) {t : ι → Set α}
+theorem Finite.biUnion {ι} {s : Set ι} (hs : s.Finite) {t : ι → Set α}
     (ht : ∀ i ∈ s, (t i).Finite) : (⋃ i ∈ s, t i).Finite := by
   classical
     cases hs
-    haveI := fintypeBUnionᵢ s t fun i hi => (ht i hi).fintype
+    haveI := fintypeBiUnion s t fun i hi => (ht i hi).fintype
     apply toFinite
-#align set.finite.bUnion Set.Finite.bunionᵢ
+#align set.finite.bUnion Set.Finite.biUnion
 
-/-- Dependent version of `Finite.bunionᵢ`. -/
-theorem Finite.bunionᵢ' {ι} {s : Set ι} (hs : s.Finite) {t : ∀ i ∈ s, Set α}
+/-- Dependent version of `Finite.biUnion`. -/
+theorem Finite.biUnion' {ι} {s : Set ι} (hs : s.Finite) {t : ∀ i ∈ s, Set α}
     (ht : ∀ i (hi : i ∈ s), (t i hi).Finite) : (⋃ i ∈ s, t i ‹_›).Finite := by
   cases hs
-  rw [bunionᵢ_eq_unionᵢ]
-  apply finite_unionᵢ fun i : s => ht i.1 i.2
-#align set.finite.bUnion' Set.Finite.bunionᵢ'
+  rw [biUnion_eq_iUnion]
+  apply finite_iUnion fun i : s => ht i.1 i.2
+#align set.finite.bUnion' Set.Finite.biUnion'
 
-theorem Finite.interₛ {α : Type _} {s : Set (Set α)} {t : Set α} (ht : t ∈ s) (hf : t.Finite) :
+theorem Finite.sInter {α : Type _} {s : Set (Set α)} {t : Set α} (ht : t ∈ s) (hf : t.Finite) :
     (⋂₀ s).Finite :=
-  hf.subset (interₛ_subset_of_mem ht)
-#align set.finite.sInter Set.Finite.interₛ
+  hf.subset (sInter_subset_of_mem ht)
+#align set.finite.sInter Set.Finite.sInter
 
 theorem Finite.bind {α β} {s : Set α} {f : α → Set β} (h : s.Finite) (hf : ∀ a ∈ s, (f a).Finite) :
     (s >>= f).Finite :=
-  h.bunionᵢ hf
+  h.biUnion hf
 #align set.finite.bind Set.Finite.bind
 
 @[simp]
@@ -998,8 +998,8 @@ theorem Finite.pi {δ : Type _} [Finite δ] {κ : δ → Type _} {t : ∀ d, Set
 /-- A finite union of finsets is finite. -/
 theorem union_finset_finite_of_range_finite (f : α → Finset β) (h : (range f).Finite) :
     (⋃ a, (f a : Set β)).Finite := by
-  rw [← bunionᵢ_range]
-  exact h.bunionᵢ fun y _ => y.finite_toSet
+  rw [← biUnion_range]
+  exact h.biUnion fun y _ => y.finite_toSet
 #align set.union_finset_finite_of_range_finite Set.union_finset_finite_of_range_finite
 
 theorem finite_range_ite {p : α → Prop} [DecidablePred p] {f g : α → β} (hf : (range f).Finite)
@@ -1090,32 +1090,32 @@ theorem forall_finite_image_eval_iff {δ : Type _} [Finite δ] {κ : δ → Type
   ⟨fun h => (Finite.pi h).subset <| subset_pi_eval_image _ _, fun h _ => h.image _⟩
 #align set.forall_finite_image_eval_iff Set.forall_finite_image_eval_iff
 
-theorem finite_subset_unionᵢ {s : Set α} (hs : s.Finite) {ι} {t : ι → Set α} (h : s ⊆ ⋃ i, t i) :
+theorem finite_subset_iUnion {s : Set α} (hs : s.Finite) {ι} {t : ι → Set α} (h : s ⊆ ⋃ i, t i) :
     ∃ I : Set ι, I.Finite ∧ s ⊆ ⋃ i ∈ I, t i := by
   cases hs
   choose f hf using show ∀ x : s, ∃ i, x.1 ∈ t i by simpa [subset_def] using h
   refine' ⟨range f, finite_range f, fun x hx => _⟩
-  rw [bunionᵢ_range, mem_unionᵢ]
+  rw [biUnion_range, mem_iUnion]
   exact ⟨⟨x, hx⟩, hf _⟩
-#align set.finite_subset_Union Set.finite_subset_unionᵢ
+#align set.finite_subset_Union Set.finite_subset_iUnion
 
-theorem eq_finite_unionᵢ_of_finite_subset_unionᵢ {ι} {s : ι → Set α} {t : Set α} (tfin : t.Finite)
+theorem eq_finite_iUnion_of_finite_subset_iUnion {ι} {s : ι → Set α} {t : Set α} (tfin : t.Finite)
     (h : t ⊆ ⋃ i, s i) :
     ∃ I : Set ι,
       I.Finite ∧
         ∃ σ : { i | i ∈ I } → Set α, (∀ i, (σ i).Finite) ∧ (∀ i, σ i ⊆ s i) ∧ t = ⋃ i, σ i :=
-  let ⟨I, Ifin, hI⟩ := finite_subset_unionᵢ tfin h
+  let ⟨I, Ifin, hI⟩ := finite_subset_iUnion tfin h
   ⟨I, Ifin, fun x => s x ∩ t, fun i => tfin.subset (inter_subset_right _ _), fun i =>
     inter_subset_left _ _, by
     ext x
-    rw [mem_unionᵢ]
+    rw [mem_iUnion]
     constructor
     · intro x_in
-      rcases mem_unionᵢ.mp (hI x_in) with ⟨i, _, ⟨hi, rfl⟩, H⟩
+      rcases mem_iUnion.mp (hI x_in) with ⟨i, _, ⟨hi, rfl⟩, H⟩
       refine' ⟨⟨i, hi⟩, ⟨H, x_in⟩⟩
     · rintro ⟨i, -, H⟩
       exact H⟩
-#align set.eq_finite_Union_of_finite_subset_Union Set.eq_finite_unionᵢ_of_finite_subset_unionᵢ
+#align set.eq_finite_Union_of_finite_subset_Union Set.eq_finite_iUnion_of_finite_subset_iUnion
 
 @[elab_as_elim]
 theorem Finite.induction_on {C : Set α → Prop} {s : Set α} (h : s.Finite) (H0 : C ∅)
@@ -1452,100 +1452,100 @@ theorem exists_upper_bound_image [Nonempty α] [LinearOrder β] (s : Set α) (f
   exists_lower_bound_image (β := βᵒᵈ) s f h
 #align set.exists_upper_bound_image Set.exists_upper_bound_image
 
-theorem Finite.supᵢ_binfᵢ_of_monotone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
+theorem Finite.iSup_biInf_of_monotone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Frame α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
     (hf : ∀ i ∈ s, Monotone (f i)) : (⨆ j, ⨅ i ∈ s, f i j) = ⨅ i ∈ s, ⨆ j, f i j := by
   induction' s, hs using Set.Finite.dinduction_on with a s _ _ ihs hf
-  · simp [supᵢ_const]
+  · simp [iSup_const]
   · rw [ball_insert_iff] at hf
-    simp only [infᵢ_insert, ← ihs hf.2]
-    exact supᵢ_inf_of_monotone hf.1 fun j₁ j₂ hj => infᵢ₂_mono fun i hi => hf.2 i hi hj
-#align set.finite.supr_binfi_of_monotone Set.Finite.supᵢ_binfᵢ_of_monotone
+    simp only [iInf_insert, ← ihs hf.2]
+    exact iSup_inf_of_monotone hf.1 fun j₁ j₂ hj => iInf₂_mono fun i hi => hf.2 i hi hj
+#align set.finite.supr_binfi_of_monotone Set.Finite.iSup_biInf_of_monotone
 
-theorem Finite.supᵢ_binfᵢ_of_antitone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
+theorem Finite.iSup_biInf_of_antitone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Frame α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
     (hf : ∀ i ∈ s, Antitone (f i)) : (⨆ j, ⨅ i ∈ s, f i j) = ⨅ i ∈ s, ⨆ j, f i j :=
-  @Finite.supᵢ_binfᵢ_of_monotone ι ι'ᵒᵈ α _ _ _ _ _ hs _ fun i hi => (hf i hi).dual_left
-#align set.finite.supr_binfi_of_antitone Set.Finite.supᵢ_binfᵢ_of_antitone
+  @Finite.iSup_biInf_of_monotone ι ι'ᵒᵈ α _ _ _ _ _ hs _ fun i hi => (hf i hi).dual_left
+#align set.finite.supr_binfi_of_antitone Set.Finite.iSup_biInf_of_antitone
 
-theorem Finite.infᵢ_bsupᵢ_of_monotone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
+theorem Finite.iInf_biSup_of_monotone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Coframe α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
     (hf : ∀ i ∈ s, Monotone (f i)) : (⨅ j, ⨆ i ∈ s, f i j) = ⨆ i ∈ s, ⨅ j, f i j :=
-  hs.supᵢ_binfᵢ_of_antitone (α := αᵒᵈ) fun i hi => (hf i hi).dual_right
-#align set.finite.infi_bsupr_of_monotone Set.Finite.infᵢ_bsupᵢ_of_monotone
+  hs.iSup_biInf_of_antitone (α := αᵒᵈ) fun i hi => (hf i hi).dual_right
+#align set.finite.infi_bsupr_of_monotone Set.Finite.iInf_biSup_of_monotone
 
-theorem Finite.infᵢ_bsupᵢ_of_antitone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
+theorem Finite.iInf_biSup_of_antitone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Coframe α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
     (hf : ∀ i ∈ s, Antitone (f i)) : (⨅ j, ⨆ i ∈ s, f i j) = ⨆ i ∈ s, ⨅ j, f i j :=
-  hs.supᵢ_binfᵢ_of_monotone (α := αᵒᵈ)  fun i hi => (hf i hi).dual_right
-#align set.finite.infi_bsupr_of_antitone Set.Finite.infᵢ_bsupᵢ_of_antitone
+  hs.iSup_biInf_of_monotone (α := αᵒᵈ)  fun i hi => (hf i hi).dual_right
+#align set.finite.infi_bsupr_of_antitone Set.Finite.iInf_biSup_of_antitone
 
-theorem supᵢ_infᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
+theorem iSup_iInf_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Frame α] {f : ι → ι' → α} (hf : ∀ i, Monotone (f i)) :
     (⨆ j, ⨅ i, f i j) = ⨅ i, ⨆ j, f i j := by
-  simpa only [infᵢ_univ] using finite_univ.supᵢ_binfᵢ_of_monotone fun i _ => hf i
-#align supr_infi_of_monotone Set.supᵢ_infᵢ_of_monotone
+  simpa only [iInf_univ] using finite_univ.iSup_biInf_of_monotone fun i _ => hf i
+#align supr_infi_of_monotone Set.iSup_iInf_of_monotone
 
-theorem supᵢ_infᵢ_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
+theorem iSup_iInf_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Frame α] {f : ι → ι' → α} (hf : ∀ i, Antitone (f i)) :
     (⨆ j, ⨅ i, f i j) = ⨅ i, ⨆ j, f i j :=
-  @supᵢ_infᵢ_of_monotone ι ι'ᵒᵈ α _ _ _ _ _ _ fun i => (hf i).dual_left
-#align supr_infi_of_antitone Set.supᵢ_infᵢ_of_antitone
+  @iSup_iInf_of_monotone ι ι'ᵒᵈ α _ _ _ _ _ _ fun i => (hf i).dual_left
+#align supr_infi_of_antitone Set.iSup_iInf_of_antitone
 
-theorem infᵢ_supᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
+theorem iInf_iSup_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Coframe α] {f : ι → ι' → α} (hf : ∀ i, Monotone (f i)) :
     (⨅ j, ⨆ i, f i j) = ⨆ i, ⨅ j, f i j :=
-  supᵢ_infᵢ_of_antitone (α := αᵒᵈ) fun i => (hf i).dual_right
-#align infi_supr_of_monotone Set.infᵢ_supᵢ_of_monotone
+  iSup_iInf_of_antitone (α := αᵒᵈ) fun i => (hf i).dual_right
+#align infi_supr_of_monotone Set.iInf_iSup_of_monotone
 
-theorem infᵢ_supᵢ_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
+theorem iInf_iSup_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Coframe α] {f : ι → ι' → α} (hf : ∀ i, Antitone (f i)) :
     (⨅ j, ⨆ i, f i j) = ⨆ i, ⨅ j, f i j :=
-  supᵢ_infᵢ_of_monotone (α := αᵒᵈ) fun i => (hf i).dual_right
-#align infi_supr_of_antitone Set.infᵢ_supᵢ_of_antitone
+  iSup_iInf_of_monotone (α := αᵒᵈ) fun i => (hf i).dual_right
+#align infi_supr_of_antitone Set.iInf_iSup_of_antitone
 
 /-- An increasing union distributes over finite intersection. -/
-theorem unionᵢ_interᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [IsDirected ι' (· ≤ ·)]
+theorem iUnion_iInter_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [IsDirected ι' (· ≤ ·)]
     [Nonempty ι'] {s : ι → ι' → Set α} (hs : ∀ i, Monotone (s i)) :
     (⋃ j : ι', ⋂ i : ι, s i j) = ⋂ i : ι, ⋃ j : ι', s i j :=
-  supᵢ_infᵢ_of_monotone hs
-#align set.Union_Inter_of_monotone Set.unionᵢ_interᵢ_of_monotone
+  iSup_iInf_of_monotone hs
+#align set.Union_Inter_of_monotone Set.iUnion_iInter_of_monotone
 
 /-- A decreasing union distributes over finite intersection. -/
-theorem unionᵢ_interᵢ_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι']
+theorem iUnion_iInter_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι']
     [IsDirected ι' (swap (· ≤ ·))] [Nonempty ι'] {s : ι → ι' → Set α} (hs : ∀ i, Antitone (s i)) :
     (⋃ j : ι', ⋂ i : ι, s i j) = ⋂ i : ι, ⋃ j : ι', s i j :=
-  supᵢ_infᵢ_of_antitone hs
-#align set.Union_Inter_of_antitone Set.unionᵢ_interᵢ_of_antitone
+  iSup_iInf_of_antitone hs
+#align set.Union_Inter_of_antitone Set.iUnion_iInter_of_antitone
 
 /-- An increasing intersection distributes over finite union. -/
-theorem interᵢ_unionᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι']
+theorem iInter_iUnion_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι']
     [IsDirected ι' (swap (· ≤ ·))] [Nonempty ι'] {s : ι → ι' → Set α} (hs : ∀ i, Monotone (s i)) :
     (⋂ j : ι', ⋃ i : ι, s i j) = ⋃ i : ι, ⋂ j : ι', s i j :=
-  infᵢ_supᵢ_of_monotone hs
-#align set.Inter_Union_of_monotone Set.interᵢ_unionᵢ_of_monotone
+  iInf_iSup_of_monotone hs
+#align set.Inter_Union_of_monotone Set.iInter_iUnion_of_monotone
 
 /-- A decreasing intersection distributes over finite union. -/
-theorem interᵢ_unionᵢ_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [IsDirected ι' (· ≤ ·)]
+theorem iInter_iUnion_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [IsDirected ι' (· ≤ ·)]
     [Nonempty ι'] {s : ι → ι' → Set α} (hs : ∀ i, Antitone (s i)) :
     (⋂ j : ι', ⋃ i : ι, s i j) = ⋃ i : ι, ⋂ j : ι', s i j :=
-  infᵢ_supᵢ_of_antitone hs
-#align set.Inter_Union_of_antitone Set.interᵢ_unionᵢ_of_antitone
+  iInf_iSup_of_antitone hs
+#align set.Inter_Union_of_antitone Set.iInter_iUnion_of_antitone
 
-theorem unionᵢ_pi_of_monotone {ι ι' : Type _} [LinearOrder ι'] [Nonempty ι'] {α : ι → Type _}
+theorem iUnion_pi_of_monotone {ι ι' : Type _} [LinearOrder ι'] [Nonempty ι'] {α : ι → Type _}
     {I : Set ι} {s : ∀ i, ι' → Set (α i)} (hI : I.Finite) (hs : ∀ i ∈ I, Monotone (s i)) :
     (⋃ j : ι', I.pi fun i => s i j) = I.pi fun i => ⋃ j, s i j := by
-  simp only [pi_def, binterᵢ_eq_interᵢ, preimage_unionᵢ]
+  simp only [pi_def, biInter_eq_iInter, preimage_iUnion]
   haveI := hI.fintype.finite
-  refine' unionᵢ_interᵢ_of_monotone (ι' := ι') (fun (i : I) j₁ j₂ h => _)
+  refine' iUnion_iInter_of_monotone (ι' := ι') (fun (i : I) j₁ j₂ h => _)
   exact preimage_mono <| hs i i.2 h
-#align set.Union_pi_of_monotone Set.unionᵢ_pi_of_monotone
+#align set.Union_pi_of_monotone Set.iUnion_pi_of_monotone
 
-theorem unionᵢ_univ_pi_of_monotone {ι ι' : Type _} [LinearOrder ι'] [Nonempty ι'] [Finite ι]
+theorem iUnion_univ_pi_of_monotone {ι ι' : Type _} [LinearOrder ι'] [Nonempty ι'] [Finite ι]
     {α : ι → Type _} {s : ∀ i, ι' → Set (α i)} (hs : ∀ i, Monotone (s i)) :
     (⋃ j : ι', pi univ fun i => s i j) = pi univ fun i => ⋃ j, s i j :=
-  unionᵢ_pi_of_monotone finite_univ fun i _ => hs i
-#align set.Union_univ_pi_of_monotone Set.unionᵢ_univ_pi_of_monotone
+  iUnion_pi_of_monotone finite_univ fun i _ => hs i
+#align set.Union_univ_pi_of_monotone Set.iUnion_univ_pi_of_monotone
 
 theorem finite_range_findGreatest {P : α → ℕ → Prop} [∀ x, DecidablePred (P x)] {b : ℕ} :
     (range fun x => Nat.findGreatest (P x) b).Finite :=
@@ -1582,11 +1582,11 @@ protected theorem Finite.bddAbove (hs : s.Finite) : BddAbove s :=
 #align set.finite.bdd_above Set.Finite.bddAbove
 
 /-- A finite union of sets which are all bounded above is still bounded above.-/
-theorem Finite.bddAbove_bunionᵢ {I : Set β} {S : β → Set α} (H : I.Finite) :
+theorem Finite.bddAbove_biUnion {I : Set β} {S : β → Set α} (H : I.Finite) :
     BddAbove (⋃ i ∈ I, S i) ↔ ∀ i ∈ I, BddAbove (S i) :=
-  Finite.induction_on H (by simp only [bunionᵢ_empty, bddAbove_empty, ball_empty_iff])
-    fun _ _ hs => by simp only [bunionᵢ_insert, ball_insert_iff, bddAbove_union, hs]
-#align set.finite.bdd_above_bUnion Set.Finite.bddAbove_bunionᵢ
+  Finite.induction_on H (by simp only [biUnion_empty, bddAbove_empty, ball_empty_iff])
+    fun _ _ hs => by simp only [biUnion_insert, ball_insert_iff, bddAbove_union, hs]
+#align set.finite.bdd_above_bUnion Set.Finite.bddAbove_biUnion
 
 theorem infinite_of_not_bddAbove : ¬BddAbove s → s.Infinite :=
   mt Finite.bddAbove
@@ -1604,10 +1604,10 @@ protected theorem Finite.bddBelow (hs : s.Finite) : BddBelow s :=
 #align set.finite.bdd_below Set.Finite.bddBelow
 
 /-- A finite union of sets which are all bounded below is still bounded below.-/
-theorem Finite.bddBelow_bunionᵢ {I : Set β} {S : β → Set α} (H : I.Finite) :
+theorem Finite.bddBelow_biUnion {I : Set β} {S : β → Set α} (H : I.Finite) :
     BddBelow (⋃ i ∈ I, S i) ↔ ∀ i ∈ I, BddBelow (S i) :=
-  @Finite.bddAbove_bunionᵢ αᵒᵈ _ _ _ _ _ H
-#align set.finite.bdd_below_bUnion Set.Finite.bddBelow_bunionᵢ
+  @Finite.bddAbove_biUnion αᵒᵈ _ _ _ _ _ H
+#align set.finite.bdd_below_bUnion Set.Finite.bddBelow_biUnion
 
 theorem infinite_of_not_bddBelow : ¬BddBelow s → s.Infinite := by
   contrapose!
@@ -1650,11 +1650,11 @@ lemma Set.finite_of_forall_not_lt_lt (h : ∀ x ∈ s, ∀ y ∈ s, ∀ z ∈ s,
   @Set.toFinite _ s <| Finite.of_forall_not_lt_lt $ by simpa only [SetCoe.forall'] using h
 #align set.finite_of_forall_not_lt_lt Set.finite_of_forall_not_lt_lt
 
-lemma Set.finite_diff_unionᵢ_Ioo (s : Set α) : (s \ ⋃ (x ∈ s) (y ∈ s), Ioo x y).Finite :=
-  Set.finite_of_forall_not_lt_lt fun _x hx _y hy _z hz hxy hyz => hy.2 <| mem_unionᵢ₂_of_mem hx.1 <|
-    mem_unionᵢ₂_of_mem hz.1 ⟨hxy, hyz⟩
-#align set.finite_diff_Union_Ioo Set.finite_diff_unionᵢ_Ioo
+lemma Set.finite_diff_iUnion_Ioo (s : Set α) : (s \ ⋃ (x ∈ s) (y ∈ s), Ioo x y).Finite :=
+  Set.finite_of_forall_not_lt_lt fun _x hx _y hy _z hz hxy hyz => hy.2 <| mem_iUnion₂_of_mem hx.1 <|
+    mem_iUnion₂_of_mem hz.1 ⟨hxy, hyz⟩
+#align set.finite_diff_Union_Ioo Set.finite_diff_iUnion_Ioo
 
-lemma Set.finite_diff_unionᵢ_Ioo' (s : Set α) : (s \ ⋃ x : s × s, Ioo x.1 x.2).Finite := by
-  simpa only [unionᵢ, supᵢ_prod, supᵢ_subtype] using s.finite_diff_unionᵢ_Ioo
-#align set.finite_diff_Union_Ioo' Set.finite_diff_unionᵢ_Ioo'
+lemma Set.finite_diff_iUnion_Ioo' (s : Set α) : (s \ ⋃ x : s × s, Ioo x.1 x.2).Finite := by
+  simpa only [iUnion, iSup_prod, iSup_subtype] using s.finite_diff_iUnion_Ioo
+#align set.finite_diff_Union_Ioo' Set.finite_diff_iUnion_Ioo'
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Mario Carneiro, Kyle Miller
 
 ! This file was ported from Lean 3 source module data.set.finite
-! leanprover-community/mathlib commit c941bb9426d62e266612b6d99e6c9fc93e7a1d07
+! leanprover-community/mathlib commit 52fa514ec337dd970d71d8de8d0fd68b455a1e54
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -1366,11 +1366,6 @@ theorem infinite_of_injective_forall_mem [Infinite α] {s : Set β} {f : α →
   exact (infinite_range_of_injective hi).mono hf
 #align set.infinite_of_injective_forall_mem Set.infinite_of_injective_forall_mem
 
-theorem Infinite.exists_nat_lt {s : Set ℕ} (hs : s.Infinite) (n : ℕ) : ∃ m ∈ s, n < m :=
-  let ⟨m, hm⟩ := (hs.diff <| Set.finite_le_nat n).nonempty
-  ⟨m, by simpa using hm⟩
-#align set.infinite.exists_nat_lt Set.Infinite.exists_nat_lt
-
 theorem Infinite.exists_not_mem_finset {s : Set α} (hs : s.Infinite) (f : Finset α) :
     ∃ a ∈ s, a ∉ f :=
   let ⟨a, has, haf⟩ := (hs.diff (toFinite f)).nonempty
@@ -1391,6 +1386,23 @@ theorem not_injOn_infinite_finite_image {f : α → β} {s : Set α} (h_inf : s.
 
 /-! ### Order properties -/
 
+section Preorder
+
+variable [Preorder α] [Nonempty α] {s : Set α}
+
+theorem infinite_of_forall_exists_gt (h : ∀ a, ∃ b ∈ s, a < b) : s.Infinite := by
+  inhabit α
+  set f : ℕ → α := fun n => Nat.recOn n (h default).choose fun n a => (h a).choose
+  have hf : ∀ n, f n ∈ s := by rintro (_ | _) <;> exact (h _).choose_spec.1
+  exact infinite_of_injective_forall_mem
+    (strictMono_nat_of_lt_succ fun n => (h _).choose_spec.2).injective hf
+#align set.infinite_of_forall_exists_gt Set.infinite_of_forall_exists_gt
+
+theorem infinite_of_forall_exists_lt (h : ∀ a, ∃ b ∈ s, b < a) : s.Infinite :=
+  @infinite_of_forall_exists_gt αᵒᵈ _ _ _ h
+#align set.infinite_of_forall_exists_lt Set.infinite_of_forall_exists_lt
+
+end Preorder
 
 theorem finite_isTop (α : Type _) [PartialOrder α] : { x : α | IsTop x }.Finite :=
   (subsingleton_isTop α).finite
chore: fix #align lines (#3640)

This PR fixes two things:

  • Most align statements for definitions and theorems and instances that are separated by two newlines from the relevant declaration (s/\n\n#align/\n#align). This is often seen in the mathport output after ending calc blocks.
  • All remaining more-than-one-line #align statements. (This was needed for a script I wrote for #3630.)
Diff
@@ -1204,7 +1204,6 @@ theorem card_image_of_inj_on {s : Set α} [Fintype s] {f : α → β} [Fintype (
       Finset.card_image_of_injOn fun x hx y hy hxy =>
         H x (mem_toFinset.1 hx) y (mem_toFinset.1 hy) hxy
     _ = Fintype.card s := (Fintype.card_of_finset' _ fun a => mem_toFinset).symm
-
 #align set.card_image_of_inj_on Set.card_image_of_inj_on
 
 theorem card_image_of_injective (s : Set α) [Fintype s] {f : α → β} [Fintype (f '' s)]
chore: use FunLike.coe as coercion for OrderIso and RelEmbedding (#3082)

The changes I made were.

Use FunLike.coe instead of the previous definition for the coercion from RelEmbedding To functions and OrderIso to functions. The previous definition was

instance : CoeFun (r ↪r s) fun _ => α → β :=
--   ⟨fun o => o.toEmbedding⟩

This does not display nicely.

I also restored the simp attributes on a few lemmas that had their simp attributes removed during the port. Eventually we might want a RelEmbeddingLike class, but this PR does not implement that.

I also added a few lemmas that proved that coercions to function commute with RelEmbedding.toRelHom or similar.

The other changes are just fixing the build. One strange issue is that the lemma Finset.mapEmbedding_apply seems to be harder to use, it has to be used with rw instead of simp

Co-authored-by: Chris Hughes <33847686+ChrisHughes24@users.noreply.github.com>

Diff
@@ -982,7 +982,7 @@ theorem exists_finite_iff_finset {p : Set α → Prop} :
 theorem Finite.finite_subsets {α : Type u} {a : Set α} (h : a.Finite) : { b | b ⊆ a }.Finite :=
   ⟨Fintype.ofFinset ((Finset.powerset h.toFinset).map Finset.coeEmb.1) fun s => by
       simpa [← @exists_finite_iff_finset α fun t => t ⊆ a ∧ t = s, Finite.subset_toFinset, ←
-        and_assoc] using h.subset⟩
+        and_assoc, Finset.coeEmb] using h.subset⟩
 #align set.finite.finite_subsets Set.Finite.finite_subsets
 
 /-- Finite product of finite sets is finite -/
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Mario Carneiro, Kyle Miller
 
 ! This file was ported from Lean 3 source module data.set.finite
-! leanprover-community/mathlib commit 517cc149e0b515d2893baa376226ed10feb319c7
+! leanprover-community/mathlib commit c941bb9426d62e266612b6d99e6c9fc93e7a1d07
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -138,11 +138,20 @@ theorem not_infinite {s : Set α} : ¬s.Infinite ↔ s.Finite :=
   not_not
 #align set.not_infinite Set.not_infinite
 
+alias not_infinite ↔ _ Finite.not_infinite
+#align set.finite.not_infinite Set.Finite.not_infinite
+
+attribute [simp] Finite.not_infinite
+
 /-- See also `finite_or_infinite`, `fintype_or_infinite`. -/
 protected theorem finite_or_infinite (s : Set α) : s.Finite ∨ s.Infinite :=
   em _
 #align set.finite_or_infinite Set.finite_or_infinite
 
+protected theorem infinite_or_finite (s : Set α) : s.Infinite ∨ s.Finite :=
+  em' _
+#align set.infinite_or_finite Set.infinite_or_finite
+
 /-! ### Basic properties of `Set.Finite.toFinset` -/
 
 
@@ -803,6 +812,12 @@ theorem finite_empty : (∅ : Set α).Finite :=
   toFinite _
 #align set.finite_empty Set.finite_empty
 
+protected theorem Infinite.nonempty {s : Set α} (h : s.Infinite) : s.Nonempty :=
+  nonempty_iff_ne_empty.2 $ by
+    rintro rfl
+    exact h finite_empty
+#align set.infinite.nonempty Set.Infinite.nonempty
+
 @[simp]
 theorem finite_singleton (a : α) : ({a} : Set α).Finite :=
   toFinite _
@@ -874,26 +889,62 @@ theorem finite_le_nat (n : ℕ) : Set.Finite { i | i ≤ n } :=
   toFinite _
 #align set.finite_le_nat Set.finite_le_nat
 
-theorem Finite.prod {s : Set α} {t : Set β} (hs : s.Finite) (ht : t.Finite) :
-    (s ×ˢ t : Set (α × β)).Finite := by
+section Prod
+
+variable {s : Set α} {t : Set β}
+
+protected theorem Finite.prod (hs : s.Finite) (ht : t.Finite) : (s ×ˢ t : Set (α × β)).Finite := by
   cases hs
   cases ht
   apply toFinite
 #align set.finite.prod Set.Finite.prod
 
-theorem Finite.offDiag {s : Set α} (hs : s.Finite) : s.offDiag.Finite := by
+theorem Finite.of_prod_left (h : (s ×ˢ t : Set (α × β)).Finite) : t.Nonempty → s.Finite :=
+  fun ⟨b, hb⟩ => (h.image Prod.fst).subset fun a ha => ⟨(a, b), ⟨ha, hb⟩, rfl⟩
+#align set.finite.of_prod_left Set.Finite.of_prod_left
+
+theorem Finite.of_prod_right (h : (s ×ˢ t : Set (α × β)).Finite) : s.Nonempty → t.Finite :=
+  fun ⟨a, ha⟩ => (h.image Prod.snd).subset fun b hb => ⟨(a, b), ⟨ha, hb⟩, rfl⟩
+#align set.finite.of_prod_right Set.Finite.of_prod_right
+
+protected theorem Infinite.prod_left (hs : s.Infinite) (ht : t.Nonempty) : (s ×ˢ t).Infinite :=
+  fun h => hs <| h.of_prod_left ht
+#align set.infinite.prod_left Set.Infinite.prod_left
+
+protected theorem Infinite.prod_right (ht : t.Infinite) (hs : s.Nonempty) : (s ×ˢ t).Infinite :=
+  fun h => ht <| h.of_prod_right hs
+#align set.infinite.prod_right Set.Infinite.prod_right
+
+protected theorem infinite_prod :
+    (s ×ˢ t).Infinite ↔ s.Infinite ∧ t.Nonempty ∨ t.Infinite ∧ s.Nonempty := by
+  refine' ⟨fun h => _, _⟩
+  · simp_rw [Set.Infinite, @and_comm ¬_, ← not_imp]
+    by_contra'
+    exact h ((this.1 h.nonempty.snd).prod $ this.2 h.nonempty.fst)
+  · rintro (h | h)
+    · exact h.1.prod_left h.2
+    · exact h.1.prod_right h.2
+#align set.infinite_prod Set.infinite_prod
+
+theorem finite_prod : (s ×ˢ t).Finite ↔ (s.Finite ∨ t = ∅) ∧ (t.Finite ∨ s = ∅) := by
+  simp only [← not_infinite, Set.infinite_prod, not_or, not_and_or, not_nonempty_iff_eq_empty]
+#align set.finite_prod Set.finite_prod
+
+protected theorem Finite.offDiag {s : Set α} (hs : s.Finite) : s.offDiag.Finite := by
   classical
     cases hs
     apply Set.toFinite
 #align set.finite.off_diag Set.Finite.offDiag
 
-theorem Finite.image2 (f : α → β → γ) {s : Set α} {t : Set β} (hs : s.Finite) (ht : t.Finite) :
+protected theorem Finite.image2 (f : α → β → γ) (hs : s.Finite) (ht : t.Finite) :
     (image2 f s t).Finite := by
   cases hs
   cases ht
   apply toFinite
 #align set.finite.image2 Set.Finite.image2
 
+end Prod
+
 theorem Finite.seq {f : Set (α → β)} {s : Set α} (hf : f.Finite) (hs : s.Finite) :
     (f.seq s).Finite := by
   classical
@@ -1231,11 +1282,6 @@ theorem Infinite.exists_subset_card_eq {s : Set α} (hs : s.Infinite) (n : ℕ)
   ⟨((Finset.range n).map (hs.natEmbedding _)).map (Embedding.subtype _), by simp⟩
 #align set.infinite.exists_subset_card_eq Set.Infinite.exists_subset_card_eq
 
-theorem Infinite.nonempty {s : Set α} (h : s.Infinite) : s.Nonempty :=
-  let a := Infinite.natEmbedding s h 37
-  ⟨a.1, a.2⟩
-#align set.infinite.nonempty Set.Infinite.nonempty
-
 theorem infinite_of_finite_compl [Infinite α] {s : Set α} (hs : sᶜ.Finite) : s.Infinite := fun h =>
   Set.infinite_univ (by simpa using hs.union h)
 #align set.infinite_of_finite_compl Set.infinite_of_finite_compl
@@ -1257,15 +1303,47 @@ theorem infinite_union {s t : Set α} : (s ∪ t).Infinite ↔ s.Infinite ∨ t.
   simp only [Set.Infinite, finite_union, not_and_or]
 #align set.infinite_union Set.infinite_union
 
-theorem infinite_of_infinite_image (f : α → β) {s : Set α} (hs : (f '' s).Infinite) : s.Infinite :=
+theorem Infinite.of_image (f : α → β) {s : Set α} (hs : (f '' s).Infinite) : s.Infinite :=
   mt (Finite.image f) hs
-#align set.infinite_of_infinite_image Set.infinite_of_infinite_image
+#align set.infinite.of_image Set.Infinite.of_image
 
 theorem infinite_image_iff {s : Set α} {f : α → β} (hi : InjOn f s) :
     (f '' s).Infinite ↔ s.Infinite :=
   not_congr <| finite_image_iff hi
 #align set.infinite_image_iff Set.infinite_image_iff
 
+alias infinite_image_iff ↔ _ Infinite.image
+#align set.infinite.image Set.Infinite.image
+
+-- Porting note: attribute [protected] doesn't work
+-- attribute [protected] infinite.image
+
+section Image2
+
+variable {f : α → β → γ} {s : Set α} {t : Set β} {a : α} {b : β}
+
+protected theorem Infinite.image2_left (hs : s.Infinite) (hb : b ∈ t)
+    (hf : InjOn (fun a => f a b) s) : (image2 f s t).Infinite :=
+  (hs.image hf).mono <| image_subset_image2_left hb
+#align set.infinite.image2_left Set.Infinite.image2_left
+
+protected theorem Infinite.image2_right (ht : t.Infinite) (ha : a ∈ s) (hf : InjOn (f a) t) :
+    (image2 f s t).Infinite :=
+  (ht.image hf).mono <| image_subset_image2_right ha
+#align set.infinite.image2_right Set.Infinite.image2_right
+
+theorem infinite_image2 (hfs : ∀ b ∈ t, InjOn (fun a => f a b) s) (hft : ∀ a ∈ s, InjOn (f a) t) :
+    (image2 f s t).Infinite ↔ s.Infinite ∧ t.Nonempty ∨ t.Infinite ∧ s.Nonempty := by
+  refine' ⟨fun h => Set.infinite_prod.1 _, _⟩
+  · rw [← image_uncurry_prod] at h
+    exact h.of_image _
+  · rintro (⟨hs, b, hb⟩ | ⟨ht, a, ha⟩)
+    · exact hs.image2_left hb (hfs _ hb)
+    · exact ht.image2_right ha (hft _ ha)
+#align set.infinite_image2 Set.infinite_image2
+
+end Image2
+
 theorem infinite_of_injOn_mapsTo {s : Set α} {t : Set β} {f : α → β} (hi : InjOn f s)
     (hm : MapsTo f s t) (hs : s.Infinite) : t.Infinite :=
   ((infinite_image_iff hi).2 hs).mono (mapsTo'.mp hm)
feat: s ∩ t * s ∪ t ⊆ s * t (#1619)

Match https://github.com/leanprover-community/mathlib/pull/17961

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com> Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>

Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Mario Carneiro, Kyle Miller
 
 ! This file was ported from Lean 3 source module data.set.finite
-! leanprover-community/mathlib commit 1f0096e6caa61e9c849ec2adbd227e960e9dff58
+! leanprover-community/mathlib commit 517cc149e0b515d2893baa376226ed10feb319c7
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -263,7 +263,6 @@ protected theorem toFinset_empty (h : (∅ : Set α).Finite) : h.toFinset = ∅
   simp
 #align set.finite.to_finset_empty Set.Finite.toFinset_empty
 
--- Note: Not `simp` because `Set.Finite.toFinset_setOf` already proves it
 protected theorem toFinset_univ [Fintype α] (h : (Set.univ : Set α).Finite) :
     h.toFinset = Finset.univ := by
   simp
chore: add missing hypothesis names to by_cases (#2679)
Diff
@@ -1473,7 +1473,7 @@ theorem Finite.exists_maximal_wrt [PartialOrder β] (f : α → β) (s : Set α)
   · use a
     simp [h]
   rcases ih h with ⟨b, hb, ih⟩
-  by_cases f b ≤ f a
+  by_cases h : f b ≤ f a
   · refine' ⟨a, Set.mem_insert _ _, fun c hc hac => le_antisymm hac _⟩
     rcases Set.mem_insert_iff.1 hc with (rfl | hcs)
     · rfl
chore: Restore most of the mono attribute (#2491)

Restore most of the mono attribute now that #1740 is merged.

I think I got all of the monos.

Diff
@@ -195,12 +195,12 @@ theorem ssubset_toFinset {s : Finset α} : s ⊂ ht.toFinset ↔ ↑s ⊂ t := b
   rw [← Finset.coe_ssubset, Finite.coe_toFinset]
 #align set.finite.ssubset_to_finset Set.Finite.ssubset_toFinset
 
--- @[mono] -- Porting note: mono attribute not yet available
+@[mono]
 protected theorem toFinset_subset_toFinset : hs.toFinset ⊆ ht.toFinset ↔ s ⊆ t := by
   simp only [← Finset.coe_subset, Finite.coe_toFinset]
 #align set.finite.to_finset_subset_to_finset Set.Finite.toFinset_subset_toFinset
 
--- @[mono] -- Porting note: mono attribute not yet available
+@[mono]
 protected theorem toFinset_ssubset_toFinset : hs.toFinset ⊂ ht.toFinset ↔ s ⊂ t := by
   simp only [← Finset.coe_ssubset, Finite.coe_toFinset]
 #align set.finite.to_finset_ssubset_to_finset Set.Finite.toFinset_ssubset_toFinset
Fix: rename Set.to_finset_set_of to Set.toFinset_setOf (#2309)
Diff
@@ -1200,7 +1200,7 @@ theorem Finite.card_toFinset {s : Set α} [Fintype s] (h : s.Finite) :
 theorem card_ne_eq [Fintype α] (a : α) [Fintype { x : α | x ≠ a }] :
     Fintype.card { x : α | x ≠ a } = Fintype.card α - 1 := by
   haveI := Classical.decEq α
-  rw [← toFinset_card, to_finset_set_of, Finset.filter_ne',
+  rw [← toFinset_card, toFinset_setOf, Finset.filter_ne',
     Finset.card_erase_of_mem (Finset.mem_univ _), Finset.card_univ]
 #align set.card_ne_eq Set.card_ne_eq
 
chore: tidy various files (#2251)
Diff
@@ -181,9 +181,9 @@ theorem toFinset_subset {t : Finset α} : hs.toFinset ⊆ t ↔ s ⊆ t := by
 #align set.finite.to_finset_subset Set.Finite.toFinset_subset
 
 @[simp]
-theorem toFinset_sSubset {t : Finset α} : hs.toFinset ⊂ t ↔ s ⊂ t := by
+theorem toFinset_ssubset {t : Finset α} : hs.toFinset ⊂ t ↔ s ⊂ t := by
   rw [← Finset.coe_ssubset, Finite.coe_toFinset]
-#align set.finite.to_finset_ssubset Set.Finite.toFinset_sSubset
+#align set.finite.to_finset_ssubset Set.Finite.toFinset_ssubset
 
 @[simp]
 theorem subset_toFinset {s : Finset α} : s ⊆ ht.toFinset ↔ ↑s ⊆ t := by
@@ -191,9 +191,9 @@ theorem subset_toFinset {s : Finset α} : s ⊆ ht.toFinset ↔ ↑s ⊆ t := by
 #align set.finite.subset_to_finset Set.Finite.subset_toFinset
 
 @[simp]
-theorem sSubset_toFinset {s : Finset α} : s ⊂ ht.toFinset ↔ ↑s ⊂ t := by
+theorem ssubset_toFinset {s : Finset α} : s ⊂ ht.toFinset ↔ ↑s ⊂ t := by
   rw [← Finset.coe_ssubset, Finite.coe_toFinset]
-#align set.finite.ssubset_to_finset Set.Finite.sSubset_toFinset
+#align set.finite.ssubset_to_finset Set.Finite.ssubset_toFinset
 
 -- @[mono] -- Porting note: mono attribute not yet available
 protected theorem toFinset_subset_toFinset : hs.toFinset ⊆ ht.toFinset ↔ s ⊆ t := by
@@ -428,7 +428,7 @@ is decidable for this particular `a` we can still get a `Fintype` instance by us
 `Set.fintypeInsertOfNotMem` or `Set.fintypeInsertOfMem`.
 
 This instance pre-dates `Set.fintypeInsert`, and it is less efficient.
-When `decidable_mem_of_fintype` is made a local instance, then this instance would
+When `Set.decidableMemOfFintype` is made a local instance, then this instance would
 override `Set.fintypeInsert` if not for the fact that its priority has been
 adjusted. See Note [lower instance priority]. -/
 instance (priority := 100) fintypeInsert' (a : α) (s : Set α) [Decidable <| a ∈ s] [Fintype s] :
@@ -462,22 +462,20 @@ instance fintypeMap {α β} [DecidableEq β] :
   Set.fintypeImage
 #align set.fintype_map Set.fintypeMap
 
-instance fintypeLtNat (n : ℕ) : Fintype { i | i < n } :=
+instance fintypeLTNat (n : ℕ) : Fintype { i | i < n } :=
   Fintype.ofFinset (Finset.range n) <| by simp
-#align set.fintype_lt_nat Set.fintypeLtNat
+#align set.fintype_lt_nat Set.fintypeLTNat
 
-instance fintypeLeNat (n : ℕ) : Fintype { i | i ≤ n } := by
-  simpa [Nat.lt_succ_iff] using Set.fintypeLtNat (n + 1)
-#align set.fintype_le_nat Set.fintypeLeNat
+instance fintypeLENat (n : ℕ) : Fintype { i | i ≤ n } := by
+  simpa [Nat.lt_succ_iff] using Set.fintypeLTNat (n + 1)
+#align set.fintype_le_nat Set.fintypeLENat
 
 /-- This is not an instance so that it does not conflict with the one
-in src/order/locally_finite. -/
+in `Mathlib/Order/LocallyFinite.lean`. -/
 def Nat.fintypeIio (n : ℕ) : Fintype (Iio n) :=
-  Set.fintypeLtNat n
+  Set.fintypeLTNat n
 #align set.nat.fintype_Iio Set.Nat.fintypeIio
 
-/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
-/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 instance fintypeProd (s : Set α) (t : Set β) [Fintype s] [Fintype t] :
     Fintype (s ×ˢ t : Set (α × β)) :=
   Fintype.ofFinset (s.toFinset ×ᶠ t.toFinset) <| by simp
@@ -558,7 +556,7 @@ theorem List.finite_toSet (l : List α) : { x | x ∈ l }.Finite :=
 
 There is seemingly some overlap between the following instances and the `Fintype` instances
 in `Data.Set.Finite`. While every `Fintype` instance gives a `Finite` instance, those
-instances that depend on `Fintype` or `decidable` instances need an additional `Finite` instance
+instances that depend on `Fintype` or `Decidable` instances need an additional `Finite` instance
 to be able to generally apply.
 
 Some set instances do not appear here since they are consequences of others, for example
@@ -1003,7 +1001,6 @@ theorem Finite.toFinset_insert' [DecidableEq α] {a : α} {s : Set α} (hs : s.F
   Finite.toFinset_insert _
 #align set.finite.to_finset_insert' Set.Finite.toFinset_insert'
 
-/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 theorem Finite.toFinset_prod {s : Set α} {t : Set β} (hs : s.Finite) (ht : t.Finite) :
     hs.toFinset ×ᶠ ht.toFinset = (hs.prod ht).toFinset :=
   Finset.ext <| by simp
@@ -1367,7 +1364,7 @@ theorem exists_upper_bound_image [Nonempty α] [LinearOrder β] (s : Set α) (f
   exists_lower_bound_image (β := βᵒᵈ) s f h
 #align set.exists_upper_bound_image Set.exists_upper_bound_image
 
-theorem Finite.supᵢ_binfi_of_monotone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
+theorem Finite.supᵢ_binfᵢ_of_monotone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Frame α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
     (hf : ∀ i ∈ s, Monotone (f i)) : (⨆ j, ⨅ i ∈ s, f i j) = ⨅ i ∈ s, ⨆ j, f i j := by
   induction' s, hs using Set.Finite.dinduction_on with a s _ _ ihs hf
@@ -1375,32 +1372,30 @@ theorem Finite.supᵢ_binfi_of_monotone {ι ι' α : Type _} [Preorder ι'] [Non
   · rw [ball_insert_iff] at hf
     simp only [infᵢ_insert, ← ihs hf.2]
     exact supᵢ_inf_of_monotone hf.1 fun j₁ j₂ hj => infᵢ₂_mono fun i hi => hf.2 i hi hj
-#align set.finite.supr_binfi_of_monotone Set.Finite.supᵢ_binfi_of_monotone
+#align set.finite.supr_binfi_of_monotone Set.Finite.supᵢ_binfᵢ_of_monotone
 
--- PORTING NOTE TODO: NAMING IN THIS SECTION I (ERIC R) AM NOT SURE ABOUT
-
-theorem Finite.supᵢ_binfi_of_antitone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
+theorem Finite.supᵢ_binfᵢ_of_antitone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Frame α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
     (hf : ∀ i ∈ s, Antitone (f i)) : (⨆ j, ⨅ i ∈ s, f i j) = ⨅ i ∈ s, ⨆ j, f i j :=
-  @Finite.supᵢ_binfi_of_monotone ι ι'ᵒᵈ α _ _ _ _ _ hs _ fun i hi => (hf i hi).dual_left
-#align set.finite.supr_binfi_of_antitone Set.Finite.supᵢ_binfi_of_antitone
+  @Finite.supᵢ_binfᵢ_of_monotone ι ι'ᵒᵈ α _ _ _ _ _ hs _ fun i hi => (hf i hi).dual_left
+#align set.finite.supr_binfi_of_antitone Set.Finite.supᵢ_binfᵢ_of_antitone
 
 theorem Finite.infᵢ_bsupᵢ_of_monotone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Coframe α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
     (hf : ∀ i ∈ s, Monotone (f i)) : (⨅ j, ⨆ i ∈ s, f i j) = ⨆ i ∈ s, ⨅ j, f i j :=
-  hs.supᵢ_binfi_of_antitone (α := αᵒᵈ) fun i hi => (hf i hi).dual_right
+  hs.supᵢ_binfᵢ_of_antitone (α := αᵒᵈ) fun i hi => (hf i hi).dual_right
 #align set.finite.infi_bsupr_of_monotone Set.Finite.infᵢ_bsupᵢ_of_monotone
 
 theorem Finite.infᵢ_bsupᵢ_of_antitone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Coframe α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
     (hf : ∀ i ∈ s, Antitone (f i)) : (⨅ j, ⨆ i ∈ s, f i j) = ⨆ i ∈ s, ⨅ j, f i j :=
-  hs.supᵢ_binfi_of_monotone (α := αᵒᵈ)  fun i hi => (hf i hi).dual_right
+  hs.supᵢ_binfᵢ_of_monotone (α := αᵒᵈ)  fun i hi => (hf i hi).dual_right
 #align set.finite.infi_bsupr_of_antitone Set.Finite.infᵢ_bsupᵢ_of_antitone
 
 theorem supᵢ_infᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Frame α] {f : ι → ι' → α} (hf : ∀ i, Monotone (f i)) :
     (⨆ j, ⨅ i, f i j) = ⨅ i, ⨆ j, f i j := by
-  simpa only [infᵢ_univ] using finite_univ.supᵢ_binfi_of_monotone fun i _ => hf i
+  simpa only [infᵢ_univ] using finite_univ.supᵢ_binfᵢ_of_monotone fun i _ => hf i
 #align supr_infi_of_monotone Set.supᵢ_infᵢ_of_monotone
 
 theorem supᵢ_infᵢ_of_antitone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
@@ -1555,12 +1550,10 @@ variable [LinearOrder α] {s : Set α}
 /-- If a linear order does not contain any triple of elements `x < y < z`, then this type
 is finite. -/
 lemma Finite.of_forall_not_lt_lt (h : ∀ ⦃x y z : α⦄, x < y → y < z → False) : Finite α := by
-  -- porting note: todo: use `nontriviality α` instead of the first 2 lines
-  cases subsingleton_or_nontrivial α
-  · exact Finite.of_subsingleton
-  · rcases exists_pair_ne α with ⟨x, y, hne⟩
-    refine' @Finite.of_fintype α ⟨{x, y}, fun z => _⟩
-    simpa [hne] using eq_or_eq_or_eq_of_forall_not_lt_lt h z x y
+  nontriviality α
+  rcases exists_pair_ne α with ⟨x, y, hne⟩
+  refine' @Finite.of_fintype α ⟨{x, y}, fun z => _⟩
+  simpa [hne] using eq_or_eq_or_eq_of_forall_not_lt_lt h z x y
 #align finite.of_forall_not_lt_lt Finite.of_forall_not_lt_lt
 
 /-- If a set `s` does not contain any triple of elements `x < y < z`, then `s` is finite. -/
Refactor: reduce imports of Data.Set.Finite (#1738)

Partial forward-port of leanprover-community/mathlib#18245

Diff
@@ -8,7 +8,7 @@ Authors: Johannes Hölzl, Mario Carneiro, Kyle Miller
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
-import Mathlib.Data.Finset.Sort
+import Mathlib.Data.Finset.Basic
 import Mathlib.Data.Set.Functor
 import Mathlib.Data.Finite.Basic
 
@@ -1550,19 +1550,30 @@ protected theorem bddBelow [SemilatticeInf α] [Nonempty α] (s : Finset α) : B
 
 end Finset
 
-/-- If a set `s` does not contain any elements between any pair of elements `x, z ∈ s` with `x ≤ z`
-(i.e if given `x, y, z ∈ s` such that `x ≤ y ≤ z`, then `y` is either `x` or `z`), then `s` is
-finite.
--/
-theorem Set.finite_of_forall_between_eq_endpoints {α : Type _} [LinearOrder α] (s : Set α)
-    (h : ∀ x ∈ s, ∀ y ∈ s, ∀ z ∈ s, x ≤ y → y ≤ z → x = y ∨ y = z) : Set.Finite s := by
-  by_contra hinf
-  replace hinf : s.Infinite := hinf
-  rcases hinf.exists_subset_card_eq 3 with ⟨t, hts, ht⟩
-  let f := t.orderIsoOfFin ht
-  let x := f 0
-  let y := f 1
-  let z := f 2
-  have := h x (hts x.2) y (hts y.2) z (hts z.2) (f.monotone <| by decide) (f.monotone <| by decide)
-  simp at this
-#align set.finite_of_forall_between_eq_endpoints Set.finite_of_forall_between_eq_endpoints
+variable [LinearOrder α] {s : Set α}
+
+/-- If a linear order does not contain any triple of elements `x < y < z`, then this type
+is finite. -/
+lemma Finite.of_forall_not_lt_lt (h : ∀ ⦃x y z : α⦄, x < y → y < z → False) : Finite α := by
+  -- porting note: todo: use `nontriviality α` instead of the first 2 lines
+  cases subsingleton_or_nontrivial α
+  · exact Finite.of_subsingleton
+  · rcases exists_pair_ne α with ⟨x, y, hne⟩
+    refine' @Finite.of_fintype α ⟨{x, y}, fun z => _⟩
+    simpa [hne] using eq_or_eq_or_eq_of_forall_not_lt_lt h z x y
+#align finite.of_forall_not_lt_lt Finite.of_forall_not_lt_lt
+
+/-- If a set `s` does not contain any triple of elements `x < y < z`, then `s` is finite. -/
+lemma Set.finite_of_forall_not_lt_lt (h : ∀ x ∈ s, ∀ y ∈ s, ∀ z ∈ s, x < y → y < z → False) :
+    Set.Finite s :=
+  @Set.toFinite _ s <| Finite.of_forall_not_lt_lt $ by simpa only [SetCoe.forall'] using h
+#align set.finite_of_forall_not_lt_lt Set.finite_of_forall_not_lt_lt
+
+lemma Set.finite_diff_unionᵢ_Ioo (s : Set α) : (s \ ⋃ (x ∈ s) (y ∈ s), Ioo x y).Finite :=
+  Set.finite_of_forall_not_lt_lt fun _x hx _y hy _z hz hxy hyz => hy.2 <| mem_unionᵢ₂_of_mem hx.1 <|
+    mem_unionᵢ₂_of_mem hz.1 ⟨hxy, hyz⟩
+#align set.finite_diff_Union_Ioo Set.finite_diff_unionᵢ_Ioo
+
+lemma Set.finite_diff_unionᵢ_Ioo' (s : Set α) : (s \ ⋃ x : s × s, Ioo x.1 x.2).Finite := by
+  simpa only [unionᵢ, supᵢ_prod, supᵢ_subtype] using s.finite_diff_unionᵢ_Ioo
+#align set.finite_diff_Union_Ioo' Set.finite_diff_unionᵢ_Ioo'
feat: port Order.PartialSups (#1757)

port of order.partial.sups

Co-authored-by: Ruben Van de Velde <65514131+Ruben-VandeVelde@users.noreply.github.com> Co-authored-by: Johan Commelin <johan@commelin.net>

Diff
@@ -1385,17 +1385,17 @@ theorem Finite.supᵢ_binfi_of_antitone {ι ι' α : Type _} [Preorder ι'] [Non
   @Finite.supᵢ_binfi_of_monotone ι ι'ᵒᵈ α _ _ _ _ _ hs _ fun i hi => (hf i hi).dual_left
 #align set.finite.supr_binfi_of_antitone Set.Finite.supᵢ_binfi_of_antitone
 
-theorem Finite.infᵢ_bsupr_of_monotone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
+theorem Finite.infᵢ_bsupᵢ_of_monotone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (swap (· ≤ ·))] [Order.Coframe α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
     (hf : ∀ i ∈ s, Monotone (f i)) : (⨅ j, ⨆ i ∈ s, f i j) = ⨆ i ∈ s, ⨅ j, f i j :=
   hs.supᵢ_binfi_of_antitone (α := αᵒᵈ) fun i hi => (hf i hi).dual_right
-#align set.finite.infi_bsupr_of_monotone Set.Finite.infᵢ_bsupr_of_monotone
+#align set.finite.infi_bsupr_of_monotone Set.Finite.infᵢ_bsupᵢ_of_monotone
 
-theorem Finite.infᵢ_bsupr_of_antitone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
+theorem Finite.infᵢ_bsupᵢ_of_antitone {ι ι' α : Type _} [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Coframe α] {s : Set ι} (hs : s.Finite) {f : ι → ι' → α}
     (hf : ∀ i ∈ s, Antitone (f i)) : (⨅ j, ⨆ i ∈ s, f i j) = ⨆ i ∈ s, ⨅ j, f i j :=
   hs.supᵢ_binfi_of_monotone (α := αᵒᵈ)  fun i hi => (hf i hi).dual_right
-#align set.finite.infi_bsupr_of_antitone Set.Finite.infᵢ_bsupr_of_antitone
+#align set.finite.infi_bsupr_of_antitone Set.Finite.infᵢ_bsupᵢ_of_antitone
 
 theorem supᵢ_infᵢ_of_monotone {ι ι' α : Type _} [Finite ι] [Preorder ι'] [Nonempty ι']
     [IsDirected ι' (· ≤ ·)] [Order.Frame α] {f : ι → ι' → α} (hf : ∀ i, Monotone (f i)) :
chore: tidy various files (#1693)
Diff
@@ -1136,7 +1136,7 @@ theorem empty_card' {h : Fintype.{u} (∅ : Set α)} : @Fintype.card (∅ : Set
 
 theorem card_fintypeInsertOfNotMem {a : α} (s : Set α) [Fintype s] (h : a ∉ s) :
     @Fintype.card _ (fintypeInsertOfNotMem s h) = Fintype.card s + 1 := by
-  rw [fintypeInsertOfNotMem, Fintype.card_of_finset]
+  rw [fintypeInsertOfNotMem, Fintype.card_ofFinset]
   simp only [Finset.card, toFinset, Finset.map_val, Embedding.coe_subtype,
              Multiset.card_cons, Multiset.card_map, add_left_inj]
   rfl
@@ -1167,7 +1167,7 @@ theorem card_image_of_injective (s : Set α) [Fintype s] {f : α → β} [Fintyp
 
 @[simp]
 theorem card_singleton (a : α) : Fintype.card ({a} : Set α) = 1 :=
-  Fintype.card_of_subsingleton _
+  Fintype.card_ofSubsingleton _
 #align set.card_singleton Set.card_singleton
 
 theorem card_lt_card {s t : Set α} [Fintype s] [Fintype t] (h : s ⊂ t) :
feat: port Data.Finset.Preimage (#1746)
Diff
@@ -521,38 +521,38 @@ namespace Finset
 /-- Gives a `Set.Finite` for the `Finset` coerced to a `Set`.
 This is a wrapper around `Set.toFinite`. -/
 @[simp]
-theorem finite_to_set (s : Finset α) : (s : Set α).Finite :=
+theorem finite_toSet (s : Finset α) : (s : Set α).Finite :=
   Set.toFinite _
-#align finset.finite_to_set Finset.finite_to_set
+#align finset.finite_to_set Finset.finite_toSet
 
 @[simp]
-theorem finite_to_set_toFinset (s : Finset α) : s.finite_to_set.toFinset = s := by
+theorem finite_toSet_toFinset (s : Finset α) : s.finite_toSet.toFinset = s := by
   ext
   rw [Set.Finite.mem_toFinset, mem_coe]
-#align finset.finite_to_set_to_finset Finset.finite_to_set_toFinset
+#align finset.finite_to_set_to_finset Finset.finite_toSet_toFinset
 
 end Finset
 
 namespace Multiset
 
 @[simp]
-theorem finite_to_set (s : Multiset α) : { x | x ∈ s }.Finite := by
-  classical simpa only [← Multiset.mem_toFinset] using s.toFinset.finite_to_set
-#align multiset.finite_to_set Multiset.finite_to_set
+theorem finite_toSet (s : Multiset α) : { x | x ∈ s }.Finite := by
+  classical simpa only [← Multiset.mem_toFinset] using s.toFinset.finite_toSet
+#align multiset.finite_to_set Multiset.finite_toSet
 
 @[simp]
-theorem finite_to_set_toFinset [DecidableEq α] (s : Multiset α) :
-    s.finite_to_set.toFinset = s.toFinset := by
+theorem finite_toSet_toFinset [DecidableEq α] (s : Multiset α) :
+    s.finite_toSet.toFinset = s.toFinset := by
   ext x
   simp
-#align multiset.finite_to_set_to_finset Multiset.finite_to_set_toFinset
+#align multiset.finite_to_set_to_finset Multiset.finite_toSet_toFinset
 
 end Multiset
 
 @[simp]
-theorem List.finite_to_set (l : List α) : { x | x ∈ l }.Finite :=
-  (show Multiset α from ⟦l⟧).finite_to_set
-#align list.finite_to_set List.finite_to_set
+theorem List.finite_toSet (l : List α) : { x | x ∈ l }.Finite :=
+  (show Multiset α from ⟦l⟧).finite_toSet
+#align list.finite_to_set List.finite_toSet
 
 /-! ### Finite instances
 
@@ -927,7 +927,7 @@ theorem finite_preimage_inl_and_inr {s : Set (Sum α β)} :
 theorem exists_finite_iff_finset {p : Set α → Prop} :
     (∃ s : Set α, s.Finite ∧ p s) ↔ ∃ s : Finset α, p ↑s :=
   ⟨fun ⟨_, hs, hps⟩ => ⟨hs.toFinset, hs.coe_toFinset.symm ▸ hps⟩, fun ⟨s, hs⟩ =>
-    ⟨s, s.finite_to_set, hs⟩⟩
+    ⟨s, s.finite_toSet, hs⟩⟩
 #align set.exists_finite_iff_finset Set.exists_finite_iff_finset
 
 /-- There are finitely many subsets of a given finite set -/
@@ -944,14 +944,14 @@ theorem Finite.pi {δ : Type _} [Finite δ] {κ : δ → Type _} {t : ∀ d, Set
   lift t to ∀ d, Finset (κ d) using ht
   classical
     rw [← Fintype.coe_piFinset]
-    apply Finset.finite_to_set
+    apply Finset.finite_toSet
 #align set.finite.pi Set.Finite.pi
 
 /-- A finite union of finsets is finite. -/
 theorem union_finset_finite_of_range_finite (f : α → Finset β) (h : (range f).Finite) :
     (⋃ a, (f a : Set β)).Finite := by
   rw [← bunionᵢ_range]
-  exact h.bunionᵢ fun y _ => y.finite_to_set
+  exact h.bunionᵢ fun y _ => y.finite_toSet
 #align set.union_finset_finite_of_range_finite Set.union_finset_finite_of_range_finite
 
 theorem finite_range_ite {p : α → Prop} [DecidablePred p] {f g : α → β} (hf : (range f).Finite)
@@ -1540,12 +1540,12 @@ namespace Finset
 
 /-- A finset is bounded above. -/
 protected theorem bddAbove [SemilatticeSup α] [Nonempty α] (s : Finset α) : BddAbove (↑s : Set α) :=
-  s.finite_to_set.bddAbove
+  s.finite_toSet.bddAbove
 #align finset.bdd_above Finset.bddAbove
 
 /-- A finset is bounded below. -/
 protected theorem bddBelow [SemilatticeInf α] [Nonempty α] (s : Finset α) : BddBelow (↑s : Set α) :=
-  s.finite_to_set.bddBelow
+  s.finite_toSet.bddBelow
 #align finset.bdd_below Finset.bddBelow
 
 end Finset
feat: port Data.Set.Finite (#1734)

Co-authored-by: Ruben Van de Velde <65514131+Ruben-VandeVelde@users.noreply.github.com> Co-authored-by: Eric Rodriguez <ericrboidi@gmail.com> Co-authored-by: Yury G. Kudryashov <urkud@urkud.name> Co-authored-by: ChrisHughes24 <chrishughes24@gmail.com>

Dependencies 6 + 210

211 files ported (97.2%)
93799 lines ported (97.8%)
Show graph

The unported dependencies are