category_theory.cofiltered_systemMathlib.CategoryTheory.CofilteredSystem

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)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -3,9 +3,9 @@ Copyright (c) 2022 Kyle Miller, Adam Topaz, Rémi Bottinelli, Junyan Xu. All rig
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kyle Miller, Adam Topaz, Rémi Bottinelli, Junyan Xu
 -/
-import CategoryTheory.Filtered
+import CategoryTheory.Filtered.Basic
 import Data.Set.Finite
-import Topology.Category.Top.Limits.Konig
+import Topology.Category.TopCat.Limits.Konig
 
 #align_import category_theory.cofiltered_system from "leanprover-community/mathlib"@"2ed2c6310e6f1c5562bdf6bfbda55ebbf6891abe"
 
Diff
@@ -103,7 +103,7 @@ theorem nonempty_sections_of_finite_cofiltered_system {J : Type u} [Category.{w}
   use fun j => (u ⟨j⟩).down
   intro j j' f
   have h := @hu (⟨j⟩ : J') (⟨j'⟩ : J') (ULift.up f)
-  simp only [as_small.down, functor.comp_map, ulift_functor_map, functor.op_map] at h 
+  simp only [as_small.down, functor.comp_map, ulift_functor_map, functor.op_map] at h
   simp_rw [← h]
   rfl
 #align nonempty_sections_of_finite_cofiltered_system nonempty_sections_of_finite_cofiltered_system
@@ -283,7 +283,7 @@ theorem IsMittagLeffler.toPreimages (h : F.IsMittagLeffler) : (F.toPreimages s).
     refine' ⟨⟨y, mem_Inter.2 fun g₂ => _⟩, Subtype.ext _⟩
     · obtain ⟨j₄, f₄, h₄⟩ := cone_maps g₂ ((f₃ ≫ f₂) ≫ g₁)
       obtain ⟨y, rfl⟩ := F.mem_eventual_range_iff.1 hy f₄
-      rw [← map_comp_apply] at h₃ 
+      rw [← map_comp_apply] at h₃
       rw [mem_preimage, ← map_comp_apply, h₄, ← category.assoc, map_comp_apply, h₃, ←
         map_comp_apply]
       apply mem_Inter.1 hx
@@ -308,7 +308,7 @@ theorem isMittagLeffler_of_exists_finite_range
   rintro _ ⟨⟨k', g'⟩, rfl⟩ hl
   refine' (eq_of_le_of_not_lt hl _).ge
   have := hmin _ ⟨k', g', (m.finite_to_set.subset <| hm.substr hl).coe_toFinset⟩
-  rwa [Finset.lt_iff_ssubset, ← Finset.coe_ssubset, Set.Finite.coe_toFinset, hm] at this 
+  rwa [Finset.lt_iff_ssubset, ← Finset.coe_ssubset, Set.Finite.coe_toFinset, hm] at this
 #align category_theory.functor.is_mittag_leffler_of_exists_finite_range CategoryTheory.Functor.isMittagLeffler_of_exists_finite_range
 -/
 
@@ -396,8 +396,8 @@ theorem eval_section_injective_of_eventually_injective {j}
   by
   refine' fun s₀ s₁ h => Subtype.ext <| funext fun k => _
   obtain ⟨m, mi, mk, _⟩ := cone_objs i k
-  dsimp at h 
-  rw [← s₀.prop (mi ≫ f), ← s₁.prop (mi ≫ f)] at h 
+  dsimp at h
+  rw [← s₀.prop (mi ≫ f), ← s₁.prop (mi ≫ f)] at h
   rw [← s₀.prop mk, ← s₁.prop mk]
   refine' congr_arg _ (Finj m (mi ≫ f) h)
 #align category_theory.functor.eval_section_injective_of_eventually_injective CategoryTheory.Functor.eval_section_injective_of_eventually_injective
@@ -417,8 +417,8 @@ theorem eval_section_surjective_of_surjective (i : J) :
   obtain ⟨sec, h⟩ := nonempty_sections_of_finite_cofiltered_system (F.to_preimages s)
   refine' ⟨⟨fun j => (sec j).val, fun j k jk => by simpa [Subtype.ext_iff] using h jk⟩, _⟩
   · have := (sec i).Prop
-    simp only [mem_Inter, mem_preimage, mem_singleton_iff] at this 
-    replace this := this (𝟙 i); rwa [map_id_apply] at this 
+    simp only [mem_Inter, mem_preimage, mem_singleton_iff] at this
+    replace this := this (𝟙 i); rwa [map_id_apply] at this
 #align category_theory.functor.eval_section_surjective_of_surjective CategoryTheory.Functor.eval_section_surjective_of_surjective
 -/
 
Diff
@@ -215,7 +215,7 @@ def toPreimages : J ⥤ Type v where
       rw [mem_Inter] at h ⊢; intro f
       rw [← mem_preimage, preimage_preimage]
       convert h (g ≫ f); rw [F.map_comp]; rfl
-  map_id' j := by simp_rw [F.map_id]; ext; rfl
+  map_id'' j := by simp_rw [F.map_id]; ext; rfl
   map_comp' j k l f g := by simp_rw [F.map_comp]; rfl
 #align category_theory.functor.to_preimages CategoryTheory.Functor.toPreimages
 -/
@@ -320,7 +320,7 @@ def toEventualRanges : J ⥤ Type v
     where
   obj j := F.eventualRange j
   map i j f := (F.eventualRange_mapsTo f).restrict _ _ _
-  map_id' i := by simp_rw [F.map_id]; ext; rfl
+  map_id'' i := by simp_rw [F.map_id]; ext; rfl
   map_comp' _ _ _ _ _ := by simp_rw [F.map_comp]; rfl
 #align category_theory.functor.to_eventual_ranges CategoryTheory.Functor.toEventualRanges
 -/
Diff
@@ -3,9 +3,9 @@ Copyright (c) 2022 Kyle Miller, Adam Topaz, Rémi Bottinelli, Junyan Xu. All rig
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kyle Miller, Adam Topaz, Rémi Bottinelli, Junyan Xu
 -/
-import Mathbin.CategoryTheory.Filtered
-import Mathbin.Data.Set.Finite
-import Mathbin.Topology.Category.Top.Limits.Konig
+import CategoryTheory.Filtered
+import Data.Set.Finite
+import Topology.Category.Top.Limits.Konig
 
 #align_import category_theory.cofiltered_system from "leanprover-community/mathlib"@"2ed2c6310e6f1c5562bdf6bfbda55ebbf6891abe"
 
Diff
@@ -2,16 +2,13 @@
 Copyright (c) 2022 Kyle Miller, Adam Topaz, Rémi Bottinelli, Junyan Xu. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kyle Miller, Adam Topaz, Rémi Bottinelli, Junyan Xu
-
-! This file was ported from Lean 3 source module category_theory.cofiltered_system
-! leanprover-community/mathlib commit 2ed2c6310e6f1c5562bdf6bfbda55ebbf6891abe
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.CategoryTheory.Filtered
 import Mathbin.Data.Set.Finite
 import Mathbin.Topology.Category.Top.Limits.Konig
 
+#align_import category_theory.cofiltered_system from "leanprover-community/mathlib"@"2ed2c6310e6f1c5562bdf6bfbda55ebbf6891abe"
+
 /-!
 # Cofiltered systems
 
Diff
@@ -66,6 +66,7 @@ open CategoryTheory CategoryTheory.IsCofiltered Set CategoryTheory.FunctorToType
 
 section FiniteKonig
 
+#print nonempty_sections_of_finite_cofiltered_system.init /-
 /-- This bootstraps `nonempty_sections_of_finite_inverse_system`. In this version,
 the `F` functor is between categories of the same universe, and it is an easy
 corollary to `Top.nonempty_limit_cone_of_compact_t2_inverse_system`. -/
@@ -80,7 +81,9 @@ theorem nonempty_sections_of_finite_cofiltered_system.init {J : Type u} [SmallCa
   obtain ⟨⟨u, hu⟩⟩ := TopCat.nonempty_limitCone_of_compact_t2_cofiltered_system F'
   exact ⟨u, fun _ _ => hu⟩
 #align nonempty_sections_of_finite_cofiltered_system.init nonempty_sections_of_finite_cofiltered_system.init
+-/
 
+#print nonempty_sections_of_finite_cofiltered_system /-
 /-- The cofiltered limit of nonempty finite types is nonempty.
 
 See `nonempty_sections_of_finite_inverse_system` for a specialization to inverse limits. -/
@@ -107,7 +110,9 @@ theorem nonempty_sections_of_finite_cofiltered_system {J : Type u} [Category.{w}
   simp_rw [← h]
   rfl
 #align nonempty_sections_of_finite_cofiltered_system nonempty_sections_of_finite_cofiltered_system
+-/
 
+#print nonempty_sections_of_finite_inverse_system /-
 /-- The inverse limit of nonempty finite types is nonempty.
 
 See `nonempty_sections_of_finite_cofiltered_system` for a generalization to cofiltered limits.
@@ -127,6 +132,7 @@ theorem nonempty_sections_of_finite_inverse_system {J : Type u} [Preorder J] [Is
     exact ⟨isEmptyElim, isEmptyElim⟩
   · exact nonempty_sections_of_finite_cofiltered_system _
 #align nonempty_sections_of_finite_inverse_system nonempty_sections_of_finite_inverse_system
+-/
 
 end FiniteKonig
 
@@ -136,17 +142,21 @@ namespace Functor
 
 variable {J : Type u} [Category J] (F : J ⥤ Type v) {i j k : J} (s : Set (F.obj i))
 
+#print CategoryTheory.Functor.eventualRange /-
 /-- The eventual range of the functor `F : J ⥤ Type v` at index `j : J` is the intersection
 of the ranges of all maps `F.map f` with `i : J` and `f : i ⟶ j`.
 -/
 def eventualRange (j : J) :=
   ⋂ (i) (f : i ⟶ j), range (F.map f)
 #align category_theory.functor.eventual_range CategoryTheory.Functor.eventualRange
+-/
 
+#print CategoryTheory.Functor.mem_eventualRange_iff /-
 theorem mem_eventualRange_iff {x : F.obj j} :
     x ∈ F.eventualRange j ↔ ∀ ⦃i⦄ (f : i ⟶ j), x ∈ range (F.map f) :=
   mem_iInter₂
 #align category_theory.functor.mem_eventual_range_iff CategoryTheory.Functor.mem_eventualRange_iff
+-/
 
 #print CategoryTheory.Functor.IsMittagLeffler /-
 /-- The functor `F : J ⥤ Type v` satisfies the Mittag-Leffler condition if for all `j : J`,
@@ -160,13 +170,16 @@ def IsMittagLeffler : Prop :=
 #align category_theory.functor.is_mittag_leffler CategoryTheory.Functor.IsMittagLeffler
 -/
 
+#print CategoryTheory.Functor.isMittagLeffler_iff_eventualRange /-
 theorem isMittagLeffler_iff_eventualRange :
     F.IsMittagLeffler ↔ ∀ j : J, ∃ (i : _) (f : i ⟶ j), F.eventualRange j = range (F.map f) :=
   forall_congr' fun j =>
     exists₂_congr fun i f =>
       ⟨fun h => (iInter₂_subset _ _).antisymm <| subset_iInter₂ h, fun h => h ▸ iInter₂_subset⟩
 #align category_theory.functor.is_mittag_leffler_iff_eventual_range CategoryTheory.Functor.isMittagLeffler_iff_eventualRange
+-/
 
+#print CategoryTheory.Functor.IsMittagLeffler.subset_image_eventualRange /-
 theorem IsMittagLeffler.subset_image_eventualRange (h : F.IsMittagLeffler) (f : j ⟶ i) :
     F.eventualRange i ⊆ F.map f '' F.eventualRange j :=
   by
@@ -175,7 +188,9 @@ theorem IsMittagLeffler.subset_image_eventualRange (h : F.IsMittagLeffler) (f :
   obtain ⟨x, rfl⟩ := F.mem_eventual_range_iff.1 hx (g ≫ f)
   refine' ⟨_, ⟨x, rfl⟩, by simpa only [F.map_comp]⟩
 #align category_theory.functor.is_mittag_leffler.subset_image_eventual_range CategoryTheory.Functor.IsMittagLeffler.subset_image_eventualRange
+-/
 
+#print CategoryTheory.Functor.eventualRange_eq_range_precomp /-
 theorem eventualRange_eq_range_precomp (f : i ⟶ j) (g : j ⟶ k)
     (h : F.eventualRange k = range (F.map g)) : F.eventualRange k = range (F.map <| f ≫ g) :=
   by
@@ -183,12 +198,16 @@ theorem eventualRange_eq_range_precomp (f : i ⟶ j) (g : j ⟶ k)
   · apply Inter₂_subset
   · rw [h, F.map_comp]; apply range_comp_subset_range
 #align category_theory.functor.eventual_range_eq_range_precomp CategoryTheory.Functor.eventualRange_eq_range_precomp
+-/
 
+#print CategoryTheory.Functor.isMittagLeffler_of_surjective /-
 theorem isMittagLeffler_of_surjective (h : ∀ ⦃i j : J⦄ (f : i ⟶ j), (F.map f).Surjective) :
     F.IsMittagLeffler := fun j =>
   ⟨j, 𝟙 j, fun k g => by rw [map_id, types_id, range_id, (h g).range_eq]⟩
 #align category_theory.functor.is_mittag_leffler_of_surjective CategoryTheory.Functor.isMittagLeffler_of_surjective
+-/
 
+#print CategoryTheory.Functor.toPreimages /-
 /-- The subfunctor of `F` obtained by restricting to the preimages of a set `s ∈ F.obj i`. -/
 @[simps]
 def toPreimages : J ⥤ Type v where
@@ -202,13 +221,17 @@ def toPreimages : J ⥤ Type v where
   map_id' j := by simp_rw [F.map_id]; ext; rfl
   map_comp' j k l f g := by simp_rw [F.map_comp]; rfl
 #align category_theory.functor.to_preimages CategoryTheory.Functor.toPreimages
+-/
 
+#print CategoryTheory.Functor.toPreimages_finite /-
 instance toPreimages_finite [∀ j, Finite (F.obj j)] : ∀ j, Finite ((F.toPreimages s).obj j) :=
   fun j => Subtype.finite
 #align category_theory.functor.to_preimages_finite CategoryTheory.Functor.toPreimages_finite
+-/
 
 variable [IsCofilteredOrEmpty J]
 
+#print CategoryTheory.Functor.eventualRange_mapsTo /-
 theorem eventualRange_mapsTo (f : j ⟶ i) :
     (F.eventualRange j).MapsTo (F.map f) (F.eventualRange i) := fun x hx =>
   by
@@ -219,12 +242,16 @@ theorem eventualRange_mapsTo (f : j ⟶ i) :
   rw [← map_comp_apply, he, F.map_comp]
   exact ⟨_, rfl⟩
 #align category_theory.functor.eventual_range_maps_to CategoryTheory.Functor.eventualRange_mapsTo
+-/
 
+#print CategoryTheory.Functor.IsMittagLeffler.eq_image_eventualRange /-
 theorem IsMittagLeffler.eq_image_eventualRange (h : F.IsMittagLeffler) (f : j ⟶ i) :
     F.eventualRange i = F.map f '' F.eventualRange j :=
   (h.subset_image_eventualRange F f).antisymm <| mapsTo'.1 (F.eventualRange_mapsTo f)
 #align category_theory.functor.is_mittag_leffler.eq_image_eventual_range CategoryTheory.Functor.IsMittagLeffler.eq_image_eventualRange
+-/
 
+#print CategoryTheory.Functor.eventualRange_eq_iff /-
 theorem eventualRange_eq_iff {f : i ⟶ j} :
     F.eventualRange j = range (F.map f) ↔
       ∀ ⦃k⦄ (g : k ⟶ i), range (F.map f) ⊆ range (F.map <| g ≫ f) :=
@@ -236,13 +263,17 @@ theorem eventualRange_eq_iff {f : i ⟶ j} :
   rw [he, F.map_comp]
   apply range_comp_subset_range
 #align category_theory.functor.eventual_range_eq_iff CategoryTheory.Functor.eventualRange_eq_iff
+-/
 
+#print CategoryTheory.Functor.isMittagLeffler_iff_subset_range_comp /-
 theorem isMittagLeffler_iff_subset_range_comp :
     F.IsMittagLeffler ↔
       ∀ j : J, ∃ (i : _) (f : i ⟶ j), ∀ ⦃k⦄ (g : k ⟶ i), range (F.map f) ⊆ range (F.map <| g ≫ f) :=
   by simp_rw [is_mittag_leffler_iff_eventual_range, eventual_range_eq_iff]
 #align category_theory.functor.is_mittag_leffler_iff_subset_range_comp CategoryTheory.Functor.isMittagLeffler_iff_subset_range_comp
+-/
 
+#print CategoryTheory.Functor.IsMittagLeffler.toPreimages /-
 theorem IsMittagLeffler.toPreimages (h : F.IsMittagLeffler) : (F.toPreimages s).IsMittagLeffler :=
   (isMittagLeffler_iff_subset_range_comp _).2 fun j =>
     by
@@ -262,7 +293,9 @@ theorem IsMittagLeffler.toPreimages (h : F.IsMittagLeffler) : (F.toPreimages s).
     · simp_rw [to_preimages_map, maps_to.coe_restrict_apply, Subtype.coe_mk]
       rw [← category.assoc, map_comp_apply, h₃, map_comp_apply]
 #align category_theory.functor.is_mittag_leffler.to_preimages CategoryTheory.Functor.IsMittagLeffler.toPreimages
+-/
 
+#print CategoryTheory.Functor.isMittagLeffler_of_exists_finite_range /-
 theorem isMittagLeffler_of_exists_finite_range
     (h : ∀ j : J, ∃ (i : _) (f : i ⟶ j), (range <| F.map f).Finite) : F.IsMittagLeffler := fun j =>
   by
@@ -280,6 +313,7 @@ theorem isMittagLeffler_of_exists_finite_range
   have := hmin _ ⟨k', g', (m.finite_to_set.subset <| hm.substr hl).coe_toFinset⟩
   rwa [Finset.lt_iff_ssubset, ← Finset.coe_ssubset, Set.Finite.coe_toFinset, hm] at this 
 #align category_theory.functor.is_mittag_leffler_of_exists_finite_range CategoryTheory.Functor.isMittagLeffler_of_exists_finite_range
+-/
 
 #print CategoryTheory.Functor.toEventualRanges /-
 /-- The subfunctor of `F` obtained by restricting to the eventual range at each index.
@@ -294,10 +328,13 @@ def toEventualRanges : J ⥤ Type v
 #align category_theory.functor.to_eventual_ranges CategoryTheory.Functor.toEventualRanges
 -/
 
+#print CategoryTheory.Functor.toEventualRanges_finite /-
 instance toEventualRanges_finite [∀ j, Finite (F.obj j)] : ∀ j, Finite (F.toEventualRanges.obj j) :=
   fun j => Subtype.finite
 #align category_theory.functor.to_eventual_ranges_finite CategoryTheory.Functor.toEventualRanges_finite
+-/
 
+#print CategoryTheory.Functor.toEventualRangesSectionsEquiv /-
 /-- The sections of the functor `F : J ⥤ Type v` are in bijection with the sections of
 `F.eventual_ranges`.
 -/
@@ -309,7 +346,9 @@ def toEventualRangesSectionsEquiv : F.toEventualRanges.sections ≃ F.sections
   left_inv _ := by ext; rfl
   right_inv _ := by ext; rfl
 #align category_theory.functor.to_eventual_ranges_sections_equiv CategoryTheory.Functor.toEventualRangesSectionsEquiv
+-/
 
+#print CategoryTheory.Functor.surjective_toEventualRanges /-
 /--
 If `F` satisfies the Mittag-Leffler condition, its restriction to eventual ranges is a surjective
 functor.
@@ -318,7 +357,9 @@ theorem surjective_toEventualRanges (h : F.IsMittagLeffler) ⦃i j⦄ (f : i ⟶
     (F.toEventualRanges.map f).Surjective := fun ⟨x, hx⟩ => by
   obtain ⟨y, hy, rfl⟩ := h.subset_image_eventual_range F f hx; exact ⟨⟨y, hy⟩, rfl⟩
 #align category_theory.functor.surjective_to_eventual_ranges CategoryTheory.Functor.surjective_toEventualRanges
+-/
 
+#print CategoryTheory.Functor.toEventualRanges_nonempty /-
 /-- If `F` is nonempty at each index and Mittag-Leffler, then so is `F.to_eventual_ranges`. -/
 theorem toEventualRanges_nonempty (h : F.IsMittagLeffler) [∀ j : J, Nonempty (F.obj j)] (j : J) :
     Nonempty (F.toEventualRanges.obj j) :=
@@ -326,14 +367,18 @@ theorem toEventualRanges_nonempty (h : F.IsMittagLeffler) [∀ j : J, Nonempty (
   let ⟨i, f, h⟩ := F.isMittagLeffler_iff_eventualRange.1 h j
   rw [to_eventual_ranges_obj, h]; infer_instance
 #align category_theory.functor.to_eventual_ranges_nonempty CategoryTheory.Functor.toEventualRanges_nonempty
+-/
 
+#print CategoryTheory.Functor.thin_diagram_of_surjective /-
 /-- If `F` has all arrows surjective, then it "factors through a poset". -/
 theorem thin_diagram_of_surjective (Fsur : ∀ ⦃i j : J⦄ (f : i ⟶ j), (F.map f).Surjective) {i j}
     (f g : i ⟶ j) : F.map f = F.map g :=
   let ⟨k, φ, hφ⟩ := cone_maps f g
   (Fsur φ).injective_comp_right <| by simp_rw [← types_comp, ← F.map_comp, hφ]
 #align category_theory.functor.thin_diagram_of_surjective CategoryTheory.Functor.thin_diagram_of_surjective
+-/
 
+#print CategoryTheory.Functor.toPreimages_nonempty_of_surjective /-
 theorem toPreimages_nonempty_of_surjective [hFn : ∀ j : J, Nonempty (F.obj j)]
     (Fsur : ∀ ⦃i j : J⦄ (f : i ⟶ j), (F.map f).Surjective) (hs : s.Nonempty) (j) :
     Nonempty ((F.toPreimages s).obj j) :=
@@ -345,7 +390,9 @@ theorem toPreimages_nonempty_of_surjective [hFn : ∀ j : J, Nonempty (F.obj j)]
     obtain ⟨x, rfl⟩ := Fsur ji y
     exact ⟨x, fun ji' => (F.thin_diagram_of_surjective Fsur ji' ji).symm ▸ ys⟩
 #align category_theory.functor.to_preimages_nonempty_of_surjective CategoryTheory.Functor.toPreimages_nonempty_of_surjective
+-/
 
+#print CategoryTheory.Functor.eval_section_injective_of_eventually_injective /-
 theorem eval_section_injective_of_eventually_injective {j}
     (Finj : ∀ (i) (f : i ⟶ j), (F.map f).Injective) (i) (f : i ⟶ j) :
     (fun s : F.sections => s.val j).Injective :=
@@ -357,14 +404,14 @@ theorem eval_section_injective_of_eventually_injective {j}
   rw [← s₀.prop mk, ← s₁.prop mk]
   refine' congr_arg _ (Finj m (mi ≫ f) h)
 #align category_theory.functor.eval_section_injective_of_eventually_injective CategoryTheory.Functor.eval_section_injective_of_eventually_injective
+-/
 
 section FiniteCofilteredSystem
 
 variable [∀ j : J, Nonempty (F.obj j)] [∀ j : J, Finite (F.obj j)]
   (Fsur : ∀ ⦃i j : J⦄ (f : i ⟶ j), (F.map f).Surjective)
 
-include Fsur
-
+#print CategoryTheory.Functor.eval_section_surjective_of_surjective /-
 theorem eval_section_surjective_of_surjective (i : J) :
     (fun s : F.sections => s.val i).Surjective := fun x =>
   by
@@ -376,7 +423,9 @@ theorem eval_section_surjective_of_surjective (i : J) :
     simp only [mem_Inter, mem_preimage, mem_singleton_iff] at this 
     replace this := this (𝟙 i); rwa [map_id_apply] at this 
 #align category_theory.functor.eval_section_surjective_of_surjective CategoryTheory.Functor.eval_section_surjective_of_surjective
+-/
 
+#print CategoryTheory.Functor.eventually_injective /-
 theorem eventually_injective [Nonempty J] [Finite F.sections] :
     ∃ j, ∀ (i) (f : i ⟶ j), (F.map f).Injective :=
   by
@@ -392,6 +441,7 @@ theorem eventually_injective [Nonempty J] [Finite F.sections] :
   rw [← Nat.sub_sub_self (card_le i), tsub_le_iff_tsub_le]
   apply fn.argmin_le
 #align category_theory.functor.eventually_injective CategoryTheory.Functor.eventually_injective
+-/
 
 end FiniteCofilteredSystem
 
Diff
@@ -269,7 +269,7 @@ theorem isMittagLeffler_of_exists_finite_range
   obtain ⟨i, hi, hf⟩ := h j
   obtain ⟨m, ⟨i, f, hm⟩, hmin⟩ :=
     finset.is_well_founded_lt.wf.has_min
-      { s : Finset (F.obj j) | ∃ (i : _) (f : i ⟶ j), ↑s = range (F.map f) }
+      {s : Finset (F.obj j) | ∃ (i : _) (f : i ⟶ j), ↑s = range (F.map f)}
       ⟨_, i, hi, hf.coe_to_finset⟩
   refine'
     ⟨i, f, fun k g =>
Diff
@@ -103,7 +103,7 @@ theorem nonempty_sections_of_finite_cofiltered_system {J : Type u} [Category.{w}
   use fun j => (u ⟨j⟩).down
   intro j j' f
   have h := @hu (⟨j⟩ : J') (⟨j'⟩ : J') (ULift.up f)
-  simp only [as_small.down, functor.comp_map, ulift_functor_map, functor.op_map] at h
+  simp only [as_small.down, functor.comp_map, ulift_functor_map, functor.op_map] at h 
   simp_rw [← h]
   rfl
 #align nonempty_sections_of_finite_cofiltered_system nonempty_sections_of_finite_cofiltered_system
@@ -156,12 +156,12 @@ in other words (see `is_mittag_leffler_iff_eventual_range`), the eventual range
 by some `f : i ⟶ j`.
 -/
 def IsMittagLeffler : Prop :=
-  ∀ j : J, ∃ (i : _)(f : i ⟶ j), ∀ ⦃k⦄ (g : k ⟶ j), range (F.map f) ⊆ range (F.map g)
+  ∀ j : J, ∃ (i : _) (f : i ⟶ j), ∀ ⦃k⦄ (g : k ⟶ j), range (F.map f) ⊆ range (F.map g)
 #align category_theory.functor.is_mittag_leffler CategoryTheory.Functor.IsMittagLeffler
 -/
 
 theorem isMittagLeffler_iff_eventualRange :
-    F.IsMittagLeffler ↔ ∀ j : J, ∃ (i : _)(f : i ⟶ j), F.eventualRange j = range (F.map f) :=
+    F.IsMittagLeffler ↔ ∀ j : J, ∃ (i : _) (f : i ⟶ j), F.eventualRange j = range (F.map f) :=
   forall_congr' fun j =>
     exists₂_congr fun i f =>
       ⟨fun h => (iInter₂_subset _ _).antisymm <| subset_iInter₂ h, fun h => h ▸ iInter₂_subset⟩
@@ -173,7 +173,7 @@ theorem IsMittagLeffler.subset_image_eventualRange (h : F.IsMittagLeffler) (f :
   obtain ⟨k, g, hg⟩ := F.is_mittag_leffler_iff_eventual_range.1 h j
   rw [hg]; intro x hx
   obtain ⟨x, rfl⟩ := F.mem_eventual_range_iff.1 hx (g ≫ f)
-  refine' ⟨_, ⟨x, rfl⟩, by simpa only [F.map_comp] ⟩
+  refine' ⟨_, ⟨x, rfl⟩, by simpa only [F.map_comp]⟩
 #align category_theory.functor.is_mittag_leffler.subset_image_eventual_range CategoryTheory.Functor.IsMittagLeffler.subset_image_eventualRange
 
 theorem eventualRange_eq_range_precomp (f : i ⟶ j) (g : j ⟶ k)
@@ -196,7 +196,7 @@ def toPreimages : J ⥤ Type v where
   map j k g :=
     MapsTo.restrict (F.map g) _ _ fun x h =>
       by
-      rw [mem_Inter] at h⊢; intro f
+      rw [mem_Inter] at h ⊢; intro f
       rw [← mem_preimage, preimage_preimage]
       convert h (g ≫ f); rw [F.map_comp]; rfl
   map_id' j := by simp_rw [F.map_id]; ext; rfl
@@ -212,7 +212,7 @@ variable [IsCofilteredOrEmpty J]
 theorem eventualRange_mapsTo (f : j ⟶ i) :
     (F.eventualRange j).MapsTo (F.map f) (F.eventualRange i) := fun x hx =>
   by
-  rw [mem_eventual_range_iff] at hx⊢
+  rw [mem_eventual_range_iff] at hx ⊢
   intro k f'
   obtain ⟨l, g, g', he⟩ := cospan f f'
   obtain ⟨x, rfl⟩ := hx g
@@ -239,7 +239,7 @@ theorem eventualRange_eq_iff {f : i ⟶ j} :
 
 theorem isMittagLeffler_iff_subset_range_comp :
     F.IsMittagLeffler ↔
-      ∀ j : J, ∃ (i : _)(f : i ⟶ j), ∀ ⦃k⦄ (g : k ⟶ i), range (F.map f) ⊆ range (F.map <| g ≫ f) :=
+      ∀ j : J, ∃ (i : _) (f : i ⟶ j), ∀ ⦃k⦄ (g : k ⟶ i), range (F.map f) ⊆ range (F.map <| g ≫ f) :=
   by simp_rw [is_mittag_leffler_iff_eventual_range, eventual_range_eq_iff]
 #align category_theory.functor.is_mittag_leffler_iff_subset_range_comp CategoryTheory.Functor.isMittagLeffler_iff_subset_range_comp
 
@@ -255,7 +255,7 @@ theorem IsMittagLeffler.toPreimages (h : F.IsMittagLeffler) : (F.toPreimages s).
     refine' ⟨⟨y, mem_Inter.2 fun g₂ => _⟩, Subtype.ext _⟩
     · obtain ⟨j₄, f₄, h₄⟩ := cone_maps g₂ ((f₃ ≫ f₂) ≫ g₁)
       obtain ⟨y, rfl⟩ := F.mem_eventual_range_iff.1 hy f₄
-      rw [← map_comp_apply] at h₃
+      rw [← map_comp_apply] at h₃ 
       rw [mem_preimage, ← map_comp_apply, h₄, ← category.assoc, map_comp_apply, h₃, ←
         map_comp_apply]
       apply mem_Inter.1 hx
@@ -264,12 +264,12 @@ theorem IsMittagLeffler.toPreimages (h : F.IsMittagLeffler) : (F.toPreimages s).
 #align category_theory.functor.is_mittag_leffler.to_preimages CategoryTheory.Functor.IsMittagLeffler.toPreimages
 
 theorem isMittagLeffler_of_exists_finite_range
-    (h : ∀ j : J, ∃ (i : _)(f : i ⟶ j), (range <| F.map f).Finite) : F.IsMittagLeffler := fun j =>
+    (h : ∀ j : J, ∃ (i : _) (f : i ⟶ j), (range <| F.map f).Finite) : F.IsMittagLeffler := fun j =>
   by
   obtain ⟨i, hi, hf⟩ := h j
   obtain ⟨m, ⟨i, f, hm⟩, hmin⟩ :=
     finset.is_well_founded_lt.wf.has_min
-      { s : Finset (F.obj j) | ∃ (i : _)(f : i ⟶ j), ↑s = range (F.map f) }
+      { s : Finset (F.obj j) | ∃ (i : _) (f : i ⟶ j), ↑s = range (F.map f) }
       ⟨_, i, hi, hf.coe_to_finset⟩
   refine'
     ⟨i, f, fun k g =>
@@ -278,7 +278,7 @@ theorem isMittagLeffler_of_exists_finite_range
   rintro _ ⟨⟨k', g'⟩, rfl⟩ hl
   refine' (eq_of_le_of_not_lt hl _).ge
   have := hmin _ ⟨k', g', (m.finite_to_set.subset <| hm.substr hl).coe_toFinset⟩
-  rwa [Finset.lt_iff_ssubset, ← Finset.coe_ssubset, Set.Finite.coe_toFinset, hm] at this
+  rwa [Finset.lt_iff_ssubset, ← Finset.coe_ssubset, Set.Finite.coe_toFinset, hm] at this 
 #align category_theory.functor.is_mittag_leffler_of_exists_finite_range CategoryTheory.Functor.isMittagLeffler_of_exists_finite_range
 
 #print CategoryTheory.Functor.toEventualRanges /-
@@ -352,8 +352,8 @@ theorem eval_section_injective_of_eventually_injective {j}
   by
   refine' fun s₀ s₁ h => Subtype.ext <| funext fun k => _
   obtain ⟨m, mi, mk, _⟩ := cone_objs i k
-  dsimp at h
-  rw [← s₀.prop (mi ≫ f), ← s₁.prop (mi ≫ f)] at h
+  dsimp at h 
+  rw [← s₀.prop (mi ≫ f), ← s₁.prop (mi ≫ f)] at h 
   rw [← s₀.prop mk, ← s₁.prop mk]
   refine' congr_arg _ (Finj m (mi ≫ f) h)
 #align category_theory.functor.eval_section_injective_of_eventually_injective CategoryTheory.Functor.eval_section_injective_of_eventually_injective
@@ -373,8 +373,8 @@ theorem eval_section_surjective_of_surjective (i : J) :
   obtain ⟨sec, h⟩ := nonempty_sections_of_finite_cofiltered_system (F.to_preimages s)
   refine' ⟨⟨fun j => (sec j).val, fun j k jk => by simpa [Subtype.ext_iff] using h jk⟩, _⟩
   · have := (sec i).Prop
-    simp only [mem_Inter, mem_preimage, mem_singleton_iff] at this
-    replace this := this (𝟙 i); rwa [map_id_apply] at this
+    simp only [mem_Inter, mem_preimage, mem_singleton_iff] at this 
+    replace this := this (𝟙 i); rwa [map_id_apply] at this 
 #align category_theory.functor.eval_section_surjective_of_surjective CategoryTheory.Functor.eval_section_surjective_of_surjective
 
 theorem eventually_injective [Nonempty J] [Finite F.sections] :
Diff
@@ -66,12 +66,6 @@ open CategoryTheory CategoryTheory.IsCofiltered Set CategoryTheory.FunctorToType
 
 section FiniteKonig
 
-/- warning: nonempty_sections_of_finite_cofiltered_system.init -> nonempty_sections_of_finite_cofiltered_system.init is a dubious translation:
-lean 3 declaration is
-  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u1, u1} J _inst_1] (F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) [hf : forall (j : J), Finite.{succ u1} (CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F j)] [hne : forall (j : J), Nonempty.{succ u1} (CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F j)], Set.Nonempty.{u1} (forall (j : J), CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F j) (CategoryTheory.Functor.sections.{u1, u1, u1} J _inst_1 F)
-but is expected to have type
-  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u1, u1} J _inst_1] (F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) [hf : forall (j : J), Finite.{succ u1} (Prefunctor.obj.{succ u1, succ u1, u1, succ u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F) j)] [hne : forall (j : J), Nonempty.{succ u1} (Prefunctor.obj.{succ u1, succ u1, u1, succ u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F) j)], Set.Nonempty.{u1} (forall (j : J), Prefunctor.obj.{succ u1, succ u1, u1, succ u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F) j) (CategoryTheory.Functor.sections.{u1, u1, u1} J _inst_1 F)
-Case conversion may be inaccurate. Consider using '#align nonempty_sections_of_finite_cofiltered_system.init nonempty_sections_of_finite_cofiltered_system.initₓ'. -/
 /-- This bootstraps `nonempty_sections_of_finite_inverse_system`. In this version,
 the `F` functor is between categories of the same universe, and it is an easy
 corollary to `Top.nonempty_limit_cone_of_compact_t2_inverse_system`. -/
@@ -87,12 +81,6 @@ theorem nonempty_sections_of_finite_cofiltered_system.init {J : Type u} [SmallCa
   exact ⟨u, fun _ _ => hu⟩
 #align nonempty_sections_of_finite_cofiltered_system.init nonempty_sections_of_finite_cofiltered_system.init
 
-/- warning: nonempty_sections_of_finite_cofiltered_system -> nonempty_sections_of_finite_cofiltered_system is a dubious translation:
-lean 3 declaration is
-  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u3, u1} J _inst_1] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) [_inst_3 : forall (j : J), Finite.{succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)] [_inst_4 : forall (j : J), Nonempty.{succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)], Set.Nonempty.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (CategoryTheory.Functor.sections.{u3, u2, u1} J _inst_1 F)
-but is expected to have type
-  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u3, u1} J _inst_1] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) [_inst_3 : forall (j : J), Finite.{succ u2} (Prefunctor.obj.{succ u3, succ u2, u1, succ u2} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F) j)] [_inst_4 : forall (j : J), Nonempty.{succ u2} (Prefunctor.obj.{succ u3, succ u2, u1, succ u2} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F) j)], Set.Nonempty.{max u1 u2} (forall (j : J), Prefunctor.obj.{succ u3, succ u2, u1, succ u2} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F) j) (CategoryTheory.Functor.sections.{u3, u2, u1} J _inst_1 F)
-Case conversion may be inaccurate. Consider using '#align nonempty_sections_of_finite_cofiltered_system nonempty_sections_of_finite_cofiltered_systemₓ'. -/
 /-- The cofiltered limit of nonempty finite types is nonempty.
 
 See `nonempty_sections_of_finite_inverse_system` for a specialization to inverse limits. -/
