order.closureMathlib.Order.Closure

This file has been ported!

Changes since the initial port

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

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

chore(order/closure): improve theorem statement (#18024)
Diff
@@ -393,14 +393,14 @@ lemma closure_union_closure_subset (x y : α) :
 l.closure_sup_closure_le x y
 
 @[simp] lemma closure_union_closure_left (x y : α) :
-  (l ((l x) ∪ y) : set β) = l (x ∪ y) :=
-l.closure_sup_closure_left x y
+  l ((l x) ∪ y) = l (x ∪ y) :=
+set_like.coe_injective (l.closure_sup_closure_left x y)
 
 @[simp] lemma closure_union_closure_right (x y : α) :
   l (x ∪ (l y)) = l (x ∪ y) :=
 set_like.coe_injective (l.closure_sup_closure_right x y)
 
-@[simp] lemma closure_union_closure (x y : α) :
+lemma closure_union_closure (x y : α) :
   l ((l x) ∪ (l y)) = l (x ∪ y) :=
 set_like.coe_injective (l.closure_operator.closure_sup_closure x y)
 

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(first ported)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -130,35 +130,31 @@ def mk₂ (f : α → α) (hf : ∀ x, x ≤ f x) (hmin : ∀ ⦃x y⦄, x ≤ f
 #align closure_operator.mk₂ ClosureOperator.mk₂
 -/
 
-#print ClosureOperator.mk₃ /-
+#print ClosureOperator.ofPred /-
 /-- Expanded out version of `mk₂`. `p` implies being closed. This constructor should be used when
 you already know a sufficient condition for being closed and using `mem_mk₃_closed` will avoid you
 the (slight) hassle of having to prove it both inside and outside the constructor. -/
 @[simps]
-def mk₃ (f : α → α) (p : α → Prop) (hf : ∀ x, x ≤ f x) (hfp : ∀ x, p (f x))
+def ofPred (f : α → α) (p : α → Prop) (hf : ∀ x, x ≤ f x) (hfp : ∀ x, p (f x))
     (hmin : ∀ ⦃x y⦄, x ≤ y → p y → f x ≤ y) : ClosureOperator α :=
   mk₂ f hf fun x y hxy => hmin hxy (hfp y)
-#align closure_operator.mk₃ ClosureOperator.mk₃
+#align closure_operator.mk₃ ClosureOperator.ofPred
 -/
 
-#print ClosureOperator.closure_mem_mk₃ /-
 /-- This lemma shows that the image of `x` of a closure operator built from the `mk₃` constructor
 respects `p`, the property that was fed into it. -/
-theorem closure_mem_mk₃ {f : α → α} {p : α → Prop} {hf : ∀ x, x ≤ f x} {hfp : ∀ x, p (f x)}
-    {hmin : ∀ ⦃x y⦄, x ≤ y → p y → f x ≤ y} (x : α) : p (mk₃ f p hf hfp hmin x) :=
+theorem closure_mem_ofPred {f : α → α} {p : α → Prop} {hf : ∀ x, x ≤ f x} {hfp : ∀ x, p (f x)}
+    {hmin : ∀ ⦃x y⦄, x ≤ y → p y → f x ≤ y} (x : α) : p (ofPred f p hf hfp hmin x) :=
   hfp x
-#align closure_operator.closure_mem_mk₃ ClosureOperator.closure_mem_mk₃
--/
+#align closure_operator.closure_mem_mk₃ ClosureOperator.closure_mem_ofPred
 
-#print ClosureOperator.closure_le_mk₃_iff /-
 /-- Analogue of `closure_le_closed_iff_le` but with the `p` that was fed into the `mk₃` constructor.
 -/
-theorem closure_le_mk₃_iff {f : α → α} {p : α → Prop} {hf : ∀ x, x ≤ f x} {hfp : ∀ x, p (f x)}
+theorem closure_le_ofPred_iff {f : α → α} {p : α → Prop} {hf : ∀ x, x ≤ f x} {hfp : ∀ x, p (f x)}
     {hmin : ∀ ⦃x y⦄, x ≤ y → p y → f x ≤ y} {x y : α} (hxy : x ≤ y) (hy : p y) :
-    mk₃ f p hf hfp hmin x ≤ y :=
+    ofPred f p hf hfp hmin x ≤ y :=
   hmin hxy hy
-#align closure_operator.closure_le_mk₃_iff ClosureOperator.closure_le_mk₃_iff
--/
+#align closure_operator.closure_le_mk₃_iff ClosureOperator.closure_le_ofPred_iff
 
 #print ClosureOperator.monotone /-
 @[mono]
@@ -188,74 +184,77 @@ theorem le_closure_iff (x y : α) : x ≤ c y ↔ c x ≤ c y :=
 #align closure_operator.le_closure_iff ClosureOperator.le_closure_iff
 -/
 
-#print ClosureOperator.closed /-
+#print ClosureOperator.IsClosed /-
 /-- An element `x` is closed for the closure operator `c` if it is a fixed point for it. -/
-def closed : Set α := fun x => c x = x
-#align closure_operator.closed ClosureOperator.closed
+def IsClosed : Set α := fun x => c x = x
+#align closure_operator.closed ClosureOperator.IsClosed
 -/
 
-#print ClosureOperator.mem_closed_iff /-
-theorem mem_closed_iff (x : α) : x ∈ c.closed ↔ c x = x :=
+#print ClosureOperator.isClosed_iff /-
+theorem isClosed_iff (x : α) : x ∈ c.closed ↔ c x = x :=
   Iff.rfl
-#align closure_operator.mem_closed_iff ClosureOperator.mem_closed_iff
+#align closure_operator.mem_closed_iff ClosureOperator.isClosed_iff
 -/
 
-#print ClosureOperator.mem_closed_iff_closure_le /-
-theorem mem_closed_iff_closure_le (x : α) : x ∈ c.closed ↔ c x ≤ x :=
+#print ClosureOperator.isClosed_iff_closure_le /-
+theorem isClosed_iff_closure_le (x : α) : x ∈ c.closed ↔ c x ≤ x :=
   ⟨le_of_eq, fun h => h.antisymm (c.le_closure x)⟩
-#align closure_operator.mem_closed_iff_closure_le ClosureOperator.mem_closed_iff_closure_le
+#align closure_operator.mem_closed_iff_closure_le ClosureOperator.isClosed_iff_closure_le
 -/
 
-#print ClosureOperator.closure_eq_self_of_mem_closed /-
-theorem closure_eq_self_of_mem_closed {x : α} (h : x ∈ c.closed) : c x = x :=
+#print ClosureOperator.IsClosed.closure_eq /-
+theorem ClosureOperator.IsClosed.closure_eq {x : α} (h : x ∈ c.closed) : c x = x :=
   h
-#align closure_operator.closure_eq_self_of_mem_closed ClosureOperator.closure_eq_self_of_mem_closed
+#align closure_operator.closure_eq_self_of_mem_closed ClosureOperator.IsClosed.closure_eq
 -/
 
-#print ClosureOperator.closure_is_closed /-
+#print ClosureOperator.isClosed_closure /-
 @[simp]
-theorem closure_is_closed (x : α) : c x ∈ c.closed :=
+theorem isClosed_closure (x : α) : c x ∈ c.closed :=
   c.idempotent x
-#align closure_operator.closure_is_closed ClosureOperator.closure_is_closed
+#align closure_operator.closure_is_closed ClosureOperator.isClosed_closure
 -/
 
-#print ClosureOperator.closed_eq_range_close /-
+#print ClosureOperator.setOf_isClosed_eq_range_closure /-
 /-- The set of closed elements for `c` is exactly its range. -/
-theorem closed_eq_range_close : c.closed = Set.range c :=
+theorem setOf_isClosed_eq_range_closure : c.closed = Set.range c :=
   Set.ext fun x => ⟨fun h => ⟨x, h⟩, by rintro ⟨y, rfl⟩; apply c.idempotent⟩
-#align closure_operator.closed_eq_range_close ClosureOperator.closed_eq_range_close
+#align closure_operator.closed_eq_range_close ClosureOperator.setOf_isClosed_eq_range_closure
 -/
 
-#print ClosureOperator.toClosed /-
+#print ClosureOperator.toCloseds /-
 /-- Send an `x` to an element of the set of closed elements (by taking the closure). -/
-def toClosed (x : α) : c.closed :=
-  ⟨c x, c.closure_is_closed x⟩
-#align closure_operator.to_closed ClosureOperator.toClosed
+def toCloseds (x : α) : c.closed :=
+  ⟨c x, c.isClosed_closure x⟩
+#align closure_operator.to_closed ClosureOperator.toCloseds
 -/
 
-#print ClosureOperator.closure_le_closed_iff_le /-
+#print ClosureOperator.IsClosed.closure_le_iff /-
 @[simp]
-theorem closure_le_closed_iff_le (x : α) {y : α} (hy : c.closed y) : c x ≤ y ↔ x ≤ y := by
-  rw [← c.closure_eq_self_of_mem_closed hy, ← le_closure_iff]
-#align closure_operator.closure_le_closed_iff_le ClosureOperator.closure_le_closed_iff_le
+theorem ClosureOperator.IsClosed.closure_le_iff (x : α) {y : α} (hy : c.closed y) :
+    c x ≤ y ↔ x ≤ y := by rw [← c.closure_eq_self_of_mem_closed hy, ← le_closure_iff]
+#align closure_operator.closure_le_closed_iff_le ClosureOperator.IsClosed.closure_le_iff
 -/
 
-#print ClosureOperator.eq_mk₃_closed /-
+#print ClosureOperator.eq_ofPred_closed /-
 /-- A closure operator is equal to the closure operator obtained by feeding `c.closed` into the
 `mk₃` constructor. -/
-theorem eq_mk₃_closed (c : ClosureOperator α) :
+theorem eq_ofPred_closed (c : ClosureOperator α) :
     c =
-      mk₃ c c.closed c.le_closure c.closure_is_closed fun x y hxy hy =>
-        (c.closure_le_closed_iff_le x hy).2 hxy :=
+      ofPred c c.closed c.le_closure c.isClosed_closure fun x y hxy hy =>
+        (c.closure_le_iff x hy).2 hxy :=
   by ext; rfl
-#align closure_operator.eq_mk₃_closed ClosureOperator.eq_mk₃_closed
+#align closure_operator.eq_mk₃_closed ClosureOperator.eq_ofPred_closed
 -/
 
+#print ClosureOperator.ofPred_isClosed /-
 /-- The property `p` fed into the `mk₃` constructor implies being closed. -/
-theorem mem_mk₃_closed {f : α → α} {p : α → Prop} {hf : ∀ x, x ≤ f x} {hfp : ∀ x, p (f x)}
-    {hmin : ∀ ⦃x y⦄, x ≤ y → p y → f x ≤ y} {x : α} (hx : p x) : x ∈ (mk₃ f p hf hfp hmin).closed :=
+theorem ofPred_isClosed {f : α → α} {p : α → Prop} {hf : ∀ x, x ≤ f x} {hfp : ∀ x, p (f x)}
+    {hmin : ∀ ⦃x y⦄, x ≤ y → p y → f x ≤ y} {x : α} (hx : p x) :
+    x ∈ (ofPred f p hf hfp hmin).closed :=
   (hmin le_rfl hx).antisymm (hf _)
-#align closure_operator.mem_mk₃_closed ClosureOperator.mem_mk₃_closedₓ
+#align closure_operator.mem_mk₃_closed ClosureOperator.ofPred_isClosed
+-/
 
 end PartialOrder
 
@@ -272,10 +271,10 @@ theorem closure_top : c ⊤ = ⊤ :=
 #align closure_operator.closure_top ClosureOperator.closure_top
 -/
 
-#print ClosureOperator.top_mem_closed /-
-theorem top_mem_closed : ⊤ ∈ c.closed :=
+#print ClosureOperator.isClosed_top /-
+theorem isClosed_top : ⊤ ∈ c.closed :=
   c.closure_top
-#align closure_operator.top_mem_closed ClosureOperator.top_mem_closed
+#align closure_operator.top_mem_closed ClosureOperator.isClosed_top
 -/
 
 end OrderTop
@@ -482,7 +481,7 @@ variable [PartialOrder α] [PartialOrder β] {u : β → α} (l : LowerAdjoint u
 
 #print LowerAdjoint.mem_closed_iff_closure_le /-
 theorem mem_closed_iff_closure_le (x : α) : x ∈ l.closed ↔ u (l x) ≤ x :=
-  l.ClosureOperator.mem_closed_iff_closure_le _
+  l.ClosureOperator.isClosed_iff_closure_le _
 #align lower_adjoint.mem_closed_iff_closure_le LowerAdjoint.mem_closed_iff_closure_le
 -/
 
@@ -496,21 +495,21 @@ theorem closure_is_closed (x : α) : u (l x) ∈ l.closed :=
 #print LowerAdjoint.closed_eq_range_close /-
 /-- The set of closed elements for `l` is the range of `u ∘ l`. -/
 theorem closed_eq_range_close : l.closed = Set.range (u ∘ l) :=
-  l.ClosureOperator.closed_eq_range_close
+  l.ClosureOperator.setOf_isClosed_eq_range_closure
 #align lower_adjoint.closed_eq_range_close LowerAdjoint.closed_eq_range_close
 -/
 
 #print LowerAdjoint.toClosed /-
 /-- Send an `x` to an element of the set of closed elements (by taking the closure). -/
 def toClosed (x : α) : l.closed :=
-  ⟨u (l x), l.closure_is_closed x⟩
+  ⟨u (l x), l.isClosed_closure x⟩
 #align lower_adjoint.to_closed LowerAdjoint.toClosed
 -/
 
 #print LowerAdjoint.closure_le_closed_iff_le /-
 @[simp]
 theorem closure_le_closed_iff_le (x : α) {y : α} (hy : l.closed y) : u (l x) ≤ y ↔ x ≤ y :=
-  l.ClosureOperator.closure_le_closed_iff_le x hy
+  l.ClosureOperator.closure_le_iff x hy
 #align lower_adjoint.closure_le_closed_iff_le LowerAdjoint.closure_le_closed_iff_le
 -/
 
@@ -693,10 +692,10 @@ def GaloisConnection.closureOperator [PartialOrder α] [Preorder β] {l : α →
 
 #print ClosureOperator.gi /-
 /-- The set of closed elements has a Galois insertion to the underlying type. -/
-def ClosureOperator.gi [PartialOrder α] (c : ClosureOperator α) : GaloisInsertion c.toClosed coe
+def ClosureOperator.gi [PartialOrder α] (c : ClosureOperator α) : GaloisInsertion c.toCloseds coe
     where
   choice x hx := ⟨x, hx.antisymm (c.le_closure x)⟩
-  gc x y := c.closure_le_closed_iff_le _ y.2
+  gc x y := c.closure_le_iff _ y.2
   le_l_u x := c.le_closure _
   choice_eq x hx := le_antisymm (c.le_closure x) hx
 #align closure_operator.gi ClosureOperator.gi
Diff
@@ -3,10 +3,10 @@ Copyright (c) 2020 Bhavik Mehta. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Bhavik Mehta, Yaël Dillies
 -/
-import Mathbin.Data.Set.Lattice
-import Mathbin.Data.SetLike.Basic
-import Mathbin.Order.GaloisConnection
-import Mathbin.Order.Hom.Basic
+import Data.Set.Lattice
+import Data.SetLike.Basic
+import Order.GaloisConnection
+import Order.Hom.Basic
 
 #align_import order.closure from "leanprover-community/mathlib"@"c3291da49cfa65f0d43b094750541c0731edc932"
 
Diff
@@ -251,13 +251,11 @@ theorem eq_mk₃_closed (c : ClosureOperator α) :
 #align closure_operator.eq_mk₃_closed ClosureOperator.eq_mk₃_closed
 -/
 
-#print ClosureOperator.mem_mk₃_closed /-
 /-- The property `p` fed into the `mk₃` constructor implies being closed. -/
 theorem mem_mk₃_closed {f : α → α} {p : α → Prop} {hf : ∀ x, x ≤ f x} {hfp : ∀ x, p (f x)}
     {hmin : ∀ ⦃x y⦄, x ≤ y → p y → f x ≤ y} {x : α} (hx : p x) : x ∈ (mk₃ f p hf hfp hmin).closed :=
   (hmin le_rfl hx).antisymm (hf _)
-#align closure_operator.mem_mk₃_closed ClosureOperator.mem_mk₃_closed
--/
+#align closure_operator.mem_mk₃_closed ClosureOperator.mem_mk₃_closedₓ
 
 end PartialOrder
 
Diff
@@ -2,17 +2,14 @@
 Copyright (c) 2020 Bhavik Mehta. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Bhavik Mehta, Yaël Dillies
-
-! This file was ported from Lean 3 source module order.closure
-! leanprover-community/mathlib commit c3291da49cfa65f0d43b094750541c0731edc932
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Data.Set.Lattice
 import Mathbin.Data.SetLike.Basic
 import Mathbin.Order.GaloisConnection
 import Mathbin.Order.Hom.Basic
 
+#align_import order.closure from "leanprover-community/mathlib"@"c3291da49cfa65f0d43b094750541c0731edc932"
+
 /-!
 # Closure operators between preorders
 
Diff
@@ -270,43 +270,57 @@ section OrderTop
 
 variable [PartialOrder α] [OrderTop α] (c : ClosureOperator α)
 
+#print ClosureOperator.closure_top /-
 @[simp]
 theorem closure_top : c ⊤ = ⊤ :=
   le_top.antisymm (c.le_closure _)
 #align closure_operator.closure_top ClosureOperator.closure_top
+-/
 
+#print ClosureOperator.top_mem_closed /-
 theorem top_mem_closed : ⊤ ∈ c.closed :=
   c.closure_top
 #align closure_operator.top_mem_closed ClosureOperator.top_mem_closed
+-/
 
 end OrderTop
 
+#print ClosureOperator.closure_inf_le /-
 theorem closure_inf_le [SemilatticeInf α] (c : ClosureOperator α) (x y : α) :
     c (x ⊓ y) ≤ c x ⊓ c y :=
   c.Monotone.map_inf_le _ _
 #align closure_operator.closure_inf_le ClosureOperator.closure_inf_le
+-/
 
 section SemilatticeSup
 
 variable [SemilatticeSup α] (c : ClosureOperator α)
 
+#print ClosureOperator.closure_sup_closure_le /-
 theorem closure_sup_closure_le (x y : α) : c x ⊔ c y ≤ c (x ⊔ y) :=
   c.Monotone.le_map_sup _ _
 #align closure_operator.closure_sup_closure_le ClosureOperator.closure_sup_closure_le
+-/
 
+#print ClosureOperator.closure_sup_closure_left /-
 theorem closure_sup_closure_left (x y : α) : c (c x ⊔ y) = c (x ⊔ y) :=
   ((c.le_closure_iff _ _).1
         (sup_le (c.Monotone le_sup_left) (le_sup_right.trans (c.le_closure _)))).antisymm
     (c.Monotone (sup_le_sup_right (c.le_closure _) _))
 #align closure_operator.closure_sup_closure_left ClosureOperator.closure_sup_closure_left
+-/
 
+#print ClosureOperator.closure_sup_closure_right /-
 theorem closure_sup_closure_right (x y : α) : c (x ⊔ c y) = c (x ⊔ y) := by
   rw [sup_comm, closure_sup_closure_left, sup_comm]
 #align closure_operator.closure_sup_closure_right ClosureOperator.closure_sup_closure_right
+-/
 
+#print ClosureOperator.closure_sup_closure /-
 theorem closure_sup_closure (x y : α) : c (c x ⊔ c y) = c (x ⊔ y) := by
   rw [closure_sup_closure_left, closure_sup_closure_right]
 #align closure_operator.closure_sup_closure ClosureOperator.closure_sup_closure
+-/
 
 end SemilatticeSup
 
@@ -314,20 +328,24 @@ section CompleteLattice
 
 variable [CompleteLattice α] (c : ClosureOperator α)
 
+#print ClosureOperator.closure_iSup_closure /-
 @[simp]
 theorem closure_iSup_closure (f : ι → α) : c (⨆ i, c (f i)) = c (⨆ i, f i) :=
   le_antisymm ((c.le_closure_iff _ _).1 <| iSup_le fun i => c.Monotone <| le_iSup f i) <|
     c.Monotone <| iSup_mono fun i => c.le_closure _
 #align closure_operator.closure_supr_closure ClosureOperator.closure_iSup_closure
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
+#print ClosureOperator.closure_iSup₂_closure /-
 @[simp]
 theorem closure_iSup₂_closure (f : ∀ i, κ i → α) :
     c (⨆ (i) (j), c (f i j)) = c (⨆ (i) (j), f i j) :=
   le_antisymm ((c.le_closure_iff _ _).1 <| iSup₂_le fun i j => c.Monotone <| le_iSup₂ i j) <|
     c.Monotone <| iSup₂_mono fun i j => c.le_closure _
 #align closure_operator.closure_supr₂_closure ClosureOperator.closure_iSup₂_closure
+-/
 
 end CompleteLattice
 
@@ -378,25 +396,33 @@ def Simps.apply : α → β :=
   l
 #align lower_adjoint.simps.apply LowerAdjoint.Simps.apply
 
+#print LowerAdjoint.gc /-
 theorem gc : GaloisConnection l u :=
   l.gc'
 #align lower_adjoint.gc LowerAdjoint.gc
+-/
 
+#print LowerAdjoint.ext /-
 @[ext]
 theorem ext : ∀ l₁ l₂ : LowerAdjoint u, (l₁ : α → β) = (l₂ : α → β) → l₁ = l₂
   | ⟨l₁, _⟩, ⟨l₂, _⟩, h => by congr; exact h
 #align lower_adjoint.ext LowerAdjoint.ext
+-/
 
+#print LowerAdjoint.monotone /-
 @[mono]
 theorem monotone : Monotone (u ∘ l) :=
   l.gc.monotone_u.comp l.gc.monotone_l
 #align lower_adjoint.monotone LowerAdjoint.monotone
+-/
 
+#print LowerAdjoint.le_closure /-
 /-- Every element is less than its closure. This property is sometimes referred to as extensivity or
 inflationarity. -/
 theorem le_closure (x : α) : x ≤ u (l x) :=
   l.gc.le_u_l _
 #align lower_adjoint.le_closure LowerAdjoint.le_closure
+-/
 
 end Preorder
 
@@ -417,13 +443,17 @@ def closureOperator : ClosureOperator α
 #align lower_adjoint.closure_operator LowerAdjoint.closureOperator
 -/
 
+#print LowerAdjoint.idempotent /-
 theorem idempotent (x : α) : u (l (u (l x))) = u (l x) :=
   l.ClosureOperator.idempotent _
 #align lower_adjoint.idempotent LowerAdjoint.idempotent
+-/
 
+#print LowerAdjoint.le_closure_iff /-
 theorem le_closure_iff (x y : α) : x ≤ u (l y) ↔ u (l x) ≤ u (l y) :=
   l.ClosureOperator.le_closure_iff _ _
 #align lower_adjoint.le_closure_iff LowerAdjoint.le_closure_iff
+-/
 
 end PartialOrder
 
@@ -437,13 +467,17 @@ def closed : Set α := fun x => u (l x) = x
 #align lower_adjoint.closed LowerAdjoint.closed
 -/
 
+#print LowerAdjoint.mem_closed_iff /-
 theorem mem_closed_iff (x : α) : x ∈ l.closed ↔ u (l x) = x :=
   Iff.rfl
 #align lower_adjoint.mem_closed_iff LowerAdjoint.mem_closed_iff
+-/
 
+#print LowerAdjoint.closure_eq_self_of_mem_closed /-
 theorem closure_eq_self_of_mem_closed {x : α} (h : x ∈ l.closed) : u (l x) = x :=
   h
 #align lower_adjoint.closure_eq_self_of_mem_closed LowerAdjoint.closure_eq_self_of_mem_closed
+-/
 
 end Preorder
 
@@ -451,19 +485,25 @@ section PartialOrder
 
 variable [PartialOrder α] [PartialOrder β] {u : β → α} (l : LowerAdjoint u)
 
+#print LowerAdjoint.mem_closed_iff_closure_le /-
 theorem mem_closed_iff_closure_le (x : α) : x ∈ l.closed ↔ u (l x) ≤ x :=
   l.ClosureOperator.mem_closed_iff_closure_le _
 #align lower_adjoint.mem_closed_iff_closure_le LowerAdjoint.mem_closed_iff_closure_le
+-/
 
+#print LowerAdjoint.closure_is_closed /-
 @[simp]
 theorem closure_is_closed (x : α) : u (l x) ∈ l.closed :=
   l.idempotent x
 #align lower_adjoint.closure_is_closed LowerAdjoint.closure_is_closed
+-/
 
+#print LowerAdjoint.closed_eq_range_close /-
 /-- The set of closed elements for `l` is the range of `u ∘ l`. -/
 theorem closed_eq_range_close : l.closed = Set.range (u ∘ l) :=
   l.ClosureOperator.closed_eq_range_close
 #align lower_adjoint.closed_eq_range_close LowerAdjoint.closed_eq_range_close
+-/
 
 #print LowerAdjoint.toClosed /-
 /-- Send an `x` to an element of the set of closed elements (by taking the closure). -/
@@ -472,42 +512,56 @@ def toClosed (x : α) : l.closed :=
 #align lower_adjoint.to_closed LowerAdjoint.toClosed
 -/
 
+#print LowerAdjoint.closure_le_closed_iff_le /-
 @[simp]
 theorem closure_le_closed_iff_le (x : α) {y : α} (hy : l.closed y) : u (l x) ≤ y ↔ x ≤ y :=
   l.ClosureOperator.closure_le_closed_iff_le x hy
 #align lower_adjoint.closure_le_closed_iff_le LowerAdjoint.closure_le_closed_iff_le
+-/
 
 end PartialOrder
 
+#print LowerAdjoint.closure_top /-
 theorem closure_top [PartialOrder α] [OrderTop α] [Preorder β] {u : β → α} (l : LowerAdjoint u) :
     u (l ⊤) = ⊤ :=
   l.ClosureOperator.closure_top
 #align lower_adjoint.closure_top LowerAdjoint.closure_top
+-/
 
+#print LowerAdjoint.closure_inf_le /-
 theorem closure_inf_le [SemilatticeInf α] [Preorder β] {u : β → α} (l : LowerAdjoint u) (x y : α) :
     u (l (x ⊓ y)) ≤ u (l x) ⊓ u (l y) :=
   l.ClosureOperator.closure_inf_le x y
 #align lower_adjoint.closure_inf_le LowerAdjoint.closure_inf_le
+-/
 
 section SemilatticeSup
 
 variable [SemilatticeSup α] [Preorder β] {u : β → α} (l : LowerAdjoint u)
 
+#print LowerAdjoint.closure_sup_closure_le /-
 theorem closure_sup_closure_le (x y : α) : u (l x) ⊔ u (l y) ≤ u (l (x ⊔ y)) :=
   l.ClosureOperator.closure_sup_closure_le x y
 #align lower_adjoint.closure_sup_closure_le LowerAdjoint.closure_sup_closure_le
+-/
 
+#print LowerAdjoint.closure_sup_closure_left /-
 theorem closure_sup_closure_left (x y : α) : u (l (u (l x) ⊔ y)) = u (l (x ⊔ y)) :=
   l.ClosureOperator.closure_sup_closure_left x y
 #align lower_adjoint.closure_sup_closure_left LowerAdjoint.closure_sup_closure_left
+-/
 
+#print LowerAdjoint.closure_sup_closure_right /-
 theorem closure_sup_closure_right (x y : α) : u (l (x ⊔ u (l y))) = u (l (x ⊔ y)) :=
   l.ClosureOperator.closure_sup_closure_right x y
 #align lower_adjoint.closure_sup_closure_right LowerAdjoint.closure_sup_closure_right
+-/
 
+#print LowerAdjoint.closure_sup_closure /-
 theorem closure_sup_closure (x y : α) : u (l (u (l x) ⊔ u (l y))) = u (l (x ⊔ y)) :=
   l.ClosureOperator.closure_sup_closure x y
 #align lower_adjoint.closure_sup_closure LowerAdjoint.closure_sup_closure
+-/
 
 end SemilatticeSup
 
@@ -515,16 +569,20 @@ section CompleteLattice
 
 variable [CompleteLattice α] [Preorder β] {u : β → α} (l : LowerAdjoint u)
 
+#print LowerAdjoint.closure_iSup_closure /-
 theorem closure_iSup_closure (f : ι → α) : u (l (⨆ i, u (l (f i)))) = u (l (⨆ i, f i)) :=
   l.ClosureOperator.closure_iSup_closure _
 #align lower_adjoint.closure_supr_closure LowerAdjoint.closure_iSup_closure
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
+#print LowerAdjoint.closure_iSup₂_closure /-
 theorem closure_iSup₂_closure (f : ∀ i, κ i → α) :
     u (l <| ⨆ (i) (j), u (l <| f i j)) = u (l <| ⨆ (i) (j), f i j) :=
   l.ClosureOperator.closure_iSup₂_closure _
 #align lower_adjoint.closure_supr₂_closure LowerAdjoint.closure_iSup₂_closure
+-/
 
 end CompleteLattice
 
@@ -533,58 +591,80 @@ section CoeToSet
 
 variable [SetLike α β] (l : LowerAdjoint (coe : α → Set β))
 
+#print LowerAdjoint.subset_closure /-
 theorem subset_closure (s : Set β) : s ⊆ l s :=
   l.le_closure s
 #align lower_adjoint.subset_closure LowerAdjoint.subset_closure
+-/
 
+#print LowerAdjoint.not_mem_of_not_mem_closure /-
 theorem not_mem_of_not_mem_closure {s : Set β} {P : β} (hP : P ∉ l s) : P ∉ s := fun h =>
   hP (subset_closure _ s h)
 #align lower_adjoint.not_mem_of_not_mem_closure LowerAdjoint.not_mem_of_not_mem_closure
+-/
 
+#print LowerAdjoint.le_iff_subset /-
 theorem le_iff_subset (s : Set β) (S : α) : l s ≤ S ↔ s ⊆ S :=
   l.gc s S
 #align lower_adjoint.le_iff_subset LowerAdjoint.le_iff_subset
+-/
 
+#print LowerAdjoint.mem_iff /-
 theorem mem_iff (s : Set β) (x : β) : x ∈ l s ↔ ∀ S : α, s ⊆ S → x ∈ S :=
   by
   simp_rw [← SetLike.mem_coe, ← Set.singleton_subset_iff, ← l.le_iff_subset]
   exact ⟨fun h S => h.trans, fun h => h _ le_rfl⟩
 #align lower_adjoint.mem_iff LowerAdjoint.mem_iff
+-/
 
+#print LowerAdjoint.eq_of_le /-
 theorem eq_of_le {s : Set β} {S : α} (h₁ : s ⊆ S) (h₂ : S ≤ l s) : l s = S :=
   ((l.le_iff_subset _ _).2 h₁).antisymm h₂
 #align lower_adjoint.eq_of_le LowerAdjoint.eq_of_le
+-/
 
+#print LowerAdjoint.closure_union_closure_subset /-
 theorem closure_union_closure_subset (x y : α) : (l x : Set β) ∪ l y ⊆ l (x ∪ y) :=
   l.closure_sup_closure_le x y
 #align lower_adjoint.closure_union_closure_subset LowerAdjoint.closure_union_closure_subset
+-/
 
+#print LowerAdjoint.closure_union_closure_left /-
 @[simp]
 theorem closure_union_closure_left (x y : α) : l (l x ∪ y) = l (x ∪ y) :=
   SetLike.coe_injective (l.closure_sup_closure_left x y)
 #align lower_adjoint.closure_union_closure_left LowerAdjoint.closure_union_closure_left
+-/
 
+#print LowerAdjoint.closure_union_closure_right /-
 @[simp]
 theorem closure_union_closure_right (x y : α) : l (x ∪ l y) = l (x ∪ y) :=
   SetLike.coe_injective (l.closure_sup_closure_right x y)
 #align lower_adjoint.closure_union_closure_right LowerAdjoint.closure_union_closure_right
+-/
 
+#print LowerAdjoint.closure_union_closure /-
 theorem closure_union_closure (x y : α) : l (l x ∪ l y) = l (x ∪ y) :=
   SetLike.coe_injective (l.ClosureOperator.closure_sup_closure x y)
 #align lower_adjoint.closure_union_closure LowerAdjoint.closure_union_closure
+-/
 
+#print LowerAdjoint.closure_iUnion_closure /-
 @[simp]
 theorem closure_iUnion_closure (f : ι → α) : l (⋃ i, l (f i)) = l (⋃ i, f i) :=
   SetLike.coe_injective <| l.closure_iSup_closure _
 #align lower_adjoint.closure_Union_closure LowerAdjoint.closure_iUnion_closure
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
+#print LowerAdjoint.closure_iUnion₂_closure /-
 @[simp]
 theorem closure_iUnion₂_closure (f : ∀ i, κ i → α) :
     l (⋃ (i) (j), l (f i j)) = l (⋃ (i) (j), f i j) :=
   SetLike.coe_injective <| l.closure_iSup₂_closure _
 #align lower_adjoint.closure_Union₂_closure LowerAdjoint.closure_iUnion₂_closure
+-/
 
 end CoeToSet
 
Diff
@@ -104,7 +104,7 @@ variable {α} (c : ClosureOperator α)
 #print ClosureOperator.ext /-
 @[ext]
 theorem ext : ∀ c₁ c₂ : ClosureOperator α, (c₁ : α → α) = (c₂ : α → α) → c₁ = c₂
-  | ⟨⟨c₁, _⟩, _, _⟩, ⟨⟨c₂, _⟩, _, _⟩, h => by congr ; exact h
+  | ⟨⟨c₁, _⟩, _, _⟩, ⟨⟨c₂, _⟩, _, _⟩, h => by congr; exact h
 #align closure_operator.ext ClosureOperator.ext
 -/
 
@@ -384,7 +384,7 @@ theorem gc : GaloisConnection l u :=
 
 @[ext]
 theorem ext : ∀ l₁ l₂ : LowerAdjoint u, (l₁ : α → β) = (l₂ : α → β) → l₁ = l₂
-  | ⟨l₁, _⟩, ⟨l₂, _⟩, h => by congr ; exact h
+  | ⟨l₁, _⟩, ⟨l₂, _⟩, h => by congr; exact h
 #align lower_adjoint.ext LowerAdjoint.ext
 
 @[mono]
Diff
@@ -108,6 +108,7 @@ theorem ext : ∀ c₁ c₂ : ClosureOperator α, (c₁ : α → α) = (c₂ : 
 #align closure_operator.ext ClosureOperator.ext
 -/
 
+#print ClosureOperator.mk' /-
 /-- Constructor for a closure operator using the weaker idempotency axiom: `f (f x) ≤ f x`. -/
 @[simps]
 def mk' (f : α → α) (hf₁ : Monotone f) (hf₂ : ∀ x, x ≤ f x) (hf₃ : ∀ x, f (f x) ≤ f x) :
@@ -117,7 +118,9 @@ def mk' (f : α → α) (hf₁ : Monotone f) (hf₂ : ∀ x, x ≤ f x) (hf₃ :
   le_closure' := hf₂
   idempotent' x := (hf₃ x).antisymm (hf₁ (hf₂ x))
 #align closure_operator.mk' ClosureOperator.mk'
+-/
 
+#print ClosureOperator.mk₂ /-
 /-- Convenience constructor for a closure operator using the weaker minimality axiom:
 `x ≤ f y → f x ≤ f y`, which is sometimes easier to prove in practice. -/
 @[simps]
@@ -128,7 +131,9 @@ def mk₂ (f : α → α) (hf : ∀ x, x ≤ f x) (hmin : ∀ ⦃x y⦄, x ≤ f
   le_closure' := hf
   idempotent' x := (hmin le_rfl).antisymm (hf _)
 #align closure_operator.mk₂ ClosureOperator.mk₂
+-/
 
+#print ClosureOperator.mk₃ /-
 /-- Expanded out version of `mk₂`. `p` implies being closed. This constructor should be used when
 you already know a sufficient condition for being closed and using `mem_mk₃_closed` will avoid you
 the (slight) hassle of having to prove it both inside and outside the constructor. -/
@@ -137,14 +142,18 @@ def mk₃ (f : α → α) (p : α → Prop) (hf : ∀ x, x ≤ f x) (hfp : ∀ x
     (hmin : ∀ ⦃x y⦄, x ≤ y → p y → f x ≤ y) : ClosureOperator α :=
   mk₂ f hf fun x y hxy => hmin hxy (hfp y)
 #align closure_operator.mk₃ ClosureOperator.mk₃
+-/
 
+#print ClosureOperator.closure_mem_mk₃ /-
 /-- This lemma shows that the image of `x` of a closure operator built from the `mk₃` constructor
 respects `p`, the property that was fed into it. -/
 theorem closure_mem_mk₃ {f : α → α} {p : α → Prop} {hf : ∀ x, x ≤ f x} {hfp : ∀ x, p (f x)}
     {hmin : ∀ ⦃x y⦄, x ≤ y → p y → f x ≤ y} (x : α) : p (mk₃ f p hf hfp hmin x) :=
   hfp x
 #align closure_operator.closure_mem_mk₃ ClosureOperator.closure_mem_mk₃
+-/
 
+#print ClosureOperator.closure_le_mk₃_iff /-
 /-- Analogue of `closure_le_closed_iff_le` but with the `p` that was fed into the `mk₃` constructor.
 -/
 theorem closure_le_mk₃_iff {f : α → α} {p : α → Prop} {hf : ∀ x, x ≤ f x} {hfp : ∀ x, p (f x)}
@@ -152,6 +161,7 @@ theorem closure_le_mk₃_iff {f : α → α} {p : α → Prop} {hf : ∀ x, x 
     mk₃ f p hf hfp hmin x ≤ y :=
   hmin hxy hy
 #align closure_operator.closure_le_mk₃_iff ClosureOperator.closure_le_mk₃_iff
+-/
 
 #print ClosureOperator.monotone /-
 @[mono]
@@ -160,11 +170,13 @@ theorem monotone : Monotone c :=
 #align closure_operator.monotone ClosureOperator.monotone
 -/
 
+#print ClosureOperator.le_closure /-
 /-- Every element is less than its closure. This property is sometimes referred to as extensivity or
 inflationarity. -/
 theorem le_closure (x : α) : x ≤ c x :=
   c.le_closure' x
 #align closure_operator.le_closure ClosureOperator.le_closure
+-/
 
 #print ClosureOperator.idempotent /-
 @[simp]
@@ -173,9 +185,11 @@ theorem idempotent (x : α) : c (c x) = c x :=
 #align closure_operator.idempotent ClosureOperator.idempotent
 -/
 
+#print ClosureOperator.le_closure_iff /-
 theorem le_closure_iff (x y : α) : x ≤ c y ↔ c x ≤ c y :=
   ⟨fun h => c.idempotent y ▸ c.Monotone h, fun h => (c.le_closure x).trans h⟩
 #align closure_operator.le_closure_iff ClosureOperator.le_closure_iff
+-/
 
 #print ClosureOperator.closed /-
 /-- An element `x` is closed for the closure operator `c` if it is a fixed point for it. -/
@@ -189,9 +203,11 @@ theorem mem_closed_iff (x : α) : x ∈ c.closed ↔ c x = x :=
 #align closure_operator.mem_closed_iff ClosureOperator.mem_closed_iff
 -/
 
+#print ClosureOperator.mem_closed_iff_closure_le /-
 theorem mem_closed_iff_closure_le (x : α) : x ∈ c.closed ↔ c x ≤ x :=
   ⟨le_of_eq, fun h => h.antisymm (c.le_closure x)⟩
 #align closure_operator.mem_closed_iff_closure_le ClosureOperator.mem_closed_iff_closure_le
+-/
 
 #print ClosureOperator.closure_eq_self_of_mem_closed /-
 theorem closure_eq_self_of_mem_closed {x : α} (h : x ∈ c.closed) : c x = x :=
@@ -220,10 +236,12 @@ def toClosed (x : α) : c.closed :=
 #align closure_operator.to_closed ClosureOperator.toClosed
 -/
 
+#print ClosureOperator.closure_le_closed_iff_le /-
 @[simp]
 theorem closure_le_closed_iff_le (x : α) {y : α} (hy : c.closed y) : c x ≤ y ↔ x ≤ y := by
   rw [← c.closure_eq_self_of_mem_closed hy, ← le_closure_iff]
 #align closure_operator.closure_le_closed_iff_le ClosureOperator.closure_le_closed_iff_le
+-/
 
 #print ClosureOperator.eq_mk₃_closed /-
 /-- A closure operator is equal to the closure operator obtained by feeding `c.closed` into the
@@ -236,11 +254,13 @@ theorem eq_mk₃_closed (c : ClosureOperator α) :
 #align closure_operator.eq_mk₃_closed ClosureOperator.eq_mk₃_closed
 -/
 
+#print ClosureOperator.mem_mk₃_closed /-
 /-- The property `p` fed into the `mk₃` constructor implies being closed. -/
 theorem mem_mk₃_closed {f : α → α} {p : α → Prop} {hf : ∀ x, x ≤ f x} {hfp : ∀ x, p (f x)}
     {hmin : ∀ ⦃x y⦄, x ≤ y → p y → f x ≤ y} {x : α} (hx : p x) : x ∈ (mk₃ f p hf hfp hmin).closed :=
   (hmin le_rfl hx).antisymm (hf _)
 #align closure_operator.mem_mk₃_closed ClosureOperator.mem_mk₃_closed
+-/
 
 end PartialOrder
 
Diff
@@ -108,12 +108,6 @@ theorem ext : ∀ c₁ c₂ : ClosureOperator α, (c₁ : α → α) = (c₂ : 
 #align closure_operator.ext ClosureOperator.ext
 -/
 
-/- warning: closure_operator.mk' -> ClosureOperator.mk' is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] (f : α -> α), (Monotone.{u1, u1} α α (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u1} α _inst_1) f) -> (forall (x : α), LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x (f x)) -> (forall (x : α), LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (f (f x)) (f x)) -> (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] (f : α -> α), (Monotone.{u1, u1} α α (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u1} α _inst_1) f) -> (forall (x : α), LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x (f x)) -> (forall (x : α), LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (f (f x)) (f x)) -> (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1))
-Case conversion may be inaccurate. Consider using '#align closure_operator.mk' ClosureOperator.mk'ₓ'. -/
 /-- Constructor for a closure operator using the weaker idempotency axiom: `f (f x) ≤ f x`. -/
 @[simps]
 def mk' (f : α → α) (hf₁ : Monotone f) (hf₂ : ∀ x, x ≤ f x) (hf₃ : ∀ x, f (f x) ≤ f x) :
@@ -124,12 +118,6 @@ def mk' (f : α → α) (hf₁ : Monotone f) (hf₂ : ∀ x, x ≤ f x) (hf₃ :
   idempotent' x := (hf₃ x).antisymm (hf₁ (hf₂ x))
 #align closure_operator.mk' ClosureOperator.mk'
 
-/- warning: closure_operator.mk₂ -> ClosureOperator.mk₂ is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] (f : α -> α), (forall (x : α), LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x (f x)) -> (forall {{x : α}} {{y : α}}, (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x (f y)) -> (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (f x) (f y))) -> (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] (f : α -> α), (forall (x : α), LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x (f x)) -> (forall {{x : α}} {{y : α}}, (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x (f y)) -> (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (f x) (f y))) -> (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1))
-Case conversion may be inaccurate. Consider using '#align closure_operator.mk₂ ClosureOperator.mk₂ₓ'. -/
 /-- Convenience constructor for a closure operator using the weaker minimality axiom:
 `x ≤ f y → f x ≤ f y`, which is sometimes easier to prove in practice. -/
 @[simps]
@@ -141,12 +129,6 @@ def mk₂ (f : α → α) (hf : ∀ x, x ≤ f x) (hmin : ∀ ⦃x y⦄, x ≤ f
   idempotent' x := (hmin le_rfl).antisymm (hf _)
 #align closure_operator.mk₂ ClosureOperator.mk₂
 
-/- warning: closure_operator.mk₃ -> ClosureOperator.mk₃ is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] (f : α -> α) (p : α -> Prop), (forall (x : α), LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x (f x)) -> (forall (x : α), p (f x)) -> (forall {{x : α}} {{y : α}}, (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x y) -> (p y) -> (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (f x) y)) -> (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] (f : α -> α) (p : α -> Prop), (forall (x : α), LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x (f x)) -> (forall (x : α), p (f x)) -> (forall {{x : α}} {{y : α}}, (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x y) -> (p y) -> (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (f x) y)) -> (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1))
-Case conversion may be inaccurate. Consider using '#align closure_operator.mk₃ ClosureOperator.mk₃ₓ'. -/
 /-- Expanded out version of `mk₂`. `p` implies being closed. This constructor should be used when
 you already know a sufficient condition for being closed and using `mem_mk₃_closed` will avoid you
 the (slight) hassle of having to prove it both inside and outside the constructor. -/
@@ -156,12 +138,6 @@ def mk₃ (f : α → α) (p : α → Prop) (hf : ∀ x, x ≤ f x) (hfp : ∀ x
   mk₂ f hf fun x y hxy => hmin hxy (hfp y)
 #align closure_operator.mk₃ ClosureOperator.mk₃
 
-/- warning: closure_operator.closure_mem_mk₃ -> ClosureOperator.closure_mem_mk₃ is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] {f : α -> α} {p : α -> Prop} {hf : forall (x : α), LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x (f x)} {hfp : forall (x : α), p (f x)} {hmin : forall {{x : α}} {{y : α}}, (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x y) -> (p y) -> (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (f x) y)} (x : α), p (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (ClosureOperator.mk₃.{u1} α _inst_1 f p hf hfp hmin) x)
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] {f : α -> α} {p : α -> Prop} {hf : forall (x : α), LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x (f x)} {hfp : forall (x : α), p (f x)} {hmin : forall {{x : α}} {{y : α}}, (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x y) -> (p y) -> (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (f x) y)} (x : α), p (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u1} α _inst_1) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1) (ClosureOperator.mk₃.{u1} α _inst_1 f p hf hfp hmin)) x)
-Case conversion may be inaccurate. Consider using '#align closure_operator.closure_mem_mk₃ ClosureOperator.closure_mem_mk₃ₓ'. -/
 /-- This lemma shows that the image of `x` of a closure operator built from the `mk₃` constructor
 respects `p`, the property that was fed into it. -/
 theorem closure_mem_mk₃ {f : α → α} {p : α → Prop} {hf : ∀ x, x ≤ f x} {hfp : ∀ x, p (f x)}
@@ -169,12 +145,6 @@ theorem closure_mem_mk₃ {f : α → α} {p : α → Prop} {hf : ∀ x, x ≤ f
   hfp x
 #align closure_operator.closure_mem_mk₃ ClosureOperator.closure_mem_mk₃
 
-/- warning: closure_operator.closure_le_mk₃_iff -> ClosureOperator.closure_le_mk₃_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] {f : α -> α} {p : α -> Prop} {hf : forall (x : α), LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x (f x)} {hfp : forall (x : α), p (f x)} {hmin : forall {{x : α}} {{y : α}}, (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x y) -> (p y) -> (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (f x) y)} {x : α} {y : α}, (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x y) -> (p y) -> (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (ClosureOperator.mk₃.{u1} α _inst_1 f p hf hfp hmin) x) y)
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] {f : α -> α} {p : α -> Prop} {hf : forall (x : α), LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x (f x)} {hfp : forall (x : α), p (f x)} {hmin : forall {{x : α}} {{y : α}}, (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x y) -> (p y) -> (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (f x) y)} {x : α} {y : α}, (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x y) -> (p y) -> (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u1} α _inst_1) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1) (ClosureOperator.mk₃.{u1} α _inst_1 f p hf hfp hmin)) x) y)
-Case conversion may be inaccurate. Consider using '#align closure_operator.closure_le_mk₃_iff ClosureOperator.closure_le_mk₃_iffₓ'. -/
 /-- Analogue of `closure_le_closed_iff_le` but with the `p` that was fed into the `mk₃` constructor.
 -/
 theorem closure_le_mk₃_iff {f : α → α} {p : α → Prop} {hf : ∀ x, x ≤ f x} {hfp : ∀ x, p (f x)}
@@ -190,12 +160,6 @@ theorem monotone : Monotone c :=
 #align closure_operator.monotone ClosureOperator.monotone
 -/
 
-/- warning: closure_operator.le_closure -> ClosureOperator.le_closure is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (x : α), LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) c x)
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (x : α), LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u1} α _inst_1) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1) c) x)
-Case conversion may be inaccurate. Consider using '#align closure_operator.le_closure ClosureOperator.le_closureₓ'. -/
 /-- Every element is less than its closure. This property is sometimes referred to as extensivity or
 inflationarity. -/
 theorem le_closure (x : α) : x ≤ c x :=
@@ -209,12 +173,6 @@ theorem idempotent (x : α) : c (c x) = c x :=
 #align closure_operator.idempotent ClosureOperator.idempotent
 -/
 
-/- warning: closure_operator.le_closure_iff -> ClosureOperator.le_closure_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (x : α) (y : α), Iff (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) c y)) (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) c x) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) c y))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (x : α) (y : α), Iff (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u1} α _inst_1) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1) c) y)) (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u1} α _inst_1) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1) c) x) (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u1} α _inst_1) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1) c) y))
-Case conversion may be inaccurate. Consider using '#align closure_operator.le_closure_iff ClosureOperator.le_closure_iffₓ'. -/
 theorem le_closure_iff (x y : α) : x ≤ c y ↔ c x ≤ c y :=
   ⟨fun h => c.idempotent y ▸ c.Monotone h, fun h => (c.le_closure x).trans h⟩
 #align closure_operator.le_closure_iff ClosureOperator.le_closure_iff
@@ -231,12 +189,6 @@ theorem mem_closed_iff (x : α) : x ∈ c.closed ↔ c x = x :=
 #align closure_operator.mem_closed_iff ClosureOperator.mem_closed_iff
 -/
 
-/- warning: closure_operator.mem_closed_iff_closure_le -> ClosureOperator.mem_closed_iff_closure_le is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (x : α), Iff (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (ClosureOperator.closed.{u1} α _inst_1 c)) (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) c x) x)
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (x : α), Iff (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x (ClosureOperator.closed.{u1} α _inst_1 c)) (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u1} α _inst_1) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1) c) x) x)
-Case conversion may be inaccurate. Consider using '#align closure_operator.mem_closed_iff_closure_le ClosureOperator.mem_closed_iff_closure_leₓ'. -/
 theorem mem_closed_iff_closure_le (x : α) : x ∈ c.closed ↔ c x ≤ x :=
   ⟨le_of_eq, fun h => h.antisymm (c.le_closure x)⟩
 #align closure_operator.mem_closed_iff_closure_le ClosureOperator.mem_closed_iff_closure_le
@@ -268,12 +220,6 @@ def toClosed (x : α) : c.closed :=
 #align closure_operator.to_closed ClosureOperator.toClosed
 -/
 
-/- warning: closure_operator.closure_le_closed_iff_le -> ClosureOperator.closure_le_closed_iff_le is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (x : α) {y : α}, (ClosureOperator.closed.{u1} α _inst_1 c y) -> (Iff (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) c x) y) (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x y))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (x : α) {y : α}, (ClosureOperator.closed.{u1} α _inst_1 c y) -> (Iff (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u1} α _inst_1) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1) c) x) y) (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x y))
-Case conversion may be inaccurate. Consider using '#align closure_operator.closure_le_closed_iff_le ClosureOperator.closure_le_closed_iff_leₓ'. -/
 @[simp]
 theorem closure_le_closed_iff_le (x : α) {y : α} (hy : c.closed y) : c x ≤ y ↔ x ≤ y := by
   rw [← c.closure_eq_self_of_mem_closed hy, ← le_closure_iff]
@@ -290,12 +236,6 @@ theorem eq_mk₃_closed (c : ClosureOperator α) :
 #align closure_operator.eq_mk₃_closed ClosureOperator.eq_mk₃_closed
 -/
 
-/- warning: closure_operator.mem_mk₃_closed -> ClosureOperator.mem_mk₃_closed is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] {f : α -> α} {p : α -> Prop} {hf : forall (x : α), LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x (f x)} {hfp : forall (x : α), p (f x)} {hmin : forall {{x : α}} {{y : α}}, (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x y) -> (p y) -> (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (f x) y)} {x : α}, (p x) -> (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (ClosureOperator.closed.{u1} α _inst_1 (ClosureOperator.mk₃.{u1} α _inst_1 f p hf hfp hmin)))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] {f : α -> α} {p : α -> Prop} {hf : forall (x : α), LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x (f x)} {hfp : forall (x : α), p (f x)} {hmin : forall {{x : α}} {{y : α}}, (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x y) -> (p y) -> (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (f x) y)} {x : α}, (p x) -> (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x (ClosureOperator.closed.{u1} α _inst_1 (ClosureOperator.mk₃.{u1} α _inst_1 f p hf hfp hmin)))
-Case conversion may be inaccurate. Consider using '#align closure_operator.mem_mk₃_closed ClosureOperator.mem_mk₃_closedₓ'. -/
 /-- The property `p` fed into the `mk₃` constructor implies being closed. -/
 theorem mem_mk₃_closed {f : α → α} {p : α → Prop} {hf : ∀ x, x ≤ f x} {hfp : ∀ x, p (f x)}
     {hmin : ∀ ⦃x y⦄, x ≤ y → p y → f x ≤ y} {x : α} (hx : p x) : x ∈ (mk₃ f p hf hfp hmin).closed :=
@@ -310,35 +250,17 @@ section OrderTop
 
 variable [PartialOrder α] [OrderTop α] (c : ClosureOperator α)
 
-/- warning: closure_operator.closure_top -> ClosureOperator.closure_top is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] [_inst_2 : OrderTop.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1))] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) c (Top.top.{u1} α (OrderTop.toHasTop.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) _inst_2))) (Top.top.{u1} α (OrderTop.toHasTop.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) _inst_2))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] [_inst_2 : OrderTop.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1))] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)), Eq.{succ u1} α (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u1} α _inst_1) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1) c) (Top.top.{u1} α (OrderTop.toTop.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) _inst_2))) (Top.top.{u1} α (OrderTop.toTop.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) _inst_2))
-Case conversion may be inaccurate. Consider using '#align closure_operator.closure_top ClosureOperator.closure_topₓ'. -/
 @[simp]
 theorem closure_top : c ⊤ = ⊤ :=
   le_top.antisymm (c.le_closure _)
 #align closure_operator.closure_top ClosureOperator.closure_top
 
-/- warning: closure_operator.top_mem_closed -> ClosureOperator.top_mem_closed is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] [_inst_2 : OrderTop.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1))] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)), Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) (Top.top.{u1} α (OrderTop.toHasTop.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) _inst_2)) (ClosureOperator.closed.{u1} α _inst_1 c)
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] [_inst_2 : OrderTop.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1))] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)), Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) (Top.top.{u1} α (OrderTop.toTop.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) _inst_2)) (ClosureOperator.closed.{u1} α _inst_1 c)
-Case conversion may be inaccurate. Consider using '#align closure_operator.top_mem_closed ClosureOperator.top_mem_closedₓ'. -/
 theorem top_mem_closed : ⊤ ∈ c.closed :=
   c.closure_top
 #align closure_operator.top_mem_closed ClosureOperator.top_mem_closed
 
 end OrderTop
 
-/- warning: closure_operator.closure_inf_le -> ClosureOperator.closure_inf_le is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : SemilatticeInf.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) (x : α) (y : α), LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) c (Inf.inf.{u1} α (SemilatticeInf.toHasInf.{u1} α _inst_1) x y)) (Inf.inf.{u1} α (SemilatticeInf.toHasInf.{u1} α _inst_1) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) c x) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) c y))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : SemilatticeInf.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) (x : α) (y : α), LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) c) (Inf.inf.{u1} α (SemilatticeInf.toInf.{u1} α _inst_1) x y)) (Inf.inf.{u1} α (SemilatticeInf.toInf.{u1} α _inst_1) (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) c) x) (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) c) y))
-Case conversion may be inaccurate. Consider using '#align closure_operator.closure_inf_le ClosureOperator.closure_inf_leₓ'. -/
 theorem closure_inf_le [SemilatticeInf α] (c : ClosureOperator α) (x y : α) :
     c (x ⊓ y) ≤ c x ⊓ c y :=
   c.Monotone.map_inf_le _ _
@@ -348,44 +270,20 @@ section SemilatticeSup
 
 variable [SemilatticeSup α] (c : ClosureOperator α)
 
-/- warning: closure_operator.closure_sup_closure_le -> ClosureOperator.closure_sup_closure_le is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : SemilatticeSup.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (x : α) (y : α), LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (Sup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) c x) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) c y)) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) c (Sup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) x y))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : SemilatticeSup.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (x : α) (y : α), LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (Sup.sup.{u1} α (SemilatticeSup.toSup.{u1} α _inst_1) (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) c) x) (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) c) y)) (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) c) (Sup.sup.{u1} α (SemilatticeSup.toSup.{u1} α _inst_1) x y))
-Case conversion may be inaccurate. Consider using '#align closure_operator.closure_sup_closure_le ClosureOperator.closure_sup_closure_leₓ'. -/
 theorem closure_sup_closure_le (x y : α) : c x ⊔ c y ≤ c (x ⊔ y) :=
   c.Monotone.le_map_sup _ _
 #align closure_operator.closure_sup_closure_le ClosureOperator.closure_sup_closure_le
 
-/- warning: closure_operator.closure_sup_closure_left -> ClosureOperator.closure_sup_closure_left is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : SemilatticeSup.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (x : α) (y : α), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) c (Sup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) c x) y)) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) c (Sup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) x y))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : SemilatticeSup.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (x : α) (y : α), Eq.{succ u1} α (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) c) (Sup.sup.{u1} α (SemilatticeSup.toSup.{u1} α _inst_1) (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) c) x) y)) (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) c) (Sup.sup.{u1} α (SemilatticeSup.toSup.{u1} α _inst_1) x y))
-Case conversion may be inaccurate. Consider using '#align closure_operator.closure_sup_closure_left ClosureOperator.closure_sup_closure_leftₓ'. -/
 theorem closure_sup_closure_left (x y : α) : c (c x ⊔ y) = c (x ⊔ y) :=
   ((c.le_closure_iff _ _).1
         (sup_le (c.Monotone le_sup_left) (le_sup_right.trans (c.le_closure _)))).antisymm
     (c.Monotone (sup_le_sup_right (c.le_closure _) _))
 #align closure_operator.closure_sup_closure_left ClosureOperator.closure_sup_closure_left
 
-/- warning: closure_operator.closure_sup_closure_right -> ClosureOperator.closure_sup_closure_right is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : SemilatticeSup.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (x : α) (y : α), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) c (Sup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) x (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) c y))) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) c (Sup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) x y))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : SemilatticeSup.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (x : α) (y : α), Eq.{succ u1} α (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) c) (Sup.sup.{u1} α (SemilatticeSup.toSup.{u1} α _inst_1) x (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) c) y))) (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) c) (Sup.sup.{u1} α (SemilatticeSup.toSup.{u1} α _inst_1) x y))
-Case conversion may be inaccurate. Consider using '#align closure_operator.closure_sup_closure_right ClosureOperator.closure_sup_closure_rightₓ'. -/
 theorem closure_sup_closure_right (x y : α) : c (x ⊔ c y) = c (x ⊔ y) := by
   rw [sup_comm, closure_sup_closure_left, sup_comm]
 #align closure_operator.closure_sup_closure_right ClosureOperator.closure_sup_closure_right
 
-/- warning: closure_operator.closure_sup_closure -> ClosureOperator.closure_sup_closure is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : SemilatticeSup.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (x : α) (y : α), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) c (Sup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) c x) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) c y))) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) c (Sup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) x y))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : SemilatticeSup.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (x : α) (y : α), Eq.{succ u1} α (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) c) (Sup.sup.{u1} α (SemilatticeSup.toSup.{u1} α _inst_1) (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) c) x) (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) c) y))) (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) c) (Sup.sup.{u1} α (SemilatticeSup.toSup.{u1} α _inst_1) x y))
-Case conversion may be inaccurate. Consider using '#align closure_operator.closure_sup_closure ClosureOperator.closure_sup_closureₓ'. -/
 theorem closure_sup_closure (x y : α) : c (c x ⊔ c y) = c (x ⊔ y) := by
   rw [closure_sup_closure_left, closure_sup_closure_right]
 #align closure_operator.closure_sup_closure ClosureOperator.closure_sup_closure
@@ -396,24 +294,12 @@ section CompleteLattice
 
 variable [CompleteLattice α] (c : ClosureOperator α)
 
-/- warning: closure_operator.closure_supr_closure -> ClosureOperator.closure_iSup_closure is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} [_inst_1 : CompleteLattice.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) (f : ι -> α), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) c (iSup.{u1, u2} α (CompleteSemilatticeSup.toHasSup.{u1} α (CompleteLattice.toCompleteSemilatticeSup.{u1} α _inst_1)) ι (fun (i : ι) => coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) c (f i)))) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) c (iSup.{u1, u2} α (CompleteSemilatticeSup.toHasSup.{u1} α (CompleteLattice.toCompleteSemilatticeSup.{u1} α _inst_1)) ι (fun (i : ι) => f i)))
-but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} [_inst_1 : CompleteLattice.{u2} α] (c : ClosureOperator.{u2} α (PartialOrder.toPreorder.{u2} α (CompleteSemilatticeInf.toPartialOrder.{u2} α (CompleteLattice.toCompleteSemilatticeInf.{u2} α _inst_1)))) (f : ι -> α), Eq.{succ u2} α (OrderHom.toFun.{u2, u2} α α (PartialOrder.toPreorder.{u2} α (CompleteSemilatticeInf.toPartialOrder.{u2} α (CompleteLattice.toCompleteSemilatticeInf.{u2} α _inst_1))) (PartialOrder.toPreorder.{u2} α (CompleteSemilatticeInf.toPartialOrder.{u2} α (CompleteLattice.toCompleteSemilatticeInf.{u2} α _inst_1))) (ClosureOperator.toOrderHom.{u2} α (PartialOrder.toPreorder.{u2} α (CompleteSemilatticeInf.toPartialOrder.{u2} α (CompleteLattice.toCompleteSemilatticeInf.{u2} α _inst_1))) c) (iSup.{u2, u1} α (CompleteLattice.toSupSet.{u2} α _inst_1) ι (fun (i : ι) => OrderHom.toFun.{u2, u2} α α (PartialOrder.toPreorder.{u2} α (CompleteSemilatticeInf.toPartialOrder.{u2} α (CompleteLattice.toCompleteSemilatticeInf.{u2} α _inst_1))) (PartialOrder.toPreorder.{u2} α (CompleteSemilatticeInf.toPartialOrder.{u2} α (CompleteLattice.toCompleteSemilatticeInf.{u2} α _inst_1))) (ClosureOperator.toOrderHom.{u2} α (PartialOrder.toPreorder.{u2} α (CompleteSemilatticeInf.toPartialOrder.{u2} α (CompleteLattice.toCompleteSemilatticeInf.{u2} α _inst_1))) c) (f i)))) (OrderHom.toFun.{u2, u2} α α (PartialOrder.toPreorder.{u2} α (CompleteSemilatticeInf.toPartialOrder.{u2} α (CompleteLattice.toCompleteSemilatticeInf.{u2} α _inst_1))) (PartialOrder.toPreorder.{u2} α (CompleteSemilatticeInf.toPartialOrder.{u2} α (CompleteLattice.toCompleteSemilatticeInf.{u2} α _inst_1))) (ClosureOperator.toOrderHom.{u2} α (PartialOrder.toPreorder.{u2} α (CompleteSemilatticeInf.toPartialOrder.{u2} α (CompleteLattice.toCompleteSemilatticeInf.{u2} α _inst_1))) c) (iSup.{u2, u1} α (CompleteLattice.toSupSet.{u2} α _inst_1) ι (fun (i : ι) => f i)))
-Case conversion may be inaccurate. Consider using '#align closure_operator.closure_supr_closure ClosureOperator.closure_iSup_closureₓ'. -/
 @[simp]
 theorem closure_iSup_closure (f : ι → α) : c (⨆ i, c (f i)) = c (⨆ i, f i) :=
   le_antisymm ((c.le_closure_iff _ _).1 <| iSup_le fun i => c.Monotone <| le_iSup f i) <|
     c.Monotone <| iSup_mono fun i => c.le_closure _
 #align closure_operator.closure_supr_closure ClosureOperator.closure_iSup_closure
 
-/- warning: closure_operator.closure_supr₂_closure -> ClosureOperator.closure_iSup₂_closure is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {κ : ι -> Sort.{u3}} [_inst_1 : CompleteLattice.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) (f : forall (i : ι), (κ i) -> α), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) c (iSup.{u1, u2} α (CompleteSemilatticeSup.toHasSup.{u1} α (CompleteLattice.toCompleteSemilatticeSup.{u1} α _inst_1)) ι (fun (i : ι) => iSup.{u1, u3} α (CompleteSemilatticeSup.toHasSup.{u1} α (CompleteLattice.toCompleteSemilatticeSup.{u1} α _inst_1)) (κ i) (fun (j : κ i) => coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) c (f i j))))) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) c (iSup.{u1, u2} α (CompleteSemilatticeSup.toHasSup.{u1} α (CompleteLattice.toCompleteSemilatticeSup.{u1} α _inst_1)) ι (fun (i : ι) => iSup.{u1, u3} α (CompleteSemilatticeSup.toHasSup.{u1} α (CompleteLattice.toCompleteSemilatticeSup.{u1} α _inst_1)) (κ i) (fun (j : κ i) => f i j))))
-but is expected to have type
-  forall {α : Type.{u3}} {ι : Sort.{u2}} {κ : ι -> Sort.{u1}} [_inst_1 : CompleteLattice.{u3} α] (c : ClosureOperator.{u3} α (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α _inst_1)))) (f : forall (i : ι), (κ i) -> α), Eq.{succ u3} α (OrderHom.toFun.{u3, u3} α α (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α _inst_1))) (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α _inst_1))) (ClosureOperator.toOrderHom.{u3} α (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α _inst_1))) c) (iSup.{u3, u2} α (CompleteLattice.toSupSet.{u3} α _inst_1) ι (fun (i : ι) => iSup.{u3, u1} α (CompleteLattice.toSupSet.{u3} α _inst_1) (κ i) (fun (j : κ i) => OrderHom.toFun.{u3, u3} α α (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α _inst_1))) (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α _inst_1))) (ClosureOperator.toOrderHom.{u3} α (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α _inst_1))) c) (f i j))))) (OrderHom.toFun.{u3, u3} α α (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α _inst_1))) (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α _inst_1))) (ClosureOperator.toOrderHom.{u3} α (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α _inst_1))) c) (iSup.{u3, u2} α (CompleteLattice.toSupSet.{u3} α _inst_1) ι (fun (i : ι) => iSup.{u3, u1} α (CompleteLattice.toSupSet.{u3} α _inst_1) (κ i) (fun (j : κ i) => f i j))))
-Case conversion may be inaccurate. Consider using '#align closure_operator.closure_supr₂_closure ClosureOperator.closure_iSup₂_closureₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 @[simp]
@@ -472,44 +358,20 @@ def Simps.apply : α → β :=
   l
 #align lower_adjoint.simps.apply LowerAdjoint.Simps.apply
 
-/- warning: lower_adjoint.gc -> LowerAdjoint.gc is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Preorder.{u1} α] [_inst_2 : Preorder.{u2} β] {u : β -> α} (l : LowerAdjoint.{u1, u2} α β _inst_1 _inst_2 u), GaloisConnection.{u1, u2} α β _inst_1 _inst_2 (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β _inst_1 _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β _inst_1 _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2 u) l) u
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : Preorder.{u2} α] [_inst_2 : Preorder.{u1} β] {u : β -> α} (l : LowerAdjoint.{u2, u1} α β _inst_1 _inst_2 u), GaloisConnection.{u2, u1} α β _inst_1 _inst_2 (LowerAdjoint.toFun.{u2, u1} α β _inst_1 _inst_2 u l) u
-Case conversion may be inaccurate. Consider using '#align lower_adjoint.gc LowerAdjoint.gcₓ'. -/
 theorem gc : GaloisConnection l u :=
   l.gc'
 #align lower_adjoint.gc LowerAdjoint.gc
 
-/- warning: lower_adjoint.ext -> LowerAdjoint.ext is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Preorder.{u1} α] [_inst_2 : Preorder.{u2} β] {u : β -> α} (l₁ : LowerAdjoint.{u1, u2} α β _inst_1 _inst_2 u) (l₂ : LowerAdjoint.{u1, u2} α β _inst_1 _inst_2 u), (Eq.{max (succ u1) (succ u2)} ((fun (_x : LowerAdjoint.{u1, u2} α β _inst_1 _inst_2 u) => α -> β) l₁) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β _inst_1 _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β _inst_1 _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2 u) l₁) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β _inst_1 _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β _inst_1 _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2 u) l₂)) -> (Eq.{max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β _inst_1 _inst_2 u) l₁ l₂)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : Preorder.{u2} α] [_inst_2 : Preorder.{u1} β] {u : β -> α} (l₁ : LowerAdjoint.{u2, u1} α β _inst_1 _inst_2 u) (l₂ : LowerAdjoint.{u2, u1} α β _inst_1 _inst_2 u), (Eq.{max (succ u2) (succ u1)} (α -> β) (LowerAdjoint.toFun.{u2, u1} α β _inst_1 _inst_2 u l₁) (LowerAdjoint.toFun.{u2, u1} α β _inst_1 _inst_2 u l₂)) -> (Eq.{max (succ u2) (succ u1)} (LowerAdjoint.{u2, u1} α β _inst_1 _inst_2 u) l₁ l₂)
-Case conversion may be inaccurate. Consider using '#align lower_adjoint.ext LowerAdjoint.extₓ'. -/
 @[ext]
 theorem ext : ∀ l₁ l₂ : LowerAdjoint u, (l₁ : α → β) = (l₂ : α → β) → l₁ = l₂
   | ⟨l₁, _⟩, ⟨l₂, _⟩, h => by congr ; exact h
 #align lower_adjoint.ext LowerAdjoint.ext
 
-/- warning: lower_adjoint.monotone -> LowerAdjoint.monotone is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Preorder.{u1} α] [_inst_2 : Preorder.{u2} β] {u : β -> α} (l : LowerAdjoint.{u1, u2} α β _inst_1 _inst_2 u), Monotone.{u1, u1} α α _inst_1 _inst_1 (Function.comp.{succ u1, succ u2, succ u1} α β α u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β _inst_1 _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β _inst_1 _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2 u) l))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : Preorder.{u2} α] [_inst_2 : Preorder.{u1} β] {u : β -> α} (l : LowerAdjoint.{u2, u1} α β _inst_1 _inst_2 u), Monotone.{u2, u2} α α _inst_1 _inst_1 (Function.comp.{succ u2, succ u1, succ u2} α β α u (LowerAdjoint.toFun.{u2, u1} α β _inst_1 _inst_2 u l))
-Case conversion may be inaccurate. Consider using '#align lower_adjoint.monotone LowerAdjoint.monotoneₓ'. -/
 @[mono]
 theorem monotone : Monotone (u ∘ l) :=
   l.gc.monotone_u.comp l.gc.monotone_l
 #align lower_adjoint.monotone LowerAdjoint.monotone
 
-/- warning: lower_adjoint.le_closure -> LowerAdjoint.le_closure is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Preorder.{u1} α] [_inst_2 : Preorder.{u2} β] {u : β -> α} (l : LowerAdjoint.{u1, u2} α β _inst_1 _inst_2 u) (x : α), LE.le.{u1} α (Preorder.toHasLe.{u1} α _inst_1) x (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β _inst_1 _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β _inst_1 _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2 u) l x))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : Preorder.{u2} α] [_inst_2 : Preorder.{u1} β] {u : β -> α} (l : LowerAdjoint.{u2, u1} α β _inst_1 _inst_2 u) (x : α), LE.le.{u2} α (Preorder.toLE.{u2} α _inst_1) x (u (LowerAdjoint.toFun.{u2, u1} α β _inst_1 _inst_2 u l x))
-Case conversion may be inaccurate. Consider using '#align lower_adjoint.le_closure LowerAdjoint.le_closureₓ'. -/
 /-- Every element is less than its closure. This property is sometimes referred to as extensivity or
 inflationarity. -/
 theorem le_closure (x : α) : x ≤ u (l x) :=
@@ -535,22 +397,10 @@ def closureOperator : ClosureOperator α
 #align lower_adjoint.closure_operator LowerAdjoint.closureOperator
 -/
 
-/- warning: lower_adjoint.idempotent -> LowerAdjoint.idempotent is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PartialOrder.{u1} α] [_inst_2 : Preorder.{u2} β] {u : β -> α} (l : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_2 u) (x : α), Eq.{succ u1} α (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_2 u) l (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_2 u) l x)))) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_2 u) l x))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PartialOrder.{u2} α] [_inst_2 : Preorder.{u1} β] {u : β -> α} (l : LowerAdjoint.{u2, u1} α β (PartialOrder.toPreorder.{u2} α _inst_1) _inst_2 u) (x : α), Eq.{succ u2} α (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α _inst_1) _inst_2 u l (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α _inst_1) _inst_2 u l x)))) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α _inst_1) _inst_2 u l x))
-Case conversion may be inaccurate. Consider using '#align lower_adjoint.idempotent LowerAdjoint.idempotentₓ'. -/
 theorem idempotent (x : α) : u (l (u (l x))) = u (l x) :=
   l.ClosureOperator.idempotent _
 #align lower_adjoint.idempotent LowerAdjoint.idempotent
 
-/- warning: lower_adjoint.le_closure_iff -> LowerAdjoint.le_closure_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PartialOrder.{u1} α] [_inst_2 : Preorder.{u2} β] {u : β -> α} (l : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_2 u) (x : α) (y : α), Iff (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_2 u) l y))) (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_2 u) l x)) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_2 u) l y)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PartialOrder.{u2} α] [_inst_2 : Preorder.{u1} β] {u : β -> α} (l : LowerAdjoint.{u2, u1} α β (PartialOrder.toPreorder.{u2} α _inst_1) _inst_2 u) (x : α) (y : α), Iff (LE.le.{u2} α (Preorder.toLE.{u2} α (PartialOrder.toPreorder.{u2} α _inst_1)) x (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α _inst_1) _inst_2 u l y))) (LE.le.{u2} α (Preorder.toLE.{u2} α (PartialOrder.toPreorder.{u2} α _inst_1)) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α _inst_1) _inst_2 u l x)) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α _inst_1) _inst_2 u l y)))
-Case conversion may be inaccurate. Consider using '#align lower_adjoint.le_closure_iff LowerAdjoint.le_closure_iffₓ'. -/
 theorem le_closure_iff (x y : α) : x ≤ u (l y) ↔ u (l x) ≤ u (l y) :=
   l.ClosureOperator.le_closure_iff _ _
 #align lower_adjoint.le_closure_iff LowerAdjoint.le_closure_iff
@@ -567,22 +417,10 @@ def closed : Set α := fun x => u (l x) = x
 #align lower_adjoint.closed LowerAdjoint.closed
 -/
 
-/- warning: lower_adjoint.mem_closed_iff -> LowerAdjoint.mem_closed_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Preorder.{u1} α] [_inst_2 : Preorder.{u2} β] {u : β -> α} (l : LowerAdjoint.{u1, u2} α β _inst_1 _inst_2 u) (x : α), Iff (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (LowerAdjoint.closed.{u1, u2} α β _inst_1 _inst_2 u l)) (Eq.{succ u1} α (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β _inst_1 _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β _inst_1 _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2 u) l x)) x)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : Preorder.{u2} α] [_inst_2 : Preorder.{u1} β] {u : β -> α} (l : LowerAdjoint.{u2, u1} α β _inst_1 _inst_2 u) (x : α), Iff (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x (LowerAdjoint.closed.{u2, u1} α β _inst_1 _inst_2 u l)) (Eq.{succ u2} α (u (LowerAdjoint.toFun.{u2, u1} α β _inst_1 _inst_2 u l x)) x)
-Case conversion may be inaccurate. Consider using '#align lower_adjoint.mem_closed_iff LowerAdjoint.mem_closed_iffₓ'. -/
 theorem mem_closed_iff (x : α) : x ∈ l.closed ↔ u (l x) = x :=
   Iff.rfl
 #align lower_adjoint.mem_closed_iff LowerAdjoint.mem_closed_iff
 
-/- warning: lower_adjoint.closure_eq_self_of_mem_closed -> LowerAdjoint.closure_eq_self_of_mem_closed is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Preorder.{u1} α] [_inst_2 : Preorder.{u2} β] {u : β -> α} (l : LowerAdjoint.{u1, u2} α β _inst_1 _inst_2 u) {x : α}, (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (LowerAdjoint.closed.{u1, u2} α β _inst_1 _inst_2 u l)) -> (Eq.{succ u1} α (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β _inst_1 _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β _inst_1 _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2 u) l x)) x)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : Preorder.{u2} α] [_inst_2 : Preorder.{u1} β] {u : β -> α} (l : LowerAdjoint.{u2, u1} α β _inst_1 _inst_2 u) {x : α}, (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x (LowerAdjoint.closed.{u2, u1} α β _inst_1 _inst_2 u l)) -> (Eq.{succ u2} α (u (LowerAdjoint.toFun.{u2, u1} α β _inst_1 _inst_2 u l x)) x)
-Case conversion may be inaccurate. Consider using '#align lower_adjoint.closure_eq_self_of_mem_closed LowerAdjoint.closure_eq_self_of_mem_closedₓ'. -/
 theorem closure_eq_self_of_mem_closed {x : α} (h : x ∈ l.closed) : u (l x) = x :=
   h
 #align lower_adjoint.closure_eq_self_of_mem_closed LowerAdjoint.closure_eq_self_of_mem_closed
@@ -593,33 +431,15 @@ section PartialOrder
 
 variable [PartialOrder α] [PartialOrder β] {u : β → α} (l : LowerAdjoint u)
 
-/- warning: lower_adjoint.mem_closed_iff_closure_le -> LowerAdjoint.mem_closed_iff_closure_le is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PartialOrder.{u1} α] [_inst_2 : PartialOrder.{u2} β] {u : β -> α} (l : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u2} β _inst_2) u) (x : α), Iff (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (LowerAdjoint.closed.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u2} β _inst_2) u l)) (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u2} β _inst_2) u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u2} β _inst_2) u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u2} β _inst_2) u) l x)) x)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PartialOrder.{u2} α] [_inst_2 : PartialOrder.{u1} β] {u : β -> α} (l : LowerAdjoint.{u2, u1} α β (PartialOrder.toPreorder.{u2} α _inst_1) (PartialOrder.toPreorder.{u1} β _inst_2) u) (x : α), Iff (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x (LowerAdjoint.closed.{u2, u1} α β (PartialOrder.toPreorder.{u2} α _inst_1) (PartialOrder.toPreorder.{u1} β _inst_2) u l)) (LE.le.{u2} α (Preorder.toLE.{u2} α (PartialOrder.toPreorder.{u2} α _inst_1)) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α _inst_1) (PartialOrder.toPreorder.{u1} β _inst_2) u l x)) x)
-Case conversion may be inaccurate. Consider using '#align lower_adjoint.mem_closed_iff_closure_le LowerAdjoint.mem_closed_iff_closure_leₓ'. -/
 theorem mem_closed_iff_closure_le (x : α) : x ∈ l.closed ↔ u (l x) ≤ x :=
   l.ClosureOperator.mem_closed_iff_closure_le _
 #align lower_adjoint.mem_closed_iff_closure_le LowerAdjoint.mem_closed_iff_closure_le
 
-/- warning: lower_adjoint.closure_is_closed -> LowerAdjoint.closure_is_closed is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PartialOrder.{u1} α] [_inst_2 : PartialOrder.{u2} β] {u : β -> α} (l : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u2} β _inst_2) u) (x : α), Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u2} β _inst_2) u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u2} β _inst_2) u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u2} β _inst_2) u) l x)) (LowerAdjoint.closed.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u2} β _inst_2) u l)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PartialOrder.{u2} α] [_inst_2 : PartialOrder.{u1} β] {u : β -> α} (l : LowerAdjoint.{u2, u1} α β (PartialOrder.toPreorder.{u2} α _inst_1) (PartialOrder.toPreorder.{u1} β _inst_2) u) (x : α), Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α _inst_1) (PartialOrder.toPreorder.{u1} β _inst_2) u l x)) (LowerAdjoint.closed.{u2, u1} α β (PartialOrder.toPreorder.{u2} α _inst_1) (PartialOrder.toPreorder.{u1} β _inst_2) u l)
-Case conversion may be inaccurate. Consider using '#align lower_adjoint.closure_is_closed LowerAdjoint.closure_is_closedₓ'. -/
 @[simp]
 theorem closure_is_closed (x : α) : u (l x) ∈ l.closed :=
   l.idempotent x
 #align lower_adjoint.closure_is_closed LowerAdjoint.closure_is_closed
 
-/- warning: lower_adjoint.closed_eq_range_close -> LowerAdjoint.closed_eq_range_close is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PartialOrder.{u1} α] [_inst_2 : PartialOrder.{u2} β] {u : β -> α} (l : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u2} β _inst_2) u), Eq.{succ u1} (Set.{u1} α) (LowerAdjoint.closed.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u2} β _inst_2) u l) (Set.range.{u1, succ u1} α α (Function.comp.{succ u1, succ u2, succ u1} α β α u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u2} β _inst_2) u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u2} β _inst_2) u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u2} β _inst_2) u) l)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PartialOrder.{u2} α] [_inst_2 : PartialOrder.{u1} β] {u : β -> α} (l : LowerAdjoint.{u2, u1} α β (PartialOrder.toPreorder.{u2} α _inst_1) (PartialOrder.toPreorder.{u1} β _inst_2) u), Eq.{succ u2} (Set.{u2} α) (LowerAdjoint.closed.{u2, u1} α β (PartialOrder.toPreorder.{u2} α _inst_1) (PartialOrder.toPreorder.{u1} β _inst_2) u l) (Set.range.{u2, succ u2} α α (Function.comp.{succ u2, succ u1, succ u2} α β α u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α _inst_1) (PartialOrder.toPreorder.{u1} β _inst_2) u l)))
-Case conversion may be inaccurate. Consider using '#align lower_adjoint.closed_eq_range_close LowerAdjoint.closed_eq_range_closeₓ'. -/
 /-- The set of closed elements for `l` is the range of `u ∘ l`. -/
 theorem closed_eq_range_close : l.closed = Set.range (u ∘ l) :=
   l.ClosureOperator.closed_eq_range_close
@@ -632,12 +452,6 @@ def toClosed (x : α) : l.closed :=
 #align lower_adjoint.to_closed LowerAdjoint.toClosed
 -/
 
-/- warning: lower_adjoint.closure_le_closed_iff_le -> LowerAdjoint.closure_le_closed_iff_le is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PartialOrder.{u1} α] [_inst_2 : PartialOrder.{u2} β] {u : β -> α} (l : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u2} β _inst_2) u) (x : α) {y : α}, (LowerAdjoint.closed.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u2} β _inst_2) u l y) -> (Iff (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u2} β _inst_2) u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u2} β _inst_2) u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u2} β _inst_2) u) l x)) y) (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x y))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PartialOrder.{u2} α] [_inst_2 : PartialOrder.{u1} β] {u : β -> α} (l : LowerAdjoint.{u2, u1} α β (PartialOrder.toPreorder.{u2} α _inst_1) (PartialOrder.toPreorder.{u1} β _inst_2) u) (x : α) {y : α}, (LowerAdjoint.closed.{u2, u1} α β (PartialOrder.toPreorder.{u2} α _inst_1) (PartialOrder.toPreorder.{u1} β _inst_2) u l y) -> (Iff (LE.le.{u2} α (Preorder.toLE.{u2} α (PartialOrder.toPreorder.{u2} α _inst_1)) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α _inst_1) (PartialOrder.toPreorder.{u1} β _inst_2) u l x)) y) (LE.le.{u2} α (Preorder.toLE.{u2} α (PartialOrder.toPreorder.{u2} α _inst_1)) x y))
-Case conversion may be inaccurate. Consider using '#align lower_adjoint.closure_le_closed_iff_le LowerAdjoint.closure_le_closed_iff_leₓ'. -/
 @[simp]
 theorem closure_le_closed_iff_le (x : α) {y : α} (hy : l.closed y) : u (l x) ≤ y ↔ x ≤ y :=
   l.ClosureOperator.closure_le_closed_iff_le x hy
@@ -645,23 +459,11 @@ theorem closure_le_closed_iff_le (x : α) {y : α} (hy : l.closed y) : u (l x) 
 
 end PartialOrder
 
-/- warning: lower_adjoint.closure_top -> LowerAdjoint.closure_top is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PartialOrder.{u1} α] [_inst_2 : OrderTop.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1))] [_inst_3 : Preorder.{u2} β] {u : β -> α} (l : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_3 u), Eq.{succ u1} α (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_3 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_3 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_3 u) l (Top.top.{u1} α (OrderTop.toHasTop.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) _inst_2)))) (Top.top.{u1} α (OrderTop.toHasTop.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) _inst_2))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PartialOrder.{u2} α] [_inst_2 : OrderTop.{u2} α (Preorder.toLE.{u2} α (PartialOrder.toPreorder.{u2} α _inst_1))] [_inst_3 : Preorder.{u1} β] {u : β -> α} (l : LowerAdjoint.{u2, u1} α β (PartialOrder.toPreorder.{u2} α _inst_1) _inst_3 u), Eq.{succ u2} α (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α _inst_1) _inst_3 u l (Top.top.{u2} α (OrderTop.toTop.{u2} α (Preorder.toLE.{u2} α (PartialOrder.toPreorder.{u2} α _inst_1)) _inst_2)))) (Top.top.{u2} α (OrderTop.toTop.{u2} α (Preorder.toLE.{u2} α (PartialOrder.toPreorder.{u2} α _inst_1)) _inst_2))
-Case conversion may be inaccurate. Consider using '#align lower_adjoint.closure_top LowerAdjoint.closure_topₓ'. -/
 theorem closure_top [PartialOrder α] [OrderTop α] [Preorder β] {u : β → α} (l : LowerAdjoint u) :
     u (l ⊤) = ⊤ :=
   l.ClosureOperator.closure_top
 #align lower_adjoint.closure_top LowerAdjoint.closure_top
 
-/- warning: lower_adjoint.closure_inf_le -> LowerAdjoint.closure_inf_le is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SemilatticeInf.{u1} α] [_inst_2 : Preorder.{u2} β] {u : β -> α} (l : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (x : α) (y : α), LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l (Inf.inf.{u1} α (SemilatticeInf.toHasInf.{u1} α _inst_1) x y))) (Inf.inf.{u1} α (SemilatticeInf.toHasInf.{u1} α _inst_1) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l x)) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l y)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : SemilatticeInf.{u2} α] [_inst_2 : Preorder.{u1} β] {u : β -> α} (l : LowerAdjoint.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeInf.toPartialOrder.{u2} α _inst_1)) _inst_2 u) (x : α) (y : α), LE.le.{u2} α (Preorder.toLE.{u2} α (PartialOrder.toPreorder.{u2} α (SemilatticeInf.toPartialOrder.{u2} α _inst_1))) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeInf.toPartialOrder.{u2} α _inst_1)) _inst_2 u l (Inf.inf.{u2} α (SemilatticeInf.toInf.{u2} α _inst_1) x y))) (Inf.inf.{u2} α (SemilatticeInf.toInf.{u2} α _inst_1) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeInf.toPartialOrder.{u2} α _inst_1)) _inst_2 u l x)) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeInf.toPartialOrder.{u2} α _inst_1)) _inst_2 u l y)))
-Case conversion may be inaccurate. Consider using '#align lower_adjoint.closure_inf_le LowerAdjoint.closure_inf_leₓ'. -/
 theorem closure_inf_le [SemilatticeInf α] [Preorder β] {u : β → α} (l : LowerAdjoint u) (x y : α) :
     u (l (x ⊓ y)) ≤ u (l x) ⊓ u (l y) :=
   l.ClosureOperator.closure_inf_le x y
@@ -671,42 +473,18 @@ section SemilatticeSup
 
 variable [SemilatticeSup α] [Preorder β] {u : β → α} (l : LowerAdjoint u)
 
-/- warning: lower_adjoint.closure_sup_closure_le -> LowerAdjoint.closure_sup_closure_le is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SemilatticeSup.{u1} α] [_inst_2 : Preorder.{u2} β] {u : β -> α} (l : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (x : α) (y : α), LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (Sup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l x)) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l y))) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l (Sup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) x y)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : SemilatticeSup.{u2} α] [_inst_2 : Preorder.{u1} β] {u : β -> α} (l : LowerAdjoint.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u) (x : α) (y : α), LE.le.{u2} α (Preorder.toLE.{u2} α (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1))) (Sup.sup.{u2} α (SemilatticeSup.toSup.{u2} α _inst_1) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u l x)) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u l y))) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u l (Sup.sup.{u2} α (SemilatticeSup.toSup.{u2} α _inst_1) x y)))
-Case conversion may be inaccurate. Consider using '#align lower_adjoint.closure_sup_closure_le LowerAdjoint.closure_sup_closure_leₓ'. -/
 theorem closure_sup_closure_le (x y : α) : u (l x) ⊔ u (l y) ≤ u (l (x ⊔ y)) :=
   l.ClosureOperator.closure_sup_closure_le x y
 #align lower_adjoint.closure_sup_closure_le LowerAdjoint.closure_sup_closure_le
 
-/- warning: lower_adjoint.closure_sup_closure_left -> LowerAdjoint.closure_sup_closure_left is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SemilatticeSup.{u1} α] [_inst_2 : Preorder.{u2} β] {u : β -> α} (l : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (x : α) (y : α), Eq.{succ u1} α (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l (Sup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l x)) y))) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l (Sup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) x y)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : SemilatticeSup.{u2} α] [_inst_2 : Preorder.{u1} β] {u : β -> α} (l : LowerAdjoint.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u) (x : α) (y : α), Eq.{succ u2} α (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u l (Sup.sup.{u2} α (SemilatticeSup.toSup.{u2} α _inst_1) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u l x)) y))) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u l (Sup.sup.{u2} α (SemilatticeSup.toSup.{u2} α _inst_1) x y)))
-Case conversion may be inaccurate. Consider using '#align lower_adjoint.closure_sup_closure_left LowerAdjoint.closure_sup_closure_leftₓ'. -/
 theorem closure_sup_closure_left (x y : α) : u (l (u (l x) ⊔ y)) = u (l (x ⊔ y)) :=
   l.ClosureOperator.closure_sup_closure_left x y
 #align lower_adjoint.closure_sup_closure_left LowerAdjoint.closure_sup_closure_left
 
-/- warning: lower_adjoint.closure_sup_closure_right -> LowerAdjoint.closure_sup_closure_right is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SemilatticeSup.{u1} α] [_inst_2 : Preorder.{u2} β] {u : β -> α} (l : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (x : α) (y : α), Eq.{succ u1} α (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l (Sup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) x (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l y))))) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l (Sup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) x y)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : SemilatticeSup.{u2} α] [_inst_2 : Preorder.{u1} β] {u : β -> α} (l : LowerAdjoint.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u) (x : α) (y : α), Eq.{succ u2} α (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u l (Sup.sup.{u2} α (SemilatticeSup.toSup.{u2} α _inst_1) x (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u l y))))) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u l (Sup.sup.{u2} α (SemilatticeSup.toSup.{u2} α _inst_1) x y)))
-Case conversion may be inaccurate. Consider using '#align lower_adjoint.closure_sup_closure_right LowerAdjoint.closure_sup_closure_rightₓ'. -/
 theorem closure_sup_closure_right (x y : α) : u (l (x ⊔ u (l y))) = u (l (x ⊔ y)) :=
   l.ClosureOperator.closure_sup_closure_right x y
 #align lower_adjoint.closure_sup_closure_right LowerAdjoint.closure_sup_closure_right
 
-/- warning: lower_adjoint.closure_sup_closure -> LowerAdjoint.closure_sup_closure is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SemilatticeSup.{u1} α] [_inst_2 : Preorder.{u2} β] {u : β -> α} (l : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (x : α) (y : α), Eq.{succ u1} α (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l (Sup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l x)) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l y))))) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l (Sup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) x y)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : SemilatticeSup.{u2} α] [_inst_2 : Preorder.{u1} β] {u : β -> α} (l : LowerAdjoint.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u) (x : α) (y : α), Eq.{succ u2} α (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u l (Sup.sup.{u2} α (SemilatticeSup.toSup.{u2} α _inst_1) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u l x)) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u l y))))) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u l (Sup.sup.{u2} α (SemilatticeSup.toSup.{u2} α _inst_1) x y)))
-Case conversion may be inaccurate. Consider using '#align lower_adjoint.closure_sup_closure LowerAdjoint.closure_sup_closureₓ'. -/
 theorem closure_sup_closure (x y : α) : u (l (u (l x) ⊔ u (l y))) = u (l (x ⊔ y)) :=
   l.ClosureOperator.closure_sup_closure x y
 #align lower_adjoint.closure_sup_closure LowerAdjoint.closure_sup_closure
@@ -717,22 +495,10 @@ section CompleteLattice
 
 variable [CompleteLattice α] [Preorder β] {u : β → α} (l : LowerAdjoint u)
 
-/- warning: lower_adjoint.closure_supr_closure -> LowerAdjoint.closure_iSup_closure is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {β : Type.{u3}} [_inst_1 : CompleteLattice.{u1} α] [_inst_2 : Preorder.{u3} β] {u : β -> α} (l : LowerAdjoint.{u1, u3} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) (f : ι -> α), Eq.{succ u1} α (u (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (LowerAdjoint.{u1, u3} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u3} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u3} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) l (iSup.{u1, u2} α (CompleteSemilatticeSup.toHasSup.{u1} α (CompleteLattice.toCompleteSemilatticeSup.{u1} α _inst_1)) ι (fun (i : ι) => u (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (LowerAdjoint.{u1, u3} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u3} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u3} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) l (f i)))))) (u (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (LowerAdjoint.{u1, u3} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u3} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u3} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) l (iSup.{u1, u2} α (CompleteSemilatticeSup.toHasSup.{u1} α (CompleteLattice.toCompleteSemilatticeSup.{u1} α _inst_1)) ι (fun (i : ι) => f i))))
-but is expected to have type
-  forall {α : Type.{u3}} {ι : Sort.{u1}} {β : Type.{u2}} [_inst_1 : CompleteLattice.{u3} α] [_inst_2 : Preorder.{u2} β] {u : β -> α} (l : LowerAdjoint.{u3, u2} α β (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α _inst_1))) _inst_2 u) (f : ι -> α), Eq.{succ u3} α (u (LowerAdjoint.toFun.{u3, u2} α β (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α _inst_1))) _inst_2 u l (iSup.{u3, u1} α (CompleteLattice.toSupSet.{u3} α _inst_1) ι (fun (i : ι) => u (LowerAdjoint.toFun.{u3, u2} α β (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α _inst_1))) _inst_2 u l (f i)))))) (u (LowerAdjoint.toFun.{u3, u2} α β (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α _inst_1))) _inst_2 u l (iSup.{u3, u1} α (CompleteLattice.toSupSet.{u3} α _inst_1) ι (fun (i : ι) => f i))))
-Case conversion may be inaccurate. Consider using '#align lower_adjoint.closure_supr_closure LowerAdjoint.closure_iSup_closureₓ'. -/
 theorem closure_iSup_closure (f : ι → α) : u (l (⨆ i, u (l (f i)))) = u (l (⨆ i, f i)) :=
   l.ClosureOperator.closure_iSup_closure _
 #align lower_adjoint.closure_supr_closure LowerAdjoint.closure_iSup_closure
 
-/- warning: lower_adjoint.closure_supr₂_closure -> LowerAdjoint.closure_iSup₂_closure is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {κ : ι -> Sort.{u3}} {β : Type.{u4}} [_inst_1 : CompleteLattice.{u1} α] [_inst_2 : Preorder.{u4} β] {u : β -> α} (l : LowerAdjoint.{u1, u4} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) (f : forall (i : ι), (κ i) -> α), Eq.{succ u1} α (u (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (LowerAdjoint.{u1, u4} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u4} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u4} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) l (iSup.{u1, u2} α (CompleteSemilatticeSup.toHasSup.{u1} α (CompleteLattice.toCompleteSemilatticeSup.{u1} α _inst_1)) ι (fun (i : ι) => iSup.{u1, u3} α (CompleteSemilatticeSup.toHasSup.{u1} α (CompleteLattice.toCompleteSemilatticeSup.{u1} α _inst_1)) (κ i) (fun (j : κ i) => u (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (LowerAdjoint.{u1, u4} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u4} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u4} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) l (f i j))))))) (u (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (LowerAdjoint.{u1, u4} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u4} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u4} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) l (iSup.{u1, u2} α (CompleteSemilatticeSup.toHasSup.{u1} α (CompleteLattice.toCompleteSemilatticeSup.{u1} α _inst_1)) ι (fun (i : ι) => iSup.{u1, u3} α (CompleteSemilatticeSup.toHasSup.{u1} α (CompleteLattice.toCompleteSemilatticeSup.{u1} α _inst_1)) (κ i) (fun (j : κ i) => f i j)))))
-but is expected to have type
-  forall {α : Type.{u4}} {ι : Sort.{u2}} {κ : ι -> Sort.{u1}} {β : Type.{u3}} [_inst_1 : CompleteLattice.{u4} α] [_inst_2 : Preorder.{u3} β] {u : β -> α} (l : LowerAdjoint.{u4, u3} α β (PartialOrder.toPreorder.{u4} α (CompleteSemilatticeInf.toPartialOrder.{u4} α (CompleteLattice.toCompleteSemilatticeInf.{u4} α _inst_1))) _inst_2 u) (f : forall (i : ι), (κ i) -> α), Eq.{succ u4} α (u (LowerAdjoint.toFun.{u4, u3} α β (PartialOrder.toPreorder.{u4} α (CompleteSemilatticeInf.toPartialOrder.{u4} α (CompleteLattice.toCompleteSemilatticeInf.{u4} α _inst_1))) _inst_2 u l (iSup.{u4, u2} α (CompleteLattice.toSupSet.{u4} α _inst_1) ι (fun (i : ι) => iSup.{u4, u1} α (CompleteLattice.toSupSet.{u4} α _inst_1) (κ i) (fun (j : κ i) => u (LowerAdjoint.toFun.{u4, u3} α β (PartialOrder.toPreorder.{u4} α (CompleteSemilatticeInf.toPartialOrder.{u4} α (CompleteLattice.toCompleteSemilatticeInf.{u4} α _inst_1))) _inst_2 u l (f i j))))))) (u (LowerAdjoint.toFun.{u4, u3} α β (PartialOrder.toPreorder.{u4} α (CompleteSemilatticeInf.toPartialOrder.{u4} α (CompleteLattice.toCompleteSemilatticeInf.{u4} α _inst_1))) _inst_2 u l (iSup.{u4, u2} α (CompleteLattice.toSupSet.{u4} α _inst_1) ι (fun (i : ι) => iSup.{u4, u1} α (CompleteLattice.toSupSet.{u4} α _inst_1) (κ i) (fun (j : κ i) => f i j)))))
-Case conversion may be inaccurate. Consider using '#align lower_adjoint.closure_supr₂_closure LowerAdjoint.closure_iSup₂_closureₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 theorem closure_iSup₂_closure (f : ∀ i, κ i → α) :
@@ -747,99 +513,51 @@ section CoeToSet
 
 variable [SetLike α β] (l : LowerAdjoint (coe : α → Set β))
 
-/- warning: lower_adjoint.subset_closure -> LowerAdjoint.subset_closure is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SetLike.{u1, u2} α β] (l : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) (s : Set.{u2} β), HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) s ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) (fun (_x : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) => (Set.{u2} β) -> α) (LowerAdjoint.hasCoeToFun.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) l s))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SetLike.{u1, u2} α β] (l : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.instPartialOrder.{u1, u2} α β _inst_1)) (SetLike.coe.{u1, u2} α β _inst_1)) (s : Set.{u2} β), HasSubset.Subset.{u2} (Set.{u2} β) (Set.instHasSubsetSet.{u2} β) s (SetLike.coe.{u1, u2} α β _inst_1 (LowerAdjoint.toFun.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.instPartialOrder.{u1, u2} α β _inst_1)) (SetLike.coe.{u1, u2} α β _inst_1) l s))
-Case conversion may be inaccurate. Consider using '#align lower_adjoint.subset_closure LowerAdjoint.subset_closureₓ'. -/
 theorem subset_closure (s : Set β) : s ⊆ l s :=
   l.le_closure s
 #align lower_adjoint.subset_closure LowerAdjoint.subset_closure
 
-/- warning: lower_adjoint.not_mem_of_not_mem_closure -> LowerAdjoint.not_mem_of_not_mem_closure is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SetLike.{u1, u2} α β] (l : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) {s : Set.{u2} β} {P : β}, (Not (Membership.Mem.{u2, u1} β α (SetLike.hasMem.{u1, u2} α β _inst_1) P (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) (fun (_x : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) => (Set.{u2} β) -> α) (LowerAdjoint.hasCoeToFun.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) l s))) -> (Not (Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) P s))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SetLike.{u1, u2} α β] (l : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.instPartialOrder.{u1, u2} α β _inst_1)) (SetLike.coe.{u1, u2} α β _inst_1)) {s : Set.{u2} β} {P : β}, (Not (Membership.mem.{u2, u1} β α (SetLike.instMembership.{u1, u2} α β _inst_1) P (LowerAdjoint.toFun.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.instPartialOrder.{u1, u2} α β _inst_1)) (SetLike.coe.{u1, u2} α β _inst_1) l s))) -> (Not (Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) P s))
-Case conversion may be inaccurate. Consider using '#align lower_adjoint.not_mem_of_not_mem_closure LowerAdjoint.not_mem_of_not_mem_closureₓ'. -/
 theorem not_mem_of_not_mem_closure {s : Set β} {P : β} (hP : P ∉ l s) : P ∉ s := fun h =>
   hP (subset_closure _ s h)
 #align lower_adjoint.not_mem_of_not_mem_closure LowerAdjoint.not_mem_of_not_mem_closure
 
-/- warning: lower_adjoint.le_iff_subset -> LowerAdjoint.le_iff_subset is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SetLike.{u1, u2} α β] (l : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) (s : Set.{u2} β) (S : α), Iff (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) (fun (_x : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) => (Set.{u2} β) -> α) (LowerAdjoint.hasCoeToFun.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) l s) S) (HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) s ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))) S))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SetLike.{u1, u2} α β] (l : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.instPartialOrder.{u1, u2} α β _inst_1)) (SetLike.coe.{u1, u2} α β _inst_1)) (s : Set.{u2} β) (S : α), Iff (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (SetLike.instPartialOrder.{u1, u2} α β _inst_1))) (LowerAdjoint.toFun.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.instPartialOrder.{u1, u2} α β _inst_1)) (SetLike.coe.{u1, u2} α β _inst_1) l s) S) (HasSubset.Subset.{u2} (Set.{u2} β) (Set.instHasSubsetSet.{u2} β) s (SetLike.coe.{u1, u2} α β _inst_1 S))
-Case conversion may be inaccurate. Consider using '#align lower_adjoint.le_iff_subset LowerAdjoint.le_iff_subsetₓ'. -/
 theorem le_iff_subset (s : Set β) (S : α) : l s ≤ S ↔ s ⊆ S :=
   l.gc s S
 #align lower_adjoint.le_iff_subset LowerAdjoint.le_iff_subset
 
-/- warning: lower_adjoint.mem_iff -> LowerAdjoint.mem_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SetLike.{u1, u2} α β] (l : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) (s : Set.{u2} β) (x : β), Iff (Membership.Mem.{u2, u1} β α (SetLike.hasMem.{u1, u2} α β _inst_1) x (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) (fun (_x : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) => (Set.{u2} β) -> α) (LowerAdjoint.hasCoeToFun.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) l s)) (forall (S : α), (HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) s ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))) S)) -> (Membership.Mem.{u2, u1} β α (SetLike.hasMem.{u1, u2} α β _inst_1) x S))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SetLike.{u1, u2} α β] (l : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.instPartialOrder.{u1, u2} α β _inst_1)) (SetLike.coe.{u1, u2} α β _inst_1)) (s : Set.{u2} β) (x : β), Iff (Membership.mem.{u2, u1} β α (SetLike.instMembership.{u1, u2} α β _inst_1) x (LowerAdjoint.toFun.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.instPartialOrder.{u1, u2} α β _inst_1)) (SetLike.coe.{u1, u2} α β _inst_1) l s)) (forall (S : α), (HasSubset.Subset.{u2} (Set.{u2} β) (Set.instHasSubsetSet.{u2} β) s (SetLike.coe.{u1, u2} α β _inst_1 S)) -> (Membership.mem.{u2, u1} β α (SetLike.instMembership.{u1, u2} α β _inst_1) x S))
-Case conversion may be inaccurate. Consider using '#align lower_adjoint.mem_iff LowerAdjoint.mem_iffₓ'. -/
 theorem mem_iff (s : Set β) (x : β) : x ∈ l s ↔ ∀ S : α, s ⊆ S → x ∈ S :=
   by
   simp_rw [← SetLike.mem_coe, ← Set.singleton_subset_iff, ← l.le_iff_subset]
   exact ⟨fun h S => h.trans, fun h => h _ le_rfl⟩
 #align lower_adjoint.mem_iff LowerAdjoint.mem_iff
 
-/- warning: lower_adjoint.eq_of_le -> LowerAdjoint.eq_of_le is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SetLike.{u1, u2} α β] (l : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) {s : Set.{u2} β} {S : α}, (HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) s ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))) S)) -> (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1))) S (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) (fun (_x : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) => (Set.{u2} β) -> α) (LowerAdjoint.hasCoeToFun.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) l s)) -> (Eq.{succ u1} α (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) (fun (_x : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) => (Set.{u2} β) -> α) (LowerAdjoint.hasCoeToFun.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) l s) S)
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SetLike.{u1, u2} α β] (l : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.instPartialOrder.{u1, u2} α β _inst_1)) (SetLike.coe.{u1, u2} α β _inst_1)) {s : Set.{u2} β} {S : α}, (HasSubset.Subset.{u2} (Set.{u2} β) (Set.instHasSubsetSet.{u2} β) s (SetLike.coe.{u1, u2} α β _inst_1 S)) -> (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (SetLike.instPartialOrder.{u1, u2} α β _inst_1))) S (LowerAdjoint.toFun.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.instPartialOrder.{u1, u2} α β _inst_1)) (SetLike.coe.{u1, u2} α β _inst_1) l s)) -> (Eq.{succ u1} α (LowerAdjoint.toFun.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.instPartialOrder.{u1, u2} α β _inst_1)) (SetLike.coe.{u1, u2} α β _inst_1) l s) S)
-Case conversion may be inaccurate. Consider using '#align lower_adjoint.eq_of_le LowerAdjoint.eq_of_leₓ'. -/
 theorem eq_of_le {s : Set β} {S : α} (h₁ : s ⊆ S) (h₂ : S ≤ l s) : l s = S :=
   ((l.le_iff_subset _ _).2 h₁).antisymm h₂
 #align lower_adjoint.eq_of_le LowerAdjoint.eq_of_le
 
-/- warning: lower_adjoint.closure_union_closure_subset -> LowerAdjoint.closure_union_closure_subset is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align lower_adjoint.closure_union_closure_subset LowerAdjoint.closure_union_closure_subsetₓ'. -/
 theorem closure_union_closure_subset (x y : α) : (l x : Set β) ∪ l y ⊆ l (x ∪ y) :=
   l.closure_sup_closure_le x y
 #align lower_adjoint.closure_union_closure_subset LowerAdjoint.closure_union_closure_subset
 
-/- warning: lower_adjoint.closure_union_closure_left -> LowerAdjoint.closure_union_closure_left is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align lower_adjoint.closure_union_closure_left LowerAdjoint.closure_union_closure_leftₓ'. -/
 @[simp]
 theorem closure_union_closure_left (x y : α) : l (l x ∪ y) = l (x ∪ y) :=
   SetLike.coe_injective (l.closure_sup_closure_left x y)
 #align lower_adjoint.closure_union_closure_left LowerAdjoint.closure_union_closure_left
 
-/- warning: lower_adjoint.closure_union_closure_right -> LowerAdjoint.closure_union_closure_right is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align lower_adjoint.closure_union_closure_right LowerAdjoint.closure_union_closure_rightₓ'. -/
 @[simp]
 theorem closure_union_closure_right (x y : α) : l (x ∪ l y) = l (x ∪ y) :=
   SetLike.coe_injective (l.closure_sup_closure_right x y)
 #align lower_adjoint.closure_union_closure_right LowerAdjoint.closure_union_closure_right
 
-/- warning: lower_adjoint.closure_union_closure -> LowerAdjoint.closure_union_closure is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align lower_adjoint.closure_union_closure LowerAdjoint.closure_union_closureₓ'. -/
 theorem closure_union_closure (x y : α) : l (l x ∪ l y) = l (x ∪ y) :=
   SetLike.coe_injective (l.ClosureOperator.closure_sup_closure x y)
 #align lower_adjoint.closure_union_closure LowerAdjoint.closure_union_closure
 
-/- warning: lower_adjoint.closure_Union_closure -> LowerAdjoint.closure_iUnion_closure is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align lower_adjoint.closure_Union_closure LowerAdjoint.closure_iUnion_closureₓ'. -/
 @[simp]
 theorem closure_iUnion_closure (f : ι → α) : l (⋃ i, l (f i)) = l (⋃ i, f i) :=
   SetLike.coe_injective <| l.closure_iSup_closure _
 #align lower_adjoint.closure_Union_closure LowerAdjoint.closure_iUnion_closure
 
-/- warning: lower_adjoint.closure_Union₂_closure -> LowerAdjoint.closure_iUnion₂_closure is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align lower_adjoint.closure_Union₂_closure LowerAdjoint.closure_iUnion₂_closureₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 @[simp]
Diff
@@ -104,9 +104,7 @@ variable {α} (c : ClosureOperator α)
 #print ClosureOperator.ext /-
 @[ext]
 theorem ext : ∀ c₁ c₂ : ClosureOperator α, (c₁ : α → α) = (c₂ : α → α) → c₁ = c₂
-  | ⟨⟨c₁, _⟩, _, _⟩, ⟨⟨c₂, _⟩, _, _⟩, h => by
-    congr
-    exact h
+  | ⟨⟨c₁, _⟩, _, _⟩, ⟨⟨c₂, _⟩, _, _⟩, h => by congr ; exact h
 #align closure_operator.ext ClosureOperator.ext
 -/
 
@@ -259,10 +257,7 @@ theorem closure_is_closed (x : α) : c x ∈ c.closed :=
 #print ClosureOperator.closed_eq_range_close /-
 /-- The set of closed elements for `c` is exactly its range. -/
 theorem closed_eq_range_close : c.closed = Set.range c :=
-  Set.ext fun x =>
-    ⟨fun h => ⟨x, h⟩, by
-      rintro ⟨y, rfl⟩
-      apply c.idempotent⟩
+  Set.ext fun x => ⟨fun h => ⟨x, h⟩, by rintro ⟨y, rfl⟩; apply c.idempotent⟩
 #align closure_operator.closed_eq_range_close ClosureOperator.closed_eq_range_close
 -/
 
@@ -291,9 +286,7 @@ theorem eq_mk₃_closed (c : ClosureOperator α) :
     c =
       mk₃ c c.closed c.le_closure c.closure_is_closed fun x y hxy hy =>
         (c.closure_le_closed_iff_le x hy).2 hxy :=
-  by
-  ext
-  rfl
+  by ext; rfl
 #align closure_operator.eq_mk₃_closed ClosureOperator.eq_mk₃_closed
 -/
 
@@ -497,9 +490,7 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align lower_adjoint.ext LowerAdjoint.extₓ'. -/
 @[ext]
 theorem ext : ∀ l₁ l₂ : LowerAdjoint u, (l₁ : α → β) = (l₂ : α → β) → l₁ = l₂
-  | ⟨l₁, _⟩, ⟨l₂, _⟩, h => by
-    congr
-    exact h
+  | ⟨l₁, _⟩, ⟨l₂, _⟩, h => by congr ; exact h
 #align lower_adjoint.ext LowerAdjoint.ext
 
 /- warning: lower_adjoint.monotone -> LowerAdjoint.monotone is a dubious translation:
@@ -904,9 +895,7 @@ operator.
 Note that the inverse in the opposite direction does not hold in general. -/
 @[simp]
 theorem closureOperator_gi_self [PartialOrder α] (c : ClosureOperator α) :
-    c.gi.gc.ClosureOperator = c := by
-  ext x
-  rfl
+    c.gi.gc.ClosureOperator = c := by ext x; rfl
 #align closure_operator_gi_self closureOperator_gi_self
 -/
 
Diff
@@ -809,20 +809,14 @@ theorem eq_of_le {s : Set β} {S : α} (h₁ : s ⊆ S) (h₂ : S ≤ l s) : l s
 #align lower_adjoint.eq_of_le LowerAdjoint.eq_of_le
 
 /- warning: lower_adjoint.closure_union_closure_subset -> LowerAdjoint.closure_union_closure_subset is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SetLike.{u1, u2} α β] (l : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) (x : α) (y : α), HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) (fun (_x : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) => (Set.{u2} β) -> α) (LowerAdjoint.hasCoeToFun.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) l ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))) x))) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) (fun (_x : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) => (Set.{u2} β) -> α) (LowerAdjoint.hasCoeToFun.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) l ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))) y)))) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) (fun (_x : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) => (Set.{u2} β) -> α) (LowerAdjoint.hasCoeToFun.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) l (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))) x) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))) y))))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SetLike.{u1, u2} α β] (l : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.instPartialOrder.{u1, u2} α β _inst_1)) (SetLike.coe.{u1, u2} α β _inst_1)) (x : α) (y : α), HasSubset.Subset.{u2} (Set.{u2} β) (Set.instHasSubsetSet.{u2} β) (Union.union.{u2} (Set.{u2} β) (Set.instUnionSet.{u2} β) (SetLike.coe.{u1, u2} α β _inst_1 (LowerAdjoint.toFun.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.instPartialOrder.{u1, u2} α β _inst_1)) (SetLike.coe.{u1, u2} α β _inst_1) l (SetLike.coe.{u1, u2} α β _inst_1 x))) (SetLike.coe.{u1, u2} α β _inst_1 (LowerAdjoint.toFun.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.instPartialOrder.{u1, u2} α β _inst_1)) (SetLike.coe.{u1, u2} α β _inst_1) l (SetLike.coe.{u1, u2} α β _inst_1 y)))) (SetLike.coe.{u1, u2} α β _inst_1 (LowerAdjoint.toFun.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.instPartialOrder.{u1, u2} α β _inst_1)) (SetLike.coe.{u1, u2} α β _inst_1) l (Union.union.{u2} (Set.{u2} β) (Set.instUnionSet.{u2} β) (SetLike.coe.{u1, u2} α β _inst_1 x) (SetLike.coe.{u1, u2} α β _inst_1 y))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align lower_adjoint.closure_union_closure_subset LowerAdjoint.closure_union_closure_subsetₓ'. -/
 theorem closure_union_closure_subset (x y : α) : (l x : Set β) ∪ l y ⊆ l (x ∪ y) :=
   l.closure_sup_closure_le x y
 #align lower_adjoint.closure_union_closure_subset LowerAdjoint.closure_union_closure_subset
 
 /- warning: lower_adjoint.closure_union_closure_left -> LowerAdjoint.closure_union_closure_left is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SetLike.{u1, u2} α β] (l : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) (x : α) (y : α), Eq.{succ u1} α (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) (fun (_x : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) => (Set.{u2} β) -> α) (LowerAdjoint.hasCoeToFun.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) l (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) (fun (_x : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) => (Set.{u2} β) -> α) (LowerAdjoint.hasCoeToFun.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) l ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))) x))) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))) y))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) (fun (_x : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) => (Set.{u2} β) -> α) (LowerAdjoint.hasCoeToFun.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) l (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))) x) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))) y)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : SetLike.{u2, u1} α β] (l : LowerAdjoint.{u1, u2} (Set.{u1} β) α (PartialOrder.toPreorder.{u1} (Set.{u1} β) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} β) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} β) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} β) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} β) (Set.instCompleteBooleanAlgebraSet.{u1} β))))))) (PartialOrder.toPreorder.{u2} α (SetLike.instPartialOrder.{u2, u1} α β _inst_1)) (SetLike.coe.{u2, u1} α β _inst_1)) (x : α) (y : α), Eq.{succ u2} α (LowerAdjoint.toFun.{u1, u2} (Set.{u1} β) α (PartialOrder.toPreorder.{u1} (Set.{u1} β) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} β) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} β) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} β) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} β) (Set.instCompleteBooleanAlgebraSet.{u1} β))))))) (PartialOrder.toPreorder.{u2} α (SetLike.instPartialOrder.{u2, u1} α β _inst_1)) (SetLike.coe.{u2, u1} α β _inst_1) l (Union.union.{u1} (Set.{u1} β) (Set.instUnionSet.{u1} β) (SetLike.coe.{u2, u1} α β _inst_1 (LowerAdjoint.toFun.{u1, u2} (Set.{u1} β) α (PartialOrder.toPreorder.{u1} (Set.{u1} β) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} β) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} β) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} β) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} β) (Set.instCompleteBooleanAlgebraSet.{u1} β))))))) (PartialOrder.toPreorder.{u2} α (SetLike.instPartialOrder.{u2, u1} α β _inst_1)) (SetLike.coe.{u2, u1} α β _inst_1) l (SetLike.coe.{u2, u1} α β _inst_1 x))) (SetLike.coe.{u2, u1} α β _inst_1 y))) (LowerAdjoint.toFun.{u1, u2} (Set.{u1} β) α (PartialOrder.toPreorder.{u1} (Set.{u1} β) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} β) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} β) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} β) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} β) (Set.instCompleteBooleanAlgebraSet.{u1} β))))))) (PartialOrder.toPreorder.{u2} α (SetLike.instPartialOrder.{u2, u1} α β _inst_1)) (SetLike.coe.{u2, u1} α β _inst_1) l (Union.union.{u1} (Set.{u1} β) (Set.instUnionSet.{u1} β) (SetLike.coe.{u2, u1} α β _inst_1 x) (SetLike.coe.{u2, u1} α β _inst_1 y)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align lower_adjoint.closure_union_closure_left LowerAdjoint.closure_union_closure_leftₓ'. -/
 @[simp]
 theorem closure_union_closure_left (x y : α) : l (l x ∪ y) = l (x ∪ y) :=
@@ -830,10 +824,7 @@ theorem closure_union_closure_left (x y : α) : l (l x ∪ y) = l (x ∪ y) :=
 #align lower_adjoint.closure_union_closure_left LowerAdjoint.closure_union_closure_left
 
 /- warning: lower_adjoint.closure_union_closure_right -> LowerAdjoint.closure_union_closure_right is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SetLike.{u1, u2} α β] (l : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) (x : α) (y : α), Eq.{succ u1} α (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) (fun (_x : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) => (Set.{u2} β) -> α) (LowerAdjoint.hasCoeToFun.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) l (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))) x) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) (fun (_x : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) => (Set.{u2} β) -> α) (LowerAdjoint.hasCoeToFun.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) l ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))) y))))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) (fun (_x : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) => (Set.{u2} β) -> α) (LowerAdjoint.hasCoeToFun.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) l (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))) x) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))) y)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : SetLike.{u2, u1} α β] (l : LowerAdjoint.{u1, u2} (Set.{u1} β) α (PartialOrder.toPreorder.{u1} (Set.{u1} β) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} β) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} β) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} β) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} β) (Set.instCompleteBooleanAlgebraSet.{u1} β))))))) (PartialOrder.toPreorder.{u2} α (SetLike.instPartialOrder.{u2, u1} α β _inst_1)) (SetLike.coe.{u2, u1} α β _inst_1)) (x : α) (y : α), Eq.{succ u2} α (LowerAdjoint.toFun.{u1, u2} (Set.{u1} β) α (PartialOrder.toPreorder.{u1} (Set.{u1} β) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} β) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} β) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} β) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} β) (Set.instCompleteBooleanAlgebraSet.{u1} β))))))) (PartialOrder.toPreorder.{u2} α (SetLike.instPartialOrder.{u2, u1} α β _inst_1)) (SetLike.coe.{u2, u1} α β _inst_1) l (Union.union.{u1} (Set.{u1} β) (Set.instUnionSet.{u1} β) (SetLike.coe.{u2, u1} α β _inst_1 x) (SetLike.coe.{u2, u1} α β _inst_1 (LowerAdjoint.toFun.{u1, u2} (Set.{u1} β) α (PartialOrder.toPreorder.{u1} (Set.{u1} β) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} β) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} β) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} β) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} β) (Set.instCompleteBooleanAlgebraSet.{u1} β))))))) (PartialOrder.toPreorder.{u2} α (SetLike.instPartialOrder.{u2, u1} α β _inst_1)) (SetLike.coe.{u2, u1} α β _inst_1) l (SetLike.coe.{u2, u1} α β _inst_1 y))))) (LowerAdjoint.toFun.{u1, u2} (Set.{u1} β) α (PartialOrder.toPreorder.{u1} (Set.{u1} β) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} β) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} β) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} β) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} β) (Set.instCompleteBooleanAlgebraSet.{u1} β))))))) (PartialOrder.toPreorder.{u2} α (SetLike.instPartialOrder.{u2, u1} α β _inst_1)) (SetLike.coe.{u2, u1} α β _inst_1) l (Union.union.{u1} (Set.{u1} β) (Set.instUnionSet.{u1} β) (SetLike.coe.{u2, u1} α β _inst_1 x) (SetLike.coe.{u2, u1} α β _inst_1 y)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align lower_adjoint.closure_union_closure_right LowerAdjoint.closure_union_closure_rightₓ'. -/
 @[simp]
 theorem closure_union_closure_right (x y : α) : l (x ∪ l y) = l (x ∪ y) :=
@@ -841,20 +832,14 @@ theorem closure_union_closure_right (x y : α) : l (x ∪ l y) = l (x ∪ y) :=
 #align lower_adjoint.closure_union_closure_right LowerAdjoint.closure_union_closure_right
 
 /- warning: lower_adjoint.closure_union_closure -> LowerAdjoint.closure_union_closure is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SetLike.{u1, u2} α β] (l : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) (x : α) (y : α), Eq.{succ u1} α (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) (fun (_x : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) => (Set.{u2} β) -> α) (LowerAdjoint.hasCoeToFun.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) l (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) (fun (_x : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) => (Set.{u2} β) -> α) (LowerAdjoint.hasCoeToFun.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) l ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))) x))) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) (fun (_x : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) => (Set.{u2} β) -> α) (LowerAdjoint.hasCoeToFun.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) l ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))) y))))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) (fun (_x : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) => (Set.{u2} β) -> α) (LowerAdjoint.hasCoeToFun.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) l (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))) x) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))) y)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : SetLike.{u2, u1} α β] (l : LowerAdjoint.{u1, u2} (Set.{u1} β) α (PartialOrder.toPreorder.{u1} (Set.{u1} β) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} β) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} β) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} β) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} β) (Set.instCompleteBooleanAlgebraSet.{u1} β))))))) (PartialOrder.toPreorder.{u2} α (SetLike.instPartialOrder.{u2, u1} α β _inst_1)) (SetLike.coe.{u2, u1} α β _inst_1)) (x : α) (y : α), Eq.{succ u2} α (LowerAdjoint.toFun.{u1, u2} (Set.{u1} β) α (PartialOrder.toPreorder.{u1} (Set.{u1} β) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} β) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} β) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} β) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} β) (Set.instCompleteBooleanAlgebraSet.{u1} β))))))) (PartialOrder.toPreorder.{u2} α (SetLike.instPartialOrder.{u2, u1} α β _inst_1)) (SetLike.coe.{u2, u1} α β _inst_1) l (Union.union.{u1} (Set.{u1} β) (Set.instUnionSet.{u1} β) (SetLike.coe.{u2, u1} α β _inst_1 (LowerAdjoint.toFun.{u1, u2} (Set.{u1} β) α (PartialOrder.toPreorder.{u1} (Set.{u1} β) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} β) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} β) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} β) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} β) (Set.instCompleteBooleanAlgebraSet.{u1} β))))))) (PartialOrder.toPreorder.{u2} α (SetLike.instPartialOrder.{u2, u1} α β _inst_1)) (SetLike.coe.{u2, u1} α β _inst_1) l (SetLike.coe.{u2, u1} α β _inst_1 x))) (SetLike.coe.{u2, u1} α β _inst_1 (LowerAdjoint.toFun.{u1, u2} (Set.{u1} β) α (PartialOrder.toPreorder.{u1} (Set.{u1} β) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} β) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} β) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} β) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} β) (Set.instCompleteBooleanAlgebraSet.{u1} β))))))) (PartialOrder.toPreorder.{u2} α (SetLike.instPartialOrder.{u2, u1} α β _inst_1)) (SetLike.coe.{u2, u1} α β _inst_1) l (SetLike.coe.{u2, u1} α β _inst_1 y))))) (LowerAdjoint.toFun.{u1, u2} (Set.{u1} β) α (PartialOrder.toPreorder.{u1} (Set.{u1} β) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} β) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} β) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} β) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} β) (Set.instCompleteBooleanAlgebraSet.{u1} β))))))) (PartialOrder.toPreorder.{u2} α (SetLike.instPartialOrder.{u2, u1} α β _inst_1)) (SetLike.coe.{u2, u1} α β _inst_1) l (Union.union.{u1} (Set.{u1} β) (Set.instUnionSet.{u1} β) (SetLike.coe.{u2, u1} α β _inst_1 x) (SetLike.coe.{u2, u1} α β _inst_1 y)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align lower_adjoint.closure_union_closure LowerAdjoint.closure_union_closureₓ'. -/
 theorem closure_union_closure (x y : α) : l (l x ∪ l y) = l (x ∪ y) :=
   SetLike.coe_injective (l.ClosureOperator.closure_sup_closure x y)
 #align lower_adjoint.closure_union_closure LowerAdjoint.closure_union_closure
 
 /- warning: lower_adjoint.closure_Union_closure -> LowerAdjoint.closure_iUnion_closure is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {β : Type.{u3}} [_inst_1 : SetLike.{u1, u3} α β] (l : LowerAdjoint.{u3, u1} (Set.{u3} β) α (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} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u3} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u3}) [self : HasLiftT.{succ u1, succ u3} a b] => self.0) α (Set.{u3} β) (HasLiftT.mk.{succ u1, succ u3} α (Set.{u3} β) (CoeTCₓ.coe.{succ u1, succ u3} α (Set.{u3} β) (SetLike.Set.hasCoeT.{u1, u3} α β _inst_1))))) (f : ι -> α), Eq.{succ u1} α (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (LowerAdjoint.{u3, u1} (Set.{u3} β) α (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} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u3} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u3}) [self : HasLiftT.{succ u1, succ u3} a b] => self.0) α (Set.{u3} β) (HasLiftT.mk.{succ u1, succ u3} α (Set.{u3} β) (CoeTCₓ.coe.{succ u1, succ u3} α (Set.{u3} β) (SetLike.Set.hasCoeT.{u1, u3} α β _inst_1))))) (fun (_x : LowerAdjoint.{u3, u1} (Set.{u3} β) α (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} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u3} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u3}) [self : HasLiftT.{succ u1, succ u3} a b] => self.0) α (Set.{u3} β) (HasLiftT.mk.{succ u1, succ u3} α (Set.{u3} β) (CoeTCₓ.coe.{succ u1, succ u3} α (Set.{u3} β) (SetLike.Set.hasCoeT.{u1, u3} α β _inst_1))))) => (Set.{u3} β) -> α) (LowerAdjoint.hasCoeToFun.{u3, u1} (Set.{u3} β) α (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} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u3} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u3}) [self : HasLiftT.{succ u1, succ u3} a b] => self.0) α (Set.{u3} β) (HasLiftT.mk.{succ u1, succ u3} α (Set.{u3} β) (CoeTCₓ.coe.{succ u1, succ u3} α (Set.{u3} β) (SetLike.Set.hasCoeT.{u1, u3} α β _inst_1))))) l (Set.iUnion.{u3, u2} β ι (fun (i : ι) => (fun (a : Type.{u1}) (b : Type.{u3}) [self : HasLiftT.{succ u1, succ u3} a b] => self.0) α (Set.{u3} β) (HasLiftT.mk.{succ u1, succ u3} α (Set.{u3} β) (CoeTCₓ.coe.{succ u1, succ u3} α (Set.{u3} β) (SetLike.Set.hasCoeT.{u1, u3} α β _inst_1))) (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (LowerAdjoint.{u3, u1} (Set.{u3} β) α (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} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u3} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u3}) [self : HasLiftT.{succ u1, succ u3} a b] => self.0) α (Set.{u3} β) (HasLiftT.mk.{succ u1, succ u3} α (Set.{u3} β) (CoeTCₓ.coe.{succ u1, succ u3} α (Set.{u3} β) (SetLike.Set.hasCoeT.{u1, u3} α β _inst_1))))) (fun (_x : LowerAdjoint.{u3, u1} (Set.{u3} β) α (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} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u3} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u3}) [self : HasLiftT.{succ u1, succ u3} a b] => self.0) α (Set.{u3} β) (HasLiftT.mk.{succ u1, succ u3} α (Set.{u3} β) (CoeTCₓ.coe.{succ u1, succ u3} α (Set.{u3} β) (SetLike.Set.hasCoeT.{u1, u3} α β _inst_1))))) => (Set.{u3} β) -> α) (LowerAdjoint.hasCoeToFun.{u3, u1} (Set.{u3} β) α (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} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u3} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u3}) [self : HasLiftT.{succ u1, succ u3} a b] => self.0) α (Set.{u3} β) (HasLiftT.mk.{succ u1, succ u3} α (Set.{u3} β) (CoeTCₓ.coe.{succ u1, succ u3} α (Set.{u3} β) (SetLike.Set.hasCoeT.{u1, u3} α β _inst_1))))) l ((fun (a : Type.{u1}) (b : Type.{u3}) [self : HasLiftT.{succ u1, succ u3} a b] => self.0) α (Set.{u3} β) (HasLiftT.mk.{succ u1, succ u3} α (Set.{u3} β) (CoeTCₓ.coe.{succ u1, succ u3} α (Set.{u3} β) (SetLike.Set.hasCoeT.{u1, u3} α β _inst_1))) (f i)))))) (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (LowerAdjoint.{u3, u1} (Set.{u3} β) α (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} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u3} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u3}) [self : HasLiftT.{succ u1, succ u3} a b] => self.0) α (Set.{u3} β) (HasLiftT.mk.{succ u1, succ u3} α (Set.{u3} β) (CoeTCₓ.coe.{succ u1, succ u3} α (Set.{u3} β) (SetLike.Set.hasCoeT.{u1, u3} α β _inst_1))))) (fun (_x : LowerAdjoint.{u3, u1} (Set.{u3} β) α (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} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u3} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u3}) [self : HasLiftT.{succ u1, succ u3} a b] => self.0) α (Set.{u3} β) (HasLiftT.mk.{succ u1, succ u3} α (Set.{u3} β) (CoeTCₓ.coe.{succ u1, succ u3} α (Set.{u3} β) (SetLike.Set.hasCoeT.{u1, u3} α β _inst_1))))) => (Set.{u3} β) -> α) (LowerAdjoint.hasCoeToFun.{u3, u1} (Set.{u3} β) α (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} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u3} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u3}) [self : HasLiftT.{succ u1, succ u3} a b] => self.0) α (Set.{u3} β) (HasLiftT.mk.{succ u1, succ u3} α (Set.{u3} β) (CoeTCₓ.coe.{succ u1, succ u3} α (Set.{u3} β) (SetLike.Set.hasCoeT.{u1, u3} α β _inst_1))))) l (Set.iUnion.{u3, u2} β ι (fun (i : ι) => (fun (a : Type.{u1}) (b : Type.{u3}) [self : HasLiftT.{succ u1, succ u3} a b] => self.0) α (Set.{u3} β) (HasLiftT.mk.{succ u1, succ u3} α (Set.{u3} β) (CoeTCₓ.coe.{succ u1, succ u3} α (Set.{u3} β) (SetLike.Set.hasCoeT.{u1, u3} α β _inst_1))) (f i))))
-but is expected to have type
-  forall {α : Type.{u3}} {ι : Sort.{u1}} {β : Type.{u2}} [_inst_1 : SetLike.{u3, u2} α β] (l : LowerAdjoint.{u2, u3} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) (PartialOrder.toPreorder.{u3} α (SetLike.instPartialOrder.{u3, u2} α β _inst_1)) (SetLike.coe.{u3, u2} α β _inst_1)) (f : ι -> α), Eq.{succ u3} α (LowerAdjoint.toFun.{u2, u3} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) (PartialOrder.toPreorder.{u3} α (SetLike.instPartialOrder.{u3, u2} α β _inst_1)) (SetLike.coe.{u3, u2} α β _inst_1) l (Set.iUnion.{u2, u1} β ι (fun (i : ι) => SetLike.coe.{u3, u2} α β _inst_1 (LowerAdjoint.toFun.{u2, u3} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) (PartialOrder.toPreorder.{u3} α (SetLike.instPartialOrder.{u3, u2} α β _inst_1)) (SetLike.coe.{u3, u2} α β _inst_1) l (SetLike.coe.{u3, u2} α β _inst_1 (f i)))))) (LowerAdjoint.toFun.{u2, u3} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) (PartialOrder.toPreorder.{u3} α (SetLike.instPartialOrder.{u3, u2} α β _inst_1)) (SetLike.coe.{u3, u2} α β _inst_1) l (Set.iUnion.{u2, u1} β ι (fun (i : ι) => SetLike.coe.{u3, u2} α β _inst_1 (f i))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align lower_adjoint.closure_Union_closure LowerAdjoint.closure_iUnion_closureₓ'. -/
 @[simp]
 theorem closure_iUnion_closure (f : ι → α) : l (⋃ i, l (f i)) = l (⋃ i, f i) :=
@@ -862,10 +847,7 @@ theorem closure_iUnion_closure (f : ι → α) : l (⋃ i, l (f i)) = l (⋃ i,
 #align lower_adjoint.closure_Union_closure LowerAdjoint.closure_iUnion_closure
 
 /- warning: lower_adjoint.closure_Union₂_closure -> LowerAdjoint.closure_iUnion₂_closure is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {κ : ι -> Sort.{u3}} {β : Type.{u4}} [_inst_1 : SetLike.{u1, u4} α β] (l : LowerAdjoint.{u4, u1} (Set.{u4} β) α (PartialOrder.toPreorder.{u4} (Set.{u4} β) (CompleteSemilatticeInf.toPartialOrder.{u4} (Set.{u4} β) (CompleteLattice.toCompleteSemilatticeInf.{u4} (Set.{u4} β) (Order.Coframe.toCompleteLattice.{u4} (Set.{u4} β) (CompleteDistribLattice.toCoframe.{u4} (Set.{u4} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u4} (Set.{u4} β) (Set.completeBooleanAlgebra.{u4} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u4} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u4}) [self : HasLiftT.{succ u1, succ u4} a b] => self.0) α (Set.{u4} β) (HasLiftT.mk.{succ u1, succ u4} α (Set.{u4} β) (CoeTCₓ.coe.{succ u1, succ u4} α (Set.{u4} β) (SetLike.Set.hasCoeT.{u1, u4} α β _inst_1))))) (f : forall (i : ι), (κ i) -> α), Eq.{succ u1} α (coeFn.{max (succ u4) (succ u1), max (succ u4) (succ u1)} (LowerAdjoint.{u4, u1} (Set.{u4} β) α (PartialOrder.toPreorder.{u4} (Set.{u4} β) (CompleteSemilatticeInf.toPartialOrder.{u4} (Set.{u4} β) (CompleteLattice.toCompleteSemilatticeInf.{u4} (Set.{u4} β) (Order.Coframe.toCompleteLattice.{u4} (Set.{u4} β) (CompleteDistribLattice.toCoframe.{u4} (Set.{u4} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u4} (Set.{u4} β) (Set.completeBooleanAlgebra.{u4} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u4} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u4}) [self : HasLiftT.{succ u1, succ u4} a b] => self.0) α (Set.{u4} β) (HasLiftT.mk.{succ u1, succ u4} α (Set.{u4} β) (CoeTCₓ.coe.{succ u1, succ u4} α (Set.{u4} β) (SetLike.Set.hasCoeT.{u1, u4} α β _inst_1))))) (fun (_x : LowerAdjoint.{u4, u1} (Set.{u4} β) α (PartialOrder.toPreorder.{u4} (Set.{u4} β) (CompleteSemilatticeInf.toPartialOrder.{u4} (Set.{u4} β) (CompleteLattice.toCompleteSemilatticeInf.{u4} (Set.{u4} β) (Order.Coframe.toCompleteLattice.{u4} (Set.{u4} β) (CompleteDistribLattice.toCoframe.{u4} (Set.{u4} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u4} (Set.{u4} β) (Set.completeBooleanAlgebra.{u4} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u4} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u4}) [self : HasLiftT.{succ u1, succ u4} a b] => self.0) α (Set.{u4} β) (HasLiftT.mk.{succ u1, succ u4} α (Set.{u4} β) (CoeTCₓ.coe.{succ u1, succ u4} α (Set.{u4} β) (SetLike.Set.hasCoeT.{u1, u4} α β _inst_1))))) => (Set.{u4} β) -> α) (LowerAdjoint.hasCoeToFun.{u4, u1} (Set.{u4} β) α (PartialOrder.toPreorder.{u4} (Set.{u4} β) (CompleteSemilatticeInf.toPartialOrder.{u4} (Set.{u4} β) (CompleteLattice.toCompleteSemilatticeInf.{u4} (Set.{u4} β) (Order.Coframe.toCompleteLattice.{u4} (Set.{u4} β) (CompleteDistribLattice.toCoframe.{u4} (Set.{u4} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u4} (Set.{u4} β) (Set.completeBooleanAlgebra.{u4} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u4} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u4}) [self : HasLiftT.{succ u1, succ u4} a b] => self.0) α (Set.{u4} β) (HasLiftT.mk.{succ u1, succ u4} α (Set.{u4} β) (CoeTCₓ.coe.{succ u1, succ u4} α (Set.{u4} β) (SetLike.Set.hasCoeT.{u1, u4} α β _inst_1))))) l (Set.iUnion.{u4, u2} β ι (fun (i : ι) => Set.iUnion.{u4, u3} β (κ i) (fun (j : κ i) => (fun (a : Type.{u1}) (b : Type.{u4}) [self : HasLiftT.{succ u1, succ u4} a b] => self.0) α (Set.{u4} β) (HasLiftT.mk.{succ u1, succ u4} α (Set.{u4} β) (CoeTCₓ.coe.{succ u1, succ u4} α (Set.{u4} β) (SetLike.Set.hasCoeT.{u1, u4} α β _inst_1))) (coeFn.{max (succ u4) (succ u1), max (succ u4) (succ u1)} (LowerAdjoint.{u4, u1} (Set.{u4} β) α (PartialOrder.toPreorder.{u4} (Set.{u4} β) (CompleteSemilatticeInf.toPartialOrder.{u4} (Set.{u4} β) (CompleteLattice.toCompleteSemilatticeInf.{u4} (Set.{u4} β) (Order.Coframe.toCompleteLattice.{u4} (Set.{u4} β) (CompleteDistribLattice.toCoframe.{u4} (Set.{u4} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u4} (Set.{u4} β) (Set.completeBooleanAlgebra.{u4} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u4} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u4}) [self : HasLiftT.{succ u1, succ u4} a b] => self.0) α (Set.{u4} β) (HasLiftT.mk.{succ u1, succ u4} α (Set.{u4} β) (CoeTCₓ.coe.{succ u1, succ u4} α (Set.{u4} β) (SetLike.Set.hasCoeT.{u1, u4} α β _inst_1))))) (fun (_x : LowerAdjoint.{u4, u1} (Set.{u4} β) α (PartialOrder.toPreorder.{u4} (Set.{u4} β) (CompleteSemilatticeInf.toPartialOrder.{u4} (Set.{u4} β) (CompleteLattice.toCompleteSemilatticeInf.{u4} (Set.{u4} β) (Order.Coframe.toCompleteLattice.{u4} (Set.{u4} β) (CompleteDistribLattice.toCoframe.{u4} (Set.{u4} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u4} (Set.{u4} β) (Set.completeBooleanAlgebra.{u4} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u4} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u4}) [self : HasLiftT.{succ u1, succ u4} a b] => self.0) α (Set.{u4} β) (HasLiftT.mk.{succ u1, succ u4} α (Set.{u4} β) (CoeTCₓ.coe.{succ u1, succ u4} α (Set.{u4} β) (SetLike.Set.hasCoeT.{u1, u4} α β _inst_1))))) => (Set.{u4} β) -> α) (LowerAdjoint.hasCoeToFun.{u4, u1} (Set.{u4} β) α (PartialOrder.toPreorder.{u4} (Set.{u4} β) (CompleteSemilatticeInf.toPartialOrder.{u4} (Set.{u4} β) (CompleteLattice.toCompleteSemilatticeInf.{u4} (Set.{u4} β) (Order.Coframe.toCompleteLattice.{u4} (Set.{u4} β) (CompleteDistribLattice.toCoframe.{u4} (Set.{u4} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u4} (Set.{u4} β) (Set.completeBooleanAlgebra.{u4} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u4} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u4}) [self : HasLiftT.{succ u1, succ u4} a b] => self.0) α (Set.{u4} β) (HasLiftT.mk.{succ u1, succ u4} α (Set.{u4} β) (CoeTCₓ.coe.{succ u1, succ u4} α (Set.{u4} β) (SetLike.Set.hasCoeT.{u1, u4} α β _inst_1))))) l ((fun (a : Type.{u1}) (b : Type.{u4}) [self : HasLiftT.{succ u1, succ u4} a b] => self.0) α (Set.{u4} β) (HasLiftT.mk.{succ u1, succ u4} α (Set.{u4} β) (CoeTCₓ.coe.{succ u1, succ u4} α (Set.{u4} β) (SetLike.Set.hasCoeT.{u1, u4} α β _inst_1))) (f i j))))))) (coeFn.{max (succ u4) (succ u1), max (succ u4) (succ u1)} (LowerAdjoint.{u4, u1} (Set.{u4} β) α (PartialOrder.toPreorder.{u4} (Set.{u4} β) (CompleteSemilatticeInf.toPartialOrder.{u4} (Set.{u4} β) (CompleteLattice.toCompleteSemilatticeInf.{u4} (Set.{u4} β) (Order.Coframe.toCompleteLattice.{u4} (Set.{u4} β) (CompleteDistribLattice.toCoframe.{u4} (Set.{u4} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u4} (Set.{u4} β) (Set.completeBooleanAlgebra.{u4} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u4} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u4}) [self : HasLiftT.{succ u1, succ u4} a b] => self.0) α (Set.{u4} β) (HasLiftT.mk.{succ u1, succ u4} α (Set.{u4} β) (CoeTCₓ.coe.{succ u1, succ u4} α (Set.{u4} β) (SetLike.Set.hasCoeT.{u1, u4} α β _inst_1))))) (fun (_x : LowerAdjoint.{u4, u1} (Set.{u4} β) α (PartialOrder.toPreorder.{u4} (Set.{u4} β) (CompleteSemilatticeInf.toPartialOrder.{u4} (Set.{u4} β) (CompleteLattice.toCompleteSemilatticeInf.{u4} (Set.{u4} β) (Order.Coframe.toCompleteLattice.{u4} (Set.{u4} β) (CompleteDistribLattice.toCoframe.{u4} (Set.{u4} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u4} (Set.{u4} β) (Set.completeBooleanAlgebra.{u4} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u4} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u4}) [self : HasLiftT.{succ u1, succ u4} a b] => self.0) α (Set.{u4} β) (HasLiftT.mk.{succ u1, succ u4} α (Set.{u4} β) (CoeTCₓ.coe.{succ u1, succ u4} α (Set.{u4} β) (SetLike.Set.hasCoeT.{u1, u4} α β _inst_1))))) => (Set.{u4} β) -> α) (LowerAdjoint.hasCoeToFun.{u4, u1} (Set.{u4} β) α (PartialOrder.toPreorder.{u4} (Set.{u4} β) (CompleteSemilatticeInf.toPartialOrder.{u4} (Set.{u4} β) (CompleteLattice.toCompleteSemilatticeInf.{u4} (Set.{u4} β) (Order.Coframe.toCompleteLattice.{u4} (Set.{u4} β) (CompleteDistribLattice.toCoframe.{u4} (Set.{u4} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u4} (Set.{u4} β) (Set.completeBooleanAlgebra.{u4} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u4} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u4}) [self : HasLiftT.{succ u1, succ u4} a b] => self.0) α (Set.{u4} β) (HasLiftT.mk.{succ u1, succ u4} α (Set.{u4} β) (CoeTCₓ.coe.{succ u1, succ u4} α (Set.{u4} β) (SetLike.Set.hasCoeT.{u1, u4} α β _inst_1))))) l (Set.iUnion.{u4, u2} β ι (fun (i : ι) => Set.iUnion.{u4, u3} β (κ i) (fun (j : κ i) => (fun (a : Type.{u1}) (b : Type.{u4}) [self : HasLiftT.{succ u1, succ u4} a b] => self.0) α (Set.{u4} β) (HasLiftT.mk.{succ u1, succ u4} α (Set.{u4} β) (CoeTCₓ.coe.{succ u1, succ u4} α (Set.{u4} β) (SetLike.Set.hasCoeT.{u1, u4} α β _inst_1))) (f i j)))))
-but is expected to have type
-  forall {α : Type.{u4}} {ι : Sort.{u2}} {κ : ι -> Sort.{u1}} {β : Type.{u3}} [_inst_1 : SetLike.{u4, u3} α β] (l : LowerAdjoint.{u3, u4} (Set.{u3} β) α (PartialOrder.toPreorder.{u3} (Set.{u3} β) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} β) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} β) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} β) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} β) (Set.instCompleteBooleanAlgebraSet.{u3} β))))))) (PartialOrder.toPreorder.{u4} α (SetLike.instPartialOrder.{u4, u3} α β _inst_1)) (SetLike.coe.{u4, u3} α β _inst_1)) (f : forall (i : ι), (κ i) -> α), Eq.{succ u4} α (LowerAdjoint.toFun.{u3, u4} (Set.{u3} β) α (PartialOrder.toPreorder.{u3} (Set.{u3} β) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} β) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} β) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} β) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} β) (Set.instCompleteBooleanAlgebraSet.{u3} β))))))) (PartialOrder.toPreorder.{u4} α (SetLike.instPartialOrder.{u4, u3} α β _inst_1)) (SetLike.coe.{u4, u3} α β _inst_1) l (Set.iUnion.{u3, u2} β ι (fun (i : ι) => Set.iUnion.{u3, u1} β (κ i) (fun (j : κ i) => SetLike.coe.{u4, u3} α β _inst_1 (LowerAdjoint.toFun.{u3, u4} (Set.{u3} β) α (PartialOrder.toPreorder.{u3} (Set.{u3} β) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} β) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} β) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} β) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} β) (Set.instCompleteBooleanAlgebraSet.{u3} β))))))) (PartialOrder.toPreorder.{u4} α (SetLike.instPartialOrder.{u4, u3} α β _inst_1)) (SetLike.coe.{u4, u3} α β _inst_1) l (SetLike.coe.{u4, u3} α β _inst_1 (f i j))))))) (LowerAdjoint.toFun.{u3, u4} (Set.{u3} β) α (PartialOrder.toPreorder.{u3} (Set.{u3} β) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} β) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} β) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} β) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} β) (Set.instCompleteBooleanAlgebraSet.{u3} β))))))) (PartialOrder.toPreorder.{u4} α (SetLike.instPartialOrder.{u4, u3} α β _inst_1)) (SetLike.coe.{u4, u3} α β _inst_1) l (Set.iUnion.{u3, u2} β ι (fun (i : ι) => Set.iUnion.{u3, u1} β (κ i) (fun (j : κ i) => SetLike.coe.{u4, u3} α β _inst_1 (f i j)))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align lower_adjoint.closure_Union₂_closure LowerAdjoint.closure_iUnion₂_closureₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
Diff
@@ -110,7 +110,12 @@ theorem ext : ∀ c₁ c₂ : ClosureOperator α, (c₁ : α → α) = (c₂ : 
 #align closure_operator.ext ClosureOperator.ext
 -/
 
-#print ClosureOperator.mk' /-
+/- warning: closure_operator.mk' -> ClosureOperator.mk' is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] (f : α -> α), (Monotone.{u1, u1} α α (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u1} α _inst_1) f) -> (forall (x : α), LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x (f x)) -> (forall (x : α), LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (f (f x)) (f x)) -> (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] (f : α -> α), (Monotone.{u1, u1} α α (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u1} α _inst_1) f) -> (forall (x : α), LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x (f x)) -> (forall (x : α), LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (f (f x)) (f x)) -> (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1))
+Case conversion may be inaccurate. Consider using '#align closure_operator.mk' ClosureOperator.mk'ₓ'. -/
 /-- Constructor for a closure operator using the weaker idempotency axiom: `f (f x) ≤ f x`. -/
 @[simps]
 def mk' (f : α → α) (hf₁ : Monotone f) (hf₂ : ∀ x, x ≤ f x) (hf₃ : ∀ x, f (f x) ≤ f x) :
@@ -120,9 +125,13 @@ def mk' (f : α → α) (hf₁ : Monotone f) (hf₂ : ∀ x, x ≤ f x) (hf₃ :
   le_closure' := hf₂
   idempotent' x := (hf₃ x).antisymm (hf₁ (hf₂ x))
 #align closure_operator.mk' ClosureOperator.mk'
--/
 
-#print ClosureOperator.mk₂ /-
+/- warning: closure_operator.mk₂ -> ClosureOperator.mk₂ is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] (f : α -> α), (forall (x : α), LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x (f x)) -> (forall {{x : α}} {{y : α}}, (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x (f y)) -> (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (f x) (f y))) -> (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] (f : α -> α), (forall (x : α), LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x (f x)) -> (forall {{x : α}} {{y : α}}, (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x (f y)) -> (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (f x) (f y))) -> (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1))
+Case conversion may be inaccurate. Consider using '#align closure_operator.mk₂ ClosureOperator.mk₂ₓ'. -/
 /-- Convenience constructor for a closure operator using the weaker minimality axiom:
 `x ≤ f y → f x ≤ f y`, which is sometimes easier to prove in practice. -/
 @[simps]
@@ -133,9 +142,13 @@ def mk₂ (f : α → α) (hf : ∀ x, x ≤ f x) (hmin : ∀ ⦃x y⦄, x ≤ f
   le_closure' := hf
   idempotent' x := (hmin le_rfl).antisymm (hf _)
 #align closure_operator.mk₂ ClosureOperator.mk₂
--/
 
-#print ClosureOperator.mk₃ /-
+/- warning: closure_operator.mk₃ -> ClosureOperator.mk₃ is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] (f : α -> α) (p : α -> Prop), (forall (x : α), LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x (f x)) -> (forall (x : α), p (f x)) -> (forall {{x : α}} {{y : α}}, (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x y) -> (p y) -> (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (f x) y)) -> (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] (f : α -> α) (p : α -> Prop), (forall (x : α), LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x (f x)) -> (forall (x : α), p (f x)) -> (forall {{x : α}} {{y : α}}, (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x y) -> (p y) -> (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (f x) y)) -> (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1))
+Case conversion may be inaccurate. Consider using '#align closure_operator.mk₃ ClosureOperator.mk₃ₓ'. -/
 /-- Expanded out version of `mk₂`. `p` implies being closed. This constructor should be used when
 you already know a sufficient condition for being closed and using `mem_mk₃_closed` will avoid you
 the (slight) hassle of having to prove it both inside and outside the constructor. -/
@@ -144,18 +157,26 @@ def mk₃ (f : α → α) (p : α → Prop) (hf : ∀ x, x ≤ f x) (hfp : ∀ x
     (hmin : ∀ ⦃x y⦄, x ≤ y → p y → f x ≤ y) : ClosureOperator α :=
   mk₂ f hf fun x y hxy => hmin hxy (hfp y)
 #align closure_operator.mk₃ ClosureOperator.mk₃
--/
 
-#print ClosureOperator.closure_mem_mk₃ /-
+/- warning: closure_operator.closure_mem_mk₃ -> ClosureOperator.closure_mem_mk₃ is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] {f : α -> α} {p : α -> Prop} {hf : forall (x : α), LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x (f x)} {hfp : forall (x : α), p (f x)} {hmin : forall {{x : α}} {{y : α}}, (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x y) -> (p y) -> (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (f x) y)} (x : α), p (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (ClosureOperator.mk₃.{u1} α _inst_1 f p hf hfp hmin) x)
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] {f : α -> α} {p : α -> Prop} {hf : forall (x : α), LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x (f x)} {hfp : forall (x : α), p (f x)} {hmin : forall {{x : α}} {{y : α}}, (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x y) -> (p y) -> (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (f x) y)} (x : α), p (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u1} α _inst_1) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1) (ClosureOperator.mk₃.{u1} α _inst_1 f p hf hfp hmin)) x)
+Case conversion may be inaccurate. Consider using '#align closure_operator.closure_mem_mk₃ ClosureOperator.closure_mem_mk₃ₓ'. -/
 /-- This lemma shows that the image of `x` of a closure operator built from the `mk₃` constructor
 respects `p`, the property that was fed into it. -/
 theorem closure_mem_mk₃ {f : α → α} {p : α → Prop} {hf : ∀ x, x ≤ f x} {hfp : ∀ x, p (f x)}
     {hmin : ∀ ⦃x y⦄, x ≤ y → p y → f x ≤ y} (x : α) : p (mk₃ f p hf hfp hmin x) :=
   hfp x
 #align closure_operator.closure_mem_mk₃ ClosureOperator.closure_mem_mk₃
--/
 
-#print ClosureOperator.closure_le_mk₃_iff /-
+/- warning: closure_operator.closure_le_mk₃_iff -> ClosureOperator.closure_le_mk₃_iff is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] {f : α -> α} {p : α -> Prop} {hf : forall (x : α), LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x (f x)} {hfp : forall (x : α), p (f x)} {hmin : forall {{x : α}} {{y : α}}, (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x y) -> (p y) -> (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (f x) y)} {x : α} {y : α}, (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x y) -> (p y) -> (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (ClosureOperator.mk₃.{u1} α _inst_1 f p hf hfp hmin) x) y)
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] {f : α -> α} {p : α -> Prop} {hf : forall (x : α), LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x (f x)} {hfp : forall (x : α), p (f x)} {hmin : forall {{x : α}} {{y : α}}, (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x y) -> (p y) -> (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (f x) y)} {x : α} {y : α}, (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x y) -> (p y) -> (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u1} α _inst_1) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1) (ClosureOperator.mk₃.{u1} α _inst_1 f p hf hfp hmin)) x) y)
+Case conversion may be inaccurate. Consider using '#align closure_operator.closure_le_mk₃_iff ClosureOperator.closure_le_mk₃_iffₓ'. -/
 /-- Analogue of `closure_le_closed_iff_le` but with the `p` that was fed into the `mk₃` constructor.
 -/
 theorem closure_le_mk₃_iff {f : α → α} {p : α → Prop} {hf : ∀ x, x ≤ f x} {hfp : ∀ x, p (f x)}
@@ -163,7 +184,6 @@ theorem closure_le_mk₃_iff {f : α → α} {p : α → Prop} {hf : ∀ x, x 
     mk₃ f p hf hfp hmin x ≤ y :=
   hmin hxy hy
 #align closure_operator.closure_le_mk₃_iff ClosureOperator.closure_le_mk₃_iff
--/
 
 #print ClosureOperator.monotone /-
 @[mono]
@@ -172,13 +192,17 @@ theorem monotone : Monotone c :=
 #align closure_operator.monotone ClosureOperator.monotone
 -/
 
-#print ClosureOperator.le_closure /-
+/- warning: closure_operator.le_closure -> ClosureOperator.le_closure is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (x : α), LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) c x)
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (x : α), LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u1} α _inst_1) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1) c) x)
+Case conversion may be inaccurate. Consider using '#align closure_operator.le_closure ClosureOperator.le_closureₓ'. -/
 /-- Every element is less than its closure. This property is sometimes referred to as extensivity or
 inflationarity. -/
 theorem le_closure (x : α) : x ≤ c x :=
   c.le_closure' x
 #align closure_operator.le_closure ClosureOperator.le_closure
--/
 
 #print ClosureOperator.idempotent /-
 @[simp]
@@ -187,11 +211,15 @@ theorem idempotent (x : α) : c (c x) = c x :=
 #align closure_operator.idempotent ClosureOperator.idempotent
 -/
 
-#print ClosureOperator.le_closure_iff /-
+/- warning: closure_operator.le_closure_iff -> ClosureOperator.le_closure_iff is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (x : α) (y : α), Iff (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) c y)) (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) c x) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) c y))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (x : α) (y : α), Iff (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u1} α _inst_1) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1) c) y)) (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u1} α _inst_1) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1) c) x) (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u1} α _inst_1) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1) c) y))
+Case conversion may be inaccurate. Consider using '#align closure_operator.le_closure_iff ClosureOperator.le_closure_iffₓ'. -/
 theorem le_closure_iff (x y : α) : x ≤ c y ↔ c x ≤ c y :=
   ⟨fun h => c.idempotent y ▸ c.Monotone h, fun h => (c.le_closure x).trans h⟩
 #align closure_operator.le_closure_iff ClosureOperator.le_closure_iff
--/
 
 #print ClosureOperator.closed /-
 /-- An element `x` is closed for the closure operator `c` if it is a fixed point for it. -/
@@ -205,11 +233,15 @@ theorem mem_closed_iff (x : α) : x ∈ c.closed ↔ c x = x :=
 #align closure_operator.mem_closed_iff ClosureOperator.mem_closed_iff
 -/
 
-#print ClosureOperator.mem_closed_iff_closure_le /-
+/- warning: closure_operator.mem_closed_iff_closure_le -> ClosureOperator.mem_closed_iff_closure_le is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (x : α), Iff (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (ClosureOperator.closed.{u1} α _inst_1 c)) (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) c x) x)
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (x : α), Iff (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x (ClosureOperator.closed.{u1} α _inst_1 c)) (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u1} α _inst_1) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1) c) x) x)
+Case conversion may be inaccurate. Consider using '#align closure_operator.mem_closed_iff_closure_le ClosureOperator.mem_closed_iff_closure_leₓ'. -/
 theorem mem_closed_iff_closure_le (x : α) : x ∈ c.closed ↔ c x ≤ x :=
   ⟨le_of_eq, fun h => h.antisymm (c.le_closure x)⟩
 #align closure_operator.mem_closed_iff_closure_le ClosureOperator.mem_closed_iff_closure_le
--/
 
 #print ClosureOperator.closure_eq_self_of_mem_closed /-
 theorem closure_eq_self_of_mem_closed {x : α} (h : x ∈ c.closed) : c x = x :=
@@ -241,12 +273,16 @@ def toClosed (x : α) : c.closed :=
 #align closure_operator.to_closed ClosureOperator.toClosed
 -/
 
-#print ClosureOperator.closure_le_closed_iff_le /-
+/- warning: closure_operator.closure_le_closed_iff_le -> ClosureOperator.closure_le_closed_iff_le is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (x : α) {y : α}, (ClosureOperator.closed.{u1} α _inst_1 c y) -> (Iff (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) c x) y) (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x y))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (x : α) {y : α}, (ClosureOperator.closed.{u1} α _inst_1 c y) -> (Iff (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u1} α _inst_1) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1) c) x) y) (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x y))
+Case conversion may be inaccurate. Consider using '#align closure_operator.closure_le_closed_iff_le ClosureOperator.closure_le_closed_iff_leₓ'. -/
 @[simp]
 theorem closure_le_closed_iff_le (x : α) {y : α} (hy : c.closed y) : c x ≤ y ↔ x ≤ y := by
   rw [← c.closure_eq_self_of_mem_closed hy, ← le_closure_iff]
 #align closure_operator.closure_le_closed_iff_le ClosureOperator.closure_le_closed_iff_le
--/
 
 #print ClosureOperator.eq_mk₃_closed /-
 /-- A closure operator is equal to the closure operator obtained by feeding `c.closed` into the
@@ -261,13 +297,17 @@ theorem eq_mk₃_closed (c : ClosureOperator α) :
 #align closure_operator.eq_mk₃_closed ClosureOperator.eq_mk₃_closed
 -/
 
-#print ClosureOperator.mem_mk₃_closed /-
+/- warning: closure_operator.mem_mk₃_closed -> ClosureOperator.mem_mk₃_closed is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] {f : α -> α} {p : α -> Prop} {hf : forall (x : α), LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x (f x)} {hfp : forall (x : α), p (f x)} {hmin : forall {{x : α}} {{y : α}}, (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x y) -> (p y) -> (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (f x) y)} {x : α}, (p x) -> (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (ClosureOperator.closed.{u1} α _inst_1 (ClosureOperator.mk₃.{u1} α _inst_1 f p hf hfp hmin)))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] {f : α -> α} {p : α -> Prop} {hf : forall (x : α), LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x (f x)} {hfp : forall (x : α), p (f x)} {hmin : forall {{x : α}} {{y : α}}, (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x y) -> (p y) -> (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (f x) y)} {x : α}, (p x) -> (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x (ClosureOperator.closed.{u1} α _inst_1 (ClosureOperator.mk₃.{u1} α _inst_1 f p hf hfp hmin)))
+Case conversion may be inaccurate. Consider using '#align closure_operator.mem_mk₃_closed ClosureOperator.mem_mk₃_closedₓ'. -/
 /-- The property `p` fed into the `mk₃` constructor implies being closed. -/
 theorem mem_mk₃_closed {f : α → α} {p : α → Prop} {hf : ∀ x, x ≤ f x} {hfp : ∀ x, p (f x)}
     {hmin : ∀ ⦃x y⦄, x ≤ y → p y → f x ≤ y} {x : α} (hx : p x) : x ∈ (mk₃ f p hf hfp hmin).closed :=
   (hmin le_rfl hx).antisymm (hf _)
 #align closure_operator.mem_mk₃_closed ClosureOperator.mem_mk₃_closed
--/
 
 end PartialOrder
 
@@ -279,7 +319,7 @@ variable [PartialOrder α] [OrderTop α] (c : ClosureOperator α)
 
 /- warning: closure_operator.closure_top -> ClosureOperator.closure_top is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] [_inst_2 : OrderTop.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1))] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) c (Top.top.{u1} α (OrderTop.toHasTop.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) _inst_2))) (Top.top.{u1} α (OrderTop.toHasTop.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) _inst_2))
+  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] [_inst_2 : OrderTop.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1))] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) c (Top.top.{u1} α (OrderTop.toHasTop.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) _inst_2))) (Top.top.{u1} α (OrderTop.toHasTop.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) _inst_2))
 but is expected to have type
   forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] [_inst_2 : OrderTop.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1))] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)), Eq.{succ u1} α (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u1} α _inst_1) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1) c) (Top.top.{u1} α (OrderTop.toTop.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) _inst_2))) (Top.top.{u1} α (OrderTop.toTop.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) _inst_2))
 Case conversion may be inaccurate. Consider using '#align closure_operator.closure_top ClosureOperator.closure_topₓ'. -/
@@ -290,7 +330,7 @@ theorem closure_top : c ⊤ = ⊤ :=
 
 /- warning: closure_operator.top_mem_closed -> ClosureOperator.top_mem_closed is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] [_inst_2 : OrderTop.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1))] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)), Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) (Top.top.{u1} α (OrderTop.toHasTop.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) _inst_2)) (ClosureOperator.closed.{u1} α _inst_1 c)
+  forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] [_inst_2 : OrderTop.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1))] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)), Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) (Top.top.{u1} α (OrderTop.toHasTop.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) _inst_2)) (ClosureOperator.closed.{u1} α _inst_1 c)
 but is expected to have type
   forall {α : Type.{u1}} [_inst_1 : PartialOrder.{u1} α] [_inst_2 : OrderTop.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1))] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)), Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) (Top.top.{u1} α (OrderTop.toTop.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) _inst_2)) (ClosureOperator.closed.{u1} α _inst_1 c)
 Case conversion may be inaccurate. Consider using '#align closure_operator.top_mem_closed ClosureOperator.top_mem_closedₓ'. -/
@@ -302,7 +342,7 @@ end OrderTop
 
 /- warning: closure_operator.closure_inf_le -> ClosureOperator.closure_inf_le is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : SemilatticeInf.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) (x : α) (y : α), LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) c (Inf.inf.{u1} α (SemilatticeInf.toHasInf.{u1} α _inst_1) x y)) (Inf.inf.{u1} α (SemilatticeInf.toHasInf.{u1} α _inst_1) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) c x) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) c y))
+  forall {α : Type.{u1}} [_inst_1 : SemilatticeInf.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) (x : α) (y : α), LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) c (Inf.inf.{u1} α (SemilatticeInf.toHasInf.{u1} α _inst_1) x y)) (Inf.inf.{u1} α (SemilatticeInf.toHasInf.{u1} α _inst_1) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) c x) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) c y))
 but is expected to have type
   forall {α : Type.{u1}} [_inst_1 : SemilatticeInf.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) (x : α) (y : α), LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) c) (Inf.inf.{u1} α (SemilatticeInf.toInf.{u1} α _inst_1) x y)) (Inf.inf.{u1} α (SemilatticeInf.toInf.{u1} α _inst_1) (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) c) x) (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) c) y))
 Case conversion may be inaccurate. Consider using '#align closure_operator.closure_inf_le ClosureOperator.closure_inf_leₓ'. -/
@@ -317,7 +357,7 @@ variable [SemilatticeSup α] (c : ClosureOperator α)
 
 /- warning: closure_operator.closure_sup_closure_le -> ClosureOperator.closure_sup_closure_le is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : SemilatticeSup.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (x : α) (y : α), LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (Sup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) c x) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) c y)) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) c (Sup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) x y))
+  forall {α : Type.{u1}} [_inst_1 : SemilatticeSup.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (x : α) (y : α), LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (Sup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) c x) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) c y)) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) c (Sup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) x y))
 but is expected to have type
   forall {α : Type.{u1}} [_inst_1 : SemilatticeSup.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (x : α) (y : α), LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (Sup.sup.{u1} α (SemilatticeSup.toSup.{u1} α _inst_1) (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) c) x) (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) c) y)) (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) c) (Sup.sup.{u1} α (SemilatticeSup.toSup.{u1} α _inst_1) x y))
 Case conversion may be inaccurate. Consider using '#align closure_operator.closure_sup_closure_le ClosureOperator.closure_sup_closure_leₓ'. -/
@@ -475,7 +515,7 @@ theorem monotone : Monotone (u ∘ l) :=
 
 /- warning: lower_adjoint.le_closure -> LowerAdjoint.le_closure is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Preorder.{u1} α] [_inst_2 : Preorder.{u2} β] {u : β -> α} (l : LowerAdjoint.{u1, u2} α β _inst_1 _inst_2 u) (x : α), LE.le.{u1} α (Preorder.toLE.{u1} α _inst_1) x (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β _inst_1 _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β _inst_1 _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2 u) l x))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Preorder.{u1} α] [_inst_2 : Preorder.{u2} β] {u : β -> α} (l : LowerAdjoint.{u1, u2} α β _inst_1 _inst_2 u) (x : α), LE.le.{u1} α (Preorder.toHasLe.{u1} α _inst_1) x (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β _inst_1 _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β _inst_1 _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β _inst_1 _inst_2 u) l x))
 but is expected to have type
   forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : Preorder.{u2} α] [_inst_2 : Preorder.{u1} β] {u : β -> α} (l : LowerAdjoint.{u2, u1} α β _inst_1 _inst_2 u) (x : α), LE.le.{u2} α (Preorder.toLE.{u2} α _inst_1) x (u (LowerAdjoint.toFun.{u2, u1} α β _inst_1 _inst_2 u l x))
 Case conversion may be inaccurate. Consider using '#align lower_adjoint.le_closure LowerAdjoint.le_closureₓ'. -/
@@ -516,7 +556,7 @@ theorem idempotent (x : α) : u (l (u (l x))) = u (l x) :=
 
 /- warning: lower_adjoint.le_closure_iff -> LowerAdjoint.le_closure_iff is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PartialOrder.{u1} α] [_inst_2 : Preorder.{u2} β] {u : β -> α} (l : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_2 u) (x : α) (y : α), Iff (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_2 u) l y))) (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_2 u) l x)) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_2 u) l y)))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PartialOrder.{u1} α] [_inst_2 : Preorder.{u2} β] {u : β -> α} (l : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_2 u) (x : α) (y : α), Iff (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_2 u) l y))) (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_2 u) l x)) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_2 u) l y)))
 but is expected to have type
   forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PartialOrder.{u2} α] [_inst_2 : Preorder.{u1} β] {u : β -> α} (l : LowerAdjoint.{u2, u1} α β (PartialOrder.toPreorder.{u2} α _inst_1) _inst_2 u) (x : α) (y : α), Iff (LE.le.{u2} α (Preorder.toLE.{u2} α (PartialOrder.toPreorder.{u2} α _inst_1)) x (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α _inst_1) _inst_2 u l y))) (LE.le.{u2} α (Preorder.toLE.{u2} α (PartialOrder.toPreorder.{u2} α _inst_1)) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α _inst_1) _inst_2 u l x)) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α _inst_1) _inst_2 u l y)))
 Case conversion may be inaccurate. Consider using '#align lower_adjoint.le_closure_iff LowerAdjoint.le_closure_iffₓ'. -/
@@ -564,7 +604,7 @@ variable [PartialOrder α] [PartialOrder β] {u : β → α} (l : LowerAdjoint u
 
 /- warning: lower_adjoint.mem_closed_iff_closure_le -> LowerAdjoint.mem_closed_iff_closure_le is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PartialOrder.{u1} α] [_inst_2 : PartialOrder.{u2} β] {u : β -> α} (l : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u2} β _inst_2) u) (x : α), Iff (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (LowerAdjoint.closed.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u2} β _inst_2) u l)) (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u2} β _inst_2) u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u2} β _inst_2) u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u2} β _inst_2) u) l x)) x)
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PartialOrder.{u1} α] [_inst_2 : PartialOrder.{u2} β] {u : β -> α} (l : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u2} β _inst_2) u) (x : α), Iff (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (LowerAdjoint.closed.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u2} β _inst_2) u l)) (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u2} β _inst_2) u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u2} β _inst_2) u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u2} β _inst_2) u) l x)) x)
 but is expected to have type
   forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PartialOrder.{u2} α] [_inst_2 : PartialOrder.{u1} β] {u : β -> α} (l : LowerAdjoint.{u2, u1} α β (PartialOrder.toPreorder.{u2} α _inst_1) (PartialOrder.toPreorder.{u1} β _inst_2) u) (x : α), Iff (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x (LowerAdjoint.closed.{u2, u1} α β (PartialOrder.toPreorder.{u2} α _inst_1) (PartialOrder.toPreorder.{u1} β _inst_2) u l)) (LE.le.{u2} α (Preorder.toLE.{u2} α (PartialOrder.toPreorder.{u2} α _inst_1)) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α _inst_1) (PartialOrder.toPreorder.{u1} β _inst_2) u l x)) x)
 Case conversion may be inaccurate. Consider using '#align lower_adjoint.mem_closed_iff_closure_le LowerAdjoint.mem_closed_iff_closure_leₓ'. -/
@@ -603,7 +643,7 @@ def toClosed (x : α) : l.closed :=
 
 /- warning: lower_adjoint.closure_le_closed_iff_le -> LowerAdjoint.closure_le_closed_iff_le is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PartialOrder.{u1} α] [_inst_2 : PartialOrder.{u2} β] {u : β -> α} (l : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u2} β _inst_2) u) (x : α) {y : α}, (LowerAdjoint.closed.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u2} β _inst_2) u l y) -> (Iff (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u2} β _inst_2) u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u2} β _inst_2) u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u2} β _inst_2) u) l x)) y) (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x y))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PartialOrder.{u1} α] [_inst_2 : PartialOrder.{u2} β] {u : β -> α} (l : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u2} β _inst_2) u) (x : α) {y : α}, (LowerAdjoint.closed.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u2} β _inst_2) u l y) -> (Iff (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u2} β _inst_2) u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u2} β _inst_2) u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) (PartialOrder.toPreorder.{u2} β _inst_2) u) l x)) y) (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) x y))
 but is expected to have type
   forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PartialOrder.{u2} α] [_inst_2 : PartialOrder.{u1} β] {u : β -> α} (l : LowerAdjoint.{u2, u1} α β (PartialOrder.toPreorder.{u2} α _inst_1) (PartialOrder.toPreorder.{u1} β _inst_2) u) (x : α) {y : α}, (LowerAdjoint.closed.{u2, u1} α β (PartialOrder.toPreorder.{u2} α _inst_1) (PartialOrder.toPreorder.{u1} β _inst_2) u l y) -> (Iff (LE.le.{u2} α (Preorder.toLE.{u2} α (PartialOrder.toPreorder.{u2} α _inst_1)) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α _inst_1) (PartialOrder.toPreorder.{u1} β _inst_2) u l x)) y) (LE.le.{u2} α (Preorder.toLE.{u2} α (PartialOrder.toPreorder.{u2} α _inst_1)) x y))
 Case conversion may be inaccurate. Consider using '#align lower_adjoint.closure_le_closed_iff_le LowerAdjoint.closure_le_closed_iff_leₓ'. -/
@@ -616,7 +656,7 @@ end PartialOrder
 
 /- warning: lower_adjoint.closure_top -> LowerAdjoint.closure_top is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PartialOrder.{u1} α] [_inst_2 : OrderTop.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1))] [_inst_3 : Preorder.{u2} β] {u : β -> α} (l : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_3 u), Eq.{succ u1} α (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_3 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_3 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_3 u) l (Top.top.{u1} α (OrderTop.toHasTop.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) _inst_2)))) (Top.top.{u1} α (OrderTop.toHasTop.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) _inst_2))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PartialOrder.{u1} α] [_inst_2 : OrderTop.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1))] [_inst_3 : Preorder.{u2} β] {u : β -> α} (l : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_3 u), Eq.{succ u1} α (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_3 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_3 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α _inst_1) _inst_3 u) l (Top.top.{u1} α (OrderTop.toHasTop.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) _inst_2)))) (Top.top.{u1} α (OrderTop.toHasTop.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α _inst_1)) _inst_2))
 but is expected to have type
   forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PartialOrder.{u2} α] [_inst_2 : OrderTop.{u2} α (Preorder.toLE.{u2} α (PartialOrder.toPreorder.{u2} α _inst_1))] [_inst_3 : Preorder.{u1} β] {u : β -> α} (l : LowerAdjoint.{u2, u1} α β (PartialOrder.toPreorder.{u2} α _inst_1) _inst_3 u), Eq.{succ u2} α (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α _inst_1) _inst_3 u l (Top.top.{u2} α (OrderTop.toTop.{u2} α (Preorder.toLE.{u2} α (PartialOrder.toPreorder.{u2} α _inst_1)) _inst_2)))) (Top.top.{u2} α (OrderTop.toTop.{u2} α (Preorder.toLE.{u2} α (PartialOrder.toPreorder.{u2} α _inst_1)) _inst_2))
 Case conversion may be inaccurate. Consider using '#align lower_adjoint.closure_top LowerAdjoint.closure_topₓ'. -/
@@ -627,7 +667,7 @@ theorem closure_top [PartialOrder α] [OrderTop α] [Preorder β] {u : β → α
 
 /- warning: lower_adjoint.closure_inf_le -> LowerAdjoint.closure_inf_le is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SemilatticeInf.{u1} α] [_inst_2 : Preorder.{u2} β] {u : β -> α} (l : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (x : α) (y : α), LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l (Inf.inf.{u1} α (SemilatticeInf.toHasInf.{u1} α _inst_1) x y))) (Inf.inf.{u1} α (SemilatticeInf.toHasInf.{u1} α _inst_1) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l x)) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l y)))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SemilatticeInf.{u1} α] [_inst_2 : Preorder.{u2} β] {u : β -> α} (l : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (x : α) (y : α), LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l (Inf.inf.{u1} α (SemilatticeInf.toHasInf.{u1} α _inst_1) x y))) (Inf.inf.{u1} α (SemilatticeInf.toHasInf.{u1} α _inst_1) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l x)) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l y)))
 but is expected to have type
   forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : SemilatticeInf.{u2} α] [_inst_2 : Preorder.{u1} β] {u : β -> α} (l : LowerAdjoint.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeInf.toPartialOrder.{u2} α _inst_1)) _inst_2 u) (x : α) (y : α), LE.le.{u2} α (Preorder.toLE.{u2} α (PartialOrder.toPreorder.{u2} α (SemilatticeInf.toPartialOrder.{u2} α _inst_1))) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeInf.toPartialOrder.{u2} α _inst_1)) _inst_2 u l (Inf.inf.{u2} α (SemilatticeInf.toInf.{u2} α _inst_1) x y))) (Inf.inf.{u2} α (SemilatticeInf.toInf.{u2} α _inst_1) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeInf.toPartialOrder.{u2} α _inst_1)) _inst_2 u l x)) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeInf.toPartialOrder.{u2} α _inst_1)) _inst_2 u l y)))
 Case conversion may be inaccurate. Consider using '#align lower_adjoint.closure_inf_le LowerAdjoint.closure_inf_leₓ'. -/
@@ -642,7 +682,7 @@ variable [SemilatticeSup α] [Preorder β] {u : β → α} (l : LowerAdjoint u)
 
 /- warning: lower_adjoint.closure_sup_closure_le -> LowerAdjoint.closure_sup_closure_le is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SemilatticeSup.{u1} α] [_inst_2 : Preorder.{u2} β] {u : β -> α} (l : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (x : α) (y : α), LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (Sup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l x)) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l y))) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l (Sup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) x y)))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SemilatticeSup.{u1} α] [_inst_2 : Preorder.{u2} β] {u : β -> α} (l : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (x : α) (y : α), LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (Sup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l x)) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l y))) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l (Sup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) x y)))
 but is expected to have type
   forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : SemilatticeSup.{u2} α] [_inst_2 : Preorder.{u1} β] {u : β -> α} (l : LowerAdjoint.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u) (x : α) (y : α), LE.le.{u2} α (Preorder.toLE.{u2} α (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1))) (Sup.sup.{u2} α (SemilatticeSup.toSup.{u2} α _inst_1) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u l x)) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u l y))) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u l (Sup.sup.{u2} α (SemilatticeSup.toSup.{u2} α _inst_1) x y)))
 Case conversion may be inaccurate. Consider using '#align lower_adjoint.closure_sup_closure_le LowerAdjoint.closure_sup_closure_leₓ'. -/
@@ -738,7 +778,7 @@ theorem not_mem_of_not_mem_closure {s : Set β} {P : β} (hP : P ∉ l s) : P 
 
 /- warning: lower_adjoint.le_iff_subset -> LowerAdjoint.le_iff_subset is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SetLike.{u1, u2} α β] (l : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) (s : Set.{u2} β) (S : α), Iff (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) (fun (_x : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) => (Set.{u2} β) -> α) (LowerAdjoint.hasCoeToFun.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) l s) S) (HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) s ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))) S))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SetLike.{u1, u2} α β] (l : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) (s : Set.{u2} β) (S : α), Iff (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) (fun (_x : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) => (Set.{u2} β) -> α) (LowerAdjoint.hasCoeToFun.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) l s) S) (HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) s ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))) S))
 but is expected to have type
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SetLike.{u1, u2} α β] (l : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.instPartialOrder.{u1, u2} α β _inst_1)) (SetLike.coe.{u1, u2} α β _inst_1)) (s : Set.{u2} β) (S : α), Iff (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (SetLike.instPartialOrder.{u1, u2} α β _inst_1))) (LowerAdjoint.toFun.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.instPartialOrder.{u1, u2} α β _inst_1)) (SetLike.coe.{u1, u2} α β _inst_1) l s) S) (HasSubset.Subset.{u2} (Set.{u2} β) (Set.instHasSubsetSet.{u2} β) s (SetLike.coe.{u1, u2} α β _inst_1 S))
 Case conversion may be inaccurate. Consider using '#align lower_adjoint.le_iff_subset LowerAdjoint.le_iff_subsetₓ'. -/
@@ -760,7 +800,7 @@ theorem mem_iff (s : Set β) (x : β) : x ∈ l s ↔ ∀ S : α, s ⊆ S → x
 
 /- warning: lower_adjoint.eq_of_le -> LowerAdjoint.eq_of_le is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SetLike.{u1, u2} α β] (l : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) {s : Set.{u2} β} {S : α}, (HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) s ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))) S)) -> (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1))) S (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) (fun (_x : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) => (Set.{u2} β) -> α) (LowerAdjoint.hasCoeToFun.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) l s)) -> (Eq.{succ u1} α (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) (fun (_x : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) => (Set.{u2} β) -> α) (LowerAdjoint.hasCoeToFun.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) l s) S)
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SetLike.{u1, u2} α β] (l : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) {s : Set.{u2} β} {S : α}, (HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) s ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))) S)) -> (LE.le.{u1} α (Preorder.toHasLe.{u1} α (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1))) S (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) (fun (_x : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) => (Set.{u2} β) -> α) (LowerAdjoint.hasCoeToFun.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) l s)) -> (Eq.{succ u1} α (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) (fun (_x : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) => (Set.{u2} β) -> α) (LowerAdjoint.hasCoeToFun.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u2} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u2}) [self : HasLiftT.{succ u1, succ u2} a b] => self.0) α (Set.{u2} β) (HasLiftT.mk.{succ u1, succ u2} α (Set.{u2} β) (CoeTCₓ.coe.{succ u1, succ u2} α (Set.{u2} β) (SetLike.Set.hasCoeT.{u1, u2} α β _inst_1))))) l s) S)
 but is expected to have type
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SetLike.{u1, u2} α β] (l : LowerAdjoint.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.instPartialOrder.{u1, u2} α β _inst_1)) (SetLike.coe.{u1, u2} α β _inst_1)) {s : Set.{u2} β} {S : α}, (HasSubset.Subset.{u2} (Set.{u2} β) (Set.instHasSubsetSet.{u2} β) s (SetLike.coe.{u1, u2} α β _inst_1 S)) -> (LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (SetLike.instPartialOrder.{u1, u2} α β _inst_1))) S (LowerAdjoint.toFun.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.instPartialOrder.{u1, u2} α β _inst_1)) (SetLike.coe.{u1, u2} α β _inst_1) l s)) -> (Eq.{succ u1} α (LowerAdjoint.toFun.{u2, u1} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.instPartialOrder.{u1, u2} α β _inst_1)) (SetLike.coe.{u1, u2} α β _inst_1) l s) S)
 Case conversion may be inaccurate. Consider using '#align lower_adjoint.eq_of_le LowerAdjoint.eq_of_leₓ'. -/
Diff
@@ -363,32 +363,32 @@ section CompleteLattice
 
 variable [CompleteLattice α] (c : ClosureOperator α)
 
-/- warning: closure_operator.closure_supr_closure -> ClosureOperator.closure_supᵢ_closure is a dubious translation:
+/- warning: closure_operator.closure_supr_closure -> ClosureOperator.closure_iSup_closure is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} [_inst_1 : CompleteLattice.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) (f : ι -> α), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) c (supᵢ.{u1, u2} α (CompleteSemilatticeSup.toHasSup.{u1} α (CompleteLattice.toCompleteSemilatticeSup.{u1} α _inst_1)) ι (fun (i : ι) => coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) c (f i)))) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) c (supᵢ.{u1, u2} α (CompleteSemilatticeSup.toHasSup.{u1} α (CompleteLattice.toCompleteSemilatticeSup.{u1} α _inst_1)) ι (fun (i : ι) => f i)))
+  forall {α : Type.{u1}} {ι : Sort.{u2}} [_inst_1 : CompleteLattice.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) (f : ι -> α), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) c (iSup.{u1, u2} α (CompleteSemilatticeSup.toHasSup.{u1} α (CompleteLattice.toCompleteSemilatticeSup.{u1} α _inst_1)) ι (fun (i : ι) => coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) c (f i)))) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) c (iSup.{u1, u2} α (CompleteSemilatticeSup.toHasSup.{u1} α (CompleteLattice.toCompleteSemilatticeSup.{u1} α _inst_1)) ι (fun (i : ι) => f i)))
 but is expected to have type
-  forall {α : Type.{u2}} {ι : Sort.{u1}} [_inst_1 : CompleteLattice.{u2} α] (c : ClosureOperator.{u2} α (PartialOrder.toPreorder.{u2} α (CompleteSemilatticeInf.toPartialOrder.{u2} α (CompleteLattice.toCompleteSemilatticeInf.{u2} α _inst_1)))) (f : ι -> α), Eq.{succ u2} α (OrderHom.toFun.{u2, u2} α α (PartialOrder.toPreorder.{u2} α (CompleteSemilatticeInf.toPartialOrder.{u2} α (CompleteLattice.toCompleteSemilatticeInf.{u2} α _inst_1))) (PartialOrder.toPreorder.{u2} α (CompleteSemilatticeInf.toPartialOrder.{u2} α (CompleteLattice.toCompleteSemilatticeInf.{u2} α _inst_1))) (ClosureOperator.toOrderHom.{u2} α (PartialOrder.toPreorder.{u2} α (CompleteSemilatticeInf.toPartialOrder.{u2} α (CompleteLattice.toCompleteSemilatticeInf.{u2} α _inst_1))) c) (supᵢ.{u2, u1} α (CompleteLattice.toSupSet.{u2} α _inst_1) ι (fun (i : ι) => OrderHom.toFun.{u2, u2} α α (PartialOrder.toPreorder.{u2} α (CompleteSemilatticeInf.toPartialOrder.{u2} α (CompleteLattice.toCompleteSemilatticeInf.{u2} α _inst_1))) (PartialOrder.toPreorder.{u2} α (CompleteSemilatticeInf.toPartialOrder.{u2} α (CompleteLattice.toCompleteSemilatticeInf.{u2} α _inst_1))) (ClosureOperator.toOrderHom.{u2} α (PartialOrder.toPreorder.{u2} α (CompleteSemilatticeInf.toPartialOrder.{u2} α (CompleteLattice.toCompleteSemilatticeInf.{u2} α _inst_1))) c) (f i)))) (OrderHom.toFun.{u2, u2} α α (PartialOrder.toPreorder.{u2} α (CompleteSemilatticeInf.toPartialOrder.{u2} α (CompleteLattice.toCompleteSemilatticeInf.{u2} α _inst_1))) (PartialOrder.toPreorder.{u2} α (CompleteSemilatticeInf.toPartialOrder.{u2} α (CompleteLattice.toCompleteSemilatticeInf.{u2} α _inst_1))) (ClosureOperator.toOrderHom.{u2} α (PartialOrder.toPreorder.{u2} α (CompleteSemilatticeInf.toPartialOrder.{u2} α (CompleteLattice.toCompleteSemilatticeInf.{u2} α _inst_1))) c) (supᵢ.{u2, u1} α (CompleteLattice.toSupSet.{u2} α _inst_1) ι (fun (i : ι) => f i)))
-Case conversion may be inaccurate. Consider using '#align closure_operator.closure_supr_closure ClosureOperator.closure_supᵢ_closureₓ'. -/
+  forall {α : Type.{u2}} {ι : Sort.{u1}} [_inst_1 : CompleteLattice.{u2} α] (c : ClosureOperator.{u2} α (PartialOrder.toPreorder.{u2} α (CompleteSemilatticeInf.toPartialOrder.{u2} α (CompleteLattice.toCompleteSemilatticeInf.{u2} α _inst_1)))) (f : ι -> α), Eq.{succ u2} α (OrderHom.toFun.{u2, u2} α α (PartialOrder.toPreorder.{u2} α (CompleteSemilatticeInf.toPartialOrder.{u2} α (CompleteLattice.toCompleteSemilatticeInf.{u2} α _inst_1))) (PartialOrder.toPreorder.{u2} α (CompleteSemilatticeInf.toPartialOrder.{u2} α (CompleteLattice.toCompleteSemilatticeInf.{u2} α _inst_1))) (ClosureOperator.toOrderHom.{u2} α (PartialOrder.toPreorder.{u2} α (CompleteSemilatticeInf.toPartialOrder.{u2} α (CompleteLattice.toCompleteSemilatticeInf.{u2} α _inst_1))) c) (iSup.{u2, u1} α (CompleteLattice.toSupSet.{u2} α _inst_1) ι (fun (i : ι) => OrderHom.toFun.{u2, u2} α α (PartialOrder.toPreorder.{u2} α (CompleteSemilatticeInf.toPartialOrder.{u2} α (CompleteLattice.toCompleteSemilatticeInf.{u2} α _inst_1))) (PartialOrder.toPreorder.{u2} α (CompleteSemilatticeInf.toPartialOrder.{u2} α (CompleteLattice.toCompleteSemilatticeInf.{u2} α _inst_1))) (ClosureOperator.toOrderHom.{u2} α (PartialOrder.toPreorder.{u2} α (CompleteSemilatticeInf.toPartialOrder.{u2} α (CompleteLattice.toCompleteSemilatticeInf.{u2} α _inst_1))) c) (f i)))) (OrderHom.toFun.{u2, u2} α α (PartialOrder.toPreorder.{u2} α (CompleteSemilatticeInf.toPartialOrder.{u2} α (CompleteLattice.toCompleteSemilatticeInf.{u2} α _inst_1))) (PartialOrder.toPreorder.{u2} α (CompleteSemilatticeInf.toPartialOrder.{u2} α (CompleteLattice.toCompleteSemilatticeInf.{u2} α _inst_1))) (ClosureOperator.toOrderHom.{u2} α (PartialOrder.toPreorder.{u2} α (CompleteSemilatticeInf.toPartialOrder.{u2} α (CompleteLattice.toCompleteSemilatticeInf.{u2} α _inst_1))) c) (iSup.{u2, u1} α (CompleteLattice.toSupSet.{u2} α _inst_1) ι (fun (i : ι) => f i)))
+Case conversion may be inaccurate. Consider using '#align closure_operator.closure_supr_closure ClosureOperator.closure_iSup_closureₓ'. -/
 @[simp]
-theorem closure_supᵢ_closure (f : ι → α) : c (⨆ i, c (f i)) = c (⨆ i, f i) :=
-  le_antisymm ((c.le_closure_iff _ _).1 <| supᵢ_le fun i => c.Monotone <| le_supᵢ f i) <|
-    c.Monotone <| supᵢ_mono fun i => c.le_closure _
-#align closure_operator.closure_supr_closure ClosureOperator.closure_supᵢ_closure
+theorem closure_iSup_closure (f : ι → α) : c (⨆ i, c (f i)) = c (⨆ i, f i) :=
+  le_antisymm ((c.le_closure_iff _ _).1 <| iSup_le fun i => c.Monotone <| le_iSup f i) <|
+    c.Monotone <| iSup_mono fun i => c.le_closure _
+#align closure_operator.closure_supr_closure ClosureOperator.closure_iSup_closure
 
-/- warning: closure_operator.closure_supr₂_closure -> ClosureOperator.closure_supᵢ₂_closure is a dubious translation:
+/- warning: closure_operator.closure_supr₂_closure -> ClosureOperator.closure_iSup₂_closure is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {κ : ι -> Sort.{u3}} [_inst_1 : CompleteLattice.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) (f : forall (i : ι), (κ i) -> α), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) c (supᵢ.{u1, u2} α (CompleteSemilatticeSup.toHasSup.{u1} α (CompleteLattice.toCompleteSemilatticeSup.{u1} α _inst_1)) ι (fun (i : ι) => supᵢ.{u1, u3} α (CompleteSemilatticeSup.toHasSup.{u1} α (CompleteLattice.toCompleteSemilatticeSup.{u1} α _inst_1)) (κ i) (fun (j : κ i) => coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) c (f i j))))) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) c (supᵢ.{u1, u2} α (CompleteSemilatticeSup.toHasSup.{u1} α (CompleteLattice.toCompleteSemilatticeSup.{u1} α _inst_1)) ι (fun (i : ι) => supᵢ.{u1, u3} α (CompleteSemilatticeSup.toHasSup.{u1} α (CompleteLattice.toCompleteSemilatticeSup.{u1} α _inst_1)) (κ i) (fun (j : κ i) => f i j))))
+  forall {α : Type.{u1}} {ι : Sort.{u2}} {κ : ι -> Sort.{u3}} [_inst_1 : CompleteLattice.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) (f : forall (i : ι), (κ i) -> α), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) c (iSup.{u1, u2} α (CompleteSemilatticeSup.toHasSup.{u1} α (CompleteLattice.toCompleteSemilatticeSup.{u1} α _inst_1)) ι (fun (i : ι) => iSup.{u1, u3} α (CompleteSemilatticeSup.toHasSup.{u1} α (CompleteLattice.toCompleteSemilatticeSup.{u1} α _inst_1)) (κ i) (fun (j : κ i) => coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) c (f i j))))) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1)))) c (iSup.{u1, u2} α (CompleteSemilatticeSup.toHasSup.{u1} α (CompleteLattice.toCompleteSemilatticeSup.{u1} α _inst_1)) ι (fun (i : ι) => iSup.{u1, u3} α (CompleteSemilatticeSup.toHasSup.{u1} α (CompleteLattice.toCompleteSemilatticeSup.{u1} α _inst_1)) (κ i) (fun (j : κ i) => f i j))))
 but is expected to have type
-  forall {α : Type.{u3}} {ι : Sort.{u2}} {κ : ι -> Sort.{u1}} [_inst_1 : CompleteLattice.{u3} α] (c : ClosureOperator.{u3} α (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α _inst_1)))) (f : forall (i : ι), (κ i) -> α), Eq.{succ u3} α (OrderHom.toFun.{u3, u3} α α (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α _inst_1))) (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α _inst_1))) (ClosureOperator.toOrderHom.{u3} α (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α _inst_1))) c) (supᵢ.{u3, u2} α (CompleteLattice.toSupSet.{u3} α _inst_1) ι (fun (i : ι) => supᵢ.{u3, u1} α (CompleteLattice.toSupSet.{u3} α _inst_1) (κ i) (fun (j : κ i) => OrderHom.toFun.{u3, u3} α α (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α _inst_1))) (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α _inst_1))) (ClosureOperator.toOrderHom.{u3} α (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α _inst_1))) c) (f i j))))) (OrderHom.toFun.{u3, u3} α α (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α _inst_1))) (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α _inst_1))) (ClosureOperator.toOrderHom.{u3} α (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α _inst_1))) c) (supᵢ.{u3, u2} α (CompleteLattice.toSupSet.{u3} α _inst_1) ι (fun (i : ι) => supᵢ.{u3, u1} α (CompleteLattice.toSupSet.{u3} α _inst_1) (κ i) (fun (j : κ i) => f i j))))
-Case conversion may be inaccurate. Consider using '#align closure_operator.closure_supr₂_closure ClosureOperator.closure_supᵢ₂_closureₓ'. -/
+  forall {α : Type.{u3}} {ι : Sort.{u2}} {κ : ι -> Sort.{u1}} [_inst_1 : CompleteLattice.{u3} α] (c : ClosureOperator.{u3} α (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α _inst_1)))) (f : forall (i : ι), (κ i) -> α), Eq.{succ u3} α (OrderHom.toFun.{u3, u3} α α (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α _inst_1))) (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α _inst_1))) (ClosureOperator.toOrderHom.{u3} α (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α _inst_1))) c) (iSup.{u3, u2} α (CompleteLattice.toSupSet.{u3} α _inst_1) ι (fun (i : ι) => iSup.{u3, u1} α (CompleteLattice.toSupSet.{u3} α _inst_1) (κ i) (fun (j : κ i) => OrderHom.toFun.{u3, u3} α α (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α _inst_1))) (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α _inst_1))) (ClosureOperator.toOrderHom.{u3} α (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α _inst_1))) c) (f i j))))) (OrderHom.toFun.{u3, u3} α α (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α _inst_1))) (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α _inst_1))) (ClosureOperator.toOrderHom.{u3} α (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α _inst_1))) c) (iSup.{u3, u2} α (CompleteLattice.toSupSet.{u3} α _inst_1) ι (fun (i : ι) => iSup.{u3, u1} α (CompleteLattice.toSupSet.{u3} α _inst_1) (κ i) (fun (j : κ i) => f i j))))
+Case conversion may be inaccurate. Consider using '#align closure_operator.closure_supr₂_closure ClosureOperator.closure_iSup₂_closureₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 @[simp]
-theorem closure_supᵢ₂_closure (f : ∀ i, κ i → α) :
+theorem closure_iSup₂_closure (f : ∀ i, κ i → α) :
     c (⨆ (i) (j), c (f i j)) = c (⨆ (i) (j), f i j) :=
-  le_antisymm ((c.le_closure_iff _ _).1 <| supᵢ₂_le fun i j => c.Monotone <| le_supᵢ₂ i j) <|
-    c.Monotone <| supᵢ₂_mono fun i j => c.le_closure _
-#align closure_operator.closure_supr₂_closure ClosureOperator.closure_supᵢ₂_closure
+  le_antisymm ((c.le_closure_iff _ _).1 <| iSup₂_le fun i j => c.Monotone <| le_iSup₂ i j) <|
+    c.Monotone <| iSup₂_mono fun i j => c.le_closure _
+#align closure_operator.closure_supr₂_closure ClosureOperator.closure_iSup₂_closure
 
 end CompleteLattice
 
@@ -686,28 +686,28 @@ section CompleteLattice
 
 variable [CompleteLattice α] [Preorder β] {u : β → α} (l : LowerAdjoint u)
 
-/- warning: lower_adjoint.closure_supr_closure -> LowerAdjoint.closure_supᵢ_closure is a dubious translation:
+/- warning: lower_adjoint.closure_supr_closure -> LowerAdjoint.closure_iSup_closure is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {β : Type.{u3}} [_inst_1 : CompleteLattice.{u1} α] [_inst_2 : Preorder.{u3} β] {u : β -> α} (l : LowerAdjoint.{u1, u3} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) (f : ι -> α), Eq.{succ u1} α (u (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (LowerAdjoint.{u1, u3} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u3} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u3} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) l (supᵢ.{u1, u2} α (CompleteSemilatticeSup.toHasSup.{u1} α (CompleteLattice.toCompleteSemilatticeSup.{u1} α _inst_1)) ι (fun (i : ι) => u (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (LowerAdjoint.{u1, u3} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u3} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u3} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) l (f i)))))) (u (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (LowerAdjoint.{u1, u3} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u3} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u3} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) l (supᵢ.{u1, u2} α (CompleteSemilatticeSup.toHasSup.{u1} α (CompleteLattice.toCompleteSemilatticeSup.{u1} α _inst_1)) ι (fun (i : ι) => f i))))
+  forall {α : Type.{u1}} {ι : Sort.{u2}} {β : Type.{u3}} [_inst_1 : CompleteLattice.{u1} α] [_inst_2 : Preorder.{u3} β] {u : β -> α} (l : LowerAdjoint.{u1, u3} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) (f : ι -> α), Eq.{succ u1} α (u (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (LowerAdjoint.{u1, u3} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u3} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u3} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) l (iSup.{u1, u2} α (CompleteSemilatticeSup.toHasSup.{u1} α (CompleteLattice.toCompleteSemilatticeSup.{u1} α _inst_1)) ι (fun (i : ι) => u (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (LowerAdjoint.{u1, u3} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u3} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u3} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) l (f i)))))) (u (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (LowerAdjoint.{u1, u3} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u3} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u3} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) l (iSup.{u1, u2} α (CompleteSemilatticeSup.toHasSup.{u1} α (CompleteLattice.toCompleteSemilatticeSup.{u1} α _inst_1)) ι (fun (i : ι) => f i))))
 but is expected to have type
-  forall {α : Type.{u3}} {ι : Sort.{u1}} {β : Type.{u2}} [_inst_1 : CompleteLattice.{u3} α] [_inst_2 : Preorder.{u2} β] {u : β -> α} (l : LowerAdjoint.{u3, u2} α β (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α _inst_1))) _inst_2 u) (f : ι -> α), Eq.{succ u3} α (u (LowerAdjoint.toFun.{u3, u2} α β (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α _inst_1))) _inst_2 u l (supᵢ.{u3, u1} α (CompleteLattice.toSupSet.{u3} α _inst_1) ι (fun (i : ι) => u (LowerAdjoint.toFun.{u3, u2} α β (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α _inst_1))) _inst_2 u l (f i)))))) (u (LowerAdjoint.toFun.{u3, u2} α β (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α _inst_1))) _inst_2 u l (supᵢ.{u3, u1} α (CompleteLattice.toSupSet.{u3} α _inst_1) ι (fun (i : ι) => f i))))
-Case conversion may be inaccurate. Consider using '#align lower_adjoint.closure_supr_closure LowerAdjoint.closure_supᵢ_closureₓ'. -/
-theorem closure_supᵢ_closure (f : ι → α) : u (l (⨆ i, u (l (f i)))) = u (l (⨆ i, f i)) :=
-  l.ClosureOperator.closure_supᵢ_closure _
-#align lower_adjoint.closure_supr_closure LowerAdjoint.closure_supᵢ_closure
+  forall {α : Type.{u3}} {ι : Sort.{u1}} {β : Type.{u2}} [_inst_1 : CompleteLattice.{u3} α] [_inst_2 : Preorder.{u2} β] {u : β -> α} (l : LowerAdjoint.{u3, u2} α β (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α _inst_1))) _inst_2 u) (f : ι -> α), Eq.{succ u3} α (u (LowerAdjoint.toFun.{u3, u2} α β (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α _inst_1))) _inst_2 u l (iSup.{u3, u1} α (CompleteLattice.toSupSet.{u3} α _inst_1) ι (fun (i : ι) => u (LowerAdjoint.toFun.{u3, u2} α β (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α _inst_1))) _inst_2 u l (f i)))))) (u (LowerAdjoint.toFun.{u3, u2} α β (PartialOrder.toPreorder.{u3} α (CompleteSemilatticeInf.toPartialOrder.{u3} α (CompleteLattice.toCompleteSemilatticeInf.{u3} α _inst_1))) _inst_2 u l (iSup.{u3, u1} α (CompleteLattice.toSupSet.{u3} α _inst_1) ι (fun (i : ι) => f i))))
+Case conversion may be inaccurate. Consider using '#align lower_adjoint.closure_supr_closure LowerAdjoint.closure_iSup_closureₓ'. -/
+theorem closure_iSup_closure (f : ι → α) : u (l (⨆ i, u (l (f i)))) = u (l (⨆ i, f i)) :=
+  l.ClosureOperator.closure_iSup_closure _
+#align lower_adjoint.closure_supr_closure LowerAdjoint.closure_iSup_closure
 
-/- warning: lower_adjoint.closure_supr₂_closure -> LowerAdjoint.closure_supᵢ₂_closure is a dubious translation:
+/- warning: lower_adjoint.closure_supr₂_closure -> LowerAdjoint.closure_iSup₂_closure is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {κ : ι -> Sort.{u3}} {β : Type.{u4}} [_inst_1 : CompleteLattice.{u1} α] [_inst_2 : Preorder.{u4} β] {u : β -> α} (l : LowerAdjoint.{u1, u4} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) (f : forall (i : ι), (κ i) -> α), Eq.{succ u1} α (u (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (LowerAdjoint.{u1, u4} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u4} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u4} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) l (supᵢ.{u1, u2} α (CompleteSemilatticeSup.toHasSup.{u1} α (CompleteLattice.toCompleteSemilatticeSup.{u1} α _inst_1)) ι (fun (i : ι) => supᵢ.{u1, u3} α (CompleteSemilatticeSup.toHasSup.{u1} α (CompleteLattice.toCompleteSemilatticeSup.{u1} α _inst_1)) (κ i) (fun (j : κ i) => u (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (LowerAdjoint.{u1, u4} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u4} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u4} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) l (f i j))))))) (u (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (LowerAdjoint.{u1, u4} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u4} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u4} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) l (supᵢ.{u1, u2} α (CompleteSemilatticeSup.toHasSup.{u1} α (CompleteLattice.toCompleteSemilatticeSup.{u1} α _inst_1)) ι (fun (i : ι) => supᵢ.{u1, u3} α (CompleteSemilatticeSup.toHasSup.{u1} α (CompleteLattice.toCompleteSemilatticeSup.{u1} α _inst_1)) (κ i) (fun (j : κ i) => f i j)))))
+  forall {α : Type.{u1}} {ι : Sort.{u2}} {κ : ι -> Sort.{u3}} {β : Type.{u4}} [_inst_1 : CompleteLattice.{u1} α] [_inst_2 : Preorder.{u4} β] {u : β -> α} (l : LowerAdjoint.{u1, u4} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) (f : forall (i : ι), (κ i) -> α), Eq.{succ u1} α (u (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (LowerAdjoint.{u1, u4} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u4} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u4} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) l (iSup.{u1, u2} α (CompleteSemilatticeSup.toHasSup.{u1} α (CompleteLattice.toCompleteSemilatticeSup.{u1} α _inst_1)) ι (fun (i : ι) => iSup.{u1, u3} α (CompleteSemilatticeSup.toHasSup.{u1} α (CompleteLattice.toCompleteSemilatticeSup.{u1} α _inst_1)) (κ i) (fun (j : κ i) => u (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (LowerAdjoint.{u1, u4} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u4} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u4} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) l (f i j))))))) (u (coeFn.{max (succ u1) (succ u4), max (succ u1) (succ u4)} (LowerAdjoint.{u1, u4} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u4} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u4} α β (PartialOrder.toPreorder.{u1} α (CompleteSemilatticeInf.toPartialOrder.{u1} α (CompleteLattice.toCompleteSemilatticeInf.{u1} α _inst_1))) _inst_2 u) l (iSup.{u1, u2} α (CompleteSemilatticeSup.toHasSup.{u1} α (CompleteLattice.toCompleteSemilatticeSup.{u1} α _inst_1)) ι (fun (i : ι) => iSup.{u1, u3} α (CompleteSemilatticeSup.toHasSup.{u1} α (CompleteLattice.toCompleteSemilatticeSup.{u1} α _inst_1)) (κ i) (fun (j : κ i) => f i j)))))
 but is expected to have type
-  forall {α : Type.{u4}} {ι : Sort.{u2}} {κ : ι -> Sort.{u1}} {β : Type.{u3}} [_inst_1 : CompleteLattice.{u4} α] [_inst_2 : Preorder.{u3} β] {u : β -> α} (l : LowerAdjoint.{u4, u3} α β (PartialOrder.toPreorder.{u4} α (CompleteSemilatticeInf.toPartialOrder.{u4} α (CompleteLattice.toCompleteSemilatticeInf.{u4} α _inst_1))) _inst_2 u) (f : forall (i : ι), (κ i) -> α), Eq.{succ u4} α (u (LowerAdjoint.toFun.{u4, u3} α β (PartialOrder.toPreorder.{u4} α (CompleteSemilatticeInf.toPartialOrder.{u4} α (CompleteLattice.toCompleteSemilatticeInf.{u4} α _inst_1))) _inst_2 u l (supᵢ.{u4, u2} α (CompleteLattice.toSupSet.{u4} α _inst_1) ι (fun (i : ι) => supᵢ.{u4, u1} α (CompleteLattice.toSupSet.{u4} α _inst_1) (κ i) (fun (j : κ i) => u (LowerAdjoint.toFun.{u4, u3} α β (PartialOrder.toPreorder.{u4} α (CompleteSemilatticeInf.toPartialOrder.{u4} α (CompleteLattice.toCompleteSemilatticeInf.{u4} α _inst_1))) _inst_2 u l (f i j))))))) (u (LowerAdjoint.toFun.{u4, u3} α β (PartialOrder.toPreorder.{u4} α (CompleteSemilatticeInf.toPartialOrder.{u4} α (CompleteLattice.toCompleteSemilatticeInf.{u4} α _inst_1))) _inst_2 u l (supᵢ.{u4, u2} α (CompleteLattice.toSupSet.{u4} α _inst_1) ι (fun (i : ι) => supᵢ.{u4, u1} α (CompleteLattice.toSupSet.{u4} α _inst_1) (κ i) (fun (j : κ i) => f i j)))))
-Case conversion may be inaccurate. Consider using '#align lower_adjoint.closure_supr₂_closure LowerAdjoint.closure_supᵢ₂_closureₓ'. -/
+  forall {α : Type.{u4}} {ι : Sort.{u2}} {κ : ι -> Sort.{u1}} {β : Type.{u3}} [_inst_1 : CompleteLattice.{u4} α] [_inst_2 : Preorder.{u3} β] {u : β -> α} (l : LowerAdjoint.{u4, u3} α β (PartialOrder.toPreorder.{u4} α (CompleteSemilatticeInf.toPartialOrder.{u4} α (CompleteLattice.toCompleteSemilatticeInf.{u4} α _inst_1))) _inst_2 u) (f : forall (i : ι), (κ i) -> α), Eq.{succ u4} α (u (LowerAdjoint.toFun.{u4, u3} α β (PartialOrder.toPreorder.{u4} α (CompleteSemilatticeInf.toPartialOrder.{u4} α (CompleteLattice.toCompleteSemilatticeInf.{u4} α _inst_1))) _inst_2 u l (iSup.{u4, u2} α (CompleteLattice.toSupSet.{u4} α _inst_1) ι (fun (i : ι) => iSup.{u4, u1} α (CompleteLattice.toSupSet.{u4} α _inst_1) (κ i) (fun (j : κ i) => u (LowerAdjoint.toFun.{u4, u3} α β (PartialOrder.toPreorder.{u4} α (CompleteSemilatticeInf.toPartialOrder.{u4} α (CompleteLattice.toCompleteSemilatticeInf.{u4} α _inst_1))) _inst_2 u l (f i j))))))) (u (LowerAdjoint.toFun.{u4, u3} α β (PartialOrder.toPreorder.{u4} α (CompleteSemilatticeInf.toPartialOrder.{u4} α (CompleteLattice.toCompleteSemilatticeInf.{u4} α _inst_1))) _inst_2 u l (iSup.{u4, u2} α (CompleteLattice.toSupSet.{u4} α _inst_1) ι (fun (i : ι) => iSup.{u4, u1} α (CompleteLattice.toSupSet.{u4} α _inst_1) (κ i) (fun (j : κ i) => f i j)))))
+Case conversion may be inaccurate. Consider using '#align lower_adjoint.closure_supr₂_closure LowerAdjoint.closure_iSup₂_closureₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
-theorem closure_supᵢ₂_closure (f : ∀ i, κ i → α) :
+theorem closure_iSup₂_closure (f : ∀ i, κ i → α) :
     u (l <| ⨆ (i) (j), u (l <| f i j)) = u (l <| ⨆ (i) (j), f i j) :=
-  l.ClosureOperator.closure_supᵢ₂_closure _
-#align lower_adjoint.closure_supr₂_closure LowerAdjoint.closure_supᵢ₂_closure
+  l.ClosureOperator.closure_iSup₂_closure _
+#align lower_adjoint.closure_supr₂_closure LowerAdjoint.closure_iSup₂_closure
 
 end CompleteLattice
 
@@ -810,30 +810,30 @@ theorem closure_union_closure (x y : α) : l (l x ∪ l y) = l (x ∪ y) :=
   SetLike.coe_injective (l.ClosureOperator.closure_sup_closure x y)
 #align lower_adjoint.closure_union_closure LowerAdjoint.closure_union_closure
 
-/- warning: lower_adjoint.closure_Union_closure -> LowerAdjoint.closure_unionᵢ_closure is a dubious translation:
+/- warning: lower_adjoint.closure_Union_closure -> LowerAdjoint.closure_iUnion_closure is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {β : Type.{u3}} [_inst_1 : SetLike.{u1, u3} α β] (l : LowerAdjoint.{u3, u1} (Set.{u3} β) α (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} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u3} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u3}) [self : HasLiftT.{succ u1, succ u3} a b] => self.0) α (Set.{u3} β) (HasLiftT.mk.{succ u1, succ u3} α (Set.{u3} β) (CoeTCₓ.coe.{succ u1, succ u3} α (Set.{u3} β) (SetLike.Set.hasCoeT.{u1, u3} α β _inst_1))))) (f : ι -> α), Eq.{succ u1} α (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (LowerAdjoint.{u3, u1} (Set.{u3} β) α (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} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u3} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u3}) [self : HasLiftT.{succ u1, succ u3} a b] => self.0) α (Set.{u3} β) (HasLiftT.mk.{succ u1, succ u3} α (Set.{u3} β) (CoeTCₓ.coe.{succ u1, succ u3} α (Set.{u3} β) (SetLike.Set.hasCoeT.{u1, u3} α β _inst_1))))) (fun (_x : LowerAdjoint.{u3, u1} (Set.{u3} β) α (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} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u3} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u3}) [self : HasLiftT.{succ u1, succ u3} a b] => self.0) α (Set.{u3} β) (HasLiftT.mk.{succ u1, succ u3} α (Set.{u3} β) (CoeTCₓ.coe.{succ u1, succ u3} α (Set.{u3} β) (SetLike.Set.hasCoeT.{u1, u3} α β _inst_1))))) => (Set.{u3} β) -> α) (LowerAdjoint.hasCoeToFun.{u3, u1} (Set.{u3} β) α (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} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u3} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u3}) [self : HasLiftT.{succ u1, succ u3} a b] => self.0) α (Set.{u3} β) (HasLiftT.mk.{succ u1, succ u3} α (Set.{u3} β) (CoeTCₓ.coe.{succ u1, succ u3} α (Set.{u3} β) (SetLike.Set.hasCoeT.{u1, u3} α β _inst_1))))) l (Set.unionᵢ.{u3, u2} β ι (fun (i : ι) => (fun (a : Type.{u1}) (b : Type.{u3}) [self : HasLiftT.{succ u1, succ u3} a b] => self.0) α (Set.{u3} β) (HasLiftT.mk.{succ u1, succ u3} α (Set.{u3} β) (CoeTCₓ.coe.{succ u1, succ u3} α (Set.{u3} β) (SetLike.Set.hasCoeT.{u1, u3} α β _inst_1))) (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (LowerAdjoint.{u3, u1} (Set.{u3} β) α (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} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u3} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u3}) [self : HasLiftT.{succ u1, succ u3} a b] => self.0) α (Set.{u3} β) (HasLiftT.mk.{succ u1, succ u3} α (Set.{u3} β) (CoeTCₓ.coe.{succ u1, succ u3} α (Set.{u3} β) (SetLike.Set.hasCoeT.{u1, u3} α β _inst_1))))) (fun (_x : LowerAdjoint.{u3, u1} (Set.{u3} β) α (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} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u3} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u3}) [self : HasLiftT.{succ u1, succ u3} a b] => self.0) α (Set.{u3} β) (HasLiftT.mk.{succ u1, succ u3} α (Set.{u3} β) (CoeTCₓ.coe.{succ u1, succ u3} α (Set.{u3} β) (SetLike.Set.hasCoeT.{u1, u3} α β _inst_1))))) => (Set.{u3} β) -> α) (LowerAdjoint.hasCoeToFun.{u3, u1} (Set.{u3} β) α (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} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u3} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u3}) [self : HasLiftT.{succ u1, succ u3} a b] => self.0) α (Set.{u3} β) (HasLiftT.mk.{succ u1, succ u3} α (Set.{u3} β) (CoeTCₓ.coe.{succ u1, succ u3} α (Set.{u3} β) (SetLike.Set.hasCoeT.{u1, u3} α β _inst_1))))) l ((fun (a : Type.{u1}) (b : Type.{u3}) [self : HasLiftT.{succ u1, succ u3} a b] => self.0) α (Set.{u3} β) (HasLiftT.mk.{succ u1, succ u3} α (Set.{u3} β) (CoeTCₓ.coe.{succ u1, succ u3} α (Set.{u3} β) (SetLike.Set.hasCoeT.{u1, u3} α β _inst_1))) (f i)))))) (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (LowerAdjoint.{u3, u1} (Set.{u3} β) α (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} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u3} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u3}) [self : HasLiftT.{succ u1, succ u3} a b] => self.0) α (Set.{u3} β) (HasLiftT.mk.{succ u1, succ u3} α (Set.{u3} β) (CoeTCₓ.coe.{succ u1, succ u3} α (Set.{u3} β) (SetLike.Set.hasCoeT.{u1, u3} α β _inst_1))))) (fun (_x : LowerAdjoint.{u3, u1} (Set.{u3} β) α (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} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u3} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u3}) [self : HasLiftT.{succ u1, succ u3} a b] => self.0) α (Set.{u3} β) (HasLiftT.mk.{succ u1, succ u3} α (Set.{u3} β) (CoeTCₓ.coe.{succ u1, succ u3} α (Set.{u3} β) (SetLike.Set.hasCoeT.{u1, u3} α β _inst_1))))) => (Set.{u3} β) -> α) (LowerAdjoint.hasCoeToFun.{u3, u1} (Set.{u3} β) α (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} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u3} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u3}) [self : HasLiftT.{succ u1, succ u3} a b] => self.0) α (Set.{u3} β) (HasLiftT.mk.{succ u1, succ u3} α (Set.{u3} β) (CoeTCₓ.coe.{succ u1, succ u3} α (Set.{u3} β) (SetLike.Set.hasCoeT.{u1, u3} α β _inst_1))))) l (Set.unionᵢ.{u3, u2} β ι (fun (i : ι) => (fun (a : Type.{u1}) (b : Type.{u3}) [self : HasLiftT.{succ u1, succ u3} a b] => self.0) α (Set.{u3} β) (HasLiftT.mk.{succ u1, succ u3} α (Set.{u3} β) (CoeTCₓ.coe.{succ u1, succ u3} α (Set.{u3} β) (SetLike.Set.hasCoeT.{u1, u3} α β _inst_1))) (f i))))
+  forall {α : Type.{u1}} {ι : Sort.{u2}} {β : Type.{u3}} [_inst_1 : SetLike.{u1, u3} α β] (l : LowerAdjoint.{u3, u1} (Set.{u3} β) α (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} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u3} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u3}) [self : HasLiftT.{succ u1, succ u3} a b] => self.0) α (Set.{u3} β) (HasLiftT.mk.{succ u1, succ u3} α (Set.{u3} β) (CoeTCₓ.coe.{succ u1, succ u3} α (Set.{u3} β) (SetLike.Set.hasCoeT.{u1, u3} α β _inst_1))))) (f : ι -> α), Eq.{succ u1} α (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (LowerAdjoint.{u3, u1} (Set.{u3} β) α (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} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u3} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u3}) [self : HasLiftT.{succ u1, succ u3} a b] => self.0) α (Set.{u3} β) (HasLiftT.mk.{succ u1, succ u3} α (Set.{u3} β) (CoeTCₓ.coe.{succ u1, succ u3} α (Set.{u3} β) (SetLike.Set.hasCoeT.{u1, u3} α β _inst_1))))) (fun (_x : LowerAdjoint.{u3, u1} (Set.{u3} β) α (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} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u3} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u3}) [self : HasLiftT.{succ u1, succ u3} a b] => self.0) α (Set.{u3} β) (HasLiftT.mk.{succ u1, succ u3} α (Set.{u3} β) (CoeTCₓ.coe.{succ u1, succ u3} α (Set.{u3} β) (SetLike.Set.hasCoeT.{u1, u3} α β _inst_1))))) => (Set.{u3} β) -> α) (LowerAdjoint.hasCoeToFun.{u3, u1} (Set.{u3} β) α (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} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u3} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u3}) [self : HasLiftT.{succ u1, succ u3} a b] => self.0) α (Set.{u3} β) (HasLiftT.mk.{succ u1, succ u3} α (Set.{u3} β) (CoeTCₓ.coe.{succ u1, succ u3} α (Set.{u3} β) (SetLike.Set.hasCoeT.{u1, u3} α β _inst_1))))) l (Set.iUnion.{u3, u2} β ι (fun (i : ι) => (fun (a : Type.{u1}) (b : Type.{u3}) [self : HasLiftT.{succ u1, succ u3} a b] => self.0) α (Set.{u3} β) (HasLiftT.mk.{succ u1, succ u3} α (Set.{u3} β) (CoeTCₓ.coe.{succ u1, succ u3} α (Set.{u3} β) (SetLike.Set.hasCoeT.{u1, u3} α β _inst_1))) (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (LowerAdjoint.{u3, u1} (Set.{u3} β) α (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} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u3} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u3}) [self : HasLiftT.{succ u1, succ u3} a b] => self.0) α (Set.{u3} β) (HasLiftT.mk.{succ u1, succ u3} α (Set.{u3} β) (CoeTCₓ.coe.{succ u1, succ u3} α (Set.{u3} β) (SetLike.Set.hasCoeT.{u1, u3} α β _inst_1))))) (fun (_x : LowerAdjoint.{u3, u1} (Set.{u3} β) α (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} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u3} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u3}) [self : HasLiftT.{succ u1, succ u3} a b] => self.0) α (Set.{u3} β) (HasLiftT.mk.{succ u1, succ u3} α (Set.{u3} β) (CoeTCₓ.coe.{succ u1, succ u3} α (Set.{u3} β) (SetLike.Set.hasCoeT.{u1, u3} α β _inst_1))))) => (Set.{u3} β) -> α) (LowerAdjoint.hasCoeToFun.{u3, u1} (Set.{u3} β) α (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} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u3} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u3}) [self : HasLiftT.{succ u1, succ u3} a b] => self.0) α (Set.{u3} β) (HasLiftT.mk.{succ u1, succ u3} α (Set.{u3} β) (CoeTCₓ.coe.{succ u1, succ u3} α (Set.{u3} β) (SetLike.Set.hasCoeT.{u1, u3} α β _inst_1))))) l ((fun (a : Type.{u1}) (b : Type.{u3}) [self : HasLiftT.{succ u1, succ u3} a b] => self.0) α (Set.{u3} β) (HasLiftT.mk.{succ u1, succ u3} α (Set.{u3} β) (CoeTCₓ.coe.{succ u1, succ u3} α (Set.{u3} β) (SetLike.Set.hasCoeT.{u1, u3} α β _inst_1))) (f i)))))) (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (LowerAdjoint.{u3, u1} (Set.{u3} β) α (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} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u3} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u3}) [self : HasLiftT.{succ u1, succ u3} a b] => self.0) α (Set.{u3} β) (HasLiftT.mk.{succ u1, succ u3} α (Set.{u3} β) (CoeTCₓ.coe.{succ u1, succ u3} α (Set.{u3} β) (SetLike.Set.hasCoeT.{u1, u3} α β _inst_1))))) (fun (_x : LowerAdjoint.{u3, u1} (Set.{u3} β) α (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} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u3} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u3}) [self : HasLiftT.{succ u1, succ u3} a b] => self.0) α (Set.{u3} β) (HasLiftT.mk.{succ u1, succ u3} α (Set.{u3} β) (CoeTCₓ.coe.{succ u1, succ u3} α (Set.{u3} β) (SetLike.Set.hasCoeT.{u1, u3} α β _inst_1))))) => (Set.{u3} β) -> α) (LowerAdjoint.hasCoeToFun.{u3, u1} (Set.{u3} β) α (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} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u3} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u3}) [self : HasLiftT.{succ u1, succ u3} a b] => self.0) α (Set.{u3} β) (HasLiftT.mk.{succ u1, succ u3} α (Set.{u3} β) (CoeTCₓ.coe.{succ u1, succ u3} α (Set.{u3} β) (SetLike.Set.hasCoeT.{u1, u3} α β _inst_1))))) l (Set.iUnion.{u3, u2} β ι (fun (i : ι) => (fun (a : Type.{u1}) (b : Type.{u3}) [self : HasLiftT.{succ u1, succ u3} a b] => self.0) α (Set.{u3} β) (HasLiftT.mk.{succ u1, succ u3} α (Set.{u3} β) (CoeTCₓ.coe.{succ u1, succ u3} α (Set.{u3} β) (SetLike.Set.hasCoeT.{u1, u3} α β _inst_1))) (f i))))
 but is expected to have type
-  forall {α : Type.{u3}} {ι : Sort.{u1}} {β : Type.{u2}} [_inst_1 : SetLike.{u3, u2} α β] (l : LowerAdjoint.{u2, u3} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) (PartialOrder.toPreorder.{u3} α (SetLike.instPartialOrder.{u3, u2} α β _inst_1)) (SetLike.coe.{u3, u2} α β _inst_1)) (f : ι -> α), Eq.{succ u3} α (LowerAdjoint.toFun.{u2, u3} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) (PartialOrder.toPreorder.{u3} α (SetLike.instPartialOrder.{u3, u2} α β _inst_1)) (SetLike.coe.{u3, u2} α β _inst_1) l (Set.unionᵢ.{u2, u1} β ι (fun (i : ι) => SetLike.coe.{u3, u2} α β _inst_1 (LowerAdjoint.toFun.{u2, u3} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) (PartialOrder.toPreorder.{u3} α (SetLike.instPartialOrder.{u3, u2} α β _inst_1)) (SetLike.coe.{u3, u2} α β _inst_1) l (SetLike.coe.{u3, u2} α β _inst_1 (f i)))))) (LowerAdjoint.toFun.{u2, u3} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) (PartialOrder.toPreorder.{u3} α (SetLike.instPartialOrder.{u3, u2} α β _inst_1)) (SetLike.coe.{u3, u2} α β _inst_1) l (Set.unionᵢ.{u2, u1} β ι (fun (i : ι) => SetLike.coe.{u3, u2} α β _inst_1 (f i))))
-Case conversion may be inaccurate. Consider using '#align lower_adjoint.closure_Union_closure LowerAdjoint.closure_unionᵢ_closureₓ'. -/
+  forall {α : Type.{u3}} {ι : Sort.{u1}} {β : Type.{u2}} [_inst_1 : SetLike.{u3, u2} α β] (l : LowerAdjoint.{u2, u3} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) (PartialOrder.toPreorder.{u3} α (SetLike.instPartialOrder.{u3, u2} α β _inst_1)) (SetLike.coe.{u3, u2} α β _inst_1)) (f : ι -> α), Eq.{succ u3} α (LowerAdjoint.toFun.{u2, u3} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) (PartialOrder.toPreorder.{u3} α (SetLike.instPartialOrder.{u3, u2} α β _inst_1)) (SetLike.coe.{u3, u2} α β _inst_1) l (Set.iUnion.{u2, u1} β ι (fun (i : ι) => SetLike.coe.{u3, u2} α β _inst_1 (LowerAdjoint.toFun.{u2, u3} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) (PartialOrder.toPreorder.{u3} α (SetLike.instPartialOrder.{u3, u2} α β _inst_1)) (SetLike.coe.{u3, u2} α β _inst_1) l (SetLike.coe.{u3, u2} α β _inst_1 (f i)))))) (LowerAdjoint.toFun.{u2, u3} (Set.{u2} β) α (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) (PartialOrder.toPreorder.{u3} α (SetLike.instPartialOrder.{u3, u2} α β _inst_1)) (SetLike.coe.{u3, u2} α β _inst_1) l (Set.iUnion.{u2, u1} β ι (fun (i : ι) => SetLike.coe.{u3, u2} α β _inst_1 (f i))))
+Case conversion may be inaccurate. Consider using '#align lower_adjoint.closure_Union_closure LowerAdjoint.closure_iUnion_closureₓ'. -/
 @[simp]
-theorem closure_unionᵢ_closure (f : ι → α) : l (⋃ i, l (f i)) = l (⋃ i, f i) :=
-  SetLike.coe_injective <| l.closure_supᵢ_closure _
-#align lower_adjoint.closure_Union_closure LowerAdjoint.closure_unionᵢ_closure
+theorem closure_iUnion_closure (f : ι → α) : l (⋃ i, l (f i)) = l (⋃ i, f i) :=
+  SetLike.coe_injective <| l.closure_iSup_closure _
+#align lower_adjoint.closure_Union_closure LowerAdjoint.closure_iUnion_closure
 
-/- warning: lower_adjoint.closure_Union₂_closure -> LowerAdjoint.closure_unionᵢ₂_closure is a dubious translation:
+/- warning: lower_adjoint.closure_Union₂_closure -> LowerAdjoint.closure_iUnion₂_closure is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Sort.{u2}} {κ : ι -> Sort.{u3}} {β : Type.{u4}} [_inst_1 : SetLike.{u1, u4} α β] (l : LowerAdjoint.{u4, u1} (Set.{u4} β) α (PartialOrder.toPreorder.{u4} (Set.{u4} β) (CompleteSemilatticeInf.toPartialOrder.{u4} (Set.{u4} β) (CompleteLattice.toCompleteSemilatticeInf.{u4} (Set.{u4} β) (Order.Coframe.toCompleteLattice.{u4} (Set.{u4} β) (CompleteDistribLattice.toCoframe.{u4} (Set.{u4} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u4} (Set.{u4} β) (Set.completeBooleanAlgebra.{u4} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u4} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u4}) [self : HasLiftT.{succ u1, succ u4} a b] => self.0) α (Set.{u4} β) (HasLiftT.mk.{succ u1, succ u4} α (Set.{u4} β) (CoeTCₓ.coe.{succ u1, succ u4} α (Set.{u4} β) (SetLike.Set.hasCoeT.{u1, u4} α β _inst_1))))) (f : forall (i : ι), (κ i) -> α), Eq.{succ u1} α (coeFn.{max (succ u4) (succ u1), max (succ u4) (succ u1)} (LowerAdjoint.{u4, u1} (Set.{u4} β) α (PartialOrder.toPreorder.{u4} (Set.{u4} β) (CompleteSemilatticeInf.toPartialOrder.{u4} (Set.{u4} β) (CompleteLattice.toCompleteSemilatticeInf.{u4} (Set.{u4} β) (Order.Coframe.toCompleteLattice.{u4} (Set.{u4} β) (CompleteDistribLattice.toCoframe.{u4} (Set.{u4} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u4} (Set.{u4} β) (Set.completeBooleanAlgebra.{u4} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u4} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u4}) [self : HasLiftT.{succ u1, succ u4} a b] => self.0) α (Set.{u4} β) (HasLiftT.mk.{succ u1, succ u4} α (Set.{u4} β) (CoeTCₓ.coe.{succ u1, succ u4} α (Set.{u4} β) (SetLike.Set.hasCoeT.{u1, u4} α β _inst_1))))) (fun (_x : LowerAdjoint.{u4, u1} (Set.{u4} β) α (PartialOrder.toPreorder.{u4} (Set.{u4} β) (CompleteSemilatticeInf.toPartialOrder.{u4} (Set.{u4} β) (CompleteLattice.toCompleteSemilatticeInf.{u4} (Set.{u4} β) (Order.Coframe.toCompleteLattice.{u4} (Set.{u4} β) (CompleteDistribLattice.toCoframe.{u4} (Set.{u4} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u4} (Set.{u4} β) (Set.completeBooleanAlgebra.{u4} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u4} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u4}) [self : HasLiftT.{succ u1, succ u4} a b] => self.0) α (Set.{u4} β) (HasLiftT.mk.{succ u1, succ u4} α (Set.{u4} β) (CoeTCₓ.coe.{succ u1, succ u4} α (Set.{u4} β) (SetLike.Set.hasCoeT.{u1, u4} α β _inst_1))))) => (Set.{u4} β) -> α) (LowerAdjoint.hasCoeToFun.{u4, u1} (Set.{u4} β) α (PartialOrder.toPreorder.{u4} (Set.{u4} β) (CompleteSemilatticeInf.toPartialOrder.{u4} (Set.{u4} β) (CompleteLattice.toCompleteSemilatticeInf.{u4} (Set.{u4} β) (Order.Coframe.toCompleteLattice.{u4} (Set.{u4} β) (CompleteDistribLattice.toCoframe.{u4} (Set.{u4} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u4} (Set.{u4} β) (Set.completeBooleanAlgebra.{u4} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u4} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u4}) [self : HasLiftT.{succ u1, succ u4} a b] => self.0) α (Set.{u4} β) (HasLiftT.mk.{succ u1, succ u4} α (Set.{u4} β) (CoeTCₓ.coe.{succ u1, succ u4} α (Set.{u4} β) (SetLike.Set.hasCoeT.{u1, u4} α β _inst_1))))) l (Set.unionᵢ.{u4, u2} β ι (fun (i : ι) => Set.unionᵢ.{u4, u3} β (κ i) (fun (j : κ i) => (fun (a : Type.{u1}) (b : Type.{u4}) [self : HasLiftT.{succ u1, succ u4} a b] => self.0) α (Set.{u4} β) (HasLiftT.mk.{succ u1, succ u4} α (Set.{u4} β) (CoeTCₓ.coe.{succ u1, succ u4} α (Set.{u4} β) (SetLike.Set.hasCoeT.{u1, u4} α β _inst_1))) (coeFn.{max (succ u4) (succ u1), max (succ u4) (succ u1)} (LowerAdjoint.{u4, u1} (Set.{u4} β) α (PartialOrder.toPreorder.{u4} (Set.{u4} β) (CompleteSemilatticeInf.toPartialOrder.{u4} (Set.{u4} β) (CompleteLattice.toCompleteSemilatticeInf.{u4} (Set.{u4} β) (Order.Coframe.toCompleteLattice.{u4} (Set.{u4} β) (CompleteDistribLattice.toCoframe.{u4} (Set.{u4} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u4} (Set.{u4} β) (Set.completeBooleanAlgebra.{u4} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u4} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u4}) [self : HasLiftT.{succ u1, succ u4} a b] => self.0) α (Set.{u4} β) (HasLiftT.mk.{succ u1, succ u4} α (Set.{u4} β) (CoeTCₓ.coe.{succ u1, succ u4} α (Set.{u4} β) (SetLike.Set.hasCoeT.{u1, u4} α β _inst_1))))) (fun (_x : LowerAdjoint.{u4, u1} (Set.{u4} β) α (PartialOrder.toPreorder.{u4} (Set.{u4} β) (CompleteSemilatticeInf.toPartialOrder.{u4} (Set.{u4} β) (CompleteLattice.toCompleteSemilatticeInf.{u4} (Set.{u4} β) (Order.Coframe.toCompleteLattice.{u4} (Set.{u4} β) (CompleteDistribLattice.toCoframe.{u4} (Set.{u4} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u4} (Set.{u4} β) (Set.completeBooleanAlgebra.{u4} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u4} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u4}) [self : HasLiftT.{succ u1, succ u4} a b] => self.0) α (Set.{u4} β) (HasLiftT.mk.{succ u1, succ u4} α (Set.{u4} β) (CoeTCₓ.coe.{succ u1, succ u4} α (Set.{u4} β) (SetLike.Set.hasCoeT.{u1, u4} α β _inst_1))))) => (Set.{u4} β) -> α) (LowerAdjoint.hasCoeToFun.{u4, u1} (Set.{u4} β) α (PartialOrder.toPreorder.{u4} (Set.{u4} β) (CompleteSemilatticeInf.toPartialOrder.{u4} (Set.{u4} β) (CompleteLattice.toCompleteSemilatticeInf.{u4} (Set.{u4} β) (Order.Coframe.toCompleteLattice.{u4} (Set.{u4} β) (CompleteDistribLattice.toCoframe.{u4} (Set.{u4} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u4} (Set.{u4} β) (Set.completeBooleanAlgebra.{u4} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u4} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u4}) [self : HasLiftT.{succ u1, succ u4} a b] => self.0) α (Set.{u4} β) (HasLiftT.mk.{succ u1, succ u4} α (Set.{u4} β) (CoeTCₓ.coe.{succ u1, succ u4} α (Set.{u4} β) (SetLike.Set.hasCoeT.{u1, u4} α β _inst_1))))) l ((fun (a : Type.{u1}) (b : Type.{u4}) [self : HasLiftT.{succ u1, succ u4} a b] => self.0) α (Set.{u4} β) (HasLiftT.mk.{succ u1, succ u4} α (Set.{u4} β) (CoeTCₓ.coe.{succ u1, succ u4} α (Set.{u4} β) (SetLike.Set.hasCoeT.{u1, u4} α β _inst_1))) (f i j))))))) (coeFn.{max (succ u4) (succ u1), max (succ u4) (succ u1)} (LowerAdjoint.{u4, u1} (Set.{u4} β) α (PartialOrder.toPreorder.{u4} (Set.{u4} β) (CompleteSemilatticeInf.toPartialOrder.{u4} (Set.{u4} β) (CompleteLattice.toCompleteSemilatticeInf.{u4} (Set.{u4} β) (Order.Coframe.toCompleteLattice.{u4} (Set.{u4} β) (CompleteDistribLattice.toCoframe.{u4} (Set.{u4} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u4} (Set.{u4} β) (Set.completeBooleanAlgebra.{u4} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u4} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u4}) [self : HasLiftT.{succ u1, succ u4} a b] => self.0) α (Set.{u4} β) (HasLiftT.mk.{succ u1, succ u4} α (Set.{u4} β) (CoeTCₓ.coe.{succ u1, succ u4} α (Set.{u4} β) (SetLike.Set.hasCoeT.{u1, u4} α β _inst_1))))) (fun (_x : LowerAdjoint.{u4, u1} (Set.{u4} β) α (PartialOrder.toPreorder.{u4} (Set.{u4} β) (CompleteSemilatticeInf.toPartialOrder.{u4} (Set.{u4} β) (CompleteLattice.toCompleteSemilatticeInf.{u4} (Set.{u4} β) (Order.Coframe.toCompleteLattice.{u4} (Set.{u4} β) (CompleteDistribLattice.toCoframe.{u4} (Set.{u4} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u4} (Set.{u4} β) (Set.completeBooleanAlgebra.{u4} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u4} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u4}) [self : HasLiftT.{succ u1, succ u4} a b] => self.0) α (Set.{u4} β) (HasLiftT.mk.{succ u1, succ u4} α (Set.{u4} β) (CoeTCₓ.coe.{succ u1, succ u4} α (Set.{u4} β) (SetLike.Set.hasCoeT.{u1, u4} α β _inst_1))))) => (Set.{u4} β) -> α) (LowerAdjoint.hasCoeToFun.{u4, u1} (Set.{u4} β) α (PartialOrder.toPreorder.{u4} (Set.{u4} β) (CompleteSemilatticeInf.toPartialOrder.{u4} (Set.{u4} β) (CompleteLattice.toCompleteSemilatticeInf.{u4} (Set.{u4} β) (Order.Coframe.toCompleteLattice.{u4} (Set.{u4} β) (CompleteDistribLattice.toCoframe.{u4} (Set.{u4} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u4} (Set.{u4} β) (Set.completeBooleanAlgebra.{u4} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u4} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u4}) [self : HasLiftT.{succ u1, succ u4} a b] => self.0) α (Set.{u4} β) (HasLiftT.mk.{succ u1, succ u4} α (Set.{u4} β) (CoeTCₓ.coe.{succ u1, succ u4} α (Set.{u4} β) (SetLike.Set.hasCoeT.{u1, u4} α β _inst_1))))) l (Set.unionᵢ.{u4, u2} β ι (fun (i : ι) => Set.unionᵢ.{u4, u3} β (κ i) (fun (j : κ i) => (fun (a : Type.{u1}) (b : Type.{u4}) [self : HasLiftT.{succ u1, succ u4} a b] => self.0) α (Set.{u4} β) (HasLiftT.mk.{succ u1, succ u4} α (Set.{u4} β) (CoeTCₓ.coe.{succ u1, succ u4} α (Set.{u4} β) (SetLike.Set.hasCoeT.{u1, u4} α β _inst_1))) (f i j)))))
+  forall {α : Type.{u1}} {ι : Sort.{u2}} {κ : ι -> Sort.{u3}} {β : Type.{u4}} [_inst_1 : SetLike.{u1, u4} α β] (l : LowerAdjoint.{u4, u1} (Set.{u4} β) α (PartialOrder.toPreorder.{u4} (Set.{u4} β) (CompleteSemilatticeInf.toPartialOrder.{u4} (Set.{u4} β) (CompleteLattice.toCompleteSemilatticeInf.{u4} (Set.{u4} β) (Order.Coframe.toCompleteLattice.{u4} (Set.{u4} β) (CompleteDistribLattice.toCoframe.{u4} (Set.{u4} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u4} (Set.{u4} β) (Set.completeBooleanAlgebra.{u4} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u4} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u4}) [self : HasLiftT.{succ u1, succ u4} a b] => self.0) α (Set.{u4} β) (HasLiftT.mk.{succ u1, succ u4} α (Set.{u4} β) (CoeTCₓ.coe.{succ u1, succ u4} α (Set.{u4} β) (SetLike.Set.hasCoeT.{u1, u4} α β _inst_1))))) (f : forall (i : ι), (κ i) -> α), Eq.{succ u1} α (coeFn.{max (succ u4) (succ u1), max (succ u4) (succ u1)} (LowerAdjoint.{u4, u1} (Set.{u4} β) α (PartialOrder.toPreorder.{u4} (Set.{u4} β) (CompleteSemilatticeInf.toPartialOrder.{u4} (Set.{u4} β) (CompleteLattice.toCompleteSemilatticeInf.{u4} (Set.{u4} β) (Order.Coframe.toCompleteLattice.{u4} (Set.{u4} β) (CompleteDistribLattice.toCoframe.{u4} (Set.{u4} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u4} (Set.{u4} β) (Set.completeBooleanAlgebra.{u4} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u4} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u4}) [self : HasLiftT.{succ u1, succ u4} a b] => self.0) α (Set.{u4} β) (HasLiftT.mk.{succ u1, succ u4} α (Set.{u4} β) (CoeTCₓ.coe.{succ u1, succ u4} α (Set.{u4} β) (SetLike.Set.hasCoeT.{u1, u4} α β _inst_1))))) (fun (_x : LowerAdjoint.{u4, u1} (Set.{u4} β) α (PartialOrder.toPreorder.{u4} (Set.{u4} β) (CompleteSemilatticeInf.toPartialOrder.{u4} (Set.{u4} β) (CompleteLattice.toCompleteSemilatticeInf.{u4} (Set.{u4} β) (Order.Coframe.toCompleteLattice.{u4} (Set.{u4} β) (CompleteDistribLattice.toCoframe.{u4} (Set.{u4} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u4} (Set.{u4} β) (Set.completeBooleanAlgebra.{u4} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u4} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u4}) [self : HasLiftT.{succ u1, succ u4} a b] => self.0) α (Set.{u4} β) (HasLiftT.mk.{succ u1, succ u4} α (Set.{u4} β) (CoeTCₓ.coe.{succ u1, succ u4} α (Set.{u4} β) (SetLike.Set.hasCoeT.{u1, u4} α β _inst_1))))) => (Set.{u4} β) -> α) (LowerAdjoint.hasCoeToFun.{u4, u1} (Set.{u4} β) α (PartialOrder.toPreorder.{u4} (Set.{u4} β) (CompleteSemilatticeInf.toPartialOrder.{u4} (Set.{u4} β) (CompleteLattice.toCompleteSemilatticeInf.{u4} (Set.{u4} β) (Order.Coframe.toCompleteLattice.{u4} (Set.{u4} β) (CompleteDistribLattice.toCoframe.{u4} (Set.{u4} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u4} (Set.{u4} β) (Set.completeBooleanAlgebra.{u4} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u4} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u4}) [self : HasLiftT.{succ u1, succ u4} a b] => self.0) α (Set.{u4} β) (HasLiftT.mk.{succ u1, succ u4} α (Set.{u4} β) (CoeTCₓ.coe.{succ u1, succ u4} α (Set.{u4} β) (SetLike.Set.hasCoeT.{u1, u4} α β _inst_1))))) l (Set.iUnion.{u4, u2} β ι (fun (i : ι) => Set.iUnion.{u4, u3} β (κ i) (fun (j : κ i) => (fun (a : Type.{u1}) (b : Type.{u4}) [self : HasLiftT.{succ u1, succ u4} a b] => self.0) α (Set.{u4} β) (HasLiftT.mk.{succ u1, succ u4} α (Set.{u4} β) (CoeTCₓ.coe.{succ u1, succ u4} α (Set.{u4} β) (SetLike.Set.hasCoeT.{u1, u4} α β _inst_1))) (coeFn.{max (succ u4) (succ u1), max (succ u4) (succ u1)} (LowerAdjoint.{u4, u1} (Set.{u4} β) α (PartialOrder.toPreorder.{u4} (Set.{u4} β) (CompleteSemilatticeInf.toPartialOrder.{u4} (Set.{u4} β) (CompleteLattice.toCompleteSemilatticeInf.{u4} (Set.{u4} β) (Order.Coframe.toCompleteLattice.{u4} (Set.{u4} β) (CompleteDistribLattice.toCoframe.{u4} (Set.{u4} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u4} (Set.{u4} β) (Set.completeBooleanAlgebra.{u4} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u4} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u4}) [self : HasLiftT.{succ u1, succ u4} a b] => self.0) α (Set.{u4} β) (HasLiftT.mk.{succ u1, succ u4} α (Set.{u4} β) (CoeTCₓ.coe.{succ u1, succ u4} α (Set.{u4} β) (SetLike.Set.hasCoeT.{u1, u4} α β _inst_1))))) (fun (_x : LowerAdjoint.{u4, u1} (Set.{u4} β) α (PartialOrder.toPreorder.{u4} (Set.{u4} β) (CompleteSemilatticeInf.toPartialOrder.{u4} (Set.{u4} β) (CompleteLattice.toCompleteSemilatticeInf.{u4} (Set.{u4} β) (Order.Coframe.toCompleteLattice.{u4} (Set.{u4} β) (CompleteDistribLattice.toCoframe.{u4} (Set.{u4} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u4} (Set.{u4} β) (Set.completeBooleanAlgebra.{u4} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u4} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u4}) [self : HasLiftT.{succ u1, succ u4} a b] => self.0) α (Set.{u4} β) (HasLiftT.mk.{succ u1, succ u4} α (Set.{u4} β) (CoeTCₓ.coe.{succ u1, succ u4} α (Set.{u4} β) (SetLike.Set.hasCoeT.{u1, u4} α β _inst_1))))) => (Set.{u4} β) -> α) (LowerAdjoint.hasCoeToFun.{u4, u1} (Set.{u4} β) α (PartialOrder.toPreorder.{u4} (Set.{u4} β) (CompleteSemilatticeInf.toPartialOrder.{u4} (Set.{u4} β) (CompleteLattice.toCompleteSemilatticeInf.{u4} (Set.{u4} β) (Order.Coframe.toCompleteLattice.{u4} (Set.{u4} β) (CompleteDistribLattice.toCoframe.{u4} (Set.{u4} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u4} (Set.{u4} β) (Set.completeBooleanAlgebra.{u4} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u4} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u4}) [self : HasLiftT.{succ u1, succ u4} a b] => self.0) α (Set.{u4} β) (HasLiftT.mk.{succ u1, succ u4} α (Set.{u4} β) (CoeTCₓ.coe.{succ u1, succ u4} α (Set.{u4} β) (SetLike.Set.hasCoeT.{u1, u4} α β _inst_1))))) l ((fun (a : Type.{u1}) (b : Type.{u4}) [self : HasLiftT.{succ u1, succ u4} a b] => self.0) α (Set.{u4} β) (HasLiftT.mk.{succ u1, succ u4} α (Set.{u4} β) (CoeTCₓ.coe.{succ u1, succ u4} α (Set.{u4} β) (SetLike.Set.hasCoeT.{u1, u4} α β _inst_1))) (f i j))))))) (coeFn.{max (succ u4) (succ u1), max (succ u4) (succ u1)} (LowerAdjoint.{u4, u1} (Set.{u4} β) α (PartialOrder.toPreorder.{u4} (Set.{u4} β) (CompleteSemilatticeInf.toPartialOrder.{u4} (Set.{u4} β) (CompleteLattice.toCompleteSemilatticeInf.{u4} (Set.{u4} β) (Order.Coframe.toCompleteLattice.{u4} (Set.{u4} β) (CompleteDistribLattice.toCoframe.{u4} (Set.{u4} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u4} (Set.{u4} β) (Set.completeBooleanAlgebra.{u4} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u4} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u4}) [self : HasLiftT.{succ u1, succ u4} a b] => self.0) α (Set.{u4} β) (HasLiftT.mk.{succ u1, succ u4} α (Set.{u4} β) (CoeTCₓ.coe.{succ u1, succ u4} α (Set.{u4} β) (SetLike.Set.hasCoeT.{u1, u4} α β _inst_1))))) (fun (_x : LowerAdjoint.{u4, u1} (Set.{u4} β) α (PartialOrder.toPreorder.{u4} (Set.{u4} β) (CompleteSemilatticeInf.toPartialOrder.{u4} (Set.{u4} β) (CompleteLattice.toCompleteSemilatticeInf.{u4} (Set.{u4} β) (Order.Coframe.toCompleteLattice.{u4} (Set.{u4} β) (CompleteDistribLattice.toCoframe.{u4} (Set.{u4} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u4} (Set.{u4} β) (Set.completeBooleanAlgebra.{u4} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u4} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u4}) [self : HasLiftT.{succ u1, succ u4} a b] => self.0) α (Set.{u4} β) (HasLiftT.mk.{succ u1, succ u4} α (Set.{u4} β) (CoeTCₓ.coe.{succ u1, succ u4} α (Set.{u4} β) (SetLike.Set.hasCoeT.{u1, u4} α β _inst_1))))) => (Set.{u4} β) -> α) (LowerAdjoint.hasCoeToFun.{u4, u1} (Set.{u4} β) α (PartialOrder.toPreorder.{u4} (Set.{u4} β) (CompleteSemilatticeInf.toPartialOrder.{u4} (Set.{u4} β) (CompleteLattice.toCompleteSemilatticeInf.{u4} (Set.{u4} β) (Order.Coframe.toCompleteLattice.{u4} (Set.{u4} β) (CompleteDistribLattice.toCoframe.{u4} (Set.{u4} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u4} (Set.{u4} β) (Set.completeBooleanAlgebra.{u4} β))))))) (PartialOrder.toPreorder.{u1} α (SetLike.partialOrder.{u1, u4} α β _inst_1)) ((fun (a : Type.{u1}) (b : Type.{u4}) [self : HasLiftT.{succ u1, succ u4} a b] => self.0) α (Set.{u4} β) (HasLiftT.mk.{succ u1, succ u4} α (Set.{u4} β) (CoeTCₓ.coe.{succ u1, succ u4} α (Set.{u4} β) (SetLike.Set.hasCoeT.{u1, u4} α β _inst_1))))) l (Set.iUnion.{u4, u2} β ι (fun (i : ι) => Set.iUnion.{u4, u3} β (κ i) (fun (j : κ i) => (fun (a : Type.{u1}) (b : Type.{u4}) [self : HasLiftT.{succ u1, succ u4} a b] => self.0) α (Set.{u4} β) (HasLiftT.mk.{succ u1, succ u4} α (Set.{u4} β) (CoeTCₓ.coe.{succ u1, succ u4} α (Set.{u4} β) (SetLike.Set.hasCoeT.{u1, u4} α β _inst_1))) (f i j)))))
 but is expected to have type
-  forall {α : Type.{u4}} {ι : Sort.{u2}} {κ : ι -> Sort.{u1}} {β : Type.{u3}} [_inst_1 : SetLike.{u4, u3} α β] (l : LowerAdjoint.{u3, u4} (Set.{u3} β) α (PartialOrder.toPreorder.{u3} (Set.{u3} β) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} β) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} β) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} β) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} β) (Set.instCompleteBooleanAlgebraSet.{u3} β))))))) (PartialOrder.toPreorder.{u4} α (SetLike.instPartialOrder.{u4, u3} α β _inst_1)) (SetLike.coe.{u4, u3} α β _inst_1)) (f : forall (i : ι), (κ i) -> α), Eq.{succ u4} α (LowerAdjoint.toFun.{u3, u4} (Set.{u3} β) α (PartialOrder.toPreorder.{u3} (Set.{u3} β) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} β) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} β) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} β) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} β) (Set.instCompleteBooleanAlgebraSet.{u3} β))))))) (PartialOrder.toPreorder.{u4} α (SetLike.instPartialOrder.{u4, u3} α β _inst_1)) (SetLike.coe.{u4, u3} α β _inst_1) l (Set.unionᵢ.{u3, u2} β ι (fun (i : ι) => Set.unionᵢ.{u3, u1} β (κ i) (fun (j : κ i) => SetLike.coe.{u4, u3} α β _inst_1 (LowerAdjoint.toFun.{u3, u4} (Set.{u3} β) α (PartialOrder.toPreorder.{u3} (Set.{u3} β) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} β) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} β) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} β) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} β) (Set.instCompleteBooleanAlgebraSet.{u3} β))))))) (PartialOrder.toPreorder.{u4} α (SetLike.instPartialOrder.{u4, u3} α β _inst_1)) (SetLike.coe.{u4, u3} α β _inst_1) l (SetLike.coe.{u4, u3} α β _inst_1 (f i j))))))) (LowerAdjoint.toFun.{u3, u4} (Set.{u3} β) α (PartialOrder.toPreorder.{u3} (Set.{u3} β) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} β) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} β) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} β) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} β) (Set.instCompleteBooleanAlgebraSet.{u3} β))))))) (PartialOrder.toPreorder.{u4} α (SetLike.instPartialOrder.{u4, u3} α β _inst_1)) (SetLike.coe.{u4, u3} α β _inst_1) l (Set.unionᵢ.{u3, u2} β ι (fun (i : ι) => Set.unionᵢ.{u3, u1} β (κ i) (fun (j : κ i) => SetLike.coe.{u4, u3} α β _inst_1 (f i j)))))
-Case conversion may be inaccurate. Consider using '#align lower_adjoint.closure_Union₂_closure LowerAdjoint.closure_unionᵢ₂_closureₓ'. -/
+  forall {α : Type.{u4}} {ι : Sort.{u2}} {κ : ι -> Sort.{u1}} {β : Type.{u3}} [_inst_1 : SetLike.{u4, u3} α β] (l : LowerAdjoint.{u3, u4} (Set.{u3} β) α (PartialOrder.toPreorder.{u3} (Set.{u3} β) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} β) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} β) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} β) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} β) (Set.instCompleteBooleanAlgebraSet.{u3} β))))))) (PartialOrder.toPreorder.{u4} α (SetLike.instPartialOrder.{u4, u3} α β _inst_1)) (SetLike.coe.{u4, u3} α β _inst_1)) (f : forall (i : ι), (κ i) -> α), Eq.{succ u4} α (LowerAdjoint.toFun.{u3, u4} (Set.{u3} β) α (PartialOrder.toPreorder.{u3} (Set.{u3} β) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} β) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} β) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} β) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} β) (Set.instCompleteBooleanAlgebraSet.{u3} β))))))) (PartialOrder.toPreorder.{u4} α (SetLike.instPartialOrder.{u4, u3} α β _inst_1)) (SetLike.coe.{u4, u3} α β _inst_1) l (Set.iUnion.{u3, u2} β ι (fun (i : ι) => Set.iUnion.{u3, u1} β (κ i) (fun (j : κ i) => SetLike.coe.{u4, u3} α β _inst_1 (LowerAdjoint.toFun.{u3, u4} (Set.{u3} β) α (PartialOrder.toPreorder.{u3} (Set.{u3} β) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} β) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} β) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} β) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} β) (Set.instCompleteBooleanAlgebraSet.{u3} β))))))) (PartialOrder.toPreorder.{u4} α (SetLike.instPartialOrder.{u4, u3} α β _inst_1)) (SetLike.coe.{u4, u3} α β _inst_1) l (SetLike.coe.{u4, u3} α β _inst_1 (f i j))))))) (LowerAdjoint.toFun.{u3, u4} (Set.{u3} β) α (PartialOrder.toPreorder.{u3} (Set.{u3} β) (CompleteSemilatticeInf.toPartialOrder.{u3} (Set.{u3} β) (CompleteLattice.toCompleteSemilatticeInf.{u3} (Set.{u3} β) (Order.Coframe.toCompleteLattice.{u3} (Set.{u3} β) (CompleteDistribLattice.toCoframe.{u3} (Set.{u3} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u3} (Set.{u3} β) (Set.instCompleteBooleanAlgebraSet.{u3} β))))))) (PartialOrder.toPreorder.{u4} α (SetLike.instPartialOrder.{u4, u3} α β _inst_1)) (SetLike.coe.{u4, u3} α β _inst_1) l (Set.iUnion.{u3, u2} β ι (fun (i : ι) => Set.iUnion.{u3, u1} β (κ i) (fun (j : κ i) => SetLike.coe.{u4, u3} α β _inst_1 (f i j)))))
+Case conversion may be inaccurate. Consider using '#align lower_adjoint.closure_Union₂_closure LowerAdjoint.closure_iUnion₂_closureₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 @[simp]
-theorem closure_unionᵢ₂_closure (f : ∀ i, κ i → α) :
+theorem closure_iUnion₂_closure (f : ∀ i, κ i → α) :
     l (⋃ (i) (j), l (f i j)) = l (⋃ (i) (j), f i j) :=
-  SetLike.coe_injective <| l.closure_supᵢ₂_closure _
-#align lower_adjoint.closure_Union₂_closure LowerAdjoint.closure_unionᵢ₂_closure
+  SetLike.coe_injective <| l.closure_iSup₂_closure _
+#align lower_adjoint.closure_Union₂_closure LowerAdjoint.closure_iUnion₂_closure
 
 end CoeToSet
 
Diff
@@ -75,12 +75,10 @@ namespace ClosureOperator
 instance [Preorder α] : CoeFun (ClosureOperator α) fun _ => α → α :=
   ⟨fun c => c.toFun⟩
 
-#print ClosureOperator.Simps.apply /-
 /-- See Note [custom simps projection] -/
 def Simps.apply [Preorder α] (f : ClosureOperator α) : α → α :=
   f
 #align closure_operator.simps.apply ClosureOperator.Simps.apply
--/
 
 initialize_simps_projections ClosureOperator (to_order_hom_to_fun → apply, -toOrderHom)
 
@@ -436,12 +434,10 @@ variable [Preorder α] [Preorder β] {u : β → α} (l : LowerAdjoint u)
 
 instance : CoeFun (LowerAdjoint u) fun _ => α → β where coe := toFun
 
-#print LowerAdjoint.Simps.apply /-
 /-- See Note [custom simps projection] -/
 def Simps.apply : α → β :=
   l
 #align lower_adjoint.simps.apply LowerAdjoint.Simps.apply
--/
 
 /- warning: lower_adjoint.gc -> LowerAdjoint.gc is a dubious translation:
 lean 3 declaration is
Diff
@@ -302,42 +302,62 @@ theorem top_mem_closed : ⊤ ∈ c.closed :=
 
 end OrderTop
 
-#print ClosureOperator.closure_inf_le /-
+/- warning: closure_operator.closure_inf_le -> ClosureOperator.closure_inf_le is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : SemilatticeInf.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) (x : α) (y : α), LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) c (Inf.inf.{u1} α (SemilatticeInf.toHasInf.{u1} α _inst_1) x y)) (Inf.inf.{u1} α (SemilatticeInf.toHasInf.{u1} α _inst_1) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) c x) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) c y))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : SemilatticeInf.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) (x : α) (y : α), LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) c) (Inf.inf.{u1} α (SemilatticeInf.toInf.{u1} α _inst_1) x y)) (Inf.inf.{u1} α (SemilatticeInf.toInf.{u1} α _inst_1) (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) c) x) (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) c) y))
+Case conversion may be inaccurate. Consider using '#align closure_operator.closure_inf_le ClosureOperator.closure_inf_leₓ'. -/
 theorem closure_inf_le [SemilatticeInf α] (c : ClosureOperator α) (x y : α) :
     c (x ⊓ y) ≤ c x ⊓ c y :=
   c.Monotone.map_inf_le _ _
 #align closure_operator.closure_inf_le ClosureOperator.closure_inf_le
--/
 
 section SemilatticeSup
 
 variable [SemilatticeSup α] (c : ClosureOperator α)
 
-#print ClosureOperator.closure_sup_closure_le /-
+/- warning: closure_operator.closure_sup_closure_le -> ClosureOperator.closure_sup_closure_le is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : SemilatticeSup.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (x : α) (y : α), LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (Sup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) c x) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) c y)) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) c (Sup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) x y))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : SemilatticeSup.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (x : α) (y : α), LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (Sup.sup.{u1} α (SemilatticeSup.toSup.{u1} α _inst_1) (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) c) x) (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) c) y)) (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) c) (Sup.sup.{u1} α (SemilatticeSup.toSup.{u1} α _inst_1) x y))
+Case conversion may be inaccurate. Consider using '#align closure_operator.closure_sup_closure_le ClosureOperator.closure_sup_closure_leₓ'. -/
 theorem closure_sup_closure_le (x y : α) : c x ⊔ c y ≤ c (x ⊔ y) :=
   c.Monotone.le_map_sup _ _
 #align closure_operator.closure_sup_closure_le ClosureOperator.closure_sup_closure_le
--/
 
-#print ClosureOperator.closure_sup_closure_left /-
+/- warning: closure_operator.closure_sup_closure_left -> ClosureOperator.closure_sup_closure_left is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : SemilatticeSup.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (x : α) (y : α), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) c (Sup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) c x) y)) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) c (Sup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) x y))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : SemilatticeSup.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (x : α) (y : α), Eq.{succ u1} α (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) c) (Sup.sup.{u1} α (SemilatticeSup.toSup.{u1} α _inst_1) (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) c) x) y)) (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) c) (Sup.sup.{u1} α (SemilatticeSup.toSup.{u1} α _inst_1) x y))
+Case conversion may be inaccurate. Consider using '#align closure_operator.closure_sup_closure_left ClosureOperator.closure_sup_closure_leftₓ'. -/
 theorem closure_sup_closure_left (x y : α) : c (c x ⊔ y) = c (x ⊔ y) :=
   ((c.le_closure_iff _ _).1
         (sup_le (c.Monotone le_sup_left) (le_sup_right.trans (c.le_closure _)))).antisymm
     (c.Monotone (sup_le_sup_right (c.le_closure _) _))
 #align closure_operator.closure_sup_closure_left ClosureOperator.closure_sup_closure_left
--/
 
-#print ClosureOperator.closure_sup_closure_right /-
+/- warning: closure_operator.closure_sup_closure_right -> ClosureOperator.closure_sup_closure_right is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : SemilatticeSup.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (x : α) (y : α), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) c (Sup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) x (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) c y))) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) c (Sup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) x y))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : SemilatticeSup.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (x : α) (y : α), Eq.{succ u1} α (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) c) (Sup.sup.{u1} α (SemilatticeSup.toSup.{u1} α _inst_1) x (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) c) y))) (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) c) (Sup.sup.{u1} α (SemilatticeSup.toSup.{u1} α _inst_1) x y))
+Case conversion may be inaccurate. Consider using '#align closure_operator.closure_sup_closure_right ClosureOperator.closure_sup_closure_rightₓ'. -/
 theorem closure_sup_closure_right (x y : α) : c (x ⊔ c y) = c (x ⊔ y) := by
   rw [sup_comm, closure_sup_closure_left, sup_comm]
 #align closure_operator.closure_sup_closure_right ClosureOperator.closure_sup_closure_right
--/
 
-#print ClosureOperator.closure_sup_closure /-
+/- warning: closure_operator.closure_sup_closure -> ClosureOperator.closure_sup_closure is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : SemilatticeSup.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (x : α) (y : α), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) c (Sup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) c x) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) c y))) (coeFn.{succ u1, succ u1} (ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (fun (_x : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) => α -> α) (ClosureOperator.hasCoeToFun.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) c (Sup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) x y))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : SemilatticeSup.{u1} α] (c : ClosureOperator.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (x : α) (y : α), Eq.{succ u1} α (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) c) (Sup.sup.{u1} α (SemilatticeSup.toSup.{u1} α _inst_1) (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) c) x) (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) c) y))) (OrderHom.toFun.{u1, u1} α α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) (ClosureOperator.toOrderHom.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) c) (Sup.sup.{u1} α (SemilatticeSup.toSup.{u1} α _inst_1) x y))
+Case conversion may be inaccurate. Consider using '#align closure_operator.closure_sup_closure ClosureOperator.closure_sup_closureₓ'. -/
 theorem closure_sup_closure (x y : α) : c (c x ⊔ c y) = c (x ⊔ y) := by
   rw [closure_sup_closure_left, closure_sup_closure_right]
 #align closure_operator.closure_sup_closure ClosureOperator.closure_sup_closure
--/
 
 end SemilatticeSup
 
@@ -611,9 +631,9 @@ theorem closure_top [PartialOrder α] [OrderTop α] [Preorder β] {u : β → α
 
 /- warning: lower_adjoint.closure_inf_le -> LowerAdjoint.closure_inf_le is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SemilatticeInf.{u1} α] [_inst_2 : Preorder.{u2} β] {u : β -> α} (l : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (x : α) (y : α), LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l (HasInf.inf.{u1} α (SemilatticeInf.toHasInf.{u1} α _inst_1) x y))) (HasInf.inf.{u1} α (SemilatticeInf.toHasInf.{u1} α _inst_1) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l x)) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l y)))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SemilatticeInf.{u1} α] [_inst_2 : Preorder.{u2} β] {u : β -> α} (l : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (x : α) (y : α), LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1))) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l (Inf.inf.{u1} α (SemilatticeInf.toHasInf.{u1} α _inst_1) x y))) (Inf.inf.{u1} α (SemilatticeInf.toHasInf.{u1} α _inst_1) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l x)) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeInf.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l y)))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : SemilatticeInf.{u2} α] [_inst_2 : Preorder.{u1} β] {u : β -> α} (l : LowerAdjoint.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeInf.toPartialOrder.{u2} α _inst_1)) _inst_2 u) (x : α) (y : α), LE.le.{u2} α (Preorder.toLE.{u2} α (PartialOrder.toPreorder.{u2} α (SemilatticeInf.toPartialOrder.{u2} α _inst_1))) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeInf.toPartialOrder.{u2} α _inst_1)) _inst_2 u l (HasInf.inf.{u2} α (SemilatticeInf.toHasInf.{u2} α _inst_1) x y))) (HasInf.inf.{u2} α (SemilatticeInf.toHasInf.{u2} α _inst_1) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeInf.toPartialOrder.{u2} α _inst_1)) _inst_2 u l x)) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeInf.toPartialOrder.{u2} α _inst_1)) _inst_2 u l y)))
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : SemilatticeInf.{u2} α] [_inst_2 : Preorder.{u1} β] {u : β -> α} (l : LowerAdjoint.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeInf.toPartialOrder.{u2} α _inst_1)) _inst_2 u) (x : α) (y : α), LE.le.{u2} α (Preorder.toLE.{u2} α (PartialOrder.toPreorder.{u2} α (SemilatticeInf.toPartialOrder.{u2} α _inst_1))) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeInf.toPartialOrder.{u2} α _inst_1)) _inst_2 u l (Inf.inf.{u2} α (SemilatticeInf.toInf.{u2} α _inst_1) x y))) (Inf.inf.{u2} α (SemilatticeInf.toInf.{u2} α _inst_1) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeInf.toPartialOrder.{u2} α _inst_1)) _inst_2 u l x)) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeInf.toPartialOrder.{u2} α _inst_1)) _inst_2 u l y)))
 Case conversion may be inaccurate. Consider using '#align lower_adjoint.closure_inf_le LowerAdjoint.closure_inf_leₓ'. -/
 theorem closure_inf_le [SemilatticeInf α] [Preorder β] {u : β → α} (l : LowerAdjoint u) (x y : α) :
     u (l (x ⊓ y)) ≤ u (l x) ⊓ u (l y) :=
@@ -626,9 +646,9 @@ variable [SemilatticeSup α] [Preorder β] {u : β → α} (l : LowerAdjoint u)
 
 /- warning: lower_adjoint.closure_sup_closure_le -> LowerAdjoint.closure_sup_closure_le is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SemilatticeSup.{u1} α] [_inst_2 : Preorder.{u2} β] {u : β -> α} (l : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (x : α) (y : α), LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (HasSup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l x)) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l y))) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l (HasSup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) x y)))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SemilatticeSup.{u1} α] [_inst_2 : Preorder.{u2} β] {u : β -> α} (l : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (x : α) (y : α), LE.le.{u1} α (Preorder.toLE.{u1} α (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1))) (Sup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l x)) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l y))) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l (Sup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) x y)))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : SemilatticeSup.{u2} α] [_inst_2 : Preorder.{u1} β] {u : β -> α} (l : LowerAdjoint.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u) (x : α) (y : α), LE.le.{u2} α (Preorder.toLE.{u2} α (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1))) (HasSup.sup.{u2} α (SemilatticeSup.toHasSup.{u2} α _inst_1) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u l x)) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u l y))) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u l (HasSup.sup.{u2} α (SemilatticeSup.toHasSup.{u2} α _inst_1) x y)))
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : SemilatticeSup.{u2} α] [_inst_2 : Preorder.{u1} β] {u : β -> α} (l : LowerAdjoint.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u) (x : α) (y : α), LE.le.{u2} α (Preorder.toLE.{u2} α (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1))) (Sup.sup.{u2} α (SemilatticeSup.toSup.{u2} α _inst_1) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u l x)) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u l y))) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u l (Sup.sup.{u2} α (SemilatticeSup.toSup.{u2} α _inst_1) x y)))
 Case conversion may be inaccurate. Consider using '#align lower_adjoint.closure_sup_closure_le LowerAdjoint.closure_sup_closure_leₓ'. -/
 theorem closure_sup_closure_le (x y : α) : u (l x) ⊔ u (l y) ≤ u (l (x ⊔ y)) :=
   l.ClosureOperator.closure_sup_closure_le x y
@@ -636,9 +656,9 @@ theorem closure_sup_closure_le (x y : α) : u (l x) ⊔ u (l y) ≤ u (l (x ⊔
 
 /- warning: lower_adjoint.closure_sup_closure_left -> LowerAdjoint.closure_sup_closure_left is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SemilatticeSup.{u1} α] [_inst_2 : Preorder.{u2} β] {u : β -> α} (l : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (x : α) (y : α), Eq.{succ u1} α (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l (HasSup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l x)) y))) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l (HasSup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) x y)))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SemilatticeSup.{u1} α] [_inst_2 : Preorder.{u2} β] {u : β -> α} (l : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (x : α) (y : α), Eq.{succ u1} α (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l (Sup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l x)) y))) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l (Sup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) x y)))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : SemilatticeSup.{u2} α] [_inst_2 : Preorder.{u1} β] {u : β -> α} (l : LowerAdjoint.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u) (x : α) (y : α), Eq.{succ u2} α (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u l (HasSup.sup.{u2} α (SemilatticeSup.toHasSup.{u2} α _inst_1) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u l x)) y))) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u l (HasSup.sup.{u2} α (SemilatticeSup.toHasSup.{u2} α _inst_1) x y)))
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : SemilatticeSup.{u2} α] [_inst_2 : Preorder.{u1} β] {u : β -> α} (l : LowerAdjoint.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u) (x : α) (y : α), Eq.{succ u2} α (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u l (Sup.sup.{u2} α (SemilatticeSup.toSup.{u2} α _inst_1) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u l x)) y))) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u l (Sup.sup.{u2} α (SemilatticeSup.toSup.{u2} α _inst_1) x y)))
 Case conversion may be inaccurate. Consider using '#align lower_adjoint.closure_sup_closure_left LowerAdjoint.closure_sup_closure_leftₓ'. -/
 theorem closure_sup_closure_left (x y : α) : u (l (u (l x) ⊔ y)) = u (l (x ⊔ y)) :=
   l.ClosureOperator.closure_sup_closure_left x y
@@ -646,9 +666,9 @@ theorem closure_sup_closure_left (x y : α) : u (l (u (l x) ⊔ y)) = u (l (x 
 
 /- warning: lower_adjoint.closure_sup_closure_right -> LowerAdjoint.closure_sup_closure_right is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SemilatticeSup.{u1} α] [_inst_2 : Preorder.{u2} β] {u : β -> α} (l : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (x : α) (y : α), Eq.{succ u1} α (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l (HasSup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) x (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l y))))) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l (HasSup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) x y)))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SemilatticeSup.{u1} α] [_inst_2 : Preorder.{u2} β] {u : β -> α} (l : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (x : α) (y : α), Eq.{succ u1} α (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l (Sup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) x (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l y))))) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l (Sup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) x y)))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : SemilatticeSup.{u2} α] [_inst_2 : Preorder.{u1} β] {u : β -> α} (l : LowerAdjoint.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u) (x : α) (y : α), Eq.{succ u2} α (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u l (HasSup.sup.{u2} α (SemilatticeSup.toHasSup.{u2} α _inst_1) x (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u l y))))) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u l (HasSup.sup.{u2} α (SemilatticeSup.toHasSup.{u2} α _inst_1) x y)))
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : SemilatticeSup.{u2} α] [_inst_2 : Preorder.{u1} β] {u : β -> α} (l : LowerAdjoint.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u) (x : α) (y : α), Eq.{succ u2} α (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u l (Sup.sup.{u2} α (SemilatticeSup.toSup.{u2} α _inst_1) x (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u l y))))) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u l (Sup.sup.{u2} α (SemilatticeSup.toSup.{u2} α _inst_1) x y)))
 Case conversion may be inaccurate. Consider using '#align lower_adjoint.closure_sup_closure_right LowerAdjoint.closure_sup_closure_rightₓ'. -/
 theorem closure_sup_closure_right (x y : α) : u (l (x ⊔ u (l y))) = u (l (x ⊔ y)) :=
   l.ClosureOperator.closure_sup_closure_right x y
@@ -656,9 +676,9 @@ theorem closure_sup_closure_right (x y : α) : u (l (x ⊔ u (l y))) = u (l (x 
 
 /- warning: lower_adjoint.closure_sup_closure -> LowerAdjoint.closure_sup_closure is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SemilatticeSup.{u1} α] [_inst_2 : Preorder.{u2} β] {u : β -> α} (l : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (x : α) (y : α), Eq.{succ u1} α (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l (HasSup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l x)) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l y))))) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l (HasSup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) x y)))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : SemilatticeSup.{u1} α] [_inst_2 : Preorder.{u2} β] {u : β -> α} (l : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (x : α) (y : α), Eq.{succ u1} α (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l (Sup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l x)) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l y))))) (u (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) (fun (_x : LowerAdjoint.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) => α -> β) (LowerAdjoint.hasCoeToFun.{u1, u2} α β (PartialOrder.toPreorder.{u1} α (SemilatticeSup.toPartialOrder.{u1} α _inst_1)) _inst_2 u) l (Sup.sup.{u1} α (SemilatticeSup.toHasSup.{u1} α _inst_1) x y)))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : SemilatticeSup.{u2} α] [_inst_2 : Preorder.{u1} β] {u : β -> α} (l : LowerAdjoint.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u) (x : α) (y : α), Eq.{succ u2} α (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u l (HasSup.sup.{u2} α (SemilatticeSup.toHasSup.{u2} α _inst_1) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u l x)) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u l y))))) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u l (HasSup.sup.{u2} α (SemilatticeSup.toHasSup.{u2} α _inst_1) x y)))
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : SemilatticeSup.{u2} α] [_inst_2 : Preorder.{u1} β] {u : β -> α} (l : LowerAdjoint.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u) (x : α) (y : α), Eq.{succ u2} α (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u l (Sup.sup.{u2} α (SemilatticeSup.toSup.{u2} α _inst_1) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u l x)) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u l y))))) (u (LowerAdjoint.toFun.{u2, u1} α β (PartialOrder.toPreorder.{u2} α (SemilatticeSup.toPartialOrder.{u2} α _inst_1)) _inst_2 u l (Sup.sup.{u2} α (SemilatticeSup.toSup.{u2} α _inst_1) x y)))
 Case conversion may be inaccurate. Consider using '#align lower_adjoint.closure_sup_closure LowerAdjoint.closure_sup_closureₓ'. -/
 theorem closure_sup_closure (x y : α) : u (l (u (l x) ⊔ u (l y))) = u (l (x ⊔ y)) :=
   l.ClosureOperator.closure_sup_closure x y

Changes in mathlib4

mathlib3
mathlib4
Feat: Add some operations and lemmas on closure operators/order homs (#10348)

This adds conjugation of order homomorphisms & closure operators by order isos, as well as two new extensionality lemmas for closure operators, a proof that the inf of a closed family is closed, and that the closure of an element is the GLB of all closed elements larger than it. There is also includes some minor refactoring, moving Set.image_sSup from Mathlib/Order/Hom/CompleteLattice to Mathlib/Data/Set/Lattice and adding some common lemmas for EquivLike-things to OrderIso.

Diff
@@ -80,6 +80,28 @@ instance [Preorder α] : OrderHomClass (ClosureOperator α) α α where
 
 initialize_simps_projections ClosureOperator (toFun → apply, IsClosed → isClosed)
 
+
+/-- If `c` is a closure operator on `α` and `e` an order-isomorphism
+between `α` and `β` then `e ∘ c ∘ e⁻¹` is a closure operator on `β`. -/
+@[simps apply]
+def conjBy {α β} [Preorder α] [Preorder β] (c : ClosureOperator α)
+    (e : α ≃o β) : ClosureOperator β where
+  toFun := e.conj c
+  IsClosed b := c.IsClosed (e.symm b)
+  monotone' _ _ h :=
+    (map_le_map_iff e).mpr <| c.monotone <| (map_le_map_iff e.symm).mpr h
+  le_closure' _ := e.symm_apply_le.mp (c.le_closure' _)
+  idempotent' _ :=
+    congrArg e <| Eq.trans (congrArg c (e.symm_apply_apply _)) (c.idempotent' _)
+  isClosed_iff := Iff.trans c.isClosed_iff e.eq_symm_apply
+
+lemma conjBy_refl {α} [Preorder α] (c : ClosureOperator α) :
+    c.conjBy (OrderIso.refl α) = c := rfl
+
+lemma conjBy_trans {α β γ} [Preorder α] [Preorder β] [Preorder γ]
+    (e₁ : α ≃o β) (e₂ : β ≃o γ) (c : ClosureOperator α) :
+    c.conjBy (e₁.trans e₂) = (c.conjBy e₁).conjBy e₂ := rfl
+
 section PartialOrder
 
 variable [PartialOrder α]
@@ -102,9 +124,8 @@ instance : Inhabited (ClosureOperator α) :=
 variable {α} [PartialOrder α] (c : ClosureOperator α)
 
 @[ext]
-theorem ext : ∀ c₁ c₂ : ClosureOperator α, (c₁ : α → α) = (c₂ : α → α) → c₁ = c₂ :=
-  DFunLike.coe_injective
-#align closure_operator.ext ClosureOperator.ext
+theorem ext : ∀ c₁ c₂ : ClosureOperator α, (∀ x, c₁ x = c₂ x) → c₁ = c₂ :=
+  DFunLike.ext
 
 /-- Constructor for a closure operator using the weaker idempotency axiom: `f (f x) ≤ f x`. -/
 @[simps]
@@ -195,6 +216,15 @@ theorem IsClosed.closure_le_iff (hy : c.IsClosed y) : c x ≤ y ↔ x ≤ y := b
 
 lemma closure_min (hxy : x ≤ y) (hy : c.IsClosed y) : c x ≤ y := hy.closure_le_iff.2 hxy
 
+lemma closure_isGLB (x : α) : IsGLB { y | x ≤ y ∧ c.IsClosed y } (c x) where
+  left _ := and_imp.mpr closure_min
+  right _ h := h ⟨c.le_closure x, c.isClosed_closure x⟩
+
+theorem ext_isClosed (c₁ c₂ : ClosureOperator α)
+    (h : ∀ x, c₁.IsClosed x ↔ c₂.IsClosed x) : c₁ = c₂ :=
+  ext c₁ c₂ <| fun x => IsGLB.unique (c₁.closure_isGLB x) <|
+    (Set.ext (and_congr_right' <| h ·)).substr (c₂.closure_isGLB x)
+
 /-- A closure operator is equal to the closure operator obtained by feeding `c.closed` into the
 `ofPred` constructor. -/
 theorem eq_ofPred_closed (c : ClosureOperator α) :
@@ -262,6 +292,11 @@ def ofCompletePred (p : α → Prop) (hsinf : ∀ s, (∀ a ∈ s, p a) → p (s
     (fun a ↦ hsinf _ <| forall_mem_range.2 fun b ↦ b.2.2)
     (fun a b hab hb ↦ iInf_le_of_le ⟨b, hab, hb⟩ le_rfl)
 
+theorem sInf_isClosed {c : ClosureOperator α} {S : Set α}
+    (H : ∀ x ∈ S, c.IsClosed x) : c.IsClosed (sInf S) :=
+  isClosed_iff_closure_le.mpr <| le_of_le_of_eq c.monotone.map_sInf_le <|
+    Eq.trans (biInf_congr (c.isClosed_iff.mp <| H · ·)) sInf_eq_iInf.symm
+
 @[simp]
 theorem closure_iSup_closure (f : ι → α) : c (⨆ i, c (f i)) = c (⨆ i, f i) :=
   le_antisymm (le_closure_iff.1 <| iSup_le fun i => c.monotone <| le_iSup f i) <|
@@ -279,6 +314,18 @@ end CompleteLattice
 
 end ClosureOperator
 
+/-- Conjugating `ClosureOperators` on `α` and on `β` by a fixed isomorphism
+`e : α ≃o β` gives an equivalence `ClosureOperator α ≃ ClosureOperator β`. -/
+@[simps apply symm_apply]
+def OrderIso.equivClosureOperator {α β} [Preorder α] [Preorder β] (e : α ≃o β) :
+    ClosureOperator α ≃ ClosureOperator β where
+  toFun     c := c.conjBy e
+  invFun    c := c.conjBy e.symm
+  left_inv  c := Eq.trans (c.conjBy_trans _ _).symm
+                 <| Eq.trans (congrArg _ e.self_trans_symm) c.conjBy_refl
+  right_inv c := Eq.trans (c.conjBy_trans _ _).symm
+                 <| Eq.trans (congrArg _ e.symm_trans_self) c.conjBy_refl
+
 /-! ### Lower adjoint -/
 
 
chore: replace λ by fun (#11301)

Per the style guidelines, λ is disallowed in mathlib. This is close to exhaustive; I left some tactic code alone when it seemed to me that tactic could be upstreamed soon.

Notes

  • In lines I was modifying anyway, I also converted => to .
  • Also contains some mild in-passing indentation fixes in Mathlib/Order/SupClosed.
  • Some doc comments still contained Lean 3 syntax λ x, , which I also replaced.
Diff
@@ -136,7 +136,7 @@ def ofPred (f : α → α) (p : α → Prop) (hf : ∀ x, x ≤ f x) (hfp : ∀
     (hmin : ∀ ⦃x y⦄, x ≤ y → p y → f x ≤ y) : ClosureOperator α where
   __ := mk₂ f hf fun _ y hxy => hmin hxy (hfp y)
   IsClosed := p
-  isClosed_iff := ⟨λ hx ↦ (hmin le_rfl hx).antisymm <| hf _, λ hx ↦ hx ▸ hfp _⟩
+  isClosed_iff := ⟨fun hx ↦ (hmin le_rfl hx).antisymm <| hf _, fun hx ↦ hx ▸ hfp _⟩
 #align closure_operator.mk₃ ClosureOperator.ofPred
 #align closure_operator.mk₃_apply ClosureOperator.ofPred_apply
 #align closure_operator.mem_mk₃_closed ClosureOperator.ofPred_isClosed
chore: Remove ball and bex from lemma names (#10816)

ball for "bounded forall" and bex for "bounded exists" are from experience very confusing abbreviations. This PR renames them to forall_mem and exists_mem in the few Set lemma names that mention them.

Also deprecate ball_image_of_ball, mem_image_elim, mem_image_elim_on since those lemmas are duplicates of the renamed lemmas (apart from argument order and implicitness, which I am also fixing by making the binder in the RHS of forall_mem_image semi-implicit), have obscure names and are completely unused.

Diff
@@ -259,7 +259,7 @@ variable [CompleteLattice α] (c : ClosureOperator α) {p : α → Prop}
 def ofCompletePred (p : α → Prop) (hsinf : ∀ s, (∀ a ∈ s, p a) → p (sInf s)) : ClosureOperator α :=
   ofPred (fun a ↦ ⨅ b : {b // a ≤ b ∧ p b}, b) p
     (fun a ↦ by set_option tactic.skipAssignedInstances false in simp [forall_swap])
-    (fun a ↦ hsinf _ <| forall_range_iff.2 fun b ↦ b.2.2)
+    (fun a ↦ hsinf _ <| forall_mem_range.2 fun b ↦ b.2.2)
     (fun a b hab hb ↦ iInf_le_of_le ⟨b, hab, hb⟩ le_rfl)
 
 @[simp]
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
@@ -73,7 +73,7 @@ namespace ClosureOperator
 
 instance [Preorder α] : FunLike (ClosureOperator α) α α where
   coe c := c.1
-  coe_injective' := by rintro ⟨⟩ ⟨⟩ h; obtain rfl := DFunLike.ext' h; congr with x; simp [*]
+  coe_injective' := by rintro ⟨⟩ ⟨⟩ h; obtain rfl := DFunLike.ext' h; congr with x; simp_all
 
 instance [Preorder α] : OrderHomClass (ClosureOperator α) α α where
   map_rel f _ _ h := f.mono h
@@ -258,7 +258,7 @@ variable [CompleteLattice α] (c : ClosureOperator α) {p : α → Prop}
 @[simps!]
 def ofCompletePred (p : α → Prop) (hsinf : ∀ s, (∀ a ∈ s, p a) → p (sInf s)) : ClosureOperator α :=
   ofPred (fun a ↦ ⨅ b : {b // a ≤ b ∧ p b}, b) p
-    (fun a ↦ by simp [forall_swap])
+    (fun a ↦ by set_option tactic.skipAssignedInstances false in simp [forall_swap])
     (fun a ↦ hsinf _ <| forall_range_iff.2 fun b ↦ b.2.2)
     (fun a b hab hb ↦ iInf_le_of_le ⟨b, hab, hb⟩ le_rfl)
 
refactor(Data/FunLike): use unbundled inheritance from FunLike (#8386)

The FunLike hierarchy is very big and gets scanned through each time we need a coercion (via the CoeFun instance). It looks like unbundled inheritance suits Lean 4 better here. The only class that still extends FunLike is EquivLike, since that has a custom coe_injective' field that is easier to implement. All other classes should take FunLike or EquivLike as a parameter.

Zulip thread

Important changes

Previously, morphism classes would be Type-valued and extend FunLike:

/-- `MyHomClass F A B` states that `F` is a type of `MyClass.op`-preserving morphisms.
You should extend this class when you extend `MyHom`. -/
class MyHomClass (F : Type*) (A B : outParam <| Type*) [MyClass A] [MyClass B]
  extends FunLike F A B :=
(map_op : ∀ (f : F) (x y : A), f (MyClass.op x y) = MyClass.op (f x) (f y))

After this PR, they should be Prop-valued and take FunLike as a parameter:

/-- `MyHomClass F A B` states that `F` is a type of `MyClass.op`-preserving morphisms.
You should extend this class when you extend `MyHom`. -/
class MyHomClass (F : Type*) (A B : outParam <| Type*) [MyClass A] [MyClass B]
  [FunLike F A B] : Prop :=
(map_op : ∀ (f : F) (x y : A), f (MyClass.op x y) = MyClass.op (f x) (f y))

(Note that A B stay marked as outParam even though they are not purely required to be so due to the FunLike parameter already filling them in. This is required to see through type synonyms, which is important in the category theory library. Also, I think keeping them as outParam is slightly faster.)

Similarly, MyEquivClass should take EquivLike as a parameter.

As a result, every mention of [MyHomClass F A B] should become [FunLike F A B] [MyHomClass F A B].

Remaining issues

Slower (failing) search

While overall this gives some great speedups, there are some cases that are noticeably slower. In particular, a failing application of a lemma such as map_mul is more expensive. This is due to suboptimal processing of arguments. For example:

variable [FunLike F M N] [Mul M] [Mul N] (f : F) (x : M) (y : M)

theorem map_mul [MulHomClass F M N] : f (x * y) = f x * f y

example [AddHomClass F A B] : f (x * y) = f x * f y := map_mul f _ _

Before this PR, applying map_mul f gives the goals [Mul ?M] [Mul ?N] [MulHomClass F ?M ?N]. Since M and N are out_params, [MulHomClass F ?M ?N] is synthesized first, supplies values for ?M and ?N and then the Mul M and Mul N instances can be found.

After this PR, the goals become [FunLike F ?M ?N] [Mul ?M] [Mul ?N] [MulHomClass F ?M ?N]. Now [FunLike F ?M ?N] is synthesized first, supplies values for ?M and ?N and then the Mul M and Mul N instances can be found, before trying MulHomClass F M N which fails. Since the Mul hierarchy is very big, this can be slow to fail, especially when there is no such Mul instance.

A long-term but harder to achieve solution would be to specify the order in which instance goals get solved. For example, we'd like to change the arguments to map_mul to look like [FunLike F M N] [Mul M] [Mul N] [highPriority <| MulHomClass F M N] because MulHomClass fails or succeeds much faster than the others.

As a consequence, the simpNF linter is much slower since by design it tries and fails to apply many map_ lemmas. The same issue occurs a few times in existing calls to simp [map_mul], where map_mul is tried "too soon" and fails. Thanks to the speedup of leanprover/lean4#2478 the impact is very limited, only in files that already were close to the timeout.

simp not firing sometimes

This affects map_smulₛₗ and related definitions. For simp lemmas Lean apparently uses a slightly different mechanism to find instances, so that rw can find every argument to map_smulₛₗ successfully but simp can't: leanprover/lean4#3701.

Missing instances due to unification failing

Especially in the category theory library, we might sometimes have a type A which is also accessible as a synonym (Bundled A hA).1. Instance synthesis doesn't always work if we have f : A →* B but x * y : (Bundled A hA).1 or vice versa. This seems to be mostly fixed by keeping A B as outParams in MulHomClass F A B. (Presumably because Lean will do a definitional check A =?= (Bundled A hA).1 instead of using the syntax in the discrimination tree.)

Workaround for issues

The timeouts can be worked around for now by specifying which map_mul we mean, either as map_mul f for some explicit f, or as e.g. MonoidHomClass.map_mul.

map_smulₛₗ not firing as simp lemma can be worked around by going back to the pre-FunLike situation and making LinearMap.map_smulₛₗ a simp lemma instead of the generic map_smulₛₗ. Writing simp [map_smulₛₗ _] also works.

Co-authored-by: Matthew Ballard <matt@mrb.email> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Scott Morrison <scott@tqft.net> Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>

Diff
@@ -71,9 +71,11 @@ structure ClosureOperator [Preorder α] extends α →o α where
 
 namespace ClosureOperator
 
-instance [Preorder α] : OrderHomClass (ClosureOperator α) α α where
+instance [Preorder α] : FunLike (ClosureOperator α) α α where
   coe c := c.1
   coe_injective' := by rintro ⟨⟩ ⟨⟩ h; obtain rfl := DFunLike.ext' h; congr with x; simp [*]
+
+instance [Preorder α] : OrderHomClass (ClosureOperator α) α α where
   map_rel f _ _ h := f.mono h
 
 initialize_simps_projections ClosureOperator (toFun → apply, IsClosed → isClosed)
chore(*): rename FunLike to DFunLike (#9785)

This prepares for the introduction of a non-dependent synonym of FunLike, which helps a lot with keeping #8386 readable.

This is entirely search-and-replace in 680197f combined with manual fixes in 4145626, e900597 and b8428f8. The commands that generated this change:

sed -i 's/\bFunLike\b/DFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\btoFunLike\b/toDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/import Mathlib.Data.DFunLike/import Mathlib.Data.FunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\bHom_FunLike\b/Hom_DFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean     
sed -i 's/\binstFunLike\b/instDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\bfunLike\b/instDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\btoo many metavariables to apply `fun_like.has_coe_to_fun`/too many metavariables to apply `DFunLike.hasCoeToFun`/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean

Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>

Diff
@@ -73,7 +73,7 @@ namespace ClosureOperator
 
 instance [Preorder α] : OrderHomClass (ClosureOperator α) α α where
   coe c := c.1
-  coe_injective' := by rintro ⟨⟩ ⟨⟩ h; obtain rfl := FunLike.ext' h; congr with x; simp [*]
+  coe_injective' := by rintro ⟨⟩ ⟨⟩ h; obtain rfl := DFunLike.ext' h; congr with x; simp [*]
   map_rel f _ _ h := f.mono h
 
 initialize_simps_projections ClosureOperator (toFun → apply, IsClosed → isClosed)
@@ -101,7 +101,7 @@ variable {α} [PartialOrder α] (c : ClosureOperator α)
 
 @[ext]
 theorem ext : ∀ c₁ c₂ : ClosureOperator α, (c₁ : α → α) = (c₂ : α → α) → c₁ = c₂ :=
-  FunLike.coe_injective
+  DFunLike.coe_injective
 #align closure_operator.ext ClosureOperator.ext
 
 /-- Constructor for a closure operator using the weaker idempotency axiom: `f (f x) ≤ f x`. -/
chore(*): replace $ with <| (#9319)

See Zulip thread for the discussion.

Diff
@@ -134,7 +134,7 @@ def ofPred (f : α → α) (p : α → Prop) (hf : ∀ x, x ≤ f x) (hfp : ∀
     (hmin : ∀ ⦃x y⦄, x ≤ y → p y → f x ≤ y) : ClosureOperator α where
   __ := mk₂ f hf fun _ y hxy => hmin hxy (hfp y)
   IsClosed := p
-  isClosed_iff := ⟨λ hx ↦ (hmin le_rfl hx).antisymm $ hf _, λ hx ↦ hx ▸ hfp _⟩
+  isClosed_iff := ⟨λ hx ↦ (hmin le_rfl hx).antisymm <| hf _, λ hx ↦ hx ▸ hfp _⟩
 #align closure_operator.mk₃ ClosureOperator.ofPred
 #align closure_operator.mk₃_apply ClosureOperator.ofPred_apply
 #align closure_operator.mem_mk₃_closed ClosureOperator.ofPred_isClosed
@@ -158,7 +158,7 @@ theorem idempotent (x : α) : c (c x) = c x :=
   c.idempotent' x
 #align closure_operator.idempotent ClosureOperator.idempotent
 
-@[simp] lemma isClosed_closure (x : α) : c.IsClosed (c x) := c.isClosed_iff.2 $ c.idempotent x
+@[simp] lemma isClosed_closure (x : α) : c.IsClosed (c x) := c.isClosed_iff.2 <| c.idempotent x
 #align closure_operator.closure_is_closed ClosureOperator.isClosed_closure
 
 /-- The type of elements closed under a closure operator. -/
@@ -174,7 +174,7 @@ theorem IsClosed.closure_eq : c.IsClosed x → c x = x := c.isClosed_iff.1
 #align closure_operator.closure_eq_self_of_mem_closed ClosureOperator.IsClosed.closure_eq
 
 theorem isClosed_iff_closure_le : c.IsClosed x ↔ c x ≤ x :=
-  ⟨fun h ↦ h.closure_eq.le, fun h ↦ c.isClosed_iff.2 $ h.antisymm $ c.le_closure x⟩
+  ⟨fun h ↦ h.closure_eq.le, fun h ↦ c.isClosed_iff.2 <| h.antisymm <| c.le_closure x⟩
 #align closure_operator.mem_closed_iff_closure_le ClosureOperator.isClosed_iff_closure_le
 
 /-- The set of closed elements for `c` is exactly its range. -/
@@ -257,7 +257,7 @@ variable [CompleteLattice α] (c : ClosureOperator α) {p : α → Prop}
 def ofCompletePred (p : α → Prop) (hsinf : ∀ s, (∀ a ∈ s, p a) → p (sInf s)) : ClosureOperator α :=
   ofPred (fun a ↦ ⨅ b : {b // a ≤ b ∧ p b}, b) p
     (fun a ↦ by simp [forall_swap])
-    (fun a ↦ hsinf _ $ forall_range_iff.2 fun b ↦ b.2.2)
+    (fun a ↦ hsinf _ <| forall_range_iff.2 fun b ↦ b.2.2)
     (fun a b hab hb ↦ iInf_le_of_le ⟨b, hab, hb⟩ le_rfl)
 
 @[simp]
chore(*): drop $/<| before fun (#9361)

Subset of #9319

Diff
@@ -257,7 +257,7 @@ variable [CompleteLattice α] (c : ClosureOperator α) {p : α → Prop}
 def ofCompletePred (p : α → Prop) (hsinf : ∀ s, (∀ a ∈ s, p a) → p (sInf s)) : ClosureOperator α :=
   ofPred (fun a ↦ ⨅ b : {b // a ≤ b ∧ p b}, b) p
     (fun a ↦ by simp [forall_swap])
-    (fun a ↦ hsinf _ $ forall_range_iff.2 $ fun b ↦ b.2.2)
+    (fun a ↦ hsinf _ $ forall_range_iff.2 fun b ↦ b.2.2)
     (fun a b hab hb ↦ iInf_le_of_le ⟨b, hab, hb⟩ le_rfl)
 
 @[simp]
refactor: Closure predicate for ClosureOperator (#9153)

This PR is the result of two years and a half of pondering.

The only way we ever define closure operators is by having a pre-existing "closedness" predicate and defining the closure of an element x as the infimum of all closed y ≥ x (assuming we're in a complete lattice). In particular, the emphasis is not on the preorder of closed elements, but on the closedness predicate. Morally, this is because a closure operator is the same as a Galois connection to the preorder of closed elements, but without mentioning the preorder of closed elements. That means that if we cared about the preorder of closed elements, we would not have wanted a closure operator in the first place, but a Galois connection.

All this said, here's what this PR does

  • Add an IsClosed predicate to ClosureOperator. This redundant field is here to fix definitional equalities.
  • Remove the set closeds. This is mostly replaced by the predicate, except in the map toCloseds, so we...
  • ... Introduce an abbrev Closeds for the order of closed elements
  • Rename toClosed to toCloseds to match.
  • Rename the constructor mk₃ to the more sexy ofPred. This is virtually the only useful constructor. Maybe it should even be taken as the definition, but I haven't gone that far.
  • Rename the old ofPred to ofCompletePred. ofCompletePred is a specialisation of ofPred to the case where we are in a complete lattice.
  • Remove a bunch of lemmas that are junk now that the definitional equality for IsClosed can be controlled.
  • Golf existing uses of ClosureOperator. The diff here, I think, truly demonstrates that this PR is a step forward.

I am not extending the refactor to LowerAdjoint because:

  • I am still not sure we want LowerAdjoint to even exist
  • The rationale of preferring the closedness predicate over the preorder of closed elements is less strong here.
  • I am lazy.

It is however easy to do the same refactor if wanted.

Diff
@@ -61,16 +61,22 @@ structure ClosureOperator [Preorder α] extends α →o α where
   le_closure' : ∀ x, x ≤ toFun x
   /-- Closures are idempotent -/
   idempotent' : ∀ x, toFun (toFun x) = toFun x
+  /-- Predicate for an element to be closed.
+
+  By default, this is defined as `c.IsClosed x := (c x = x)` (see `isClosed_iff`).
+  We allow an override to fix definitional equalities. -/
+  IsClosed (x : α) : Prop := toFun x = x
+  isClosed_iff {x : α} : IsClosed x ↔ toFun x = x := by aesop
 #align closure_operator ClosureOperator
 
 namespace ClosureOperator
 
 instance [Preorder α] : OrderHomClass (ClosureOperator α) α α where
   coe c := c.1
-  coe_injective' := by rintro ⟨⟩ ⟨⟩ h; congr; exact FunLike.ext' h
+  coe_injective' := by rintro ⟨⟩ ⟨⟩ h; obtain rfl := FunLike.ext' h; congr with x; simp [*]
   map_rel f _ _ h := f.mono h
 
-initialize_simps_projections ClosureOperator (toFun → apply)
+initialize_simps_projections ClosureOperator (toFun → apply, IsClosed → isClosed)
 
 section PartialOrder
 
@@ -82,8 +88,11 @@ def id : ClosureOperator α where
   toOrderHom := OrderHom.id
   le_closure' _ := le_rfl
   idempotent' _ := rfl
+  IsClosed _ := True
 #align closure_operator.id ClosureOperator.id
 #align closure_operator.id_apply ClosureOperator.id_apply
+#align closure_operator.closed ClosureOperator.IsClosed
+#align closure_operator.mem_closed_iff ClosureOperator.isClosed_iff
 
 instance : Inhabited (ClosureOperator α) :=
   ⟨id α⟩
@@ -91,9 +100,8 @@ instance : Inhabited (ClosureOperator α) :=
 variable {α} [PartialOrder α] (c : ClosureOperator α)
 
 @[ext]
-theorem ext : ∀ c₁ c₂ : ClosureOperator α, (c₁ : α → α) = (c₂ : α → α) → c₁ = c₂
-  | ⟨⟨c₁, _⟩, _, _⟩, ⟨⟨c₂, _⟩, _, _⟩, h => by
-    congr
+theorem ext : ∀ c₁ c₂ : ClosureOperator α, (c₁ : α → α) = (c₂ : α → α) → c₁ = c₂ :=
+  FunLike.coe_injective
 #align closure_operator.ext ClosureOperator.ext
 
 /-- Constructor for a closure operator using the weaker idempotency axiom: `f (f x) ≤ f x`. -/
@@ -119,30 +127,20 @@ def mk₂ (f : α → α) (hf : ∀ x, x ≤ f x) (hmin : ∀ ⦃x y⦄, x ≤ f
 #align closure_operator.mk₂ ClosureOperator.mk₂
 #align closure_operator.mk₂_apply ClosureOperator.mk₂_apply
 
-/-- Expanded out version of `mk₂`. `p` implies being closed. This constructor should be used when
-you already know a sufficient condition for being closed and using `mem_mk₃_closed` will avoid you
-the (slight) hassle of having to prove it both inside and outside the constructor. -/
+/-- Construct a closure operator from an inflationary function `f` and a "closedness" predicate `p`
+witnessing minimality of `f x` among closed elements greater than `x`. -/
 @[simps!]
-def mk₃ (f : α → α) (p : α → Prop) (hf : ∀ x, x ≤ f x) (hfp : ∀ x, p (f x))
-    (hmin : ∀ ⦃x y⦄, x ≤ y → p y → f x ≤ y) : ClosureOperator α :=
-  mk₂ f hf fun _ y hxy => hmin hxy (hfp y)
-#align closure_operator.mk₃ ClosureOperator.mk₃
-#align closure_operator.mk₃_apply ClosureOperator.mk₃_apply
-
-/-- This lemma shows that the image of `x` of a closure operator built from the `mk₃` constructor
-respects `p`, the property that was fed into it. -/
-theorem closure_mem_mk₃ {f : α → α} {p : α → Prop} {hf : ∀ x, x ≤ f x} {hfp : ∀ x, p (f x)}
-    {hmin : ∀ ⦃x y⦄, x ≤ y → p y → f x ≤ y} (x : α) : p (mk₃ f p hf hfp hmin x) :=
-  hfp x
-#align closure_operator.closure_mem_mk₃ ClosureOperator.closure_mem_mk₃
-
-/-- Analogue of `closure_le_closed_iff_le` but with the `p` that was fed into the `mk₃` constructor.
--/
-theorem closure_le_mk₃_iff {f : α → α} {p : α → Prop} {hf : ∀ x, x ≤ f x} {hfp : ∀ x, p (f x)}
-    {hmin : ∀ ⦃x y⦄, x ≤ y → p y → f x ≤ y} {x y : α} (hxy : x ≤ y) (hy : p y) :
-    mk₃ f p hf hfp hmin x ≤ y :=
-  hmin hxy hy
-#align closure_operator.closure_le_mk₃_iff ClosureOperator.closure_le_mk₃_iff
+def ofPred (f : α → α) (p : α → Prop) (hf : ∀ x, x ≤ f x) (hfp : ∀ x, p (f x))
+    (hmin : ∀ ⦃x y⦄, x ≤ y → p y → f x ≤ y) : ClosureOperator α where
+  __ := mk₂ f hf fun _ y hxy => hmin hxy (hfp y)
+  IsClosed := p
+  isClosed_iff := ⟨λ hx ↦ (hmin le_rfl hx).antisymm $ hf _, λ hx ↦ hx ▸ hfp _⟩
+#align closure_operator.mk₃ ClosureOperator.ofPred
+#align closure_operator.mk₃_apply ClosureOperator.ofPred_apply
+#align closure_operator.mem_mk₃_closed ClosureOperator.ofPred_isClosed
+
+#noalign closure_operator.closure_mem_ofPred
+#noalign closure_operator.closure_le_ofPred_iff
 
 @[mono]
 theorem monotone : Monotone c :=
@@ -160,66 +158,48 @@ theorem idempotent (x : α) : c (c x) = c x :=
   c.idempotent' x
 #align closure_operator.idempotent ClosureOperator.idempotent
 
-theorem le_closure_iff (x y : α) : x ≤ c y ↔ c x ≤ c y :=
-  ⟨fun h => c.idempotent y ▸ c.monotone h, fun h => (c.le_closure x).trans h⟩
-#align closure_operator.le_closure_iff ClosureOperator.le_closure_iff
+@[simp] lemma isClosed_closure (x : α) : c.IsClosed (c x) := c.isClosed_iff.2 $ c.idempotent x
+#align closure_operator.closure_is_closed ClosureOperator.isClosed_closure
 
-/-- An element `x` is closed for the closure operator `c` if it is a fixed point for it. -/
-def closed : Set α := {x | c x = x}
-#align closure_operator.closed ClosureOperator.closed
+/-- The type of elements closed under a closure operator. -/
+abbrev Closeds := {x // c.IsClosed x}
 
-theorem mem_closed_iff (x : α) : x ∈ c.closed ↔ c x = x :=
-  Iff.rfl
-#align closure_operator.mem_closed_iff ClosureOperator.mem_closed_iff
+/-- Send an element to a closed element (by taking the closure). -/
+def toCloseds (x : α) : c.Closeds := ⟨c x, c.isClosed_closure x⟩
+#align closure_operator.to_closed ClosureOperator.toCloseds
 
-theorem mem_closed_iff_closure_le (x : α) : x ∈ c.closed ↔ c x ≤ x :=
-  ⟨le_of_eq, fun h => h.antisymm (c.le_closure x)⟩
-#align closure_operator.mem_closed_iff_closure_le ClosureOperator.mem_closed_iff_closure_le
+variable {c} {x y : α}
 
-theorem closure_eq_self_of_mem_closed {x : α} (h : x ∈ c.closed) : c x = x :=
-  h
-#align closure_operator.closure_eq_self_of_mem_closed ClosureOperator.closure_eq_self_of_mem_closed
+theorem IsClosed.closure_eq : c.IsClosed x → c x = x := c.isClosed_iff.1
+#align closure_operator.closure_eq_self_of_mem_closed ClosureOperator.IsClosed.closure_eq
 
-@[simp]
-theorem closure_is_closed (x : α) : c x ∈ c.closed :=
-  c.idempotent x
-#align closure_operator.closure_is_closed ClosureOperator.closure_is_closed
+theorem isClosed_iff_closure_le : c.IsClosed x ↔ c x ≤ x :=
+  ⟨fun h ↦ h.closure_eq.le, fun h ↦ c.isClosed_iff.2 $ h.antisymm $ c.le_closure x⟩
+#align closure_operator.mem_closed_iff_closure_le ClosureOperator.isClosed_iff_closure_le
 
 /-- The set of closed elements for `c` is exactly its range. -/
-theorem closed_eq_range_close : c.closed = Set.range c :=
-  Set.ext fun x =>
-    ⟨fun h => ⟨x, h⟩, by
-      rintro ⟨y, rfl⟩
-      apply c.idempotent⟩
-#align closure_operator.closed_eq_range_close ClosureOperator.closed_eq_range_close
+theorem setOf_isClosed_eq_range_closure : {x | c.IsClosed x} = Set.range c := by
+  ext x; exact ⟨fun hx ↦ ⟨x, hx.closure_eq⟩, by rintro ⟨y, rfl⟩; exact c.isClosed_closure _⟩
+#align closure_operator.closed_eq_range_close ClosureOperator.setOf_isClosed_eq_range_closure
 
-/-- Send an `x` to an element of the set of closed elements (by taking the closure). -/
-def toClosed (x : α) : c.closed :=
-  ⟨c x, c.closure_is_closed x⟩
-#align closure_operator.to_closed ClosureOperator.toClosed
+theorem le_closure_iff : x ≤ c y ↔ c x ≤ c y :=
+  ⟨fun h ↦ c.idempotent y ▸ c.monotone h, (c.le_closure x).trans⟩
+#align closure_operator.le_closure_iff ClosureOperator.le_closure_iff
 
 @[simp]
-theorem closure_le_closed_iff_le (x : α) {y : α} (hy : c.closed y) : c x ≤ y ↔ x ≤ y := by
-  rw [← c.closure_eq_self_of_mem_closed hy, ← le_closure_iff]
-#align closure_operator.closure_le_closed_iff_le ClosureOperator.closure_le_closed_iff_le
+theorem IsClosed.closure_le_iff (hy : c.IsClosed y) : c x ≤ y ↔ x ≤ y := by
+  rw [← hy.closure_eq, ← le_closure_iff]
+#align closure_operator.closure_le_closed_iff_le ClosureOperator.IsClosed.closure_le_iff
+
+lemma closure_min (hxy : x ≤ y) (hy : c.IsClosed y) : c x ≤ y := hy.closure_le_iff.2 hxy
 
 /-- A closure operator is equal to the closure operator obtained by feeding `c.closed` into the
-`mk₃` constructor. -/
-theorem eq_mk₃_closed (c : ClosureOperator α) :
-    c =
-      mk₃ c c.closed c.le_closure c.closure_is_closed fun x y hxy hy =>
-        (c.closure_le_closed_iff_le x hy).2 hxy := by
+`ofPred` constructor. -/
+theorem eq_ofPred_closed (c : ClosureOperator α) :
+    c = ofPred c c.IsClosed c.le_closure c.isClosed_closure fun x y ↦ closure_min := by
   ext
   rfl
-#align closure_operator.eq_mk₃_closed ClosureOperator.eq_mk₃_closed
-
-/-- The property `p` fed into the `mk₃` constructor exactly corresponds to being closed. -/
-@[simp] theorem mem_mk₃_closed {f : α → α} {p : α → Prop} {hf hfp hmin} {x : α} :
-  x ∈ (mk₃ f p hf hfp hmin).closed ↔ p x := by
-  refine' ⟨λ hx ↦ _, λ hx ↦ (hmin le_rfl hx).antisymm (hf _)⟩
-  rw [← closure_eq_self_of_mem_closed _ hx]
-  exact hfp _
-#align closure_operator.mem_mk₃_closed ClosureOperator.mem_mk₃_closedₓ
+#align closure_operator.eq_mk₃_closed ClosureOperator.eq_ofPred_closed
 
 end PartialOrder
 
@@ -234,9 +214,8 @@ theorem closure_top : c ⊤ = ⊤ :=
   le_top.antisymm (c.le_closure _)
 #align closure_operator.closure_top ClosureOperator.closure_top
 
-theorem top_mem_closed : ⊤ ∈ c.closed :=
-  c.closure_top
-#align closure_operator.top_mem_closed ClosureOperator.top_mem_closed
+@[simp] lemma isClosed_top : c.IsClosed ⊤ := c.isClosed_iff.2 c.closure_top
+#align closure_operator.top_mem_closed ClosureOperator.isClosed_top
 
 end OrderTop
 
@@ -254,7 +233,7 @@ theorem closure_sup_closure_le (x y : α) : c x ⊔ c y ≤ c (x ⊔ y) :=
 #align closure_operator.closure_sup_closure_le ClosureOperator.closure_sup_closure_le
 
 theorem closure_sup_closure_left (x y : α) : c (c x ⊔ y) = c (x ⊔ y) :=
-  ((c.le_closure_iff _ _).1
+  (le_closure_iff.1
         (sup_le (c.monotone le_sup_left) (le_sup_right.trans (c.le_closure _)))).antisymm
     (c.monotone (sup_le_sup_right (c.le_closure _) _))
 #align closure_operator.closure_sup_closure_left ClosureOperator.closure_sup_closure_left
@@ -274,33 +253,23 @@ section CompleteLattice
 variable [CompleteLattice α] (c : ClosureOperator α) {p : α → Prop}
 
 /-- Define a closure operator from a predicate that's preserved under infima. -/
-def ofPred (p : α → Prop) (hsinf : ∀ s, (∀ a ∈ s, p a) → p (sInf s)) : ClosureOperator α :=
-  ClosureOperator.mk₃ (fun a ↦ ⨅ b : {b // p b ∧ a ≤ b}, b) p
+@[simps!]
+def ofCompletePred (p : α → Prop) (hsinf : ∀ s, (∀ a ∈ s, p a) → p (sInf s)) : ClosureOperator α :=
+  ofPred (fun a ↦ ⨅ b : {b // a ≤ b ∧ p b}, b) p
     (fun a ↦ by simp [forall_swap])
-    (fun a ↦ hsinf _ $ forall_range_iff.2 $ fun b ↦ b.2.1)
-    (fun a b hab hb ↦ iInf_le_of_le ⟨b, hb, hab⟩ le_rfl)
-
-/-- This lemma shows that the image of `x` of a closure operator built from the `ofPred` constructor
-respects `p`, the property that was fed into it. -/
-lemma ofPred_spec {sinf} (x : α) : p (ofPred p sinf x) := closure_mem_mk₃ _
-
-/-- The property `p` fed into the `ofPred` constructor exactly corresponds to being closed. -/
-@[simp] lemma closed_ofPred {hsinf} : (ofPred p hsinf).closed = {x | p x} := by
-  ext; exact mem_mk₃_closed
-
-/-- The property `p` fed into the `ofPred` constructor exactly corresponds to being closed. -/
-lemma mem_closed_ofPred {hsinf} {x : α} : x ∈ (ofPred p hsinf).closed ↔ p x := mem_mk₃_closed
+    (fun a ↦ hsinf _ $ forall_range_iff.2 $ fun b ↦ b.2.2)
+    (fun a b hab hb ↦ iInf_le_of_le ⟨b, hab, hb⟩ le_rfl)
 
 @[simp]
 theorem closure_iSup_closure (f : ι → α) : c (⨆ i, c (f i)) = c (⨆ i, f i) :=
-  le_antisymm ((c.le_closure_iff _ _).1 <| iSup_le fun i => c.monotone <| le_iSup f i) <|
+  le_antisymm (le_closure_iff.1 <| iSup_le fun i => c.monotone <| le_iSup f i) <|
     c.monotone <| iSup_mono fun _ => c.le_closure _
 #align closure_operator.closure_supr_closure ClosureOperator.closure_iSup_closure
 
 @[simp]
 theorem closure_iSup₂_closure (f : ∀ i, κ i → α) :
     c (⨆ (i) (j), c (f i j)) = c (⨆ (i) (j), f i j) :=
-  le_antisymm ((c.le_closure_iff _ _).1 <| iSup₂_le fun i j => c.monotone <| le_iSup₂ i j) <|
+  le_antisymm (le_closure_iff.1 <| iSup₂_le fun i j => c.monotone <| le_iSup₂ i j) <|
     c.monotone <| iSup₂_mono fun _ _ => c.le_closure _
 #align closure_operator.closure_supr₂_closure ClosureOperator.closure_iSup₂_closure
 
@@ -389,7 +358,7 @@ theorem idempotent (x : α) : u (l (u (l x))) = u (l x) :=
 #align lower_adjoint.idempotent LowerAdjoint.idempotent
 
 theorem le_closure_iff (x y : α) : x ≤ u (l y) ↔ u (l x) ≤ u (l y) :=
-  l.closureOperator.le_closure_iff _ _
+  l.closureOperator.le_closure_iff
 #align lower_adjoint.le_closure_iff LowerAdjoint.le_closure_iff
 
 end PartialOrder
@@ -417,7 +386,7 @@ section PartialOrder
 variable [PartialOrder α] [PartialOrder β] {u : β → α} (l : LowerAdjoint u)
 
 theorem mem_closed_iff_closure_le (x : α) : x ∈ l.closed ↔ u (l x) ≤ x :=
-  l.closureOperator.mem_closed_iff_closure_le _
+  l.closureOperator.isClosed_iff_closure_le
 #align lower_adjoint.mem_closed_iff_closure_le LowerAdjoint.mem_closed_iff_closure_le
 
 @[simp, nolint simpNF] -- Porting note: lemma does prove itself, seems to be a linter error
@@ -427,7 +396,7 @@ theorem closure_is_closed (x : α) : u (l x) ∈ l.closed :=
 
 /-- The set of closed elements for `l` is the range of `u ∘ l`. -/
 theorem closed_eq_range_close : l.closed = Set.range (u ∘ l) :=
-  l.closureOperator.closed_eq_range_close
+  l.closureOperator.setOf_isClosed_eq_range_closure
 #align lower_adjoint.closed_eq_range_close LowerAdjoint.closed_eq_range_close
 
 /-- Send an `x` to an element of the set of closed elements (by taking the closure). -/
@@ -437,7 +406,7 @@ def toClosed (x : α) : l.closed :=
 
 @[simp]
 theorem closure_le_closed_iff_le (x : α) {y : α} (hy : l.closed y) : u (l x) ≤ y ↔ x ≤ y :=
-  l.closureOperator.closure_le_closed_iff_le x hy
+  (show l.closureOperator.IsClosed y from hy).closure_le_iff
 #align lower_adjoint.closure_le_closed_iff_le LowerAdjoint.closure_le_closed_iff_le
 
 end PartialOrder
@@ -572,10 +541,10 @@ def GaloisConnection.closureOperator [PartialOrder α] [Preorder β] {l : α →
 #align galois_connection.closure_operator_apply GaloisConnection.closureOperator_apply
 
 /-- The set of closed elements has a Galois insertion to the underlying type. -/
-def _root_.ClosureOperator.gi [PartialOrder α] (c : ClosureOperator α) :
-    GaloisInsertion c.toClosed (↑) where
-  choice x hx := ⟨x, hx.antisymm (c.le_closure x)⟩
-  gc _ y := c.closure_le_closed_iff_le _ y.2
+def ClosureOperator.gi [PartialOrder α] (c : ClosureOperator α) :
+    GaloisInsertion c.toCloseds (↑) where
+  choice x hx := ⟨x, isClosed_iff_closure_le.2 hx⟩
+  gc _ y := y.2.closure_le_iff
   le_l_u _ := c.le_closure _
   choice_eq x hx := le_antisymm (c.le_closure x) hx
 #align closure_operator.gi ClosureOperator.gi
chore: space after (#8178)

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

Diff
@@ -217,7 +217,7 @@ theorem eq_mk₃_closed (c : ClosureOperator α) :
 @[simp] theorem mem_mk₃_closed {f : α → α} {p : α → Prop} {hf hfp hmin} {x : α} :
   x ∈ (mk₃ f p hf hfp hmin).closed ↔ p x := by
   refine' ⟨λ hx ↦ _, λ hx ↦ (hmin le_rfl hx).antisymm (hf _)⟩
-  rw [←closure_eq_self_of_mem_closed _ hx]
+  rw [← closure_eq_self_of_mem_closed _ hx]
   exact hfp _
 #align closure_operator.mem_mk₃_closed ClosureOperator.mem_mk₃_closedₓ
 
feat: Lattice closedness (#7548)

Define when a set in a lattice is closed under lattice operations.

Diff
@@ -47,8 +47,7 @@ place when using concrete closure operators such as `ConvexHull`.
 * https://en.wikipedia.org/wiki/Closure_operator#Closure_operators_on_partially_ordered_sets
 -/
 
-
-universe u
+open Set
 
 /-! ### Closure operator -/
 
@@ -272,7 +271,25 @@ end SemilatticeSup
 
 section CompleteLattice
 
-variable [CompleteLattice α] (c : ClosureOperator α)
+variable [CompleteLattice α] (c : ClosureOperator α) {p : α → Prop}
+
+/-- Define a closure operator from a predicate that's preserved under infima. -/
+def ofPred (p : α → Prop) (hsinf : ∀ s, (∀ a ∈ s, p a) → p (sInf s)) : ClosureOperator α :=
+  ClosureOperator.mk₃ (fun a ↦ ⨅ b : {b // p b ∧ a ≤ b}, b) p
+    (fun a ↦ by simp [forall_swap])
+    (fun a ↦ hsinf _ $ forall_range_iff.2 $ fun b ↦ b.2.1)
+    (fun a b hab hb ↦ iInf_le_of_le ⟨b, hb, hab⟩ le_rfl)
+
+/-- This lemma shows that the image of `x` of a closure operator built from the `ofPred` constructor
+respects `p`, the property that was fed into it. -/
+lemma ofPred_spec {sinf} (x : α) : p (ofPred p sinf x) := closure_mem_mk₃ _
+
+/-- The property `p` fed into the `ofPred` constructor exactly corresponds to being closed. -/
+@[simp] lemma closed_ofPred {hsinf} : (ofPred p hsinf).closed = {x | p x} := by
+  ext; exact mem_mk₃_closed
+
+/-- The property `p` fed into the `ofPred` constructor exactly corresponds to being closed. -/
+lemma mem_closed_ofPred {hsinf} {x : α} : x ∈ (ofPred p hsinf).closed ↔ p x := mem_mk₃_closed
 
 @[simp]
 theorem closure_iSup_closure (f : ι → α) : c (⨆ i, c (f i)) = c (⨆ i, f i) :=
feat: Sup-closed sets (#6901)

This defines sets closed under supremum/infimum, shows that every set has a sup-closure/inf-closure and prove that if every sup-closed/inf-closed set in a sup-semilattice/inf-semilattice has a least upper bound/greatest lower, then the lattice is in fact complete.

As a bonus, we use our new predicate in Order.CompactlyGenerated.

Co-authored-by: Christopher Hoskin <christopher.hoskin@gmail.com>

Diff
@@ -214,11 +214,13 @@ theorem eq_mk₃_closed (c : ClosureOperator α) :
   rfl
 #align closure_operator.eq_mk₃_closed ClosureOperator.eq_mk₃_closed
 
-/-- The property `p` fed into the `mk₃` constructor implies being closed. -/
-theorem mem_mk₃_closed {f : α → α} {p : α → Prop} {hf : ∀ x, x ≤ f x} {hfp : ∀ x, p (f x)}
-    {hmin : ∀ ⦃x y⦄, x ≤ y → p y → f x ≤ y} {x : α} (hx : p x) : x ∈ (mk₃ f p hf hfp hmin).closed :=
-  (hmin le_rfl hx).antisymm (hf _)
-#align closure_operator.mem_mk₃_closed ClosureOperator.mem_mk₃_closed
+/-- The property `p` fed into the `mk₃` constructor exactly corresponds to being closed. -/
+@[simp] theorem mem_mk₃_closed {f : α → α} {p : α → Prop} {hf hfp hmin} {x : α} :
+  x ∈ (mk₃ f p hf hfp hmin).closed ↔ p x := by
+  refine' ⟨λ hx ↦ _, λ hx ↦ (hmin le_rfl hx).antisymm (hf _)⟩
+  rw [←closure_eq_self_of_mem_closed _ hx]
+  exact hfp _
+#align closure_operator.mem_mk₃_closed ClosureOperator.mem_mk₃_closedₓ
 
 end PartialOrder
 
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
@@ -53,7 +53,7 @@ universe u
 /-! ### Closure operator -/
 
 
-variable (α : Type _) {ι : Sort _} {κ : ι → Sort _}
+variable (α : Type*) {ι : Sort*} {κ : ι → Sort*}
 
 /-- A closure operator on the preorder `α` is a monotone function which is extensive (every `x`
 is less than its closure) and idempotent. -/
@@ -292,7 +292,7 @@ end ClosureOperator
 /-! ### Lower adjoint -/
 
 
-variable {α} {β : Type _}
+variable {α} {β : Type*}
 
 /-- A lower adjoint of `u` on the preorder `α` is a function `l` such that `l` and `u` form a Galois
 connection. It allows us to define closure operators whose output does not match the input. In
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
@@ -166,7 +166,7 @@ theorem le_closure_iff (x y : α) : x ≤ c y ↔ c x ≤ c y :=
 #align closure_operator.le_closure_iff ClosureOperator.le_closure_iff
 
 /-- An element `x` is closed for the closure operator `c` if it is a fixed point for it. -/
-def closed : Set α := fun x => c x = x
+def closed : Set α := {x | c x = x}
 #align closure_operator.closed ClosureOperator.closed
 
 theorem mem_closed_iff (x : α) : x ∈ c.closed ↔ c x = x :=
@@ -380,7 +380,7 @@ section Preorder
 variable [Preorder α] [Preorder β] {u : β → α} (l : LowerAdjoint u)
 
 /-- An element `x` is closed for `l : LowerAdjoint u` if it is a fixed point: `u (l x) = x` -/
-def closed : Set α := fun x => u (l x) = x
+def closed : Set α := {x | u (l x) = x}
 #align lower_adjoint.closed LowerAdjoint.closed
 
 theorem mem_closed_iff (x : α) : x ∈ l.closed ↔ u (l x) = x :=
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,17 +2,14 @@
 Copyright (c) 2020 Bhavik Mehta. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Bhavik Mehta, Yaël Dillies
-
-! This file was ported from Lean 3 source module order.closure
-! leanprover-community/mathlib commit f252872231e87a5db80d9938fc05530e70f23a94
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Data.Set.Lattice
 import Mathlib.Data.SetLike.Basic
 import Mathlib.Order.GaloisConnection
 import Mathlib.Order.Hom.Basic
 
+#align_import order.closure from "leanprover-community/mathlib"@"f252872231e87a5db80d9938fc05530e70f23a94"
+
 /-!
 # Closure operators between preorders
 
chore: use OrderHomClass for ClosureOperator (#5820)
Diff
@@ -69,8 +69,10 @@ structure ClosureOperator [Preorder α] extends α →o α where
 
 namespace ClosureOperator
 
-instance [Preorder α] : CoeFun (ClosureOperator α) fun _ => α → α :=
-  ⟨fun c => c.toFun⟩
+instance [Preorder α] : OrderHomClass (ClosureOperator α) α α where
+  coe c := c.1
+  coe_injective' := by rintro ⟨⟩ ⟨⟩ h; congr; exact FunLike.ext' h
+  map_rel f _ _ h := f.mono h
 
 initialize_simps_projections ClosureOperator (toFun → apply)
 
@@ -260,7 +262,7 @@ theorem closure_sup_closure_left (x y : α) : c (c x ⊔ y) = c (x ⊔ y) :=
 #align closure_operator.closure_sup_closure_left ClosureOperator.closure_sup_closure_left
 
 theorem closure_sup_closure_right (x y : α) : c (x ⊔ c y) = c (x ⊔ y) := by
-  rw [sup_comm, closure_sup_closure_left, sup_comm]
+  rw [sup_comm, closure_sup_closure_left, sup_comm (a := x)]
 #align closure_operator.closure_sup_closure_right ClosureOperator.closure_sup_closure_right
 
 theorem closure_sup_closure (x y : α) : c (c x ⊔ c y) = c (x ⊔ y) := by
@@ -311,8 +313,7 @@ variable (α)
 
 /-- The identity function as a lower adjoint to itself. -/
 @[simps]
-protected def id [Preorder α] : LowerAdjoint (id : α → α)
-    where
+protected def id [Preorder α] : LowerAdjoint (id : α → α) where
   toFun x := x
   gc' := GaloisConnection.id
 #align lower_adjoint.id LowerAdjoint.id
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
@@ -472,7 +472,7 @@ theorem closure_iSup₂_closure (f : ∀ i, κ i → α) :
 
 end CompleteLattice
 
--- Lemmas for `LowerAdjoint ((↑) : α → set β)`, where `SetLike α β`
+-- Lemmas for `LowerAdjoint ((↑) : α → Set β)`, where `SetLike α β`
 section CoeToSet
 
 variable [SetLike α β] (l : LowerAdjoint ((↑) : α → Set β))
chore: Rename to sSup/iSup (#3938)

As discussed on Zulip

Renames

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

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

Diff
@@ -274,17 +274,17 @@ section CompleteLattice
 variable [CompleteLattice α] (c : ClosureOperator α)
 
 @[simp]
-theorem closure_supᵢ_closure (f : ι → α) : c (⨆ i, c (f i)) = c (⨆ i, f i) :=
-  le_antisymm ((c.le_closure_iff _ _).1 <| supᵢ_le fun i => c.monotone <| le_supᵢ f i) <|
-    c.monotone <| supᵢ_mono fun _ => c.le_closure _
-#align closure_operator.closure_supr_closure ClosureOperator.closure_supᵢ_closure
+theorem closure_iSup_closure (f : ι → α) : c (⨆ i, c (f i)) = c (⨆ i, f i) :=
+  le_antisymm ((c.le_closure_iff _ _).1 <| iSup_le fun i => c.monotone <| le_iSup f i) <|
+    c.monotone <| iSup_mono fun _ => c.le_closure _
+#align closure_operator.closure_supr_closure ClosureOperator.closure_iSup_closure
 
 @[simp]
-theorem closure_supᵢ₂_closure (f : ∀ i, κ i → α) :
+theorem closure_iSup₂_closure (f : ∀ i, κ i → α) :
     c (⨆ (i) (j), c (f i j)) = c (⨆ (i) (j), f i j) :=
-  le_antisymm ((c.le_closure_iff _ _).1 <| supᵢ₂_le fun i j => c.monotone <| le_supᵢ₂ i j) <|
-    c.monotone <| supᵢ₂_mono fun _ _ => c.le_closure _
-#align closure_operator.closure_supr₂_closure ClosureOperator.closure_supᵢ₂_closure
+  le_antisymm ((c.le_closure_iff _ _).1 <| iSup₂_le fun i j => c.monotone <| le_iSup₂ i j) <|
+    c.monotone <| iSup₂_mono fun _ _ => c.le_closure _
+#align closure_operator.closure_supr₂_closure ClosureOperator.closure_iSup₂_closure
 
 end CompleteLattice
 
@@ -461,14 +461,14 @@ section CompleteLattice
 
 variable [CompleteLattice α] [Preorder β] {u : β → α} (l : LowerAdjoint u)
 
-theorem closure_supᵢ_closure (f : ι → α) : u (l (⨆ i, u (l (f i)))) = u (l (⨆ i, f i)) :=
-  l.closureOperator.closure_supᵢ_closure _
-#align lower_adjoint.closure_supr_closure LowerAdjoint.closure_supᵢ_closure
+theorem closure_iSup_closure (f : ι → α) : u (l (⨆ i, u (l (f i)))) = u (l (⨆ i, f i)) :=
+  l.closureOperator.closure_iSup_closure _
+#align lower_adjoint.closure_supr_closure LowerAdjoint.closure_iSup_closure
 
-theorem closure_supᵢ₂_closure (f : ∀ i, κ i → α) :
+theorem closure_iSup₂_closure (f : ∀ i, κ i → α) :
     u (l <| ⨆ (i) (j), u (l <| f i j)) = u (l <| ⨆ (i) (j), f i j) :=
-  l.closureOperator.closure_supᵢ₂_closure _
-#align lower_adjoint.closure_supr₂_closure LowerAdjoint.closure_supᵢ₂_closure
+  l.closureOperator.closure_iSup₂_closure _
+#align lower_adjoint.closure_supr₂_closure LowerAdjoint.closure_iSup₂_closure
 
 end CompleteLattice
 
@@ -517,17 +517,17 @@ theorem closure_union_closure (x y : α) : l (l x ∪ l y) = l (x ∪ y) := by
 #align lower_adjoint.closure_union_closure LowerAdjoint.closure_union_closure
 
 @[simp]
-theorem closure_unionᵢ_closure (f : ι → α) : l (⋃ i, l (f i)) = l (⋃ i, f i) :=
-  SetLike.coe_injective <| l.closure_supᵢ_closure _
-#align lower_adjoint.closure_Union_closure LowerAdjoint.closure_unionᵢ_closure
+theorem closure_iUnion_closure (f : ι → α) : l (⋃ i, l (f i)) = l (⋃ i, f i) :=
+  SetLike.coe_injective <| l.closure_iSup_closure _
+#align lower_adjoint.closure_Union_closure LowerAdjoint.closure_iUnion_closure
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 @[simp]
-theorem closure_unionᵢ₂_closure (f : ∀ i, κ i → α) :
+theorem closure_iUnion₂_closure (f : ∀ i, κ i → α) :
     l (⋃ (i) (j), l (f i j)) = l (⋃ (i) (j), f i j) :=
-  SetLike.coe_injective <| l.closure_supᵢ₂_closure _
-#align lower_adjoint.closure_Union₂_closure LowerAdjoint.closure_unionᵢ₂_closure
+  SetLike.coe_injective <| l.closure_iSup₂_closure _
+#align lower_adjoint.closure_Union₂_closure LowerAdjoint.closure_iUnion₂_closure
 
 end CoeToSet
 
feat: initialize_simps_projections automatically finds coercions (#2045)
  • initialize_simps_projections automatically find coercions if there is a Funlike or SetLike instance defined by one of the projections.
  • Some improvements compared to Lean 3:
    • Find coercions even if it is defined by a field of a parent structure
    • Find SetLike coercions

Not yet implemented (and rarely - if ever - used in mathlib3):

  • Automatic custom projections for algebraic notation (like +,*,...)

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

Diff
@@ -72,11 +72,6 @@ namespace ClosureOperator
 instance [Preorder α] : CoeFun (ClosureOperator α) fun _ => α → α :=
   ⟨fun c => c.toFun⟩
 
-/-- See Note [custom simps projection] -/
-def Simps.apply [Preorder α] (f : ClosureOperator α) : α → α :=
-  f
-#align closure_operator.simps.apply ClosureOperator.Simps.apply
-
 initialize_simps_projections ClosureOperator (toFun → apply)
 
 section PartialOrder
@@ -334,11 +329,6 @@ variable [Preorder α] [Preorder β] {u : β → α} (l : LowerAdjoint u)
 
 instance : CoeFun (LowerAdjoint u) fun _ => α → β where coe := toFun
 
-/-- See Note [custom simps projection] -/
-def Simps.apply : α → β :=
-  l
-#align lower_adjoint.simps.apply LowerAdjoint.Simps.apply
-
 theorem gc : GaloisConnection l u :=
   l.gc'
 #align lower_adjoint.gc LowerAdjoint.gc
feat: simps uses fields of parent structures (#2042)
  • initialize_simps_projections now by default generates all projections of all parent structures, and doesn't generate the projections to those parent structures.
  • You can also rename a nested projection directly, without having to specify intermediate parent structures
  • Added the option to turn the default behavior off (done in e.g. TwoPointed)

Internal changes:

  • Move most declarations to the Simps namespace, and shorten their names
  • Restructure ParsedProjectionData to avoid the bug reported here (and to another bug where it seemed that the wrong data was inserted in ParsedProjectionData, but it was hard to minimize because of all the crashes). If we manage to fix the bug in that Zulip thread, I'll see if I can track down the other bug in commit 97454284

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

Diff
@@ -77,7 +77,7 @@ def Simps.apply [Preorder α] (f : ClosureOperator α) : α → α :=
   f
 #align closure_operator.simps.apply ClosureOperator.Simps.apply
 
-initialize_simps_projections ClosureOperator (toOrderHom_toFun → apply, -toOrderHom)
+initialize_simps_projections ClosureOperator (toFun → apply)
 
 section PartialOrder
 
feat: quick version of mono tactic (#1740)

This is an extremely partial port of the mono* tactic from Lean 3, implemented as a macro on top of solve_by_elim. The original mono had many configuration options and no documentation, so quite a bit is missing (and almost all the Lean 3 tests fail). Nonetheless I think it's worth merging this, because

  • it will get rid of errors in mathport output which come from lemmas being tagged with a nonexistent attribute @[mono]
  • in most mathlib3 uses of mono, only the basic version was used, not the various configuration options; thus I would guess that this version of mono will succeed fairly often in the port even though it fails nearly all the tests

Co-authored-by: thorimur <68410468+thorimur@users.noreply.github.com>

Diff
@@ -151,7 +151,7 @@ theorem closure_le_mk₃_iff {f : α → α} {p : α → Prop} {hf : ∀ x, x 
   hmin hxy hy
 #align closure_operator.closure_le_mk₃_iff ClosureOperator.closure_le_mk₃_iff
 
--- @[mono] Porting note: `mono` not yet implemented
+@[mono]
 theorem monotone : Monotone c :=
   c.monotone'
 #align closure_operator.monotone ClosureOperator.monotone
@@ -349,7 +349,7 @@ theorem ext : ∀ l₁ l₂ : LowerAdjoint u, (l₁ : α → β) = (l₂ : α 
     congr
 #align lower_adjoint.ext LowerAdjoint.ext
 
---@[mono] Porting note: `mono` is not implemented yet
+@[mono]
 theorem monotone : Monotone (u ∘ l) :=
   l.gc.monotone_u.comp l.gc.monotone_l
 #align lower_adjoint.monotone LowerAdjoint.monotone
feat: require @[simps!] if simps runs in expensive mode (#1885)
  • This does not change the behavior of simps, just raises a linter error if you run simps in a more expensive mode without writing !.
  • Fixed some incorrect occurrences of to_additive, simps. Will do that systematically in future PR.
  • Fix port of OmegaCompletePartialOrder.ContinuousHom.ofMono a bit

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

Diff
@@ -84,7 +84,7 @@ section PartialOrder
 variable [PartialOrder α]
 
 /-- The identity function as a closure operator. -/
-@[simps]
+@[simps!]
 def id : ClosureOperator α where
   toOrderHom := OrderHom.id
   le_closure' _ := le_rfl
@@ -129,7 +129,7 @@ def mk₂ (f : α → α) (hf : ∀ x, x ≤ f x) (hmin : ∀ ⦃x y⦄, x ≤ f
 /-- Expanded out version of `mk₂`. `p` implies being closed. This constructor should be used when
 you already know a sufficient condition for being closed and using `mem_mk₃_closed` will avoid you
 the (slight) hassle of having to prove it both inside and outside the constructor. -/
-@[simps]
+@[simps!]
 def mk₃ (f : α → α) (p : α → Prop) (hf : ∀ x, x ≤ f x) (hfp : ∀ x, p (f x))
     (hmin : ∀ ⦃x y⦄, x ≤ y → p y → f x ≤ y) : ClosureOperator α :=
   mk₂ f hf fun _ y hxy => hmin hxy (hfp y)
@@ -557,7 +557,7 @@ def GaloisConnection.lowerAdjoint [Preorder α] [Preorder β] {l : α → β} {u
 
 /-- Every Galois connection induces a closure operator given by the composition. This is the partial
 order version of the statement that every adjunction induces a monad. -/
-@[simps]
+@[simps!]
 def GaloisConnection.closureOperator [PartialOrder α] [Preorder β] {l : α → β} {u : β → α}
     (gc : GaloisConnection l u) : ClosureOperator α :=
   gc.lowerAdjoint.closureOperator
chore: add missing #align statements (#1902)

This PR is the result of a slight variant on the following "algorithm"

  • take all mathlib 3 names, remove _ and make all uppercase letters into lowercase
  • take all mathlib 4 names, remove _ and make all uppercase letters into lowercase
  • look for matches, and create pairs (original_lean3_name, OriginalLean4Name)
  • for pairs that do not have an align statement:
    • use Lean 4 to lookup the file + position of the Lean 4 name
    • add an #align statement just before the next empty line
  • manually fix some tiny mistakes (e.g., empty lines in proofs might cause the #align statement to have been inserted too early)
Diff
@@ -90,6 +90,7 @@ def id : ClosureOperator α where
   le_closure' _ := le_rfl
   idempotent' _ := rfl
 #align closure_operator.id ClosureOperator.id
+#align closure_operator.id_apply ClosureOperator.id_apply
 
 instance : Inhabited (ClosureOperator α) :=
   ⟨id α⟩
@@ -111,6 +112,7 @@ def mk' (f : α → α) (hf₁ : Monotone f) (hf₂ : ∀ x, x ≤ f x) (hf₃ :
   le_closure' := hf₂
   idempotent' x := (hf₃ x).antisymm (hf₁ (hf₂ x))
 #align closure_operator.mk' ClosureOperator.mk'
+#align closure_operator.mk'_apply ClosureOperator.mk'_apply
 
 /-- Convenience constructor for a closure operator using the weaker minimality axiom:
 `x ≤ f y → f x ≤ f y`, which is sometimes easier to prove in practice. -/
@@ -122,6 +124,7 @@ def mk₂ (f : α → α) (hf : ∀ x, x ≤ f x) (hmin : ∀ ⦃x y⦄, x ≤ f
   le_closure' := hf
   idempotent' _ := (hmin le_rfl).antisymm (hf _)
 #align closure_operator.mk₂ ClosureOperator.mk₂
+#align closure_operator.mk₂_apply ClosureOperator.mk₂_apply
 
 /-- Expanded out version of `mk₂`. `p` implies being closed. This constructor should be used when
 you already know a sufficient condition for being closed and using `mem_mk₃_closed` will avoid you
@@ -131,6 +134,7 @@ def mk₃ (f : α → α) (p : α → Prop) (hf : ∀ x, x ≤ f x) (hfp : ∀ x
     (hmin : ∀ ⦃x y⦄, x ≤ y → p y → f x ≤ y) : ClosureOperator α :=
   mk₂ f hf fun _ y hxy => hmin hxy (hfp y)
 #align closure_operator.mk₃ ClosureOperator.mk₃
+#align closure_operator.mk₃_apply ClosureOperator.mk₃_apply
 
 /-- This lemma shows that the image of `x` of a closure operator built from the `mk₃` constructor
 respects `p`, the property that was fed into it. -/
@@ -317,6 +321,7 @@ protected def id [Preorder α] : LowerAdjoint (id : α → α)
   toFun x := x
   gc' := GaloisConnection.id
 #align lower_adjoint.id LowerAdjoint.id
+#align lower_adjoint.id_to_fun LowerAdjoint.id_toFun
 
 variable {α}
 
@@ -370,6 +375,7 @@ def closureOperator : ClosureOperator α where
   le_closure' := l.le_closure
   idempotent' x := l.gc.u_l_u_eq_u (l x)
 #align lower_adjoint.closure_operator LowerAdjoint.closureOperator
+#align lower_adjoint.closure_operator_apply LowerAdjoint.closureOperator_apply
 
 theorem idempotent (x : α) : u (l (u (l x))) = u (l x) :=
   l.closureOperator.idempotent _
@@ -547,6 +553,7 @@ def GaloisConnection.lowerAdjoint [Preorder α] [Preorder β] {l : α → β} {u
   toFun := l
   gc' := gc
 #align galois_connection.lower_adjoint GaloisConnection.lowerAdjoint
+#align galois_connection.lower_adjoint_to_fun GaloisConnection.lowerAdjoint_toFun
 
 /-- Every Galois connection induces a closure operator given by the composition. This is the partial
 order version of the statement that every adjunction induces a monad. -/
@@ -555,6 +562,7 @@ def GaloisConnection.closureOperator [PartialOrder α] [Preorder β] {l : α →
     (gc : GaloisConnection l u) : ClosureOperator α :=
   gc.lowerAdjoint.closureOperator
 #align galois_connection.closure_operator GaloisConnection.closureOperator
+#align galois_connection.closure_operator_apply GaloisConnection.closureOperator_apply
 
 /-- The set of closed elements has a Galois insertion to the underlying type. -/
 def _root_.ClosureOperator.gi [PartialOrder α] (c : ClosureOperator α) :
chore: format by line breaks (#1523)

During porting, I usually fix the desired format we seem to want for the line breaks around by with

awk '{do {{if (match($0, "^  by$") && length(p) < 98) {p=p " by";} else {if (NR!=1) {print p}; p=$0}}} while (getline == 1) if (getline==0) print p}' Mathlib/File/Im/Working/On.lean

I noticed there are some more files that slipped through.

This pull request is the result of running this command:

grep -lr "^  by\$" Mathlib | xargs -n 1 awk -i inplace '{do {{if (match($0, "^  by$") && length(p) < 98 && not (match(p, "^[ \t]*--"))) {p=p " by";} else {if (NR!=1) {print p}; p=$0}}} while (getline == 1) if (getline==0) print p}'

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

Diff
@@ -211,8 +211,7 @@ theorem closure_le_closed_iff_le (x : α) {y : α} (hy : c.closed y) : c x ≤ y
 theorem eq_mk₃_closed (c : ClosureOperator α) :
     c =
       mk₃ c c.closed c.le_closure c.closure_is_closed fun x y hxy hy =>
-        (c.closure_le_closed_iff_le x hy).2 hxy :=
-  by
+        (c.closure_le_closed_iff_le x hy).2 hxy := by
   ext
   rfl
 #align closure_operator.eq_mk₃_closed ClosureOperator.eq_mk₃_closed
@@ -494,8 +493,7 @@ theorem le_iff_subset (s : Set β) (S : α) : l s ≤ S ↔ s ⊆ S :=
   l.gc s S
 #align lower_adjoint.le_iff_subset LowerAdjoint.le_iff_subset
 
-theorem mem_iff (s : Set β) (x : β) : x ∈ l s ↔ ∀ S : α, s ⊆ S → x ∈ S :=
-  by
+theorem mem_iff (s : Set β) (x : β) : x ∈ l s ↔ ∀ S : α, s ⊆ S → x ∈ S := by
   simp_rw [← SetLike.mem_coe, ← Set.singleton_subset_iff, ← l.le_iff_subset]
   exact ⟨fun h S => h.trans, fun h => h _ le_rfl⟩
 #align lower_adjoint.mem_iff LowerAdjoint.mem_iff
chore: Order.Closure Update SHA (#1376)

The corresponding mathlib3 PR was made in order to match changes made in mathlib4 to satisfy the linter while porting

Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Bhavik Mehta, Yaël Dillies
 
 ! This file was ported from Lean 3 source module order.closure
-! leanprover-community/mathlib commit 422e70f7ce183d2900c586a8cda8381e788a0c62
+! leanprover-community/mathlib commit f252872231e87a5db80d9938fc05530e70f23a94
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
feat: port Order.Closure (#1263)

This made one change to a lemma statement to satisfy the linter. This change was also made in [mathlib#18024](https://github.com/leanprover-community/mathlib/pull/18024)

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

Dependencies 60

61 files ported (100.0%)
34147 lines ported (100.0%)

All dependencies are ported!