@@ -120,12 +108,6 @@ theorem nonempty_sections_of_finite_cofiltered_system {J : Type u} [Category.{w}
   rfl
 #align nonempty_sections_of_finite_cofiltered_system nonempty_sections_of_finite_cofiltered_system
 
-/- warning: nonempty_sections_of_finite_inverse_system -> nonempty_sections_of_finite_inverse_system is a dubious translation:
-lean 3 declaration is
-  forall {J : Type.{u1}} [_inst_1 : Preorder.{u1} J] [_inst_2 : IsDirected.{u1} J (LE.le.{u1} J (Preorder.toHasLe.{u1} J _inst_1))] (F : CategoryTheory.Functor.{u1, u2, u1, succ u2} (Opposite.{succ u1} J) (CategoryTheory.Category.opposite.{u1, u1} J (Preorder.smallCategory.{u1} J _inst_1)) Type.{u2} CategoryTheory.types.{u2}) [_inst_3 : forall (j : Opposite.{succ u1} J), Finite.{succ u2} (CategoryTheory.Functor.obj.{u1, u2, u1, succ u2} (Opposite.{succ u1} J) (CategoryTheory.Category.opposite.{u1, u1} J (Preorder.smallCategory.{u1} J _inst_1)) Type.{u2} CategoryTheory.types.{u2} F j)] [_inst_4 : forall (j : Opposite.{succ u1} J), Nonempty.{succ u2} (CategoryTheory.Functor.obj.{u1, u2, u1, succ u2} (Opposite.{succ u1} J) (CategoryTheory.Category.opposite.{u1, u1} J (Preorder.smallCategory.{u1} J _inst_1)) Type.{u2} CategoryTheory.types.{u2} F j)], Set.Nonempty.{max u1 u2} (forall (j : Opposite.{succ u1} J), CategoryTheory.Functor.obj.{u1, u2, u1, succ u2} (Opposite.{succ u1} J) (CategoryTheory.Category.opposite.{u1, u1} J (Preorder.smallCategory.{u1} J _inst_1)) Type.{u2} CategoryTheory.types.{u2} F j) (CategoryTheory.Functor.sections.{u1, u2, u1} (Opposite.{succ u1} J) (CategoryTheory.Category.opposite.{u1, u1} J (Preorder.smallCategory.{u1} J _inst_1)) F)
-but is expected to have type
-  forall {J : Type.{u1}} [_inst_1 : Preorder.{u1} J] [_inst_2 : IsDirected.{u1} J (fun (x._@.Mathlib.CategoryTheory.CofilteredSystem._hyg.479 : J) (x._@.Mathlib.CategoryTheory.CofilteredSystem._hyg.481 : J) => LE.le.{u1} J (Preorder.toLE.{u1} J _inst_1) x._@.Mathlib.CategoryTheory.CofilteredSystem._hyg.479 x._@.Mathlib.CategoryTheory.CofilteredSystem._hyg.481)] (F : CategoryTheory.Functor.{u1, u2, u1, succ u2} (Opposite.{succ u1} J) (CategoryTheory.Category.opposite.{u1, u1} J (Preorder.smallCategory.{u1} J _inst_1)) Type.{u2} CategoryTheory.types.{u2}) [_inst_3 : forall (j : Opposite.{succ u1} J), Finite.{succ u2} (Prefunctor.obj.{succ u1, succ u2, u1, succ u2} (Opposite.{succ u1} J) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (Opposite.{succ u1} J) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (Opposite.{succ u1} J) (CategoryTheory.Category.opposite.{u1, u1} J (Preorder.smallCategory.{u1} J _inst_1)))) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, succ u2} (Opposite.{succ u1} J) (CategoryTheory.Category.opposite.{u1, u1} J (Preorder.smallCategory.{u1} J _inst_1)) Type.{u2} CategoryTheory.types.{u2} F) j)] [_inst_4 : forall (j : Opposite.{succ u1} J), Nonempty.{succ u2} (Prefunctor.obj.{succ u1, succ u2, u1, succ u2} (Opposite.{succ u1} J) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (Opposite.{succ u1} J) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (Opposite.{succ u1} J) (CategoryTheory.Category.opposite.{u1, u1} J (Preorder.smallCategory.{u1} J _inst_1)))) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, succ u2} (Opposite.{succ u1} J) (CategoryTheory.Category.opposite.{u1, u1} J (Preorder.smallCategory.{u1} J _inst_1)) Type.{u2} CategoryTheory.types.{u2} F) j)], Set.Nonempty.{max u1 u2} (forall (j : Opposite.{succ u1} J), Prefunctor.obj.{succ u1, succ u2, u1, succ u2} (Opposite.{succ u1} J) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (Opposite.{succ u1} J) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (Opposite.{succ u1} J) (CategoryTheory.Category.opposite.{u1, u1} J (Preorder.smallCategory.{u1} J _inst_1)))) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, succ u2} (Opposite.{succ u1} J) (CategoryTheory.Category.opposite.{u1, u1} J (Preorder.smallCategory.{u1} J _inst_1)) Type.{u2} CategoryTheory.types.{u2} F) j) (CategoryTheory.Functor.sections.{u1, u2, u1} (Opposite.{succ u1} J) (CategoryTheory.Category.opposite.{u1, u1} J (Preorder.smallCategory.{u1} J _inst_1)) F)
-Case conversion may be inaccurate. Consider using '#align nonempty_sections_of_finite_inverse_system nonempty_sections_of_finite_inverse_systemₓ'. -/
 /-- The inverse limit of nonempty finite types is nonempty.
 
 See `nonempty_sections_of_finite_cofiltered_system` for a generalization to cofiltered limits.
@@ -154,12 +136,6 @@ namespace Functor
 
 variable {J : Type u} [Category J] (F : J ⥤ Type v) {i j k : J} (s : Set (F.obj i))
 
-/- warning: category_theory.functor.eventual_range -> CategoryTheory.Functor.eventualRange is a dubious translation:
-lean 3 declaration is
-  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) (j : J), Set.{u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)
-but is expected to have type
-  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) (j : J), Set.{u2} (Prefunctor.obj.{succ u3, succ u2, u1, succ u2} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F) j)
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.eventual_range CategoryTheory.Functor.eventualRangeₓ'. -/
 /-- The eventual range of the functor `F : J ⥤ Type v` at index `j : J` is the intersection
 of the ranges of all maps `F.map f` with `i : J` and `f : i ⟶ j`.
 -/
@@ -167,12 +143,6 @@ def eventualRange (j : J) :=
   ⋂ (i) (f : i ⟶ j), range (F.map f)
 #align category_theory.functor.eventual_range CategoryTheory.Functor.eventualRange
 
-/- warning: category_theory.functor.mem_eventual_range_iff -> CategoryTheory.Functor.mem_eventualRange_iff is a dubious translation:
-lean 3 declaration is
-  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) {j : J} {x : CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j}, Iff (Membership.Mem.{u2, u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (Set.{u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) (Set.hasMem.{u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) x (CategoryTheory.Functor.eventualRange.{u1, u2, u3} J _inst_1 F j)) (forall {{i : J}} (f : Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) i j), Membership.Mem.{u2, u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (Set.{u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) (Set.hasMem.{u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) x (Set.range.{u2, succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i j f)))
-but is expected to have type
-  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3}) {j : J} {x : Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j}, Iff (Membership.mem.{u3, u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Set.{u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j)) (Set.instMembershipSet.{u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j)) x (CategoryTheory.Functor.eventualRange.{u2, u3, u1} J _inst_1 F j)) (forall {{i : J}} (f : Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) i j), Membership.mem.{u3, u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Set.{u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j)) (Set.instMembershipSet.{u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j)) x (Set.range.{u3, succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i j f)))
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.mem_eventual_range_iff CategoryTheory.Functor.mem_eventualRange_iffₓ'. -/
 theorem mem_eventualRange_iff {x : F.obj j} :
     x ∈ F.eventualRange j ↔ ∀ ⦃i⦄ (f : i ⟶ j), x ∈ range (F.map f) :=
   mem_iInter₂
@@ -190,12 +160,6 @@ def IsMittagLeffler : Prop :=
 #align category_theory.functor.is_mittag_leffler CategoryTheory.Functor.IsMittagLeffler
 -/
 
-/- warning: category_theory.functor.is_mittag_leffler_iff_eventual_range -> CategoryTheory.Functor.isMittagLeffler_iff_eventualRange is a dubious translation:
-lean 3 declaration is
-  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}), Iff (CategoryTheory.Functor.IsMittagLeffler.{u1, u2, u3} J _inst_1 F) (forall (j : J), Exists.{succ u1} J (fun (i : J) => Exists.{succ u3} (Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) i j) (fun (f : Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) i j) => Eq.{succ u2} (Set.{u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) (CategoryTheory.Functor.eventualRange.{u1, u2, u3} J _inst_1 F j) (Set.range.{u2, succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i j f)))))
-but is expected to have type
-  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3}), Iff (CategoryTheory.Functor.IsMittagLeffler.{u2, u3, u1} J _inst_1 F) (forall (j : J), Exists.{succ u2} J (fun (i : J) => Exists.{succ u1} (Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) i j) (fun (f : Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) i j) => Eq.{succ u3} (Set.{u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j)) (CategoryTheory.Functor.eventualRange.{u2, u3, u1} J _inst_1 F j) (Set.range.{u3, succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i j f)))))
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.is_mittag_leffler_iff_eventual_range CategoryTheory.Functor.isMittagLeffler_iff_eventualRangeₓ'. -/
 theorem isMittagLeffler_iff_eventualRange :
     F.IsMittagLeffler ↔ ∀ j : J, ∃ (i : _)(f : i ⟶ j), F.eventualRange j = range (F.map f) :=
   forall_congr' fun j =>
@@ -203,12 +167,6 @@ theorem isMittagLeffler_iff_eventualRange :
       ⟨fun h => (iInter₂_subset _ _).antisymm <| subset_iInter₂ h, fun h => h ▸ iInter₂_subset⟩
 #align category_theory.functor.is_mittag_leffler_iff_eventual_range CategoryTheory.Functor.isMittagLeffler_iff_eventualRange
 
-/- warning: category_theory.functor.is_mittag_leffler.subset_image_eventual_range -> CategoryTheory.Functor.IsMittagLeffler.subset_image_eventualRange is a dubious translation:
-lean 3 declaration is
-  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) {i : J} {j : J}, (CategoryTheory.Functor.IsMittagLeffler.{u1, u2, u3} J _inst_1 F) -> (forall (f : Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) j i), HasSubset.Subset.{u2} (Set.{u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i)) (Set.hasSubset.{u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i)) (CategoryTheory.Functor.eventualRange.{u1, u2, u3} J _inst_1 F i) (Set.image.{u2, u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j i f) (CategoryTheory.Functor.eventualRange.{u1, u2, u3} J _inst_1 F j)))
-but is expected to have type
-  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3}) {i : J} {j : J}, (CategoryTheory.Functor.IsMittagLeffler.{u2, u3, u1} J _inst_1 F) -> (forall (f : Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) j i), HasSubset.Subset.{u3} (Set.{u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i)) (Set.instHasSubsetSet.{u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i)) (CategoryTheory.Functor.eventualRange.{u2, u3, u1} J _inst_1 F i) (Set.image.{u3, u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j i f) (CategoryTheory.Functor.eventualRange.{u2, u3, u1} J _inst_1 F j)))
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.is_mittag_leffler.subset_image_eventual_range CategoryTheory.Functor.IsMittagLeffler.subset_image_eventualRangeₓ'. -/
 theorem IsMittagLeffler.subset_image_eventualRange (h : F.IsMittagLeffler) (f : j ⟶ i) :
     F.eventualRange i ⊆ F.map f '' F.eventualRange j :=
   by
@@ -218,12 +176,6 @@ theorem IsMittagLeffler.subset_image_eventualRange (h : F.IsMittagLeffler) (f :
   refine' ⟨_, ⟨x, rfl⟩, by simpa only [F.map_comp] ⟩
 #align category_theory.functor.is_mittag_leffler.subset_image_eventual_range CategoryTheory.Functor.IsMittagLeffler.subset_image_eventualRange
 
-/- warning: category_theory.functor.eventual_range_eq_range_precomp -> CategoryTheory.Functor.eventualRange_eq_range_precomp is a dubious translation:
-lean 3 declaration is
-  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) {i : J} {j : J} {k : J} (f : Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) i j) (g : Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) j k), (Eq.{succ u2} (Set.{u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F k)) (CategoryTheory.Functor.eventualRange.{u1, u2, u3} J _inst_1 F k) (Set.range.{u2, succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F k) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j k g))) -> (Eq.{succ u2} (Set.{u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F k)) (CategoryTheory.Functor.eventualRange.{u1, u2, u3} J _inst_1 F k) (Set.range.{u2, succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F k) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i k (CategoryTheory.CategoryStruct.comp.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1) i j k f g))))
-but is expected to have type
-  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3}) {i : J} {j : J} {k : J} (f : Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) i j) (g : Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) j k), (Eq.{succ u3} (Set.{u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) k)) (CategoryTheory.Functor.eventualRange.{u2, u3, u1} J _inst_1 F k) (Set.range.{u3, succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) k) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j k g))) -> (Eq.{succ u3} (Set.{u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) k)) (CategoryTheory.Functor.eventualRange.{u2, u3, u1} J _inst_1 F k) (Set.range.{u3, succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) k) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i k (CategoryTheory.CategoryStruct.comp.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1) i j k f g))))
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.eventual_range_eq_range_precomp CategoryTheory.Functor.eventualRange_eq_range_precompₓ'. -/
 theorem eventualRange_eq_range_precomp (f : i ⟶ j) (g : j ⟶ k)
     (h : F.eventualRange k = range (F.map g)) : F.eventualRange k = range (F.map <| f ≫ g) :=
   by
@@ -232,23 +184,11 @@ theorem eventualRange_eq_range_precomp (f : i ⟶ j) (g : j ⟶ k)
   · rw [h, F.map_comp]; apply range_comp_subset_range
 #align category_theory.functor.eventual_range_eq_range_precomp CategoryTheory.Functor.eventualRange_eq_range_precomp
 
-/- warning: category_theory.functor.is_mittag_leffler_of_surjective -> CategoryTheory.Functor.isMittagLeffler_of_surjective is a dubious translation:
-lean 3 declaration is
-  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}), (forall {{i : J}} {{j : J}} (f : Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) i j), Function.Surjective.{succ u2, succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i j f)) -> (CategoryTheory.Functor.IsMittagLeffler.{u1, u2, u3} J _inst_1 F)
-but is expected to have type
-  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3}), (forall {{i : J}} {{j : J}} (f : Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) i j), Function.Surjective.{succ u3, succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i j f)) -> (CategoryTheory.Functor.IsMittagLeffler.{u2, u3, u1} J _inst_1 F)
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.is_mittag_leffler_of_surjective CategoryTheory.Functor.isMittagLeffler_of_surjectiveₓ'. -/
 theorem isMittagLeffler_of_surjective (h : ∀ ⦃i j : J⦄ (f : i ⟶ j), (F.map f).Surjective) :
     F.IsMittagLeffler := fun j =>
   ⟨j, 𝟙 j, fun k g => by rw [map_id, types_id, range_id, (h g).range_eq]⟩
 #align category_theory.functor.is_mittag_leffler_of_surjective CategoryTheory.Functor.isMittagLeffler_of_surjective
 
-/- warning: category_theory.functor.to_preimages -> CategoryTheory.Functor.toPreimages is a dubious translation:
-lean 3 declaration is
-  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) {i : J}, (Set.{u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i)) -> (CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2})
-but is expected to have type
-  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) {i : J}, (Set.{u2} (Prefunctor.obj.{succ u3, succ u2, u1, succ u2} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F) i)) -> (CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2})
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.to_preimages CategoryTheory.Functor.toPreimagesₓ'. -/
 /-- The subfunctor of `F` obtained by restricting to the preimages of a set `s ∈ F.obj i`. -/
 @[simps]
 def toPreimages : J ⥤ Type v where
@@ -263,24 +203,12 @@ def toPreimages : J ⥤ Type v where
   map_comp' j k l f g := by simp_rw [F.map_comp]; rfl
 #align category_theory.functor.to_preimages CategoryTheory.Functor.toPreimages
 
-/- warning: category_theory.functor.to_preimages_finite -> CategoryTheory.Functor.toPreimages_finite is a dubious translation:
-lean 3 declaration is
-  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) {i : J} (s : Set.{u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i)) [_inst_2 : forall (j : J), Finite.{succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)] (j : J), Finite.{succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} (CategoryTheory.Functor.toPreimages.{u1, u2, u3} J _inst_1 F i s) j)
-but is expected to have type
-  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) {i : J} (s : Set.{u2} (Prefunctor.obj.{succ u3, succ u2, u1, succ u2} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F) i)) [_inst_2 : forall (j : J), Finite.{succ u2} (Prefunctor.obj.{succ u3, succ u2, u1, succ u2} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F) j)] (j : J), Finite.{succ u2} (Prefunctor.obj.{succ u3, succ u2, u1, succ u2} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} (CategoryTheory.Functor.toPreimages.{u1, u2, u3} J _inst_1 F i s)) j)
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.to_preimages_finite CategoryTheory.Functor.toPreimages_finiteₓ'. -/
 instance toPreimages_finite [∀ j, Finite (F.obj j)] : ∀ j, Finite ((F.toPreimages s).obj j) :=
   fun j => Subtype.finite
 #align category_theory.functor.to_preimages_finite CategoryTheory.Functor.toPreimages_finite
 
 variable [IsCofilteredOrEmpty J]
 
-/- warning: category_theory.functor.eventual_range_maps_to -> CategoryTheory.Functor.eventualRange_mapsTo is a dubious translation:
-lean 3 declaration is
-  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) {i : J} {j : J} [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u3, u1} J _inst_1] (f : Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) j i), Set.MapsTo.{u2, u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j i f) (CategoryTheory.Functor.eventualRange.{u1, u2, u3} J _inst_1 F j) (CategoryTheory.Functor.eventualRange.{u1, u2, u3} J _inst_1 F i)
-but is expected to have type
-  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3}) {i : J} {j : J} [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u1, u2} J _inst_1] (f : Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) j i), Set.MapsTo.{u3, u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j i f) (CategoryTheory.Functor.eventualRange.{u2, u3, u1} J _inst_1 F j) (CategoryTheory.Functor.eventualRange.{u2, u3, u1} J _inst_1 F i)
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.eventual_range_maps_to CategoryTheory.Functor.eventualRange_mapsToₓ'. -/
 theorem eventualRange_mapsTo (f : j ⟶ i) :
     (F.eventualRange j).MapsTo (F.map f) (F.eventualRange i) := fun x hx =>
   by
@@ -292,23 +220,11 @@ theorem eventualRange_mapsTo (f : j ⟶ i) :
   exact ⟨_, rfl⟩
 #align category_theory.functor.eventual_range_maps_to CategoryTheory.Functor.eventualRange_mapsTo
 
-/- warning: category_theory.functor.is_mittag_leffler.eq_image_eventual_range -> CategoryTheory.Functor.IsMittagLeffler.eq_image_eventualRange is a dubious translation:
-lean 3 declaration is
-  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) {i : J} {j : J} [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u3, u1} J _inst_1], (CategoryTheory.Functor.IsMittagLeffler.{u1, u2, u3} J _inst_1 F) -> (forall (f : Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) j i), Eq.{succ u2} (Set.{u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i)) (CategoryTheory.Functor.eventualRange.{u1, u2, u3} J _inst_1 F i) (Set.image.{u2, u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j i f) (CategoryTheory.Functor.eventualRange.{u1, u2, u3} J _inst_1 F j)))
-but is expected to have type
-  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3}) {i : J} {j : J} [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u1, u2} J _inst_1], (CategoryTheory.Functor.IsMittagLeffler.{u2, u3, u1} J _inst_1 F) -> (forall (f : Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) j i), Eq.{succ u3} (Set.{u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i)) (CategoryTheory.Functor.eventualRange.{u2, u3, u1} J _inst_1 F i) (Set.image.{u3, u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j i f) (CategoryTheory.Functor.eventualRange.{u2, u3, u1} J _inst_1 F j)))
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.is_mittag_leffler.eq_image_eventual_range CategoryTheory.Functor.IsMittagLeffler.eq_image_eventualRangeₓ'. -/
 theorem IsMittagLeffler.eq_image_eventualRange (h : F.IsMittagLeffler) (f : j ⟶ i) :
     F.eventualRange i = F.map f '' F.eventualRange j :=
   (h.subset_image_eventualRange F f).antisymm <| mapsTo'.1 (F.eventualRange_mapsTo f)
 #align category_theory.functor.is_mittag_leffler.eq_image_eventual_range CategoryTheory.Functor.IsMittagLeffler.eq_image_eventualRange
 
-/- warning: category_theory.functor.eventual_range_eq_iff -> CategoryTheory.Functor.eventualRange_eq_iff is a dubious translation:
-lean 3 declaration is
-  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) {i : J} {j : J} [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u3, u1} J _inst_1] {f : Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) i j}, Iff (Eq.{succ u2} (Set.{u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) (CategoryTheory.Functor.eventualRange.{u1, u2, u3} J _inst_1 F j) (Set.range.{u2, succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i j f))) (forall {{k : J}} (g : Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) k i), HasSubset.Subset.{u2} (Set.{u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) (Set.hasSubset.{u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) (Set.range.{u2, succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i j f)) (Set.range.{u2, succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F k) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F k j (CategoryTheory.CategoryStruct.comp.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1) k i j g f))))
-but is expected to have type
-  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3}) {i : J} {j : J} [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u1, u2} J _inst_1] {f : Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) i j}, Iff (Eq.{succ u3} (Set.{u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j)) (CategoryTheory.Functor.eventualRange.{u2, u3, u1} J _inst_1 F j) (Set.range.{u3, succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i j f))) (forall {{k : J}} (g : Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) k i), HasSubset.Subset.{u3} (Set.{u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j)) (Set.instHasSubsetSet.{u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j)) (Set.range.{u3, succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i j f)) (Set.range.{u3, succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) k) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) k j (CategoryTheory.CategoryStruct.comp.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1) k i j g f))))
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.eventual_range_eq_iff CategoryTheory.Functor.eventualRange_eq_iffₓ'. -/
 theorem eventualRange_eq_iff {f : i ⟶ j} :
     F.eventualRange j = range (F.map f) ↔
       ∀ ⦃k⦄ (g : k ⟶ i), range (F.map f) ⊆ range (F.map <| g ≫ f) :=
@@ -321,24 +237,12 @@ theorem eventualRange_eq_iff {f : i ⟶ j} :
   apply range_comp_subset_range
 #align category_theory.functor.eventual_range_eq_iff CategoryTheory.Functor.eventualRange_eq_iff
 
-/- warning: category_theory.functor.is_mittag_leffler_iff_subset_range_comp -> CategoryTheory.Functor.isMittagLeffler_iff_subset_range_comp is a dubious translation:
-lean 3 declaration is
-  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u3, u1} J _inst_1], Iff (CategoryTheory.Functor.IsMittagLeffler.{u1, u2, u3} J _inst_1 F) (forall (j : J), Exists.{succ u1} J (fun (i : J) => Exists.{succ u3} (Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) i j) (fun (f : Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) i j) => forall {{k : J}} (g : Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) k i), HasSubset.Subset.{u2} (Set.{u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) (Set.hasSubset.{u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) (Set.range.{u2, succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i j f)) (Set.range.{u2, succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F k) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F k j (CategoryTheory.CategoryStruct.comp.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1) k i j g f))))))
-but is expected to have type
-  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u1, u2} J _inst_1], Iff (CategoryTheory.Functor.IsMittagLeffler.{u2, u3, u1} J _inst_1 F) (forall (j : J), Exists.{succ u2} J (fun (i : J) => Exists.{succ u1} (Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) i j) (fun (f : Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) i j) => forall {{k : J}} (g : Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) k i), HasSubset.Subset.{u3} (Set.{u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j)) (Set.instHasSubsetSet.{u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j)) (Set.range.{u3, succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i j f)) (Set.range.{u3, succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) k) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) k j (CategoryTheory.CategoryStruct.comp.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1) k i j g f))))))
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.is_mittag_leffler_iff_subset_range_comp CategoryTheory.Functor.isMittagLeffler_iff_subset_range_compₓ'. -/
 theorem isMittagLeffler_iff_subset_range_comp :
     F.IsMittagLeffler ↔
       ∀ j : J, ∃ (i : _)(f : i ⟶ j), ∀ ⦃k⦄ (g : k ⟶ i), range (F.map f) ⊆ range (F.map <| g ≫ f) :=
   by simp_rw [is_mittag_leffler_iff_eventual_range, eventual_range_eq_iff]
 #align category_theory.functor.is_mittag_leffler_iff_subset_range_comp CategoryTheory.Functor.isMittagLeffler_iff_subset_range_comp
 
-/- warning: category_theory.functor.is_mittag_leffler.to_preimages -> CategoryTheory.Functor.IsMittagLeffler.toPreimages is a dubious translation:
-lean 3 declaration is
-  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) {i : J} (s : Set.{u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i)) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u3, u1} J _inst_1], (CategoryTheory.Functor.IsMittagLeffler.{u1, u2, u3} J _inst_1 F) -> (CategoryTheory.Functor.IsMittagLeffler.{u1, u2, u3} J _inst_1 (CategoryTheory.Functor.toPreimages.{u1, u2, u3} J _inst_1 F i s))
-but is expected to have type
-  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3}) {i : J} (s : Set.{u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i)) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u1, u2} J _inst_1], (CategoryTheory.Functor.IsMittagLeffler.{u2, u3, u1} J _inst_1 F) -> (CategoryTheory.Functor.IsMittagLeffler.{u2, u3, u1} J _inst_1 (CategoryTheory.Functor.toPreimages.{u2, u3, u1} J _inst_1 F i s))
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.is_mittag_leffler.to_preimages CategoryTheory.Functor.IsMittagLeffler.toPreimagesₓ'. -/
 theorem IsMittagLeffler.toPreimages (h : F.IsMittagLeffler) : (F.toPreimages s).IsMittagLeffler :=
   (isMittagLeffler_iff_subset_range_comp _).2 fun j =>
     by
@@ -359,12 +263,6 @@ theorem IsMittagLeffler.toPreimages (h : F.IsMittagLeffler) : (F.toPreimages s).
       rw [← category.assoc, map_comp_apply, h₃, map_comp_apply]
 #align category_theory.functor.is_mittag_leffler.to_preimages CategoryTheory.Functor.IsMittagLeffler.toPreimages
 
-/- warning: category_theory.functor.is_mittag_leffler_of_exists_finite_range -> CategoryTheory.Functor.isMittagLeffler_of_exists_finite_range is a dubious translation:
-lean 3 declaration is
-  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u3, u1} J _inst_1], (forall (j : J), Exists.{succ u1} J (fun (i : J) => Exists.{succ u3} (Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) i j) (fun (f : Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) i j) => Set.Finite.{u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (Set.range.{u2, succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i j f))))) -> (CategoryTheory.Functor.IsMittagLeffler.{u1, u2, u3} J _inst_1 F)
-but is expected to have type
-  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u1, u2} J _inst_1], (forall (j : J), Exists.{succ u2} J (fun (i : J) => Exists.{succ u1} (Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) i j) (fun (f : Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) i j) => Set.Finite.{u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Set.range.{u3, succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i j f))))) -> (CategoryTheory.Functor.IsMittagLeffler.{u2, u3, u1} J _inst_1 F)
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.is_mittag_leffler_of_exists_finite_range CategoryTheory.Functor.isMittagLeffler_of_exists_finite_rangeₓ'. -/
 theorem isMittagLeffler_of_exists_finite_range
     (h : ∀ j : J, ∃ (i : _)(f : i ⟶ j), (range <| F.map f).Finite) : F.IsMittagLeffler := fun j =>
   by
@@ -396,22 +294,10 @@ def toEventualRanges : J ⥤ Type v
 #align category_theory.functor.to_eventual_ranges CategoryTheory.Functor.toEventualRanges
 -/
 
-/- warning: category_theory.functor.to_eventual_ranges_finite -> CategoryTheory.Functor.toEventualRanges_finite is a dubious translation:
-lean 3 declaration is
-  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u3, u1} J _inst_1] [_inst_3 : forall (j : J), Finite.{succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)] (j : J), Finite.{succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} (CategoryTheory.Functor.toEventualRanges.{u1, u2, u3} J _inst_1 F _inst_2) j)
-but is expected to have type
-  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u3, u1} J _inst_1] [_inst_3 : forall (j : J), Finite.{succ u2} (Prefunctor.obj.{succ u3, succ u2, u1, succ u2} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F) j)] (j : J), Finite.{succ u2} (Prefunctor.obj.{succ u3, succ u2, u1, succ u2} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} (CategoryTheory.Functor.toEventualRanges.{u1, u2, u3} J _inst_1 F _inst_2)) j)
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.to_eventual_ranges_finite CategoryTheory.Functor.toEventualRanges_finiteₓ'. -/
 instance toEventualRanges_finite [∀ j, Finite (F.obj j)] : ∀ j, Finite (F.toEventualRanges.obj j) :=
   fun j => Subtype.finite
 #align category_theory.functor.to_eventual_ranges_finite CategoryTheory.Functor.toEventualRanges_finite
 
-/- warning: category_theory.functor.to_eventual_ranges_sections_equiv -> CategoryTheory.Functor.toEventualRangesSectionsEquiv is a dubious translation:
-lean 3 declaration is
-  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u3, u1} J _inst_1], Equiv.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} (CategoryTheory.Functor.toEventualRanges.{u1, u2, u3} J _inst_1 F _inst_2) j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} (CategoryTheory.Functor.toEventualRanges.{u1, u2, u3} J _inst_1 F _inst_2) j)) (CategoryTheory.Functor.sections.{u3, u2, u1} J _inst_1 (CategoryTheory.Functor.toEventualRanges.{u1, u2, u3} J _inst_1 F _inst_2))) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) (CategoryTheory.Functor.sections.{u3, u2, u1} J _inst_1 F))
-but is expected to have type
-  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u3, u1} J _inst_1], Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (Set.Elem.{max u1 u2} (forall (j : J), Prefunctor.obj.{succ u3, succ u2, u1, succ u2} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} (CategoryTheory.Functor.toEventualRanges.{u1, u2, u3} J _inst_1 F _inst_2)) j) (CategoryTheory.Functor.sections.{u3, u2, u1} J _inst_1 (CategoryTheory.Functor.toEventualRanges.{u1, u2, u3} J _inst_1 F _inst_2))) (Set.Elem.{max u1 u2} (forall (j : J), Prefunctor.obj.{succ u3, succ u2, u1, succ u2} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F) j) (CategoryTheory.Functor.sections.{u3, u2, u1} J _inst_1 F))
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.to_eventual_ranges_sections_equiv CategoryTheory.Functor.toEventualRangesSectionsEquivₓ'. -/
 /-- The sections of the functor `F : J ⥤ Type v` are in bijection with the sections of
 `F.eventual_ranges`.
 -/
@@ -424,12 +310,6 @@ def toEventualRangesSectionsEquiv : F.toEventualRanges.sections ≃ F.sections
   right_inv _ := by ext; rfl
 #align category_theory.functor.to_eventual_ranges_sections_equiv CategoryTheory.Functor.toEventualRangesSectionsEquiv
 
-/- warning: category_theory.functor.surjective_to_eventual_ranges -> CategoryTheory.Functor.surjective_toEventualRanges is a dubious translation:
-lean 3 declaration is
-  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u3, u1} J _inst_1], (CategoryTheory.Functor.IsMittagLeffler.{u1, u2, u3} J _inst_1 F) -> (forall {{i : J}} {{j : J}} (f : Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) i j), Function.Surjective.{succ u2, succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} (CategoryTheory.Functor.toEventualRanges.{u1, u2, u3} J _inst_1 F _inst_2) i) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} (CategoryTheory.Functor.toEventualRanges.{u1, u2, u3} J _inst_1 F _inst_2) j) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} (CategoryTheory.Functor.toEventualRanges.{u1, u2, u3} J _inst_1 F _inst_2) i j f))
-but is expected to have type
-  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u1, u2} J _inst_1], (CategoryTheory.Functor.IsMittagLeffler.{u2, u3, u1} J _inst_1 F) -> (forall {{i : J}} {{j : J}} (f : Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) i j), Function.Surjective.{succ u3, succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} (CategoryTheory.Functor.toEventualRanges.{u2, u3, u1} J _inst_1 F _inst_2)) i) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} (CategoryTheory.Functor.toEventualRanges.{u2, u3, u1} J _inst_1 F _inst_2)) j) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} (CategoryTheory.Functor.toEventualRanges.{u2, u3, u1} J _inst_1 F _inst_2)) i j f))
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.surjective_to_eventual_ranges CategoryTheory.Functor.surjective_toEventualRangesₓ'. -/
 /--
 If `F` satisfies the Mittag-Leffler condition, its restriction to eventual ranges is a surjective
 functor.
@@ -439,12 +319,6 @@ theorem surjective_toEventualRanges (h : F.IsMittagLeffler) ⦃i j⦄ (f : i ⟶
   obtain ⟨y, hy, rfl⟩ := h.subset_image_eventual_range F f hx; exact ⟨⟨y, hy⟩, rfl⟩
 #align category_theory.functor.surjective_to_eventual_ranges CategoryTheory.Functor.surjective_toEventualRanges
 
-/- warning: category_theory.functor.to_eventual_ranges_nonempty -> CategoryTheory.Functor.toEventualRanges_nonempty is a dubious translation:
-lean 3 declaration is
-  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u3, u1} J _inst_1], (CategoryTheory.Functor.IsMittagLeffler.{u1, u2, u3} J _inst_1 F) -> (forall [_inst_3 : forall (j : J), Nonempty.{succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)] (j : J), Nonempty.{succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} (CategoryTheory.Functor.toEventualRanges.{u1, u2, u3} J _inst_1 F _inst_2) j))
-but is expected to have type
-  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u1, u2} J _inst_1], (CategoryTheory.Functor.IsMittagLeffler.{u2, u3, u1} J _inst_1 F) -> (forall [_inst_3 : forall (j : J), Nonempty.{succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j)] (j : J), Nonempty.{succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} (CategoryTheory.Functor.toEventualRanges.{u2, u3, u1} J _inst_1 F _inst_2)) j))
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.to_eventual_ranges_nonempty CategoryTheory.Functor.toEventualRanges_nonemptyₓ'. -/
 /-- If `F` is nonempty at each index and Mittag-Leffler, then so is `F.to_eventual_ranges`. -/
 theorem toEventualRanges_nonempty (h : F.IsMittagLeffler) [∀ j : J, Nonempty (F.obj j)] (j : J) :
     Nonempty (F.toEventualRanges.obj j) :=
@@ -453,12 +327,6 @@ theorem toEventualRanges_nonempty (h : F.IsMittagLeffler) [∀ j : J, Nonempty (
   rw [to_eventual_ranges_obj, h]; infer_instance
 #align category_theory.functor.to_eventual_ranges_nonempty CategoryTheory.Functor.toEventualRanges_nonempty
 
-/- warning: category_theory.functor.thin_diagram_of_surjective -> CategoryTheory.Functor.thin_diagram_of_surjective is a dubious translation:
-lean 3 declaration is
-  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u3, u1} J _inst_1], (forall {{i : J}} {{j : J}} (f : Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) i j), Function.Surjective.{succ u2, succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i j f)) -> (forall {i : J} {j : J} (f : Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) i j) (g : Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) i j), Eq.{succ u2} (Quiver.Hom.{succ u2, succ u2} Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i j f) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i j g))
-but is expected to have type
-  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u1, u2} J _inst_1], (forall {{i : J}} {{j : J}} (f : Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) i j), Function.Surjective.{succ u3, succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i j f)) -> (forall {i : J} {j : J} (f : Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) i j) (g : Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) i j), Eq.{succ u3} (Quiver.Hom.{succ u3, succ u3} Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j)) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i j f) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i j g))
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.thin_diagram_of_surjective CategoryTheory.Functor.thin_diagram_of_surjectiveₓ'. -/
 /-- If `F` has all arrows surjective, then it "factors through a poset". -/
 theorem thin_diagram_of_surjective (Fsur : ∀ ⦃i j : J⦄ (f : i ⟶ j), (F.map f).Surjective) {i j}
     (f g : i ⟶ j) : F.map f = F.map g :=
@@ -466,12 +334,6 @@ theorem thin_diagram_of_surjective (Fsur : ∀ ⦃i j : J⦄ (f : i ⟶ j), (F.m
   (Fsur φ).injective_comp_right <| by simp_rw [← types_comp, ← F.map_comp, hφ]
 #align category_theory.functor.thin_diagram_of_surjective CategoryTheory.Functor.thin_diagram_of_surjective
 
-/- warning: category_theory.functor.to_preimages_nonempty_of_surjective -> CategoryTheory.Functor.toPreimages_nonempty_of_surjective is a dubious translation:
-lean 3 declaration is
-  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) {i : J} (s : Set.{u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i)) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u3, u1} J _inst_1] [hFn : forall (j : J), Nonempty.{succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)], (forall {{i : J}} {{j : J}} (f : Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) i j), Function.Surjective.{succ u2, succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i j f)) -> (Set.Nonempty.{u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i) s) -> (forall (j : J), Nonempty.{succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} (CategoryTheory.Functor.toPreimages.{u1, u2, u3} J _inst_1 F i s) j))
-but is expected to have type
-  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3}) {i : J} (s : Set.{u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i)) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u1, u2} J _inst_1] [hFn : forall (j : J), Nonempty.{succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j)], (forall {{i : J}} {{j : J}} (f : Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) i j), Function.Surjective.{succ u3, succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i j f)) -> (Set.Nonempty.{u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i) s) -> (forall (j : J), Nonempty.{succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} (CategoryTheory.Functor.toPreimages.{u2, u3, u1} J _inst_1 F i s)) j))
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.to_preimages_nonempty_of_surjective CategoryTheory.Functor.toPreimages_nonempty_of_surjectiveₓ'. -/
 theorem toPreimages_nonempty_of_surjective [hFn : ∀ j : J, Nonempty (F.obj j)]
     (Fsur : ∀ ⦃i j : J⦄ (f : i ⟶ j), (F.map f).Surjective) (hs : s.Nonempty) (j) :
     Nonempty ((F.toPreimages s).obj j) :=
@@ -484,12 +346,6 @@ theorem toPreimages_nonempty_of_surjective [hFn : ∀ j : J, Nonempty (F.obj j)]
     exact ⟨x, fun ji' => (F.thin_diagram_of_surjective Fsur ji' ji).symm ▸ ys⟩
 #align category_theory.functor.to_preimages_nonempty_of_surjective CategoryTheory.Functor.toPreimages_nonempty_of_surjective
 
-/- warning: category_theory.functor.eval_section_injective_of_eventually_injective -> CategoryTheory.Functor.eval_section_injective_of_eventually_injective is a dubious translation:
-lean 3 declaration is
-  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u3, u1} J _inst_1] {j : J}, (forall (i : J) (f : Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) i j), Function.Injective.{succ u2, succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i j f)) -> (forall (i : J), (Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) i j) -> (Function.Injective.{succ (max u1 u2), succ u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) (CategoryTheory.Functor.sections.{u3, u2, u1} J _inst_1 F)) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (fun (s : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) (CategoryTheory.Functor.sections.{u3, u2, u1} J _inst_1 F)) => Subtype.val.{succ (max u1 u2)} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (fun (x : forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) => Membership.Mem.{max u1 u2, max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) (Set.hasMem.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) x (CategoryTheory.Functor.sections.{u3, u2, u1} J _inst_1 F)) s j)))
-but is expected to have type
-  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u1, u2} J _inst_1] {j : J}, (forall (i : J) (f : Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) i j), Function.Injective.{succ u3, succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i j f)) -> (forall (i : J), (Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) i j) -> (Function.Injective.{max (succ u2) (succ u3), succ u3} (Set.Elem.{max u2 u3} (forall (j : J), Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (CategoryTheory.Functor.sections.{u1, u3, u2} J _inst_1 F)) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (fun (s : Set.Elem.{max u2 u3} (forall (j : J), Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (CategoryTheory.Functor.sections.{u1, u3, u2} J _inst_1 F)) => Subtype.val.{max (succ u2) (succ u3)} (forall (j : J), Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (fun (x : forall (j : J), Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) => Membership.mem.{max u2 u3, max u2 u3} (forall (j : J), Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Set.{max u2 u3} (forall (j : J), Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j)) (Set.instMembershipSet.{max u2 u3} (forall (j : J), Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j)) x (CategoryTheory.Functor.sections.{u1, u3, u2} J _inst_1 F)) s j)))
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.eval_section_injective_of_eventually_injective CategoryTheory.Functor.eval_section_injective_of_eventually_injectiveₓ'. -/
 theorem eval_section_injective_of_eventually_injective {j}
     (Finj : ∀ (i) (f : i ⟶ j), (F.map f).Injective) (i) (f : i ⟶ j) :
     (fun s : F.sections => s.val j).Injective :=
@@ -509,12 +365,6 @@ variable [∀ j : J, Nonempty (F.obj j)] [∀ j : J, Finite (F.obj j)]
 
 include Fsur
 
-/- warning: category_theory.functor.eval_section_surjective_of_surjective -> CategoryTheory.Functor.eval_section_surjective_of_surjective is a dubious translation:
-lean 3 declaration is
-  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u3, u1} J _inst_1] [_inst_3 : forall (j : J), Nonempty.{succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)] [_inst_4 : forall (j : J), Finite.{succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)], (forall {{i : J}} {{j : J}} (f : Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) i j), Function.Surjective.{succ u2, succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i j f)) -> (forall (i : J), Function.Surjective.{succ (max u1 u2), succ u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) (CategoryTheory.Functor.sections.{u3, u2, u1} J _inst_1 F)) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i) (fun (s : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) (CategoryTheory.Functor.sections.{u3, u2, u1} J _inst_1 F)) => Subtype.val.{succ (max u1 u2)} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (fun (x : forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) => Membership.Mem.{max u1 u2, max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) (Set.hasMem.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) x (CategoryTheory.Functor.sections.{u3, u2, u1} J _inst_1 F)) s i))
-but is expected to have type
-  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u1, u2} J _inst_1] [_inst_3 : forall (j : J), Nonempty.{succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j)] [_inst_4 : forall (j : J), Finite.{succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j)], (forall {{i : J}} {{j : J}} (f : Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) i j), Function.Surjective.{succ u3, succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i j f)) -> (forall (i : J), Function.Surjective.{max (succ u2) (succ u3), succ u3} (Set.Elem.{max u2 u3} (forall (j : J), Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (CategoryTheory.Functor.sections.{u1, u3, u2} J _inst_1 F)) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i) (fun (s : Set.Elem.{max u2 u3} (forall (j : J), Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (CategoryTheory.Functor.sections.{u1, u3, u2} J _inst_1 F)) => Subtype.val.{max (succ u2) (succ u3)} (forall (j : J), Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (fun (x : forall (j : J), Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) => Membership.mem.{max u2 u3, max u2 u3} (forall (j : J), Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Set.{max u2 u3} (forall (j : J), Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j)) (Set.instMembershipSet.{max u2 u3} (forall (j : J), Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j)) x (CategoryTheory.Functor.sections.{u1, u3, u2} J _inst_1 F)) s i))
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.eval_section_surjective_of_surjective CategoryTheory.Functor.eval_section_surjective_of_surjectiveₓ'. -/
 theorem eval_section_surjective_of_surjective (i : J) :
     (fun s : F.sections => s.val i).Surjective := fun x =>
   by
@@ -527,12 +377,6 @@ theorem eval_section_surjective_of_surjective (i : J) :
     replace this := this (𝟙 i); rwa [map_id_apply] at this
 #align category_theory.functor.eval_section_surjective_of_surjective CategoryTheory.Functor.eval_section_surjective_of_surjective
 
-/- warning: category_theory.functor.eventually_injective -> CategoryTheory.Functor.eventually_injective is a dubious translation:
-lean 3 declaration is
-  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u3, u1} J _inst_1] [_inst_3 : forall (j : J), Nonempty.{succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)] [_inst_4 : forall (j : J), Finite.{succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)], (forall {{i : J}} {{j : J}} (f : Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) i j), Function.Surjective.{succ u2, succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i j f)) -> (forall [_inst_5 : Nonempty.{succ u1} J] [_inst_6 : Finite.{succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) (CategoryTheory.Functor.sections.{u3, u2, u1} J _inst_1 F))], Exists.{succ u1} J (fun (j : J) => forall (i : J) (f : Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) i j), Function.Injective.{succ u2, succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i j f)))
-but is expected to have type
-  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u1, u2} J _inst_1] [_inst_3 : forall (j : J), Nonempty.{succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j)] [_inst_4 : forall (j : J), Finite.{succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j)], (forall {{i : J}} {{j : J}} (f : Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) i j), Function.Surjective.{succ u3, succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i j f)) -> (forall [_inst_5 : Nonempty.{succ u2} J] [_inst_6 : Finite.{max (succ u2) (succ u3)} (Set.Elem.{max u2 u3} (forall (j : J), Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (CategoryTheory.Functor.sections.{u1, u3, u2} J _inst_1 F))], Exists.{succ u2} J (fun (j : J) => forall (i : J) (f : Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) i j), Function.Injective.{succ u3, succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i j f)))
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.eventually_injective CategoryTheory.Functor.eventually_injectiveₓ'. -/
 theorem eventually_injective [Nonempty J] [Finite F.sections] :
     ∃ j, ∀ (i) (f : i ⟶ j), (F.map f).Injective :=
   by
Diff
@@ -229,8 +229,7 @@ theorem eventualRange_eq_range_precomp (f : i ⟶ j) (g : j ⟶ k)
   by
   apply subset_antisymm
   · apply Inter₂_subset
-  · rw [h, F.map_comp]
-    apply range_comp_subset_range
+  · rw [h, F.map_comp]; apply range_comp_subset_range
 #align category_theory.functor.eventual_range_eq_range_precomp CategoryTheory.Functor.eventualRange_eq_range_precomp
 
 /- warning: category_theory.functor.is_mittag_leffler_of_surjective -> CategoryTheory.Functor.isMittagLeffler_of_surjective is a dubious translation:
@@ -260,13 +259,8 @@ def toPreimages : J ⥤ Type v where
       rw [mem_Inter] at h⊢; intro f
       rw [← mem_preimage, preimage_preimage]
       convert h (g ≫ f); rw [F.map_comp]; rfl
-  map_id' j := by
-    simp_rw [F.map_id]
-    ext
-    rfl
-  map_comp' j k l f g := by
-    simp_rw [F.map_comp]
-    rfl
+  map_id' j := by simp_rw [F.map_id]; ext; rfl
+  map_comp' j k l f g := by simp_rw [F.map_comp]; rfl
 #align category_theory.functor.to_preimages CategoryTheory.Functor.toPreimages
 
 /- warning: category_theory.functor.to_preimages_finite -> CategoryTheory.Functor.toPreimages_finite is a dubious translation:
@@ -352,9 +346,7 @@ theorem IsMittagLeffler.toPreimages (h : F.IsMittagLeffler) : (F.toPreimages s).
     obtain ⟨j₂, f₂, h₂⟩ := F.is_mittag_leffler_iff_eventual_range.1 h j₁
     refine' ⟨j₂, f₂ ≫ f₁, fun j₃ f₃ => _⟩
     rintro _ ⟨⟨x, hx⟩, rfl⟩
-    have : F.map f₂ x ∈ F.eventual_range j₁ := by
-      rw [h₂]
-      exact ⟨_, rfl⟩
+    have : F.map f₂ x ∈ F.eventual_range j₁ := by rw [h₂]; exact ⟨_, rfl⟩
     obtain ⟨y, hy, h₃⟩ := h.subset_image_eventual_range F (f₃ ≫ f₂) this
     refine' ⟨⟨y, mem_Inter.2 fun g₂ => _⟩, Subtype.ext _⟩
     · obtain ⟨j₄, f₄, h₄⟩ := cone_maps g₂ ((f₃ ≫ f₂) ≫ g₁)
@@ -399,13 +391,8 @@ def toEventualRanges : J ⥤ Type v
     where
   obj j := F.eventualRange j
   map i j f := (F.eventualRange_mapsTo f).restrict _ _ _
-  map_id' i := by
-    simp_rw [F.map_id]
-    ext
-    rfl
-  map_comp' _ _ _ _ _ := by
-    simp_rw [F.map_comp]
-    rfl
+  map_id' i := by simp_rw [F.map_id]; ext; rfl
+  map_comp' _ _ _ _ _ := by simp_rw [F.map_comp]; rfl
 #align category_theory.functor.to_eventual_ranges CategoryTheory.Functor.toEventualRanges
 -/
 
@@ -433,12 +420,8 @@ def toEventualRangesSectionsEquiv : F.toEventualRanges.sections ≃ F.sections
   toFun s := ⟨_, fun i j f => Subtype.coe_inj.2 <| s.Prop f⟩
   invFun s :=
     ⟨fun j => ⟨_, mem_iInter₂.2 fun i f => ⟨_, s.Prop f⟩⟩, fun i j f => Subtype.ext <| s.Prop f⟩
-  left_inv _ := by
-    ext
-    rfl
-  right_inv _ := by
-    ext
-    rfl
+  left_inv _ := by ext; rfl
+  right_inv _ := by ext; rfl
 #align category_theory.functor.to_eventual_ranges_sections_equiv CategoryTheory.Functor.toEventualRangesSectionsEquiv
 
 /- warning: category_theory.functor.surjective_to_eventual_ranges -> CategoryTheory.Functor.surjective_toEventualRanges is a dubious translation:
@@ -452,10 +435,8 @@ If `F` satisfies the Mittag-Leffler condition, its restriction to eventual range
 functor.
 -/
 theorem surjective_toEventualRanges (h : F.IsMittagLeffler) ⦃i j⦄ (f : i ⟶ j) :
-    (F.toEventualRanges.map f).Surjective := fun ⟨x, hx⟩ =>
-  by
-  obtain ⟨y, hy, rfl⟩ := h.subset_image_eventual_range F f hx
-  exact ⟨⟨y, hy⟩, rfl⟩
+    (F.toEventualRanges.map f).Surjective := fun ⟨x, hx⟩ => by
+  obtain ⟨y, hy, rfl⟩ := h.subset_image_eventual_range F f hx; exact ⟨⟨y, hy⟩, rfl⟩
 #align category_theory.functor.surjective_to_eventual_ranges CategoryTheory.Functor.surjective_toEventualRanges
 
 /- warning: category_theory.functor.to_eventual_ranges_nonempty -> CategoryTheory.Functor.toEventualRanges_nonempty is a dubious translation:
@@ -469,8 +450,7 @@ theorem toEventualRanges_nonempty (h : F.IsMittagLeffler) [∀ j : J, Nonempty (
     Nonempty (F.toEventualRanges.obj j) :=
   by
   let ⟨i, f, h⟩ := F.isMittagLeffler_iff_eventualRange.1 h j
-  rw [to_eventual_ranges_obj, h]
-  infer_instance
+  rw [to_eventual_ranges_obj, h]; infer_instance
 #align category_theory.functor.to_eventual_ranges_nonempty CategoryTheory.Functor.toEventualRanges_nonempty
 
 /- warning: category_theory.functor.thin_diagram_of_surjective -> CategoryTheory.Functor.thin_diagram_of_surjective is a dubious translation:
@@ -544,8 +524,7 @@ theorem eval_section_surjective_of_surjective (i : J) :
   refine' ⟨⟨fun j => (sec j).val, fun j k jk => by simpa [Subtype.ext_iff] using h jk⟩, _⟩
   · have := (sec i).Prop
     simp only [mem_Inter, mem_preimage, mem_singleton_iff] at this
-    replace this := this (𝟙 i)
-    rwa [map_id_apply] at this
+    replace this := this (𝟙 i); rwa [map_id_apply] at this
 #align category_theory.functor.eval_section_surjective_of_surjective CategoryTheory.Functor.eval_section_surjective_of_surjective
 
 /- warning: category_theory.functor.eventually_injective -> CategoryTheory.Functor.eventually_injective is a dubious translation:
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kyle Miller, Adam Topaz, Rémi Bottinelli, Junyan Xu
 
 ! This file was ported from Lean 3 source module category_theory.cofiltered_system
-! leanprover-community/mathlib commit 178a32653e369dce2da68dc6b2694e385d484ef1
+! leanprover-community/mathlib commit 2ed2c6310e6f1c5562bdf6bfbda55ebbf6891abe
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -15,6 +15,9 @@ import Mathbin.Topology.Category.Top.Limits.Konig
 /-!
 # Cofiltered systems
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 This file deals with properties of cofiltered (and inverse) systems.
 
 ## Main definitions
Diff
@@ -119,7 +119,7 @@ theorem nonempty_sections_of_finite_cofiltered_system {J : Type u} [Category.{w}
 
 /- warning: nonempty_sections_of_finite_inverse_system -> nonempty_sections_of_finite_inverse_system is a dubious translation:
 lean 3 declaration is
-  forall {J : Type.{u1}} [_inst_1 : Preorder.{u1} J] [_inst_2 : IsDirected.{u1} J (LE.le.{u1} J (Preorder.toLE.{u1} J _inst_1))] (F : CategoryTheory.Functor.{u1, u2, u1, succ u2} (Opposite.{succ u1} J) (CategoryTheory.Category.opposite.{u1, u1} J (Preorder.smallCategory.{u1} J _inst_1)) Type.{u2} CategoryTheory.types.{u2}) [_inst_3 : forall (j : Opposite.{succ u1} J), Finite.{succ u2} (CategoryTheory.Functor.obj.{u1, u2, u1, succ u2} (Opposite.{succ u1} J) (CategoryTheory.Category.opposite.{u1, u1} J (Preorder.smallCategory.{u1} J _inst_1)) Type.{u2} CategoryTheory.types.{u2} F j)] [_inst_4 : forall (j : Opposite.{succ u1} J), Nonempty.{succ u2} (CategoryTheory.Functor.obj.{u1, u2, u1, succ u2} (Opposite.{succ u1} J) (CategoryTheory.Category.opposite.{u1, u1} J (Preorder.smallCategory.{u1} J _inst_1)) Type.{u2} CategoryTheory.types.{u2} F j)], Set.Nonempty.{max u1 u2} (forall (j : Opposite.{succ u1} J), CategoryTheory.Functor.obj.{u1, u2, u1, succ u2} (Opposite.{succ u1} J) (CategoryTheory.Category.opposite.{u1, u1} J (Preorder.smallCategory.{u1} J _inst_1)) Type.{u2} CategoryTheory.types.{u2} F j) (CategoryTheory.Functor.sections.{u1, u2, u1} (Opposite.{succ u1} J) (CategoryTheory.Category.opposite.{u1, u1} J (Preorder.smallCategory.{u1} J _inst_1)) F)
+  forall {J : Type.{u1}} [_inst_1 : Preorder.{u1} J] [_inst_2 : IsDirected.{u1} J (LE.le.{u1} J (Preorder.toHasLe.{u1} J _inst_1))] (F : CategoryTheory.Functor.{u1, u2, u1, succ u2} (Opposite.{succ u1} J) (CategoryTheory.Category.opposite.{u1, u1} J (Preorder.smallCategory.{u1} J _inst_1)) Type.{u2} CategoryTheory.types.{u2}) [_inst_3 : forall (j : Opposite.{succ u1} J), Finite.{succ u2} (CategoryTheory.Functor.obj.{u1, u2, u1, succ u2} (Opposite.{succ u1} J) (CategoryTheory.Category.opposite.{u1, u1} J (Preorder.smallCategory.{u1} J _inst_1)) Type.{u2} CategoryTheory.types.{u2} F j)] [_inst_4 : forall (j : Opposite.{succ u1} J), Nonempty.{succ u2} (CategoryTheory.Functor.obj.{u1, u2, u1, succ u2} (Opposite.{succ u1} J) (CategoryTheory.Category.opposite.{u1, u1} J (Preorder.smallCategory.{u1} J _inst_1)) Type.{u2} CategoryTheory.types.{u2} F j)], Set.Nonempty.{max u1 u2} (forall (j : Opposite.{succ u1} J), CategoryTheory.Functor.obj.{u1, u2, u1, succ u2} (Opposite.{succ u1} J) (CategoryTheory.Category.opposite.{u1, u1} J (Preorder.smallCategory.{u1} J _inst_1)) Type.{u2} CategoryTheory.types.{u2} F j) (CategoryTheory.Functor.sections.{u1, u2, u1} (Opposite.{succ u1} J) (CategoryTheory.Category.opposite.{u1, u1} J (Preorder.smallCategory.{u1} J _inst_1)) F)
 but is expected to have type
   forall {J : Type.{u1}} [_inst_1 : Preorder.{u1} J] [_inst_2 : IsDirected.{u1} J (fun (x._@.Mathlib.CategoryTheory.CofilteredSystem._hyg.479 : J) (x._@.Mathlib.CategoryTheory.CofilteredSystem._hyg.481 : J) => LE.le.{u1} J (Preorder.toLE.{u1} J _inst_1) x._@.Mathlib.CategoryTheory.CofilteredSystem._hyg.479 x._@.Mathlib.CategoryTheory.CofilteredSystem._hyg.481)] (F : CategoryTheory.Functor.{u1, u2, u1, succ u2} (Opposite.{succ u1} J) (CategoryTheory.Category.opposite.{u1, u1} J (Preorder.smallCategory.{u1} J _inst_1)) Type.{u2} CategoryTheory.types.{u2}) [_inst_3 : forall (j : Opposite.{succ u1} J), Finite.{succ u2} (Prefunctor.obj.{succ u1, succ u2, u1, succ u2} (Opposite.{succ u1} J) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (Opposite.{succ u1} J) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (Opposite.{succ u1} J) (CategoryTheory.Category.opposite.{u1, u1} J (Preorder.smallCategory.{u1} J _inst_1)))) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, succ u2} (Opposite.{succ u1} J) (CategoryTheory.Category.opposite.{u1, u1} J (Preorder.smallCategory.{u1} J _inst_1)) Type.{u2} CategoryTheory.types.{u2} F) j)] [_inst_4 : forall (j : Opposite.{succ u1} J), Nonempty.{succ u2} (Prefunctor.obj.{succ u1, succ u2, u1, succ u2} (Opposite.{succ u1} J) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (Opposite.{succ u1} J) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (Opposite.{succ u1} J) (CategoryTheory.Category.opposite.{u1, u1} J (Preorder.smallCategory.{u1} J _inst_1)))) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, succ u2} (Opposite.{succ u1} J) (CategoryTheory.Category.opposite.{u1, u1} J (Preorder.smallCategory.{u1} J _inst_1)) Type.{u2} CategoryTheory.types.{u2} F) j)], Set.Nonempty.{max u1 u2} (forall (j : Opposite.{succ u1} J), Prefunctor.obj.{succ u1, succ u2, u1, succ u2} (Opposite.{succ u1} J) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (Opposite.{succ u1} J) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (Opposite.{succ u1} J) (CategoryTheory.Category.opposite.{u1, u1} J (Preorder.smallCategory.{u1} J _inst_1)))) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, succ u2} (Opposite.{succ u1} J) (CategoryTheory.Category.opposite.{u1, u1} J (Preorder.smallCategory.{u1} J _inst_1)) Type.{u2} CategoryTheory.types.{u2} F) j) (CategoryTheory.Functor.sections.{u1, u2, u1} (Opposite.{succ u1} J) (CategoryTheory.Category.opposite.{u1, u1} J (Preorder.smallCategory.{u1} J _inst_1)) F)
 Case conversion may be inaccurate. Consider using '#align nonempty_sections_of_finite_inverse_system nonempty_sections_of_finite_inverse_systemₓ'. -/
Diff
@@ -63,10 +63,16 @@ open CategoryTheory CategoryTheory.IsCofiltered Set CategoryTheory.FunctorToType
 
 section FiniteKonig
 
+/- warning: nonempty_sections_of_finite_cofiltered_system.init -> nonempty_sections_of_finite_cofiltered_system.init is a dubious translation:
+lean 3 declaration is
+  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u1, u1} J _inst_1] (F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) [hf : forall (j : J), Finite.{succ u1} (CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F j)] [hne : forall (j : J), Nonempty.{succ u1} (CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F j)], Set.Nonempty.{u1} (forall (j : J), CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F j) (CategoryTheory.Functor.sections.{u1, u1, u1} J _inst_1 F)
+but is expected to have type
+  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u1, u1} J _inst_1] (F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) [hf : forall (j : J), Finite.{succ u1} (Prefunctor.obj.{succ u1, succ u1, u1, succ u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F) j)] [hne : forall (j : J), Nonempty.{succ u1} (Prefunctor.obj.{succ u1, succ u1, u1, succ u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F) j)], Set.Nonempty.{u1} (forall (j : J), Prefunctor.obj.{succ u1, succ u1, u1, succ u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F) j) (CategoryTheory.Functor.sections.{u1, u1, u1} J _inst_1 F)
+Case conversion may be inaccurate. Consider using '#align nonempty_sections_of_finite_cofiltered_system.init nonempty_sections_of_finite_cofiltered_system.initₓ'. -/
 /-- This bootstraps `nonempty_sections_of_finite_inverse_system`. In this version,
 the `F` functor is between categories of the same universe, and it is an easy
 corollary to `Top.nonempty_limit_cone_of_compact_t2_inverse_system`. -/
-theorem NonemptySectionsOfFiniteCofilteredSystem.init {J : Type u} [SmallCategory J]
+theorem nonempty_sections_of_finite_cofiltered_system.init {J : Type u} [SmallCategory J]
     [IsCofilteredOrEmpty J] (F : J ⥤ Type u) [hf : ∀ j, Finite (F.obj j)]
     [hne : ∀ j, Nonempty (F.obj j)] : F.sections.Nonempty :=
   by
@@ -76,8 +82,14 @@ theorem NonemptySectionsOfFiniteCofilteredSystem.init {J : Type u} [SmallCategor
   haveI : ∀ j, Nonempty (F'.obj j) := hne
   obtain ⟨⟨u, hu⟩⟩ := TopCat.nonempty_limitCone_of_compact_t2_cofiltered_system F'
   exact ⟨u, fun _ _ => hu⟩
-#align nonempty_sections_of_finite_cofiltered_system.init NonemptySectionsOfFiniteCofilteredSystem.init
-
+#align nonempty_sections_of_finite_cofiltered_system.init nonempty_sections_of_finite_cofiltered_system.init
+
+/- warning: nonempty_sections_of_finite_cofiltered_system -> nonempty_sections_of_finite_cofiltered_system is a dubious translation:
+lean 3 declaration is
+  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u3, u1} J _inst_1] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) [_inst_3 : forall (j : J), Finite.{succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)] [_inst_4 : forall (j : J), Nonempty.{succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)], Set.Nonempty.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (CategoryTheory.Functor.sections.{u3, u2, u1} J _inst_1 F)
+but is expected to have type
+  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u3, u1} J _inst_1] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) [_inst_3 : forall (j : J), Finite.{succ u2} (Prefunctor.obj.{succ u3, succ u2, u1, succ u2} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F) j)] [_inst_4 : forall (j : J), Nonempty.{succ u2} (Prefunctor.obj.{succ u3, succ u2, u1, succ u2} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F) j)], Set.Nonempty.{max u1 u2} (forall (j : J), Prefunctor.obj.{succ u3, succ u2, u1, succ u2} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F) j) (CategoryTheory.Functor.sections.{u3, u2, u1} J _inst_1 F)
+Case conversion may be inaccurate. Consider using '#align nonempty_sections_of_finite_cofiltered_system nonempty_sections_of_finite_cofiltered_systemₓ'. -/
 /-- The cofiltered limit of nonempty finite types is nonempty.
 
 See `nonempty_sections_of_finite_inverse_system` for a specialization to inverse limits. -/
@@ -95,7 +107,7 @@ theorem nonempty_sections_of_finite_cofiltered_system {J : Type u} [Category.{w}
   cases isEmpty_or_nonempty J
   · fconstructor <;> exact isEmptyElim
   haveI : is_cofiltered J := ⟨⟩
-  obtain ⟨u, hu⟩ := NonemptySectionsOfFiniteCofilteredSystem.init F'
+  obtain ⟨u, hu⟩ := nonempty_sections_of_finite_cofiltered_system.init F'
   -- Step 3: interpret the results
   use fun j => (u ⟨j⟩).down
   intro j j' f
@@ -105,6 +117,12 @@ theorem nonempty_sections_of_finite_cofiltered_system {J : Type u} [Category.{w}
   rfl
 #align nonempty_sections_of_finite_cofiltered_system nonempty_sections_of_finite_cofiltered_system
 
+/- warning: nonempty_sections_of_finite_inverse_system -> nonempty_sections_of_finite_inverse_system is a dubious translation:
+lean 3 declaration is
+  forall {J : Type.{u1}} [_inst_1 : Preorder.{u1} J] [_inst_2 : IsDirected.{u1} J (LE.le.{u1} J (Preorder.toLE.{u1} J _inst_1))] (F : CategoryTheory.Functor.{u1, u2, u1, succ u2} (Opposite.{succ u1} J) (CategoryTheory.Category.opposite.{u1, u1} J (Preorder.smallCategory.{u1} J _inst_1)) Type.{u2} CategoryTheory.types.{u2}) [_inst_3 : forall (j : Opposite.{succ u1} J), Finite.{succ u2} (CategoryTheory.Functor.obj.{u1, u2, u1, succ u2} (Opposite.{succ u1} J) (CategoryTheory.Category.opposite.{u1, u1} J (Preorder.smallCategory.{u1} J _inst_1)) Type.{u2} CategoryTheory.types.{u2} F j)] [_inst_4 : forall (j : Opposite.{succ u1} J), Nonempty.{succ u2} (CategoryTheory.Functor.obj.{u1, u2, u1, succ u2} (Opposite.{succ u1} J) (CategoryTheory.Category.opposite.{u1, u1} J (Preorder.smallCategory.{u1} J _inst_1)) Type.{u2} CategoryTheory.types.{u2} F j)], Set.Nonempty.{max u1 u2} (forall (j : Opposite.{succ u1} J), CategoryTheory.Functor.obj.{u1, u2, u1, succ u2} (Opposite.{succ u1} J) (CategoryTheory.Category.opposite.{u1, u1} J (Preorder.smallCategory.{u1} J _inst_1)) Type.{u2} CategoryTheory.types.{u2} F j) (CategoryTheory.Functor.sections.{u1, u2, u1} (Opposite.{succ u1} J) (CategoryTheory.Category.opposite.{u1, u1} J (Preorder.smallCategory.{u1} J _inst_1)) F)
+but is expected to have type
+  forall {J : Type.{u1}} [_inst_1 : Preorder.{u1} J] [_inst_2 : IsDirected.{u1} J (fun (x._@.Mathlib.CategoryTheory.CofilteredSystem._hyg.479 : J) (x._@.Mathlib.CategoryTheory.CofilteredSystem._hyg.481 : J) => LE.le.{u1} J (Preorder.toLE.{u1} J _inst_1) x._@.Mathlib.CategoryTheory.CofilteredSystem._hyg.479 x._@.Mathlib.CategoryTheory.CofilteredSystem._hyg.481)] (F : CategoryTheory.Functor.{u1, u2, u1, succ u2} (Opposite.{succ u1} J) (CategoryTheory.Category.opposite.{u1, u1} J (Preorder.smallCategory.{u1} J _inst_1)) Type.{u2} CategoryTheory.types.{u2}) [_inst_3 : forall (j : Opposite.{succ u1} J), Finite.{succ u2} (Prefunctor.obj.{succ u1, succ u2, u1, succ u2} (Opposite.{succ u1} J) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (Opposite.{succ u1} J) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (Opposite.{succ u1} J) (CategoryTheory.Category.opposite.{u1, u1} J (Preorder.smallCategory.{u1} J _inst_1)))) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, succ u2} (Opposite.{succ u1} J) (CategoryTheory.Category.opposite.{u1, u1} J (Preorder.smallCategory.{u1} J _inst_1)) Type.{u2} CategoryTheory.types.{u2} F) j)] [_inst_4 : forall (j : Opposite.{succ u1} J), Nonempty.{succ u2} (Prefunctor.obj.{succ u1, succ u2, u1, succ u2} (Opposite.{succ u1} J) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (Opposite.{succ u1} J) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (Opposite.{succ u1} J) (CategoryTheory.Category.opposite.{u1, u1} J (Preorder.smallCategory.{u1} J _inst_1)))) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, succ u2} (Opposite.{succ u1} J) (CategoryTheory.Category.opposite.{u1, u1} J (Preorder.smallCategory.{u1} J _inst_1)) Type.{u2} CategoryTheory.types.{u2} F) j)], Set.Nonempty.{max u1 u2} (forall (j : Opposite.{succ u1} J), Prefunctor.obj.{succ u1, succ u2, u1, succ u2} (Opposite.{succ u1} J) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (Opposite.{succ u1} J) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (Opposite.{succ u1} J) (CategoryTheory.Category.opposite.{u1, u1} J (Preorder.smallCategory.{u1} J _inst_1)))) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, succ u2} (Opposite.{succ u1} J) (CategoryTheory.Category.opposite.{u1, u1} J (Preorder.smallCategory.{u1} J _inst_1)) Type.{u2} CategoryTheory.types.{u2} F) j) (CategoryTheory.Functor.sections.{u1, u2, u1} (Opposite.{succ u1} J) (CategoryTheory.Category.opposite.{u1, u1} J (Preorder.smallCategory.{u1} J _inst_1)) F)
+Case conversion may be inaccurate. Consider using '#align nonempty_sections_of_finite_inverse_system nonempty_sections_of_finite_inverse_systemₓ'. -/
 /-- The inverse limit of nonempty finite types is nonempty.
 
 See `nonempty_sections_of_finite_cofiltered_system` for a generalization to cofiltered limits.
@@ -133,6 +151,12 @@ namespace Functor
 
 variable {J : Type u} [Category J] (F : J ⥤ Type v) {i j k : J} (s : Set (F.obj i))
 
+/- warning: category_theory.functor.eventual_range -> CategoryTheory.Functor.eventualRange is a dubious translation:
+lean 3 declaration is
+  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) (j : J), Set.{u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)
+but is expected to have type
+  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) (j : J), Set.{u2} (Prefunctor.obj.{succ u3, succ u2, u1, succ u2} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F) j)
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.eventual_range CategoryTheory.Functor.eventualRangeₓ'. -/
 /-- The eventual range of the functor `F : J ⥤ Type v` at index `j : J` is the intersection
 of the ranges of all maps `F.map f` with `i : J` and `f : i ⟶ j`.
 -/
@@ -140,11 +164,18 @@ def eventualRange (j : J) :=
   ⋂ (i) (f : i ⟶ j), range (F.map f)
 #align category_theory.functor.eventual_range CategoryTheory.Functor.eventualRange
 
+/- warning: category_theory.functor.mem_eventual_range_iff -> CategoryTheory.Functor.mem_eventualRange_iff is a dubious translation:
+lean 3 declaration is
+  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) {j : J} {x : CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j}, Iff (Membership.Mem.{u2, u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (Set.{u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) (Set.hasMem.{u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) x (CategoryTheory.Functor.eventualRange.{u1, u2, u3} J _inst_1 F j)) (forall {{i : J}} (f : Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) i j), Membership.Mem.{u2, u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (Set.{u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) (Set.hasMem.{u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) x (Set.range.{u2, succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i j f)))
+but is expected to have type
+  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3}) {j : J} {x : Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j}, Iff (Membership.mem.{u3, u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Set.{u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j)) (Set.instMembershipSet.{u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j)) x (CategoryTheory.Functor.eventualRange.{u2, u3, u1} J _inst_1 F j)) (forall {{i : J}} (f : Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) i j), Membership.mem.{u3, u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Set.{u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j)) (Set.instMembershipSet.{u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j)) x (Set.range.{u3, succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i j f)))
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.mem_eventual_range_iff CategoryTheory.Functor.mem_eventualRange_iffₓ'. -/
 theorem mem_eventualRange_iff {x : F.obj j} :
     x ∈ F.eventualRange j ↔ ∀ ⦃i⦄ (f : i ⟶ j), x ∈ range (F.map f) :=
   mem_iInter₂
 #align category_theory.functor.mem_eventual_range_iff CategoryTheory.Functor.mem_eventualRange_iff
 
+#print CategoryTheory.Functor.IsMittagLeffler /-
 /-- The functor `F : J ⥤ Type v` satisfies the Mittag-Leffler condition if for all `j : J`,
 there exists some `i : J` and `f : i ⟶ j` such that for all `k : J` and `g : k ⟶ j`, the range
 of `F.map f` is contained in that of `F.map g`;
@@ -154,7 +185,14 @@ by some `f : i ⟶ j`.
 def IsMittagLeffler : Prop :=
   ∀ j : J, ∃ (i : _)(f : i ⟶ j), ∀ ⦃k⦄ (g : k ⟶ j), range (F.map f) ⊆ range (F.map g)
 #align category_theory.functor.is_mittag_leffler CategoryTheory.Functor.IsMittagLeffler
+-/
 
+/- warning: category_theory.functor.is_mittag_leffler_iff_eventual_range -> CategoryTheory.Functor.isMittagLeffler_iff_eventualRange is a dubious translation:
+lean 3 declaration is
+  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}), Iff (CategoryTheory.Functor.IsMittagLeffler.{u1, u2, u3} J _inst_1 F) (forall (j : J), Exists.{succ u1} J (fun (i : J) => Exists.{succ u3} (Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) i j) (fun (f : Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) i j) => Eq.{succ u2} (Set.{u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) (CategoryTheory.Functor.eventualRange.{u1, u2, u3} J _inst_1 F j) (Set.range.{u2, succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i j f)))))
+but is expected to have type
+  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3}), Iff (CategoryTheory.Functor.IsMittagLeffler.{u2, u3, u1} J _inst_1 F) (forall (j : J), Exists.{succ u2} J (fun (i : J) => Exists.{succ u1} (Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) i j) (fun (f : Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) i j) => Eq.{succ u3} (Set.{u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j)) (CategoryTheory.Functor.eventualRange.{u2, u3, u1} J _inst_1 F j) (Set.range.{u3, succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i j f)))))
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.is_mittag_leffler_iff_eventual_range CategoryTheory.Functor.isMittagLeffler_iff_eventualRangeₓ'. -/
 theorem isMittagLeffler_iff_eventualRange :
     F.IsMittagLeffler ↔ ∀ j : J, ∃ (i : _)(f : i ⟶ j), F.eventualRange j = range (F.map f) :=
   forall_congr' fun j =>
@@ -162,6 +200,12 @@ theorem isMittagLeffler_iff_eventualRange :
       ⟨fun h => (iInter₂_subset _ _).antisymm <| subset_iInter₂ h, fun h => h ▸ iInter₂_subset⟩
 #align category_theory.functor.is_mittag_leffler_iff_eventual_range CategoryTheory.Functor.isMittagLeffler_iff_eventualRange
 
+/- warning: category_theory.functor.is_mittag_leffler.subset_image_eventual_range -> CategoryTheory.Functor.IsMittagLeffler.subset_image_eventualRange is a dubious translation:
+lean 3 declaration is
+  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) {i : J} {j : J}, (CategoryTheory.Functor.IsMittagLeffler.{u1, u2, u3} J _inst_1 F) -> (forall (f : Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) j i), HasSubset.Subset.{u2} (Set.{u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i)) (Set.hasSubset.{u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i)) (CategoryTheory.Functor.eventualRange.{u1, u2, u3} J _inst_1 F i) (Set.image.{u2, u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j i f) (CategoryTheory.Functor.eventualRange.{u1, u2, u3} J _inst_1 F j)))
+but is expected to have type
+  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3}) {i : J} {j : J}, (CategoryTheory.Functor.IsMittagLeffler.{u2, u3, u1} J _inst_1 F) -> (forall (f : Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) j i), HasSubset.Subset.{u3} (Set.{u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i)) (Set.instHasSubsetSet.{u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i)) (CategoryTheory.Functor.eventualRange.{u2, u3, u1} J _inst_1 F i) (Set.image.{u3, u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j i f) (CategoryTheory.Functor.eventualRange.{u2, u3, u1} J _inst_1 F j)))
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.is_mittag_leffler.subset_image_eventual_range CategoryTheory.Functor.IsMittagLeffler.subset_image_eventualRangeₓ'. -/
 theorem IsMittagLeffler.subset_image_eventualRange (h : F.IsMittagLeffler) (f : j ⟶ i) :
     F.eventualRange i ⊆ F.map f '' F.eventualRange j :=
   by
@@ -171,6 +215,12 @@ theorem IsMittagLeffler.subset_image_eventualRange (h : F.IsMittagLeffler) (f :
   refine' ⟨_, ⟨x, rfl⟩, by simpa only [F.map_comp] ⟩
 #align category_theory.functor.is_mittag_leffler.subset_image_eventual_range CategoryTheory.Functor.IsMittagLeffler.subset_image_eventualRange
 
+/- warning: category_theory.functor.eventual_range_eq_range_precomp -> CategoryTheory.Functor.eventualRange_eq_range_precomp is a dubious translation:
+lean 3 declaration is
+  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) {i : J} {j : J} {k : J} (f : Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) i j) (g : Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) j k), (Eq.{succ u2} (Set.{u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F k)) (CategoryTheory.Functor.eventualRange.{u1, u2, u3} J _inst_1 F k) (Set.range.{u2, succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F k) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j k g))) -> (Eq.{succ u2} (Set.{u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F k)) (CategoryTheory.Functor.eventualRange.{u1, u2, u3} J _inst_1 F k) (Set.range.{u2, succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F k) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i k (CategoryTheory.CategoryStruct.comp.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1) i j k f g))))
+but is expected to have type
+  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3}) {i : J} {j : J} {k : J} (f : Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) i j) (g : Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) j k), (Eq.{succ u3} (Set.{u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) k)) (CategoryTheory.Functor.eventualRange.{u2, u3, u1} J _inst_1 F k) (Set.range.{u3, succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) k) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j k g))) -> (Eq.{succ u3} (Set.{u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) k)) (CategoryTheory.Functor.eventualRange.{u2, u3, u1} J _inst_1 F k) (Set.range.{u3, succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) k) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i k (CategoryTheory.CategoryStruct.comp.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1) i j k f g))))
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.eventual_range_eq_range_precomp CategoryTheory.Functor.eventualRange_eq_range_precompₓ'. -/
 theorem eventualRange_eq_range_precomp (f : i ⟶ j) (g : j ⟶ k)
     (h : F.eventualRange k = range (F.map g)) : F.eventualRange k = range (F.map <| f ≫ g) :=
   by
@@ -180,11 +230,23 @@ theorem eventualRange_eq_range_precomp (f : i ⟶ j) (g : j ⟶ k)
     apply range_comp_subset_range
 #align category_theory.functor.eventual_range_eq_range_precomp CategoryTheory.Functor.eventualRange_eq_range_precomp
 
+/- warning: category_theory.functor.is_mittag_leffler_of_surjective -> CategoryTheory.Functor.isMittagLeffler_of_surjective is a dubious translation:
+lean 3 declaration is
+  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}), (forall {{i : J}} {{j : J}} (f : Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) i j), Function.Surjective.{succ u2, succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i j f)) -> (CategoryTheory.Functor.IsMittagLeffler.{u1, u2, u3} J _inst_1 F)
+but is expected to have type
+  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3}), (forall {{i : J}} {{j : J}} (f : Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) i j), Function.Surjective.{succ u3, succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i j f)) -> (CategoryTheory.Functor.IsMittagLeffler.{u2, u3, u1} J _inst_1 F)
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.is_mittag_leffler_of_surjective CategoryTheory.Functor.isMittagLeffler_of_surjectiveₓ'. -/
 theorem isMittagLeffler_of_surjective (h : ∀ ⦃i j : J⦄ (f : i ⟶ j), (F.map f).Surjective) :
     F.IsMittagLeffler := fun j =>
   ⟨j, 𝟙 j, fun k g => by rw [map_id, types_id, range_id, (h g).range_eq]⟩
 #align category_theory.functor.is_mittag_leffler_of_surjective CategoryTheory.Functor.isMittagLeffler_of_surjective
 
+/- warning: category_theory.functor.to_preimages -> CategoryTheory.Functor.toPreimages is a dubious translation:
+lean 3 declaration is
+  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) {i : J}, (Set.{u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i)) -> (CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2})
+but is expected to have type
+  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) {i : J}, (Set.{u2} (Prefunctor.obj.{succ u3, succ u2, u1, succ u2} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F) i)) -> (CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2})
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.to_preimages CategoryTheory.Functor.toPreimagesₓ'. -/
 /-- The subfunctor of `F` obtained by restricting to the preimages of a set `s ∈ F.obj i`. -/
 @[simps]
 def toPreimages : J ⥤ Type v where
@@ -204,12 +266,24 @@ def toPreimages : J ⥤ Type v where
     rfl
 #align category_theory.functor.to_preimages CategoryTheory.Functor.toPreimages
 
+/- warning: category_theory.functor.to_preimages_finite -> CategoryTheory.Functor.toPreimages_finite is a dubious translation:
+lean 3 declaration is
+  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) {i : J} (s : Set.{u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i)) [_inst_2 : forall (j : J), Finite.{succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)] (j : J), Finite.{succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} (CategoryTheory.Functor.toPreimages.{u1, u2, u3} J _inst_1 F i s) j)
+but is expected to have type
+  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) {i : J} (s : Set.{u2} (Prefunctor.obj.{succ u3, succ u2, u1, succ u2} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F) i)) [_inst_2 : forall (j : J), Finite.{succ u2} (Prefunctor.obj.{succ u3, succ u2, u1, succ u2} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F) j)] (j : J), Finite.{succ u2} (Prefunctor.obj.{succ u3, succ u2, u1, succ u2} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} (CategoryTheory.Functor.toPreimages.{u1, u2, u3} J _inst_1 F i s)) j)
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.to_preimages_finite CategoryTheory.Functor.toPreimages_finiteₓ'. -/
 instance toPreimages_finite [∀ j, Finite (F.obj j)] : ∀ j, Finite ((F.toPreimages s).obj j) :=
   fun j => Subtype.finite
 #align category_theory.functor.to_preimages_finite CategoryTheory.Functor.toPreimages_finite
 
 variable [IsCofilteredOrEmpty J]
 
+/- warning: category_theory.functor.eventual_range_maps_to -> CategoryTheory.Functor.eventualRange_mapsTo is a dubious translation:
+lean 3 declaration is
+  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) {i : J} {j : J} [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u3, u1} J _inst_1] (f : Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) j i), Set.MapsTo.{u2, u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j i f) (CategoryTheory.Functor.eventualRange.{u1, u2, u3} J _inst_1 F j) (CategoryTheory.Functor.eventualRange.{u1, u2, u3} J _inst_1 F i)
+but is expected to have type
+  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3}) {i : J} {j : J} [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u1, u2} J _inst_1] (f : Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) j i), Set.MapsTo.{u3, u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j i f) (CategoryTheory.Functor.eventualRange.{u2, u3, u1} J _inst_1 F j) (CategoryTheory.Functor.eventualRange.{u2, u3, u1} J _inst_1 F i)
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.eventual_range_maps_to CategoryTheory.Functor.eventualRange_mapsToₓ'. -/
 theorem eventualRange_mapsTo (f : j ⟶ i) :
     (F.eventualRange j).MapsTo (F.map f) (F.eventualRange i) := fun x hx =>
   by
@@ -221,11 +295,23 @@ theorem eventualRange_mapsTo (f : j ⟶ i) :
   exact ⟨_, rfl⟩
 #align category_theory.functor.eventual_range_maps_to CategoryTheory.Functor.eventualRange_mapsTo
 
+/- warning: category_theory.functor.is_mittag_leffler.eq_image_eventual_range -> CategoryTheory.Functor.IsMittagLeffler.eq_image_eventualRange is a dubious translation:
+lean 3 declaration is
+  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) {i : J} {j : J} [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u3, u1} J _inst_1], (CategoryTheory.Functor.IsMittagLeffler.{u1, u2, u3} J _inst_1 F) -> (forall (f : Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) j i), Eq.{succ u2} (Set.{u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i)) (CategoryTheory.Functor.eventualRange.{u1, u2, u3} J _inst_1 F i) (Set.image.{u2, u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j i f) (CategoryTheory.Functor.eventualRange.{u1, u2, u3} J _inst_1 F j)))
+but is expected to have type
+  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3}) {i : J} {j : J} [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u1, u2} J _inst_1], (CategoryTheory.Functor.IsMittagLeffler.{u2, u3, u1} J _inst_1 F) -> (forall (f : Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) j i), Eq.{succ u3} (Set.{u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i)) (CategoryTheory.Functor.eventualRange.{u2, u3, u1} J _inst_1 F i) (Set.image.{u3, u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j i f) (CategoryTheory.Functor.eventualRange.{u2, u3, u1} J _inst_1 F j)))
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.is_mittag_leffler.eq_image_eventual_range CategoryTheory.Functor.IsMittagLeffler.eq_image_eventualRangeₓ'. -/
 theorem IsMittagLeffler.eq_image_eventualRange (h : F.IsMittagLeffler) (f : j ⟶ i) :
     F.eventualRange i = F.map f '' F.eventualRange j :=
   (h.subset_image_eventualRange F f).antisymm <| mapsTo'.1 (F.eventualRange_mapsTo f)
 #align category_theory.functor.is_mittag_leffler.eq_image_eventual_range CategoryTheory.Functor.IsMittagLeffler.eq_image_eventualRange
 
+/- warning: category_theory.functor.eventual_range_eq_iff -> CategoryTheory.Functor.eventualRange_eq_iff is a dubious translation:
+lean 3 declaration is
+  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) {i : J} {j : J} [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u3, u1} J _inst_1] {f : Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) i j}, Iff (Eq.{succ u2} (Set.{u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) (CategoryTheory.Functor.eventualRange.{u1, u2, u3} J _inst_1 F j) (Set.range.{u2, succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i j f))) (forall {{k : J}} (g : Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) k i), HasSubset.Subset.{u2} (Set.{u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) (Set.hasSubset.{u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) (Set.range.{u2, succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i j f)) (Set.range.{u2, succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F k) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F k j (CategoryTheory.CategoryStruct.comp.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1) k i j g f))))
+but is expected to have type
+  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3}) {i : J} {j : J} [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u1, u2} J _inst_1] {f : Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) i j}, Iff (Eq.{succ u3} (Set.{u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j)) (CategoryTheory.Functor.eventualRange.{u2, u3, u1} J _inst_1 F j) (Set.range.{u3, succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i j f))) (forall {{k : J}} (g : Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) k i), HasSubset.Subset.{u3} (Set.{u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j)) (Set.instHasSubsetSet.{u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j)) (Set.range.{u3, succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i j f)) (Set.range.{u3, succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) k) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) k j (CategoryTheory.CategoryStruct.comp.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1) k i j g f))))
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.eventual_range_eq_iff CategoryTheory.Functor.eventualRange_eq_iffₓ'. -/
 theorem eventualRange_eq_iff {f : i ⟶ j} :
     F.eventualRange j = range (F.map f) ↔
       ∀ ⦃k⦄ (g : k ⟶ i), range (F.map f) ⊆ range (F.map <| g ≫ f) :=
@@ -238,12 +324,24 @@ theorem eventualRange_eq_iff {f : i ⟶ j} :
   apply range_comp_subset_range
 #align category_theory.functor.eventual_range_eq_iff CategoryTheory.Functor.eventualRange_eq_iff
 
+/- warning: category_theory.functor.is_mittag_leffler_iff_subset_range_comp -> CategoryTheory.Functor.isMittagLeffler_iff_subset_range_comp is a dubious translation:
+lean 3 declaration is
+  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u3, u1} J _inst_1], Iff (CategoryTheory.Functor.IsMittagLeffler.{u1, u2, u3} J _inst_1 F) (forall (j : J), Exists.{succ u1} J (fun (i : J) => Exists.{succ u3} (Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) i j) (fun (f : Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) i j) => forall {{k : J}} (g : Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) k i), HasSubset.Subset.{u2} (Set.{u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) (Set.hasSubset.{u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) (Set.range.{u2, succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i j f)) (Set.range.{u2, succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F k) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F k j (CategoryTheory.CategoryStruct.comp.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1) k i j g f))))))
+but is expected to have type
+  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u1, u2} J _inst_1], Iff (CategoryTheory.Functor.IsMittagLeffler.{u2, u3, u1} J _inst_1 F) (forall (j : J), Exists.{succ u2} J (fun (i : J) => Exists.{succ u1} (Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) i j) (fun (f : Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) i j) => forall {{k : J}} (g : Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) k i), HasSubset.Subset.{u3} (Set.{u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j)) (Set.instHasSubsetSet.{u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j)) (Set.range.{u3, succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i j f)) (Set.range.{u3, succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) k) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) k j (CategoryTheory.CategoryStruct.comp.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1) k i j g f))))))
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.is_mittag_leffler_iff_subset_range_comp CategoryTheory.Functor.isMittagLeffler_iff_subset_range_compₓ'. -/
 theorem isMittagLeffler_iff_subset_range_comp :
     F.IsMittagLeffler ↔
       ∀ j : J, ∃ (i : _)(f : i ⟶ j), ∀ ⦃k⦄ (g : k ⟶ i), range (F.map f) ⊆ range (F.map <| g ≫ f) :=
   by simp_rw [is_mittag_leffler_iff_eventual_range, eventual_range_eq_iff]
 #align category_theory.functor.is_mittag_leffler_iff_subset_range_comp CategoryTheory.Functor.isMittagLeffler_iff_subset_range_comp
 
+/- warning: category_theory.functor.is_mittag_leffler.to_preimages -> CategoryTheory.Functor.IsMittagLeffler.toPreimages is a dubious translation:
+lean 3 declaration is
+  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) {i : J} (s : Set.{u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i)) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u3, u1} J _inst_1], (CategoryTheory.Functor.IsMittagLeffler.{u1, u2, u3} J _inst_1 F) -> (CategoryTheory.Functor.IsMittagLeffler.{u1, u2, u3} J _inst_1 (CategoryTheory.Functor.toPreimages.{u1, u2, u3} J _inst_1 F i s))
+but is expected to have type
+  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3}) {i : J} (s : Set.{u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i)) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u1, u2} J _inst_1], (CategoryTheory.Functor.IsMittagLeffler.{u2, u3, u1} J _inst_1 F) -> (CategoryTheory.Functor.IsMittagLeffler.{u2, u3, u1} J _inst_1 (CategoryTheory.Functor.toPreimages.{u2, u3, u1} J _inst_1 F i s))
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.is_mittag_leffler.to_preimages CategoryTheory.Functor.IsMittagLeffler.toPreimagesₓ'. -/
 theorem IsMittagLeffler.toPreimages (h : F.IsMittagLeffler) : (F.toPreimages s).IsMittagLeffler :=
   (isMittagLeffler_iff_subset_range_comp _).2 fun j =>
     by
@@ -266,6 +364,12 @@ theorem IsMittagLeffler.toPreimages (h : F.IsMittagLeffler) : (F.toPreimages s).
       rw [← category.assoc, map_comp_apply, h₃, map_comp_apply]
 #align category_theory.functor.is_mittag_leffler.to_preimages CategoryTheory.Functor.IsMittagLeffler.toPreimages
 
+/- warning: category_theory.functor.is_mittag_leffler_of_exists_finite_range -> CategoryTheory.Functor.isMittagLeffler_of_exists_finite_range is a dubious translation:
+lean 3 declaration is
+  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u3, u1} J _inst_1], (forall (j : J), Exists.{succ u1} J (fun (i : J) => Exists.{succ u3} (Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) i j) (fun (f : Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) i j) => Set.Finite.{u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (Set.range.{u2, succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i j f))))) -> (CategoryTheory.Functor.IsMittagLeffler.{u1, u2, u3} J _inst_1 F)
+but is expected to have type
+  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u1, u2} J _inst_1], (forall (j : J), Exists.{succ u2} J (fun (i : J) => Exists.{succ u1} (Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) i j) (fun (f : Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) i j) => Set.Finite.{u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Set.range.{u3, succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i j f))))) -> (CategoryTheory.Functor.IsMittagLeffler.{u2, u3, u1} J _inst_1 F)
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.is_mittag_leffler_of_exists_finite_range CategoryTheory.Functor.isMittagLeffler_of_exists_finite_rangeₓ'. -/
 theorem isMittagLeffler_of_exists_finite_range
     (h : ∀ j : J, ∃ (i : _)(f : i ⟶ j), (range <| F.map f).Finite) : F.IsMittagLeffler := fun j =>
   by
@@ -284,6 +388,7 @@ theorem isMittagLeffler_of_exists_finite_range
   rwa [Finset.lt_iff_ssubset, ← Finset.coe_ssubset, Set.Finite.coe_toFinset, hm] at this
 #align category_theory.functor.is_mittag_leffler_of_exists_finite_range CategoryTheory.Functor.isMittagLeffler_of_exists_finite_range
 
+#print CategoryTheory.Functor.toEventualRanges /-
 /-- The subfunctor of `F` obtained by restricting to the eventual range at each index.
 -/
 @[simps]
@@ -299,11 +404,24 @@ def toEventualRanges : J ⥤ Type v
     simp_rw [F.map_comp]
     rfl
 #align category_theory.functor.to_eventual_ranges CategoryTheory.Functor.toEventualRanges
+-/
 
+/- warning: category_theory.functor.to_eventual_ranges_finite -> CategoryTheory.Functor.toEventualRanges_finite is a dubious translation:
+lean 3 declaration is
+  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u3, u1} J _inst_1] [_inst_3 : forall (j : J), Finite.{succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)] (j : J), Finite.{succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} (CategoryTheory.Functor.toEventualRanges.{u1, u2, u3} J _inst_1 F _inst_2) j)
+but is expected to have type
+  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u3, u1} J _inst_1] [_inst_3 : forall (j : J), Finite.{succ u2} (Prefunctor.obj.{succ u3, succ u2, u1, succ u2} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F) j)] (j : J), Finite.{succ u2} (Prefunctor.obj.{succ u3, succ u2, u1, succ u2} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} (CategoryTheory.Functor.toEventualRanges.{u1, u2, u3} J _inst_1 F _inst_2)) j)
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.to_eventual_ranges_finite CategoryTheory.Functor.toEventualRanges_finiteₓ'. -/
 instance toEventualRanges_finite [∀ j, Finite (F.obj j)] : ∀ j, Finite (F.toEventualRanges.obj j) :=
   fun j => Subtype.finite
 #align category_theory.functor.to_eventual_ranges_finite CategoryTheory.Functor.toEventualRanges_finite
 
+/- warning: category_theory.functor.to_eventual_ranges_sections_equiv -> CategoryTheory.Functor.toEventualRangesSectionsEquiv is a dubious translation:
+lean 3 declaration is
+  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u3, u1} J _inst_1], Equiv.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} (CategoryTheory.Functor.toEventualRanges.{u1, u2, u3} J _inst_1 F _inst_2) j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} (CategoryTheory.Functor.toEventualRanges.{u1, u2, u3} J _inst_1 F _inst_2) j)) (CategoryTheory.Functor.sections.{u3, u2, u1} J _inst_1 (CategoryTheory.Functor.toEventualRanges.{u1, u2, u3} J _inst_1 F _inst_2))) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) (CategoryTheory.Functor.sections.{u3, u2, u1} J _inst_1 F))
+but is expected to have type
+  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u3, u1} J _inst_1], Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (Set.Elem.{max u1 u2} (forall (j : J), Prefunctor.obj.{succ u3, succ u2, u1, succ u2} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} (CategoryTheory.Functor.toEventualRanges.{u1, u2, u3} J _inst_1 F _inst_2)) j) (CategoryTheory.Functor.sections.{u3, u2, u1} J _inst_1 (CategoryTheory.Functor.toEventualRanges.{u1, u2, u3} J _inst_1 F _inst_2))) (Set.Elem.{max u1 u2} (forall (j : J), Prefunctor.obj.{succ u3, succ u2, u1, succ u2} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F) j) (CategoryTheory.Functor.sections.{u3, u2, u1} J _inst_1 F))
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.to_eventual_ranges_sections_equiv CategoryTheory.Functor.toEventualRangesSectionsEquivₓ'. -/
 /-- The sections of the functor `F : J ⥤ Type v` are in bijection with the sections of
 `F.eventual_ranges`.
 -/
@@ -320,6 +438,12 @@ def toEventualRangesSectionsEquiv : F.toEventualRanges.sections ≃ F.sections
     rfl
 #align category_theory.functor.to_eventual_ranges_sections_equiv CategoryTheory.Functor.toEventualRangesSectionsEquiv
 
+/- warning: category_theory.functor.surjective_to_eventual_ranges -> CategoryTheory.Functor.surjective_toEventualRanges is a dubious translation:
+lean 3 declaration is
+  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u3, u1} J _inst_1], (CategoryTheory.Functor.IsMittagLeffler.{u1, u2, u3} J _inst_1 F) -> (forall {{i : J}} {{j : J}} (f : Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) i j), Function.Surjective.{succ u2, succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} (CategoryTheory.Functor.toEventualRanges.{u1, u2, u3} J _inst_1 F _inst_2) i) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} (CategoryTheory.Functor.toEventualRanges.{u1, u2, u3} J _inst_1 F _inst_2) j) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} (CategoryTheory.Functor.toEventualRanges.{u1, u2, u3} J _inst_1 F _inst_2) i j f))
+but is expected to have type
+  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u1, u2} J _inst_1], (CategoryTheory.Functor.IsMittagLeffler.{u2, u3, u1} J _inst_1 F) -> (forall {{i : J}} {{j : J}} (f : Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) i j), Function.Surjective.{succ u3, succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} (CategoryTheory.Functor.toEventualRanges.{u2, u3, u1} J _inst_1 F _inst_2)) i) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} (CategoryTheory.Functor.toEventualRanges.{u2, u3, u1} J _inst_1 F _inst_2)) j) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} (CategoryTheory.Functor.toEventualRanges.{u2, u3, u1} J _inst_1 F _inst_2)) i j f))
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.surjective_to_eventual_ranges CategoryTheory.Functor.surjective_toEventualRangesₓ'. -/
 /--
 If `F` satisfies the Mittag-Leffler condition, its restriction to eventual ranges is a surjective
 functor.
@@ -331,6 +455,12 @@ theorem surjective_toEventualRanges (h : F.IsMittagLeffler) ⦃i j⦄ (f : i ⟶
   exact ⟨⟨y, hy⟩, rfl⟩
 #align category_theory.functor.surjective_to_eventual_ranges CategoryTheory.Functor.surjective_toEventualRanges
 
+/- warning: category_theory.functor.to_eventual_ranges_nonempty -> CategoryTheory.Functor.toEventualRanges_nonempty is a dubious translation:
+lean 3 declaration is
+  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u3, u1} J _inst_1], (CategoryTheory.Functor.IsMittagLeffler.{u1, u2, u3} J _inst_1 F) -> (forall [_inst_3 : forall (j : J), Nonempty.{succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)] (j : J), Nonempty.{succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} (CategoryTheory.Functor.toEventualRanges.{u1, u2, u3} J _inst_1 F _inst_2) j))
+but is expected to have type
+  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u1, u2} J _inst_1], (CategoryTheory.Functor.IsMittagLeffler.{u2, u3, u1} J _inst_1 F) -> (forall [_inst_3 : forall (j : J), Nonempty.{succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j)] (j : J), Nonempty.{succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} (CategoryTheory.Functor.toEventualRanges.{u2, u3, u1} J _inst_1 F _inst_2)) j))
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.to_eventual_ranges_nonempty CategoryTheory.Functor.toEventualRanges_nonemptyₓ'. -/
 /-- If `F` is nonempty at each index and Mittag-Leffler, then so is `F.to_eventual_ranges`. -/
 theorem toEventualRanges_nonempty (h : F.IsMittagLeffler) [∀ j : J, Nonempty (F.obj j)] (j : J) :
     Nonempty (F.toEventualRanges.obj j) :=
@@ -340,6 +470,12 @@ theorem toEventualRanges_nonempty (h : F.IsMittagLeffler) [∀ j : J, Nonempty (
   infer_instance
 #align category_theory.functor.to_eventual_ranges_nonempty CategoryTheory.Functor.toEventualRanges_nonempty
 
+/- warning: category_theory.functor.thin_diagram_of_surjective -> CategoryTheory.Functor.thin_diagram_of_surjective is a dubious translation:
+lean 3 declaration is
+  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u3, u1} J _inst_1], (forall {{i : J}} {{j : J}} (f : Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) i j), Function.Surjective.{succ u2, succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i j f)) -> (forall {i : J} {j : J} (f : Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) i j) (g : Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) i j), Eq.{succ u2} (Quiver.Hom.{succ u2, succ u2} Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i j f) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i j g))
+but is expected to have type
+  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u1, u2} J _inst_1], (forall {{i : J}} {{j : J}} (f : Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) i j), Function.Surjective.{succ u3, succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i j f)) -> (forall {i : J} {j : J} (f : Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) i j) (g : Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) i j), Eq.{succ u3} (Quiver.Hom.{succ u3, succ u3} Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j)) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i j f) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i j g))
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.thin_diagram_of_surjective CategoryTheory.Functor.thin_diagram_of_surjectiveₓ'. -/
 /-- If `F` has all arrows surjective, then it "factors through a poset". -/
 theorem thin_diagram_of_surjective (Fsur : ∀ ⦃i j : J⦄ (f : i ⟶ j), (F.map f).Surjective) {i j}
     (f g : i ⟶ j) : F.map f = F.map g :=
@@ -347,6 +483,12 @@ theorem thin_diagram_of_surjective (Fsur : ∀ ⦃i j : J⦄ (f : i ⟶ j), (F.m
   (Fsur φ).injective_comp_right <| by simp_rw [← types_comp, ← F.map_comp, hφ]
 #align category_theory.functor.thin_diagram_of_surjective CategoryTheory.Functor.thin_diagram_of_surjective
 
+/- warning: category_theory.functor.to_preimages_nonempty_of_surjective -> CategoryTheory.Functor.toPreimages_nonempty_of_surjective is a dubious translation:
+lean 3 declaration is
+  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) {i : J} (s : Set.{u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i)) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u3, u1} J _inst_1] [hFn : forall (j : J), Nonempty.{succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)], (forall {{i : J}} {{j : J}} (f : Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) i j), Function.Surjective.{succ u2, succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i j f)) -> (Set.Nonempty.{u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i) s) -> (forall (j : J), Nonempty.{succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} (CategoryTheory.Functor.toPreimages.{u1, u2, u3} J _inst_1 F i s) j))
+but is expected to have type
+  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3}) {i : J} (s : Set.{u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i)) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u1, u2} J _inst_1] [hFn : forall (j : J), Nonempty.{succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j)], (forall {{i : J}} {{j : J}} (f : Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) i j), Function.Surjective.{succ u3, succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i j f)) -> (Set.Nonempty.{u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i) s) -> (forall (j : J), Nonempty.{succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} (CategoryTheory.Functor.toPreimages.{u2, u3, u1} J _inst_1 F i s)) j))
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.to_preimages_nonempty_of_surjective CategoryTheory.Functor.toPreimages_nonempty_of_surjectiveₓ'. -/
 theorem toPreimages_nonempty_of_surjective [hFn : ∀ j : J, Nonempty (F.obj j)]
     (Fsur : ∀ ⦃i j : J⦄ (f : i ⟶ j), (F.map f).Surjective) (hs : s.Nonempty) (j) :
     Nonempty ((F.toPreimages s).obj j) :=
@@ -359,6 +501,12 @@ theorem toPreimages_nonempty_of_surjective [hFn : ∀ j : J, Nonempty (F.obj j)]
     exact ⟨x, fun ji' => (F.thin_diagram_of_surjective Fsur ji' ji).symm ▸ ys⟩
 #align category_theory.functor.to_preimages_nonempty_of_surjective CategoryTheory.Functor.toPreimages_nonempty_of_surjective
 
+/- warning: category_theory.functor.eval_section_injective_of_eventually_injective -> CategoryTheory.Functor.eval_section_injective_of_eventually_injective is a dubious translation:
+lean 3 declaration is
+  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u3, u1} J _inst_1] {j : J}, (forall (i : J) (f : Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) i j), Function.Injective.{succ u2, succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i j f)) -> (forall (i : J), (Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) i j) -> (Function.Injective.{succ (max u1 u2), succ u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) (CategoryTheory.Functor.sections.{u3, u2, u1} J _inst_1 F)) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (fun (s : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) (CategoryTheory.Functor.sections.{u3, u2, u1} J _inst_1 F)) => Subtype.val.{succ (max u1 u2)} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (fun (x : forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) => Membership.Mem.{max u1 u2, max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) (Set.hasMem.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) x (CategoryTheory.Functor.sections.{u3, u2, u1} J _inst_1 F)) s j)))
+but is expected to have type
+  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u1, u2} J _inst_1] {j : J}, (forall (i : J) (f : Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) i j), Function.Injective.{succ u3, succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i j f)) -> (forall (i : J), (Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) i j) -> (Function.Injective.{max (succ u2) (succ u3), succ u3} (Set.Elem.{max u2 u3} (forall (j : J), Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (CategoryTheory.Functor.sections.{u1, u3, u2} J _inst_1 F)) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (fun (s : Set.Elem.{max u2 u3} (forall (j : J), Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (CategoryTheory.Functor.sections.{u1, u3, u2} J _inst_1 F)) => Subtype.val.{max (succ u2) (succ u3)} (forall (j : J), Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (fun (x : forall (j : J), Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) => Membership.mem.{max u2 u3, max u2 u3} (forall (j : J), Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Set.{max u2 u3} (forall (j : J), Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j)) (Set.instMembershipSet.{max u2 u3} (forall (j : J), Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j)) x (CategoryTheory.Functor.sections.{u1, u3, u2} J _inst_1 F)) s j)))
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.eval_section_injective_of_eventually_injective CategoryTheory.Functor.eval_section_injective_of_eventually_injectiveₓ'. -/
 theorem eval_section_injective_of_eventually_injective {j}
     (Finj : ∀ (i) (f : i ⟶ j), (F.map f).Injective) (i) (f : i ⟶ j) :
     (fun s : F.sections => s.val j).Injective :=
@@ -378,6 +526,12 @@ variable [∀ j : J, Nonempty (F.obj j)] [∀ j : J, Finite (F.obj j)]
 
 include Fsur
 
+/- warning: category_theory.functor.eval_section_surjective_of_surjective -> CategoryTheory.Functor.eval_section_surjective_of_surjective is a dubious translation:
+lean 3 declaration is
+  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u3, u1} J _inst_1] [_inst_3 : forall (j : J), Nonempty.{succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)] [_inst_4 : forall (j : J), Finite.{succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)], (forall {{i : J}} {{j : J}} (f : Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) i j), Function.Surjective.{succ u2, succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i j f)) -> (forall (i : J), Function.Surjective.{succ (max u1 u2), succ u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) (CategoryTheory.Functor.sections.{u3, u2, u1} J _inst_1 F)) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i) (fun (s : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) (CategoryTheory.Functor.sections.{u3, u2, u1} J _inst_1 F)) => Subtype.val.{succ (max u1 u2)} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (fun (x : forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) => Membership.Mem.{max u1 u2, max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) (Set.hasMem.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) x (CategoryTheory.Functor.sections.{u3, u2, u1} J _inst_1 F)) s i))
+but is expected to have type
+  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u1, u2} J _inst_1] [_inst_3 : forall (j : J), Nonempty.{succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j)] [_inst_4 : forall (j : J), Finite.{succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j)], (forall {{i : J}} {{j : J}} (f : Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) i j), Function.Surjective.{succ u3, succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i j f)) -> (forall (i : J), Function.Surjective.{max (succ u2) (succ u3), succ u3} (Set.Elem.{max u2 u3} (forall (j : J), Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (CategoryTheory.Functor.sections.{u1, u3, u2} J _inst_1 F)) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i) (fun (s : Set.Elem.{max u2 u3} (forall (j : J), Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (CategoryTheory.Functor.sections.{u1, u3, u2} J _inst_1 F)) => Subtype.val.{max (succ u2) (succ u3)} (forall (j : J), Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (fun (x : forall (j : J), Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) => Membership.mem.{max u2 u3, max u2 u3} (forall (j : J), Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Set.{max u2 u3} (forall (j : J), Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j)) (Set.instMembershipSet.{max u2 u3} (forall (j : J), Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j)) x (CategoryTheory.Functor.sections.{u1, u3, u2} J _inst_1 F)) s i))
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.eval_section_surjective_of_surjective CategoryTheory.Functor.eval_section_surjective_of_surjectiveₓ'. -/
 theorem eval_section_surjective_of_surjective (i : J) :
     (fun s : F.sections => s.val i).Surjective := fun x =>
   by
@@ -391,6 +545,12 @@ theorem eval_section_surjective_of_surjective (i : J) :
     rwa [map_id_apply] at this
 #align category_theory.functor.eval_section_surjective_of_surjective CategoryTheory.Functor.eval_section_surjective_of_surjective
 
+/- warning: category_theory.functor.eventually_injective -> CategoryTheory.Functor.eventually_injective is a dubious translation:
+lean 3 declaration is
+  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] (F : CategoryTheory.Functor.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u3, u1} J _inst_1] [_inst_3 : forall (j : J), Nonempty.{succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)] [_inst_4 : forall (j : J), Finite.{succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)], (forall {{i : J}} {{j : J}} (f : Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) i j), Function.Surjective.{succ u2, succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i j f)) -> (forall [_inst_5 : Nonempty.{succ u1} J] [_inst_6 : Finite.{succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)) (CategoryTheory.Functor.sections.{u3, u2, u1} J _inst_1 F))], Exists.{succ u1} J (fun (j : J) => forall (i : J) (f : Quiver.Hom.{succ u3, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} J (CategoryTheory.Category.toCategoryStruct.{u3, u1} J _inst_1)) i j), Function.Injective.{succ u2, succ u2} (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i) (CategoryTheory.Functor.obj.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j) (CategoryTheory.Functor.map.{u3, u2, u1, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F i j f)))
+but is expected to have type
+  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u1, u2} J _inst_1] [_inst_3 : forall (j : J), Nonempty.{succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j)] [_inst_4 : forall (j : J), Finite.{succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j)], (forall {{i : J}} {{j : J}} (f : Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) i j), Function.Surjective.{succ u3, succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i j f)) -> (forall [_inst_5 : Nonempty.{succ u2} J] [_inst_6 : Finite.{max (succ u2) (succ u3)} (Set.Elem.{max u2 u3} (forall (j : J), Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (CategoryTheory.Functor.sections.{u1, u3, u2} J _inst_1 F))], Exists.{succ u2} J (fun (j : J) => forall (i : J) (f : Quiver.Hom.{succ u1, u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) i j), Function.Injective.{succ u3, succ u3} (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i) (Prefunctor.obj.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) j) (Prefunctor.map.{succ u1, succ u3, u2, succ u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_1)) Type.{u3} (CategoryTheory.CategoryStruct.toQuiver.{u3, succ u3} Type.{u3} (CategoryTheory.Category.toCategoryStruct.{u3, succ u3} Type.{u3} CategoryTheory.types.{u3})) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, succ u3} J _inst_1 Type.{u3} CategoryTheory.types.{u3} F) i j f)))
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.eventually_injective CategoryTheory.Functor.eventually_injectiveₓ'. -/
 theorem eventually_injective [Nonempty J] [Finite F.sections] :
     ∃ j, ∀ (i) (f : i ⟶ j), (F.map f).Injective :=
   by
Diff
@@ -142,7 +142,7 @@ def eventualRange (j : J) :=
 
 theorem mem_eventualRange_iff {x : F.obj j} :
     x ∈ F.eventualRange j ↔ ∀ ⦃i⦄ (f : i ⟶ j), x ∈ range (F.map f) :=
-  mem_interᵢ₂
+  mem_iInter₂
 #align category_theory.functor.mem_eventual_range_iff CategoryTheory.Functor.mem_eventualRange_iff
 
 /-- The functor `F : J ⥤ Type v` satisfies the Mittag-Leffler condition if for all `j : J`,
@@ -159,7 +159,7 @@ theorem isMittagLeffler_iff_eventualRange :
     F.IsMittagLeffler ↔ ∀ j : J, ∃ (i : _)(f : i ⟶ j), F.eventualRange j = range (F.map f) :=
   forall_congr' fun j =>
     exists₂_congr fun i f =>
-      ⟨fun h => (interᵢ₂_subset _ _).antisymm <| subset_interᵢ₂ h, fun h => h ▸ interᵢ₂_subset⟩
+      ⟨fun h => (iInter₂_subset _ _).antisymm <| subset_iInter₂ h, fun h => h ▸ iInter₂_subset⟩
 #align category_theory.functor.is_mittag_leffler_iff_eventual_range CategoryTheory.Functor.isMittagLeffler_iff_eventualRange
 
 theorem IsMittagLeffler.subset_image_eventualRange (h : F.IsMittagLeffler) (f : j ⟶ i) :
@@ -311,7 +311,7 @@ def toEventualRangesSectionsEquiv : F.toEventualRanges.sections ≃ F.sections
     where
   toFun s := ⟨_, fun i j f => Subtype.coe_inj.2 <| s.Prop f⟩
   invFun s :=
-    ⟨fun j => ⟨_, mem_interᵢ₂.2 fun i f => ⟨_, s.Prop f⟩⟩, fun i j f => Subtype.ext <| s.Prop f⟩
+    ⟨fun j => ⟨_, mem_iInter₂.2 fun i f => ⟨_, s.Prop f⟩⟩, fun i j f => Subtype.ext <| s.Prop f⟩
   left_inv _ := by
     ext
     rfl
Diff
@@ -4,13 +4,13 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kyle Miller, Adam Topaz, Rémi Bottinelli, Junyan Xu
 
 ! This file was ported from Lean 3 source module category_theory.cofiltered_system
-! leanprover-community/mathlib commit 8195826f5c428fc283510bc67303dd4472d78498
+! leanprover-community/mathlib commit 178a32653e369dce2da68dc6b2694e385d484ef1
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
 import Mathbin.CategoryTheory.Filtered
 import Mathbin.Data.Set.Finite
-import Mathbin.Topology.Category.Top.Limits
+import Mathbin.Topology.Category.Top.Limits.Konig
 
 /-!
 # Cofiltered systems
Diff
@@ -1,21 +1,21 @@
 /-
-Copyright (c) 2022 Rémi Bottinelli, Junyan Xu. All rights reserved.
+Copyright (c) 2022 Kyle Miller, Adam Topaz, Rémi Bottinelli, Junyan Xu. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
-Authors: Rémi Bottinelli, Junyan Xu
+Authors: Kyle Miller, Adam Topaz, Rémi Bottinelli, Junyan Xu
 
-! This file was ported from Lean 3 source module category_theory.mittag_leffler
-! leanprover-community/mathlib commit 6cb77a8eaff0ddd100e87b1591c6d3ad319514ff
+! This file was ported from Lean 3 source module category_theory.cofiltered_system
+! leanprover-community/mathlib commit 8195826f5c428fc283510bc67303dd4472d78498
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
 import Mathbin.CategoryTheory.Filtered
 import Mathbin.Data.Set.Finite
+import Mathbin.Topology.Category.Top.Limits
 
 /-!
-# The Mittag-Leffler condition
+# Cofiltered systems
 
-This files defines the Mittag-Leffler condition for cofiltered systems and (TODO) other properties
-of such systems and their sections.
+This file deals with properties of cofiltered (and inverse) systems.
 
 ## Main definitions
 
@@ -32,6 +32,10 @@ Given a functor `F : J ⥤ Type v`:
 
 ## Main statements
 
+* `nonempty_sections_of_finite_cofiltered_system` shows that if `J` is cofiltered and each
+  `F.obj j` is nonempty and finite, `F.sections` is nonempty.
+* `nonempty_sections_of_finite_inverse_system` is a specialization of the above to `J` being a
+   directed set (and `F : Jᵒᵖ ⥤ Type v`).
 * `is_mittag_leffler_of_exists_finite_range` shows that if `J` is cofiltered and for all `j`,
   there exists some `i` and `f : i ⟶ j` such that the range of `F.map f` is finite, then
   `F` is Mittag-Leffler.
@@ -40,7 +44,6 @@ Given a functor `F : J ⥤ Type v`:
 
 ## Todo
 
-* Specialize to inverse systems and fintype systems.
 * Prove [Stacks: Lemma 0597](https://stacks.math.columbia.edu/tag/0597)
 
 ## References
@@ -54,14 +57,80 @@ Mittag-Leffler, surjective, eventual range, inverse system,
 -/
 
 
-universe u v
+universe u v w
+
+open CategoryTheory CategoryTheory.IsCofiltered Set CategoryTheory.FunctorToTypes
+
+section FiniteKonig
+
+/-- This bootstraps `nonempty_sections_of_finite_inverse_system`. In this version,
+the `F` functor is between categories of the same universe, and it is an easy
+corollary to `Top.nonempty_limit_cone_of_compact_t2_inverse_system`. -/
+theorem NonemptySectionsOfFiniteCofilteredSystem.init {J : Type u} [SmallCategory J]
+    [IsCofilteredOrEmpty J] (F : J ⥤ Type u) [hf : ∀ j, Finite (F.obj j)]
+    [hne : ∀ j, Nonempty (F.obj j)] : F.sections.Nonempty :=
+  by
+  let F' : J ⥤ TopCat := F ⋙ TopCat.discrete
+  haveI : ∀ j, DiscreteTopology (F'.obj j) := fun _ => ⟨rfl⟩
+  haveI : ∀ j, Finite (F'.obj j) := hf
+  haveI : ∀ j, Nonempty (F'.obj j) := hne
+  obtain ⟨⟨u, hu⟩⟩ := TopCat.nonempty_limitCone_of_compact_t2_cofiltered_system F'
+  exact ⟨u, fun _ _ => hu⟩
+#align nonempty_sections_of_finite_cofiltered_system.init NonemptySectionsOfFiniteCofilteredSystem.init
+
+/-- The cofiltered limit of nonempty finite types is nonempty.
+
+See `nonempty_sections_of_finite_inverse_system` for a specialization to inverse limits. -/
+theorem nonempty_sections_of_finite_cofiltered_system {J : Type u} [Category.{w} J]
+    [IsCofilteredOrEmpty J] (F : J ⥤ Type v) [∀ j : J, Finite (F.obj j)]
+    [∀ j : J, Nonempty (F.obj j)] : F.sections.Nonempty :=
+  by
+  -- Step 1: lift everything to the `max u v w` universe.
+  let J' : Type max w v u := AsSmall.{max w v} J
+  let down : J' ⥤ J := as_small.down
+  let F' : J' ⥤ Type max u v w := down ⋙ F ⋙ uliftFunctor.{max u w, v}
+  haveI : ∀ i, Nonempty (F'.obj i) := fun i => ⟨⟨Classical.arbitrary (F.obj (down.obj i))⟩⟩
+  haveI : ∀ i, Finite (F'.obj i) := fun i => Finite.of_equiv (F.obj (down.obj i)) equiv.ulift.symm
+  -- Step 2: apply the bootstrap theorem
+  cases isEmpty_or_nonempty J
+  · fconstructor <;> exact isEmptyElim
+  haveI : is_cofiltered J := ⟨⟩
+  obtain ⟨u, hu⟩ := NonemptySectionsOfFiniteCofilteredSystem.init F'
+  -- Step 3: interpret the results
+  use fun j => (u ⟨j⟩).down
+  intro j j' f
+  have h := @hu (⟨j⟩ : J') (⟨j'⟩ : J') (ULift.up f)
+  simp only [as_small.down, functor.comp_map, ulift_functor_map, functor.op_map] at h
+  simp_rw [← h]
+  rfl
+#align nonempty_sections_of_finite_cofiltered_system nonempty_sections_of_finite_cofiltered_system
+
+/-- The inverse limit of nonempty finite types is nonempty.
+
+See `nonempty_sections_of_finite_cofiltered_system` for a generalization to cofiltered limits.
+That version applies in almost all cases, and the only difference is that this version
+allows `J` to be empty.
+
+This may be regarded as a generalization of Kőnig's lemma.
+To specialize: given a locally finite connected graph, take `Jᵒᵖ` to be `ℕ` and
+`F j` to be length-`j` paths that start from an arbitrary fixed vertex.
+Elements of `F.sections` can be read off as infinite rays in the graph. -/
+theorem nonempty_sections_of_finite_inverse_system {J : Type u} [Preorder J] [IsDirected J (· ≤ ·)]
+    (F : Jᵒᵖ ⥤ Type v) [∀ j : Jᵒᵖ, Finite (F.obj j)] [∀ j : Jᵒᵖ, Nonempty (F.obj j)] :
+    F.sections.Nonempty := by
+  cases isEmpty_or_nonempty J
+  · haveI : IsEmpty Jᵒᵖ := ⟨fun j => isEmptyElim j.unop⟩
+    -- TODO: this should be a global instance
+    exact ⟨isEmptyElim, isEmptyElim⟩
+  · exact nonempty_sections_of_finite_cofiltered_system _
+#align nonempty_sections_of_finite_inverse_system nonempty_sections_of_finite_inverse_system
+
+end FiniteKonig
 
 namespace CategoryTheory
 
 namespace Functor
 
-open IsCofiltered Set FunctorToTypes
-
 variable {J : Type u} [Category J] (F : J ⥤ Type v) {i j k : J} (s : Set (F.obj i))
 
 /-- The eventual range of the functor `F : J ⥤ Type v` at index `j : J` is the intersection
@@ -111,9 +180,9 @@ theorem eventualRange_eq_range_precomp (f : i ⟶ j) (g : j ⟶ k)
     apply range_comp_subset_range
 #align category_theory.functor.eventual_range_eq_range_precomp CategoryTheory.Functor.eventualRange_eq_range_precomp
 
-theorem isMittagLeffler_of_surjective (h : ∀ (i j : J) (f : i ⟶ j), (F.map f).Surjective) :
+theorem isMittagLeffler_of_surjective (h : ∀ ⦃i j : J⦄ (f : i ⟶ j), (F.map f).Surjective) :
     F.IsMittagLeffler := fun j =>
-  ⟨j, 𝟙 j, fun k g => by rw [map_id, types_id, range_id, (h k j g).range_eq]⟩
+  ⟨j, 𝟙 j, fun k g => by rw [map_id, types_id, range_id, (h g).range_eq]⟩
 #align category_theory.functor.is_mittag_leffler_of_surjective CategoryTheory.Functor.isMittagLeffler_of_surjective
 
 /-- The subfunctor of `F` obtained by restricting to the preimages of a set `s ∈ F.obj i`. -/
@@ -135,6 +204,10 @@ def toPreimages : J ⥤ Type v where
     rfl
 #align category_theory.functor.to_preimages CategoryTheory.Functor.toPreimages
 
+instance toPreimages_finite [∀ j, Finite (F.obj j)] : ∀ j, Finite ((F.toPreimages s).obj j) :=
+  fun j => Subtype.finite
+#align category_theory.functor.to_preimages_finite CategoryTheory.Functor.toPreimages_finite
+
 variable [IsCofilteredOrEmpty J]
 
 theorem eventualRange_mapsTo (f : j ⟶ i) :
@@ -227,6 +300,10 @@ def toEventualRanges : J ⥤ Type v
     rfl
 #align category_theory.functor.to_eventual_ranges CategoryTheory.Functor.toEventualRanges
 
+instance toEventualRanges_finite [∀ j, Finite (F.obj j)] : ∀ j, Finite (F.toEventualRanges.obj j) :=
+  fun j => Subtype.finite
+#align category_theory.functor.to_eventual_ranges_finite CategoryTheory.Functor.toEventualRanges_finite
+
 /-- The sections of the functor `F : J ⥤ Type v` are in bijection with the sections of
 `F.eventual_ranges`.
 -/
@@ -247,7 +324,7 @@ def toEventualRangesSectionsEquiv : F.toEventualRanges.sections ≃ F.sections
 If `F` satisfies the Mittag-Leffler condition, its restriction to eventual ranges is a surjective
 functor.
 -/
-theorem surjective_toEventualRanges (h : F.IsMittagLeffler) (f : i ⟶ j) :
+theorem surjective_toEventualRanges (h : F.IsMittagLeffler) ⦃i j⦄ (f : i ⟶ j) :
     (F.toEventualRanges.map f).Surjective := fun ⟨x, hx⟩ =>
   by
   obtain ⟨y, hy, rfl⟩ := h.subset_image_eventual_range F f hx
@@ -264,12 +341,74 @@ theorem toEventualRanges_nonempty (h : F.IsMittagLeffler) [∀ j : J, Nonempty (
 #align category_theory.functor.to_eventual_ranges_nonempty CategoryTheory.Functor.toEventualRanges_nonempty
 
 /-- If `F` has all arrows surjective, then it "factors through a poset". -/
-theorem thin_diagram_of_surjective (Fsur : ∀ (i j : J) (f : i ⟶ j), (F.map f).Surjective) (i j)
+theorem thin_diagram_of_surjective (Fsur : ∀ ⦃i j : J⦄ (f : i ⟶ j), (F.map f).Surjective) {i j}
     (f g : i ⟶ j) : F.map f = F.map g :=
   let ⟨k, φ, hφ⟩ := cone_maps f g
-  (Fsur k i φ).injective_comp_right <| by simp_rw [← types_comp, ← F.map_comp, hφ]
+  (Fsur φ).injective_comp_right <| by simp_rw [← types_comp, ← F.map_comp, hφ]
 #align category_theory.functor.thin_diagram_of_surjective CategoryTheory.Functor.thin_diagram_of_surjective
 
+theorem toPreimages_nonempty_of_surjective [hFn : ∀ j : J, Nonempty (F.obj j)]
+    (Fsur : ∀ ⦃i j : J⦄ (f : i ⟶ j), (F.map f).Surjective) (hs : s.Nonempty) (j) :
+    Nonempty ((F.toPreimages s).obj j) :=
+  by
+  simp only [to_preimages_obj, nonempty_coe_sort, nonempty_Inter, mem_preimage]
+  obtain h | ⟨⟨ji⟩⟩ := isEmpty_or_nonempty (j ⟶ i)
+  · exact ⟨(hFn j).some, fun ji => h.elim ji⟩
+  · obtain ⟨y, ys⟩ := hs
+    obtain ⟨x, rfl⟩ := Fsur ji y
+    exact ⟨x, fun ji' => (F.thin_diagram_of_surjective Fsur ji' ji).symm ▸ ys⟩
+#align category_theory.functor.to_preimages_nonempty_of_surjective CategoryTheory.Functor.toPreimages_nonempty_of_surjective
+
+theorem eval_section_injective_of_eventually_injective {j}
+    (Finj : ∀ (i) (f : i ⟶ j), (F.map f).Injective) (i) (f : i ⟶ j) :
+    (fun s : F.sections => s.val j).Injective :=
+  by
+  refine' fun s₀ s₁ h => Subtype.ext <| funext fun k => _
+  obtain ⟨m, mi, mk, _⟩ := cone_objs i k
+  dsimp at h
+  rw [← s₀.prop (mi ≫ f), ← s₁.prop (mi ≫ f)] at h
+  rw [← s₀.prop mk, ← s₁.prop mk]
+  refine' congr_arg _ (Finj m (mi ≫ f) h)
+#align category_theory.functor.eval_section_injective_of_eventually_injective CategoryTheory.Functor.eval_section_injective_of_eventually_injective
+
+section FiniteCofilteredSystem
+
+variable [∀ j : J, Nonempty (F.obj j)] [∀ j : J, Finite (F.obj j)]
+  (Fsur : ∀ ⦃i j : J⦄ (f : i ⟶ j), (F.map f).Surjective)
+
+include Fsur
+
+theorem eval_section_surjective_of_surjective (i : J) :
+    (fun s : F.sections => s.val i).Surjective := fun x =>
+  by
+  let s : Set (F.obj i) := {x}
+  haveI := F.to_preimages_nonempty_of_surjective s Fsur (singleton_nonempty x)
+  obtain ⟨sec, h⟩ := nonempty_sections_of_finite_cofiltered_system (F.to_preimages s)
+  refine' ⟨⟨fun j => (sec j).val, fun j k jk => by simpa [Subtype.ext_iff] using h jk⟩, _⟩
+  · have := (sec i).Prop
+    simp only [mem_Inter, mem_preimage, mem_singleton_iff] at this
+    replace this := this (𝟙 i)
+    rwa [map_id_apply] at this
+#align category_theory.functor.eval_section_surjective_of_surjective CategoryTheory.Functor.eval_section_surjective_of_surjective
+
+theorem eventually_injective [Nonempty J] [Finite F.sections] :
+    ∃ j, ∀ (i) (f : i ⟶ j), (F.map f).Injective :=
+  by
+  haveI : ∀ j, Fintype (F.obj j) := fun j => Fintype.ofFinite (F.obj j)
+  haveI : Fintype F.sections := Fintype.ofFinite F.sections
+  have card_le : ∀ j, Fintype.card (F.obj j) ≤ Fintype.card F.sections := fun j =>
+    Fintype.card_le_of_surjective _ (F.eval_section_surjective_of_surjective Fsur j)
+  let fn j := Fintype.card F.sections - Fintype.card (F.obj j)
+  refine'
+    ⟨fn.argmin nat.well_founded_lt.wf, fun i f =>
+      ((Fintype.bijective_iff_surjective_and_card _).2
+          ⟨Fsur f, le_antisymm _ (Fintype.card_le_of_surjective _ <| Fsur f)⟩).1⟩
+  rw [← Nat.sub_sub_self (card_le i), tsub_le_iff_tsub_le]
+  apply fn.argmin_le
+#align category_theory.functor.eventually_injective CategoryTheory.Functor.eventually_injective
+
+end FiniteCofilteredSystem
+
 end Functor
 
 end CategoryTheory

Changes in mathlib4

mathlib3
mathlib4
chore: split Subsingleton,Nontrivial off of Data.Set.Basic (#11832)

Moves definition of and lemmas related to Set.Subsingleton and Set.Nontrivial to a new file, so that Basic can be shorter.

Diff
@@ -6,7 +6,7 @@ Authors: Kyle Miller, Adam Topaz, Rémi Bottinelli, Junyan Xu
 import Mathlib.CategoryTheory.Filtered.Basic
 import Mathlib.Data.Set.Finite
 import Mathlib.Topology.Category.TopCat.Limits.Konig
-import Mathlib.Data.Set.Basic
+import Mathlib.Data.Set.Subsingleton
 
 #align_import category_theory.cofiltered_system from "leanprover-community/mathlib"@"178a32653e369dce2da68dc6b2694e385d484ef1"
 
chore: work around simp issues in future nightlies (#11546)
Diff
@@ -185,11 +185,15 @@ def toPreimages : J ⥤ Type v where
     rw [← mem_preimage, preimage_preimage, mem_preimage]
     convert h (g ≫ f); rw [F.map_comp]; rfl
   map_id j := by
-    simp (config := { unfoldPartialApp := true }) only [MapsTo.restrict, Subtype.map, F.map_id]
+    -- Adaptation note: nightly-2024-03-16: simp was
+    -- simp (config := { unfoldPartialApp := true }) only [MapsTo.restrict, Subtype.map, F.map_id]
+    simp only [MapsTo.restrict, Subtype.map_def, F.map_id]
     ext
     rfl
   map_comp f g := by
-    simp (config := { unfoldPartialApp := true }) only [MapsTo.restrict, Subtype.map, F.map_comp]
+    -- Adaptation note: nightly-2024-03-16: simp was
+    -- simp (config := { unfoldPartialApp := true }) only [MapsTo.restrict, Subtype.map, F.map_comp]
+    simp only [MapsTo.restrict, Subtype.map_def, F.map_comp]
     rfl
 #align category_theory.functor.to_preimages CategoryTheory.Functor.toPreimages
 
@@ -272,11 +276,15 @@ def toEventualRanges : J ⥤ Type v where
   obj j := F.eventualRange j
   map f := (F.eventualRange_mapsTo f).restrict _ _ _
   map_id i := by
-    simp (config := { unfoldPartialApp := true }) only [MapsTo.restrict, Subtype.map, F.map_id]
+    -- Adaptation note: nightly-2024-03-16: simp was
+    -- simp (config := { unfoldPartialApp := true }) only [MapsTo.restrict, Subtype.map, F.map_id]
+    simp only [MapsTo.restrict, Subtype.map_def, F.map_id]
     ext
     rfl
   map_comp _ _ := by
-    simp (config := { unfoldPartialApp := true }) only [MapsTo.restrict, Subtype.map, F.map_comp]
+    -- Adaptation note: nightly-2024-03-16: simp was
+    -- simp (config := { unfoldPartialApp := true }) only [MapsTo.restrict, Subtype.map, F.map_comp]
+    simp only [MapsTo.restrict, Subtype.map_def, F.map_comp]
     rfl
 #align category_theory.functor.to_eventual_ranges CategoryTheory.Functor.toEventualRanges
 
chore: prepare Lean version bump with explicit simp (#10999)

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

Diff
@@ -96,7 +96,7 @@ theorem nonempty_sections_of_finite_cofiltered_system {J : Type u} [Category.{w}
   use fun j => (u ⟨j⟩).down
   intro j j' f
   have h := @hu (⟨j⟩ : J') (⟨j'⟩ : J') (ULift.up f)
-  simp only [AsSmall.down, Functor.comp_map, uliftFunctor_map, Functor.op_map] at h
+  simp only [F', down, AsSmall.down, Functor.comp_map, uliftFunctor_map, Functor.op_map] at h
   simp_rw [← h]
 #align nonempty_sections_of_finite_cofiltered_system nonempty_sections_of_finite_cofiltered_system
 
chore: remove terminal, terminal refines (#10762)

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

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

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

Diff
@@ -159,7 +159,7 @@ theorem IsMittagLeffler.subset_image_eventualRange (h : F.IsMittagLeffler) (f :
   obtain ⟨k, g, hg⟩ := F.isMittagLeffler_iff_eventualRange.1 h j
   rw [hg]; intro x hx
   obtain ⟨x, rfl⟩ := F.mem_eventualRange_iff.1 hx (g ≫ f)
-  refine' ⟨_, ⟨x, rfl⟩, by rw [map_comp_apply]⟩
+  exact ⟨_, ⟨x, rfl⟩, by rw [map_comp_apply]⟩
 #align category_theory.functor.is_mittag_leffler.subset_image_eventual_range CategoryTheory.Functor.IsMittagLeffler.subset_image_eventualRange
 
 theorem eventualRange_eq_range_precomp (f : i ⟶ j) (g : j ⟶ k)
@@ -340,7 +340,7 @@ theorem eval_section_injective_of_eventually_injective {j}
   dsimp at h
   rw [← s₀.prop (mi ≫ f), ← s₁.prop (mi ≫ f)] at h
   rw [← s₀.prop mk, ← s₁.prop mk]
-  refine' congr_arg _ (Finj m (mi ≫ f) h)
+  exact congr_arg _ (Finj m (mi ≫ f) h)
 #align category_theory.functor.eval_section_injective_of_eventually_injective CategoryTheory.Functor.eval_section_injective_of_eventually_injective
 
 section FiniteCofilteredSystem
chore: uneven spacing for ⟨ ⟩ (#10014)

This cleans up instances of

⟨ foo, bar⟩

and

⟨foo, bar ⟩

where spaces a on the inside one side, but not on the other side. Fixing this by removing the extra space.

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

Diff
@@ -159,7 +159,7 @@ theorem IsMittagLeffler.subset_image_eventualRange (h : F.IsMittagLeffler) (f :
   obtain ⟨k, g, hg⟩ := F.isMittagLeffler_iff_eventualRange.1 h j
   rw [hg]; intro x hx
   obtain ⟨x, rfl⟩ := F.mem_eventualRange_iff.1 hx (g ≫ f)
-  refine' ⟨_, ⟨x, rfl⟩, by rw [map_comp_apply] ⟩
+  refine' ⟨_, ⟨x, rfl⟩, by rw [map_comp_apply]⟩
 #align category_theory.functor.is_mittag_leffler.subset_image_eventual_range CategoryTheory.Functor.IsMittagLeffler.subset_image_eventualRange
 
 theorem eventualRange_eq_range_precomp (f : i ⟶ j) (g : j ⟶ k)
chore(*): shake imports (#10199)
  • Remove Data.Set.Basic from scripts/noshake.json.
  • Remove an exception that was used by examples only, move these examples to a new test file.
  • Drop an exception for Order.Filter.Basic dependency on Control.Traversable.Instances, as the relevant parts were moved to Order.Filter.ListTraverse.
  • Run lake exe shake --fix.
Diff
@@ -6,6 +6,7 @@ Authors: Kyle Miller, Adam Topaz, Rémi Bottinelli, Junyan Xu
 import Mathlib.CategoryTheory.Filtered.Basic
 import Mathlib.Data.Set.Finite
 import Mathlib.Topology.Category.TopCat.Limits.Konig
+import Mathlib.Data.Set.Basic
 
 #align_import category_theory.cofiltered_system from "leanprover-community/mathlib"@"178a32653e369dce2da68dc6b2694e385d484ef1"
 
chore: bump to v4.3.0-rc2 (#8366)

PR contents

This is the supremum of

along with some minor fixes from failures on nightly-testing as Mathlib master is merged into it.

Note that some PRs for changes that are already compatible with the current toolchain and will be necessary have already been split out: #8380.

I am hopeful that in future we will be able to progressively merge adaptation PRs into a bump/v4.X.0 branch, so we never end up with a "big merge" like this. However one of these adaptation PRs (#8056) predates my new scheme for combined CI, and it wasn't possible to keep that PR viable in the meantime.

Lean PRs involved in this bump

In particular this includes adjustments for the Lean PRs

leanprover/lean4#2778

We can get rid of all the

local macro_rules | `($x ^ $y) => `(HPow.hPow $x $y) -- Porting note: See issue [lean4#2220](https://github.com/leanprover/lean4/pull/2220)

macros across Mathlib (and in any projects that want to write natural number powers of reals).

leanprover/lean4#2722

Changes the default behaviour of simp to (config := {decide := false}). This makes simp (and consequentially norm_num) less powerful, but also more consistent, and less likely to blow up in long failures. This requires a variety of changes: changing some previously by simp or norm_num to decide or rfl, or adding (config := {decide := true}).

leanprover/lean4#2783

This changed the behaviour of simp so that simp [f] will only unfold "fully applied" occurrences of f. The old behaviour can be recovered with simp (config := { unfoldPartialApp := true }). We may in future add a syntax for this, e.g. simp [!f]; please provide feedback! In the meantime, we have made the following changes:

  • switching to using explicit lemmas that have the intended level of application
  • (config := { unfoldPartialApp := true }) in some places, to recover the old behaviour
  • Using @[eqns] to manually adjust the equation lemmas for a particular definition, recovering the old behaviour just for that definition. See #8371, where we do this for Function.comp and Function.flip.

This change in Lean may require further changes down the line (e.g. adding the !f syntax, and/or upstreaming the special treatment for Function.comp and Function.flip, and/or removing this special treatment). Please keep an open and skeptical mind about these changes!

Co-authored-by: leanprover-community-mathlib4-bot <leanprover-community-mathlib4-bot@users.noreply.github.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Mauricio Collares <mauricio@collares.org>

Diff
@@ -184,11 +184,11 @@ def toPreimages : J ⥤ Type v where
     rw [← mem_preimage, preimage_preimage, mem_preimage]
     convert h (g ≫ f); rw [F.map_comp]; rfl
   map_id j := by
-    simp_rw [MapsTo.restrict, Subtype.map, F.map_id]
+    simp (config := { unfoldPartialApp := true }) only [MapsTo.restrict, Subtype.map, F.map_id]
     ext
     rfl
   map_comp f g := by
-    simp_rw [MapsTo.restrict, Subtype.map, F.map_comp]
+    simp (config := { unfoldPartialApp := true }) only [MapsTo.restrict, Subtype.map, F.map_comp]
     rfl
 #align category_theory.functor.to_preimages CategoryTheory.Functor.toPreimages
 
@@ -271,11 +271,11 @@ def toEventualRanges : J ⥤ Type v where
   obj j := F.eventualRange j
   map f := (F.eventualRange_mapsTo f).restrict _ _ _
   map_id i := by
-    simp_rw [MapsTo.restrict, Subtype.map, F.map_id]
+    simp (config := { unfoldPartialApp := true }) only [MapsTo.restrict, Subtype.map, F.map_id]
     ext
     rfl
   map_comp _ _ := by
-    simp_rw [MapsTo.restrict, Subtype.map, F.map_comp]
+    simp (config := { unfoldPartialApp := true }) only [MapsTo.restrict, Subtype.map, F.map_comp]
     rfl
 #align category_theory.functor.to_eventual_ranges CategoryTheory.Functor.toEventualRanges
 
feat: a functor from a small category to a filtered category factors through a small filtered category (#6212)
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2022 Kyle Miller, Adam Topaz, Rémi Bottinelli, Junyan Xu. All rig
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kyle Miller, Adam Topaz, Rémi Bottinelli, Junyan Xu
 -/
-import Mathlib.CategoryTheory.Filtered
+import Mathlib.CategoryTheory.Filtered.Basic
 import Mathlib.Data.Set.Finite
 import Mathlib.Topology.Category.TopCat.Limits.Konig
 
chore: remove unused simps (#6632)

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

Diff
@@ -246,7 +246,7 @@ theorem IsMittagLeffler.toPreimages (h : F.IsMittagLeffler) : (F.toPreimages s).
       rw [mem_preimage, ← map_comp_apply, h₄, ← Category.assoc, map_comp_apply, h₃,
         ← map_comp_apply]
       apply mem_iInter.1 hx
-    · simp_rw [toPreimages_map, MapsTo.val_restrict_apply, Subtype.coe_mk]
+    · simp_rw [toPreimages_map, MapsTo.val_restrict_apply]
       rw [← Category.assoc, map_comp_apply, h₃, map_comp_apply]
 #align category_theory.functor.is_mittag_leffler.to_preimages CategoryTheory.Functor.IsMittagLeffler.toPreimages
 
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

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

Diff
@@ -2,16 +2,13 @@
 Copyright (c) 2022 Kyle Miller, Adam Topaz, Rémi Bottinelli, Junyan Xu. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kyle Miller, Adam Topaz, Rémi Bottinelli, Junyan Xu
-
-! This file was ported from Lean 3 source module category_theory.cofiltered_system
-! leanprover-community/mathlib commit 178a32653e369dce2da68dc6b2694e385d484ef1
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.CategoryTheory.Filtered
 import Mathlib.Data.Set.Finite
 import Mathlib.Topology.Category.TopCat.Limits.Konig
 
+#align_import category_theory.cofiltered_system from "leanprover-community/mathlib"@"178a32653e369dce2da68dc6b2694e385d484ef1"
+
 /-!
 # Cofiltered systems
 
chore: clean up spacing around at and goals (#5387)

Changes are of the form

  • some_tactic at h⊢ -> some_tactic at h ⊢
  • some_tactic at h -> some_tactic at h
Diff
@@ -182,7 +182,7 @@ theorem isMittagLeffler_of_surjective (h : ∀ ⦃i j : J⦄ (f : i ⟶ j), (F.m
 def toPreimages : J ⥤ Type v where
   obj j := ⋂ f : j ⟶ i, F.map f ⁻¹' s
   map g := MapsTo.restrict (F.map g) _ _ fun x h => by
-    rw [mem_iInter] at h⊢
+    rw [mem_iInter] at h ⊢
     intro f
     rw [← mem_preimage, preimage_preimage, mem_preimage]
     convert h (g ≫ f); rw [F.map_comp]; rfl
@@ -203,7 +203,7 @@ variable [IsCofilteredOrEmpty J]
 
 theorem eventualRange_mapsTo (f : j ⟶ i) :
     (F.eventualRange j).MapsTo (F.map f) (F.eventualRange i) := fun x hx => by
-  rw [mem_eventualRange_iff] at hx⊢
+  rw [mem_eventualRange_iff] at hx ⊢
   intro k f'
   obtain ⟨l, g, g', he⟩ := cospan f f'
   obtain ⟨x, rfl⟩ := hx g
chore: rename Top->TopCat (#4089)
Diff
@@ -10,7 +10,7 @@ Authors: Kyle Miller, Adam Topaz, Rémi Bottinelli, Junyan Xu
 -/
 import Mathlib.CategoryTheory.Filtered
 import Mathlib.Data.Set.Finite
-import Mathlib.Topology.Category.Top.Limits.Konig
+import Mathlib.Topology.Category.TopCat.Limits.Konig
 
 /-!
 # Cofiltered systems
feat: port CategoryTheory.CofilteredSystem (#3977)

Dependencies 8 + 398

399 files ported (98.0%)
163958 lines ported (97.0%)
Show graph

The unported dependencies are