scicraft/LeanCat huggingface dataset:
Domain: Category | Level: Medium | Tags: Adjunction

Theorem: Let $\mathcal{C}$ and $\mathcal{D}$ be locally small categories and let $F:\mathcal{C}\to \mathcal{D}$ be a functor.
    Then $F$ admits a right adjoint if and only if for each $d\in\mathcal{D}$, $\hom_{\mathcal{D}}(F(-),d):\mathcal{C}^{op}\to\mathcal{S}\mathrm{et}$ is representable.

Lean 4 formal statement:
import Mathlib

open CategoryTheory

variable {C : Type u₁} [Category.{v} C] {D : Type u₂} [Category.{v} D]

theorem isLeftAdjoint_iff_yoneda_comp_op_isRepresentable (F : C ⥤ D) :
    F.IsLeftAdjoint ↔ ∀ (d : D), (F.op ⋙ yoneda.obj d).IsRepresentable := by
  sorry
Domain: Category | Level: Medium | Tags: Adjunction

Theorem: Let $A,B$ be rings and $\phi : A \to B$ be a ring homomorphism. The functor $\phi_* : B-\mathcal{M}\mathrm{od} \to A-\mathcal{M}\mathrm{od}$ between their module categories is defined by $(N,l_N) \mapsto (N,l_N \circ (\phi \otimes \mathrm{id}))$. Then the functor $\phi_*$ admits a left adjoint $\phi^* := B \otimes_A -: A-\mathcal{M}\mathrm{od} \to B-\mathcal{M}\mathrm{od}$ and a right adjoint $\phi^! := \hom_A(B,-) : A-\mathcal{M}\mathrm{od} \to B-\mathcal{M}\mathrm{od}$.

Lean 4 formal statement:
import Mathlib

open CategoryTheory

theorem ring_hom_induced_functor_has_adjoints
    {A B : RingCat} (φ : A ⟶ B) :
    ∃ (φ_pull : ModuleCat B ⥤ ModuleCat A)
      (φ_push : ModuleCat A ⥤ ModuleCat B)
      (φ_coind : ModuleCat A ⥤ ModuleCat B),
      Nonempty (Adjunction φ_push φ_pull) ∧ Nonempty (Adjunction φ_pull φ_coind) := by
  sorry
Domain: Category | Level: Easy | Tags: Adjunction

Theorem: The forgetful functor $U : \mathcal{A}\mathrm{b} \to \mathcal{G}\mathrm{rp}$ admits a left adjoint.

Lean 4 formal statement:
import Mathlib
open CategoryTheory
universe u

theorem forget_CommGrp_to_Grp_admits_left_adjoint :
    (forget₂ CommGrp.{u} Grp.{u}).IsRightAdjoint := by
  sorry
Domain: Category | Level: Medium | Tags: Adjunction

Theorem: Let $\mathcal{C}$, $\mathcal{D}$, $\mathcal{E}$ be categories and $U : \mathcal{D}\to \mathcal{C}$, $V : \mathcal{E}\to \mathcal{C}$, $F : \mathcal{D} \to \mathcal{E}$ be functors such that $V \circ F = U$. Suppose $U, V$ have left adjoints and $\mathcal D$ admits coequalizers. If $V$ reflects split epimorphisms to regular epimorphisms, then $F$ has a left adjoint.

Lean 4 formal statement:
import Mathlib

open CategoryTheory

variable {C D E : Type*} [Category C] [Category D] [Category E]

namespace CategoryTheory


class Functor.ReflectsSplitEpimorphismsToRegularEpimorphisms (F : Functor C D) : Prop where
  reflects : ∀ {X Y} {f : X ⟶ Y} [IsSplitEpi (F.map f)], Nonempty (RegularEpi f)

end CategoryTheory

variable (U : D ⥤ C) (V : E ⥤ C) (F : D ⥤ E)


theorem exists_left_adjoint_of_comp_eq (h : F ⋙ V = U) (hU : U.IsRightAdjoint) (hV : V.IsRightAdjoint)
    (hV_refl : V.ReflectsSplitEpimorphismsToRegularEpimorphisms) : F.IsRightAdjoint := by
  sorry
Domain: Category | Level: Medium | Tags: Adjunction
Reference: Exercise 19I, Adámek, J., Herrlich, H. and Strecker, G., 1990. Abstract and concrete categories. Wiley-Interscience.

Theorem: Let $F,G,H$ be functors such that $F\dashv G\dashv H$.
    Then $F$ is fully faithful if and only if $H$ is fully faithful.

Lean 4 formal statement:
import Mathlib

open CategoryTheory Functor

variable {C : Type u₁} [Category.{v₁} C] {D : Type u₂} [Category.{v₂} D]
variable {F : C ⥤ D} {G : D ⥤ C} {H : C ⥤ D}

theorem fullyFaithful_iff_of_adjoints (hFG : F ⊣ G) (hGH : G ⊣ H) :
    (F.Full ∧ F.Faithful) ↔ (H.Full ∧ H.Faithful) := by
  sorry
Domain: Category | Level: Medium | Tags: Adjunction
Reference: Exercise 18H, Adámek, J., Herrlich, H. and Strecker, G., 1990. Abstract and concrete categories. Wiley-Interscience.

Theorem: Let $(\mathbb{Z},\leq)$ be a poset, regarded as a category, then $f\in \mathrm{End}(\mathbb{Z})$ has left adjoint if and only if it has a right adjoint.

Lean 4 formal statement:
import Mathlib

open CategoryTheory

theorem int_endofunctor_hasLeftAdjoint_iff_hasRightAdjoint (f : ℤ ⥤ ℤ) :
    f.IsRightAdjoint ↔ f.IsLeftAdjoint := by
  sorry
Domain: Category | Level: Medium | Tags: Adjunction
Reference: Exercise 19F (a), Adámek, J., Herrlich, H. and Strecker, G., 1990. Abstract and concrete categories. Wiley-Interscience.

Theorem: View the poset $\mathbb{N} = (\mathbb{N},\leq)$ of natural numbers as a category. There is a sequence of distinct functors $G_n:\mathbb{N}\to \mathbb{N}$ such that $G_0(x)=x+1$ and $G_{n+1}\dashv G_n$ for each $n\in \mathbb{N}$.

Lean 4 formal statement:
import Mathlib

open CategoryTheory

theorem exists_sequence_of_distinct_adjoints_nat :
    ∃ G : ℕ → (ℕ ⥤ ℕ),
      Function.Injective G ∧
      (∀ x, (G 0).obj x = x + 1) ∧
      (∀ n, Nonempty (G (n + 1) ⊣ G n)) := by
  sorry
Domain: Category | Level: Medium | Tags: Adjunction

Theorem: Let $(-)^{\times}: \mathcal{R}\mathrm{ing} \to \mathcal{G}\mathrm{rp}$ mapping a ring to its group of units. Then it admits a left adjoint.

Lean 4 formal statement:
import Mathlib

open CategoryTheory

def RingCat.units : RingCat.{u} ⥤ Grp.{u} where
  obj R := .of Rˣ
  map f := Grp.ofHom (Units.map f.hom)

theorem exists_leftAdjoint_unitFunctor :
    ∃ (left : Grp.{u} ⥤ RingCat.{u}), Nonempty (left ⊣ RingCat.units.{u}) := by
    sorry
Domain: Category | Level: High | Tags: Reflective
Reference: Exercise 4G(d), Adámek, J., Herrlich, H. and Strecker, G., 1990. Abstract and concrete categories. Wiley-Interscience.

Theorem: There are categories $\mathcal{C}$, $\mathcal{D}$ and $\mathcal{E}$ such that $\mathcal{C}$ is a subcategory of $\mathcal{D}$, $\mathcal{D}$ is a subcategory of $\mathcal{E}$ and $\mathcal{C}$ is reflective in $\mathcal{E}$, but $\mathcal{C}$ is not reflective in $\mathcal{D}$. Here we do not require a reflective subcategory to be full.

Lean 4 formal statement:
import Mathlib

open CategoryTheory Functor

universe u v

namespace CategoryTheory

open Category Adjunction

variable {C : Type u₁} {D : Type u₂} {E : Type u₃}
variable [Category.{v₁} C] [Category.{v₂} D] [Category.{v₃} E]

class Reflective2 (R : D ⥤ C) extends R.Faithful where
  L : C ⥤ D
  adj : L ⊣ R

end CategoryTheory

theorem exists_not_reflective :
    ∃ (E C D : Type u)
    (_ : Category.{v} E) (_ : Category.{v} C) (_ : Category.{v} D) (i : C ⥤ D)
    (_ : Faithful i) (j : D ⥤ E) (_ : Faithful j),
    IsEmpty (Reflective2 i) ∧ Nonempty (Reflective2 (i ⋙ j)) := by
  sorry
Domain: Category | Level: High | Tags: Reflective
Reference: Exercise 4E(d), Adámek, J., Herrlich, H. and Strecker, G., 1990. Abstract and concrete categories. Wiley-Interscience.

Theorem: Neither the category $\mathcal{S}\mathrm{et}$ of sets nor the category $\mathcal{T}\mathrm{op}$ of topological spaces has a proper isomorphism-closed full subcategory that is both reflective and coreflective.

Lean 4 formal statement:
import Mathlib

open CategoryTheory

theorem not_reflective_and_coreflective (P : ObjectProperty (Type u))
    (h : P.IsClosedUnderIsomorphisms) (hproper : ∃ X : Type u, ¬ P X) :
    IsEmpty (Reflective P.ι) ∨ IsEmpty (Coreflective P.ι) := by
  sorry
Domain: Category | Level: High | Tags: Reflective
Reference: Exercise 4D(a), Adámek, J., Herrlich, H. and Strecker, G., 1990. Abstract and concrete categories. Wiley-Interscience.

Theorem: $\mathcal{S}\mathrm{et}$ has precisely three full, isomorphism-closed, reflective subcategories.

Lean 4 formal statement:
import Mathlib

open CategoryTheory Functor Limits

namespace CAT_statement_S_0032

def IsIsoClosed (P : Type u → Prop) : Prop :=
  ∀ {X Y : Type u}, Nonempty (X ≅ Y) → P X → P Y

def SubcategoryEquiv (P Q : Type u → Prop) : Prop :=
  ∀ X, P X ↔ Q X

def IsReflectiveSubcategory (P : Type u → Prop) : Prop :=
  Nonempty (Reflective (ObjectProperty.ι P))

theorem Set_has_precisely_three_reflective_subcategories :
    ∃ (P₁ P₂ P₃ : Type u → Prop),
      IsIsoClosed P₁ ∧ IsReflectiveSubcategory P₁ ∧
      IsIsoClosed P₂ ∧ IsReflectiveSubcategory P₂ ∧
      IsIsoClosed P₃ ∧ IsReflectiveSubcategory P₃ ∧
      ¬ SubcategoryEquiv P₁ P₂ ∧ ¬ SubcategoryEquiv P₂ P₃ ∧ ¬ SubcategoryEquiv P₁ P₃ ∧
      ∀ (Q : Type u → Prop), IsIsoClosed Q → IsReflectiveSubcategory Q →
        (SubcategoryEquiv Q P₁ ∨ SubcategoryEquiv Q P₂ ∨ SubcategoryEquiv Q P₃) := by
  sorry

end CAT_statement_S_0032
Domain: Category | Level: High | Tags: Reflective
Reference: Exercise 4D(b), Adámek, J., Herrlich, H. and Strecker, G., 1990. Abstract and concrete categories. Wiley-Interscience.

Theorem: $\mathcal{T}\mathrm{op}^{CH}$ has precisely two full, isomorphism-closed, coreflective subcategories.

Lean 4 formal statement:
import Mathlib

open CategoryTheory Topology

namespace CAT_statement_S_0033

structure FullCoreflectiveSubcategory (C : Type u) [Category.{v} C] where
  obj : ObjectProperty C
  iso_closed : obj.IsClosedUnderIsomorphisms
  coreflective : Coreflective obj.ι

theorem CompHaus_has_precisely_two_coreflective_subcategories :
    Nat.card (FullCoreflectiveSubcategory CompHaus) = 2 := by
  sorry

end CAT_statement_S_0033
Domain: Category | Level: Medium | Tags: Concrete
Reference: Exercise 10R, Adámek, J., Herrlich, H. and Strecker, G., 1990. Abstract and concrete categories. Wiley-Interscience.

Definition: Let $(\mathcal C, U)$ be a concrete category over $\mathcal B$. 
A $\textbf{universal arrow}$ over $x\in \mathcal B$ is a structured arrow $u:x\to U(c)$ with domain $x$ that has the following universal property: for each structured arrow $f: x\to U(b)$ with domain $x$ there exists a unique morphism $\underline{f} : c\to b$ such that $\underline f\circ u=f$.

Definition: Let $(\mathcal C, U)$ be a concrete category over $\mathcal B$.
A $\textbf{free object}$ over $x\in \mathcal B$ is an object $c\in \mathcal C$ such that there exists a universal arrow $(u,c)$ over $x$.


Theorem: Let $(\mathcal{C},U)$ be a construct such that $U$ is representable by an object $x$. 
    Then for any set $I$ and any object $d\in \mathcal{C}$ the following conditions are equivalent:
    \begin{enumerate}
        \item $d$ is a free object over $I$.
        \item $d$ is an $I$-th copower of $x$.
    \end{enumerate}

Lean 4 formal statement:
import Mathlib

open CategoryTheory Limits Functor Opposite

namespace CAT_statement_S_0034

variable {C : Type u} [Category.{v} C]

def IsFreeObject (U : C ⥤ Type v) (d : C) (I : Type v) : Prop :=
  ∃ (η : I ⟶ U.obj d), ∀ {y : C} (f : I ⟶ U.obj y), ∃! (g : d ⟶ y), U.map g ∘ η = f

def IsCopower (x d : C) (I : Type v) : Prop :=
  ∃ (ι : I → (x ⟶ d)), Nonempty (IsColimit (Cofan.mk d ι))

theorem free_iff_copower_of_representable
    (U : C ⥤ Type v) [Faithful U]
    (x : C) (hU : U ≅ coyoneda.obj (op x))
    (I : Type v) (d : C) :
    IsFreeObject U d I ↔ IsCopower x d I := by
  sorry

end CAT_statement_S_0034
Domain: Category | Level: High | Tags: Concrete
Reference: Exercise 5O(k), Adámek, J., Herrlich, H. and Strecker, G., 1990. Abstract and concrete categories. Wiley-Interscience.

Definition: A full concrete embedding is called a realization.


Theorem: There is a construct $(\mathcal{C},U)$ such that every construct has a realization to $(\mathcal{C},U)$.

Lean 4 formal statement:
import Mathlib

open CategoryTheory

namespace CAT_statement_S_0035

structure Construct where
  C : Type u
  [str : Category.{v} C]
  U : C ⥤ Type u
  [faithful : Functor.Faithful U]

attribute [instance] Construct.str Construct.faithful

def IsRealization (S T : Construct.{u, v}) (F : S.C ⥤ T.C) : Prop :=
  F ⋙ T.U = S.U ∧ Functor.Full F ∧ Function.Injective F.obj

theorem exists_universal_construct :
    ∃ (T : Construct.{u, v}), ∀ (S : Construct.{u, v}), ∃ (F : S.C ⥤ T.C), IsRealization S T F := by
  sorry

end CAT_statement_S_0035
Domain: Category | Level: High | Tags: Concrete
Reference: Exercise 5J(d), Adámek, J., Herrlich, H. and Strecker, G., 1990. Abstract and concrete categories. Wiley-Interscience.

Definition: A category $\mathcal C$ is called $\textbf{concretizable}$ over a category $\mathcal B$ if there exists a faithful functor $U:\mathcal C\to \mathcal B$.


Theorem: There exist categories that are not concretizable over $\mathcal{S}\mathrm{et}$.

Lean 4 formal statement:
import Mathlib

open CategoryTheory

theorem exists_category_not_concretizable_over_Type :
    ∃ (C : Type u) (_ : Category.{v} C), ¬ ∃ (F : C ⥤ Type v), F.Faithful := by
  sorry
Domain: Category | Level: High | Tags: Concrete
Reference: Exercise 5D(d), Adámek, J., Herrlich, H. and Strecker, G., 1990. Abstract and concrete categories. Wiley-Interscience.

Theorem: There are precisely two concrete functors from the category $\mathcal{S}\mathrm{et}$ of sets to the category $\mathcal{T}\mathrm{op}$ of topological spaces, but a proper class of concrete functors from $\mathcal{T}\mathrm{op}$ into itself.

Lean 4 formal statement:
import Mathlib

open CategoryTheory

namespace CAT_statement_S_0037

universe u v w

variable {X : Type uX} [Category.{vX} X]

structure ConcreteCat (X : Type v) [Category X] where
  C : Type u
  [cat : Category C]
  U : C ⥤ X
  [U_Faithful : U.Faithful]

attribute [instance] ConcreteCat.cat ConcreteCat.U_Faithful


def IsConcreteFunc {A B : ConcreteCat (X := X)} (F : A.C ⥤ B.C) : Prop :=
  Nonempty ((F ⋙ B.U) ≅ A.U)


def SetConcrete : ConcreteCat (X := Type u) :=
{ C := Type u
  U := 𝟭 (Type u) }


def TopConcrete : ConcreteCat (X := Type u) :=
{ C := TopCat.{u}
  U := (forget TopCat) }

def ConcreteFuncs (A B : ConcreteCat (X := Type u)) : Type _ :=
  { F : A.C ⥤ B.C // IsConcreteFunc (A := A) (B := B) F }

def ConcreteFuncsSetoid (A B : ConcreteCat (X := Type u)) :
    Setoid (ConcreteFuncs A B) where
  r F G := Nonempty (F.1 ≅ G.1)
  iseqv := by
    refine ⟨?_, ?_, ?_⟩
    · intro F
      exact ⟨Iso.refl F.1⟩
    · intro F G h
      rcases h with ⟨e⟩
      exact ⟨e.symm⟩
    · intro F G H hFG hGH
      rcases hFG with ⟨eFG⟩
      rcases hGH with ⟨eGH⟩
      exact ⟨eFG.trans eGH⟩

def ConcreteFuncClasses (A B : ConcreteCat (X := Type u)) : Type _ :=
  Quotient (ConcreteFuncsSetoid A B)

theorem only_two_concrete_functors_from_Set_to_Top_iso :
    Nat.card (ConcreteFuncClasses SetConcrete TopConcrete) = 2 := by
  sorry

end CAT_statement_S_0037
Domain: Category | Level: High | Tags: Concrete
Reference: Exercise 10L, Adámek, J., Herrlich, H. and Strecker, G., 1990. Abstract and concrete categories. Wiley-Interscience.

Definition: Let $\mathcal C$ be a category and let $c\in \mathcal C$ be an object.
A $\textbf{regular subobject}$ of $c$ is a pair $(x,i)$ where $i$ is a regular monomorphism.

Definition: Let $\mathcal C$ be a category.
$\mathcal C$ is called $\textbf{regular wellpowered}$ if no object in $\mathcal C$ has a proper class of pairwise non-isomorphic regular subobjects.

Definition: A category $\mathcal C$ is called $\textbf{concretizable}$ over a category $\mathcal B$ if there exists a faithful functor $U:\mathcal C\to \mathcal B$.


Theorem: Let $\mathcal{C}$ be a category that admits finite limits.
    Then $\mathcal{C}$ is concretizable over $\mathcal{S}\mathrm{et}$ if and only if $\mathcal{C}$ is regular wellpowered.

Lean 4 formal statement:
import Mathlib

namespace CAT_statement_S_0038

open CategoryTheory Limits

universe u v w

variable {C : Type u} [Category C] [HasFiniteLimits C]

def IsConcretizable (X : Type v) [Category X] (D: Type u) [Category D] : Prop :=
  ∃ (U : D ⥤ X), U.Faithful

variable (C)

class RegularWellPowered : Prop where
  regularSubobject_small : ∀ (X : C), Small.{v} { P : Subobject X //  Nonempty (RegularMono P.arrow) }

theorem concretizable_iff_regular_wellpowered :
    IsConcretizable (Type u) C ↔ RegularWellPowered C := by
  sorry

end CAT_statement_S_0038
Domain: Category | Level: High | Tags: Concrete
Reference: Exercise 8G(b), Adámek, J., Herrlich, H. and Strecker, G., 1990. Abstract and concrete categories. Wiley-Interscience.

Definition: Let $(\mathcal C, U)$ be a concrete category over $\mathcal B$. A $\textbf{universal arrow}$ over $x \in \mathcal B$ is a morphism $u:x\to U(c)$ that has the following universal property: for each morphism $f: x\to U(b)$ there exists a unique morphism $f' : c\to b$ such that $U(f') \circ u = f$.

Definition: Let $(\mathcal C, U)$ be a concrete category over $\mathcal B$. A $\textbf{free object}$ over $x \in \mathcal B$ is an object $c\in \mathcal C$ such that there exists a universal arrow $(u,c)$ over $x$.

Theorem: Let $\mathcal{C}$ be the non-full subcategory of $\mathcal{L}\mathrm{at}_{\lor}^{\infty}$ whose objects are suplattice and morphisms are meet- and join-preserving maps. Then in the construct $\mathcal{C}$, there exists a free object over a set $X$ if and only if the cardinality of $X$ is not greater than 2, i.e., $\lvert X \rvert \leq 2$.

Lean 4 formal statement:
import Mathlib

open CategoryTheory

universe u v w

namespace CAT_statement_S_0041

structure FreeObject {C : Type u} [Category.{v} C] [HasForget.{w} C] (x : Type w) where
  (obj : C)
  (emb : x ⟶ (forget C).obj obj)
  (uniq : ∀ (Y : C) (f : x ⟶ (forget C).obj Y), ∃! (g : obj ⟶ Y), emb ≫ (forget C).map g = f)


theorem complete_lattice_category (X : Type u) :
    Nonempty (FreeObject (C := CompleteLat) X) ↔ Cardinal.mk X ≤ 2 := by
    sorry

end CAT_statement_S_0041
Domain: Category | Level: Easy | Tags: Limit

Theorem: Let $\mathcal{C}$ and $\mathcal{D}$ be categories and let $F:\mathcal{C}\to \mathcal{D}$ be a fully faithful functor.
    Then $F$ reflects any limits and colimits admitted in the codomain category.

Lean 4 formal statement:
import Mathlib

open CategoryTheory Limits Functor

variable {C : Type u₁} [Category.{v₁} C] {D : Type u₂} [Category.{v₂} D]

theorem fully_faithful_reflects_limits_and_colimits (F : C ⥤ D) [Full F] [Faithful F] :
    ReflectsLimits F ∧ ReflectsColimits F := by
  sorry
Domain: Category | Level: Easy | Tags: Limit

Theorem: The one point set $\{*\}$ form a separator in Set, and the two point set $\{a,b\}$ form a coseparating set in Set.

Lean 4 formal statement:
import Mathlib

open CategoryTheory Function Classical

theorem PUnit_isSeparator : IsSeparator (PUnit : Type u) := by
  sorry

theorem ULiftBool_isCoseparator :  IsCoseparator (ULift.{u} Bool) := by
  sorry
Domain: Category | Level: Easy | Tags: Limit

Theorem: Filtered colimits commute with finite limits in $\mathcal{S}\mathrm{et}$.

Lean 4 formal statement:
import Mathlib

open CategoryTheory Limits

variable {J : Type u} [SmallCategory J] [FinCategory J]
variable {K : Type u} [SmallCategory K] [IsFiltered K]
variable (F : J ⥤ K ⥤ Type u)


theorem filteredColimitsCommuteWithFiniteLimits :
  Nonempty (colimit (limit F) ≅ limit (colimit F.flip)) := by
  sorry
Domain: Category | Level: Easy | Tags: Limit

Theorem: Let $\omega$ be the ordinal of natural numbers.
    Consider $F:\omega^{op}\to \mathcal{R}\mathrm{ing}$ with $F_n:=\mathbb{Z}/p^n\mathbb{Z}$ and $f_n:F_{n+1}\to F_n$.
    Then the limit exists.

Lean 4 formal statement:
import Mathlib

open CategoryTheory Limits Opposite

variable (p : ℕ)

noncomputable def pAdicFunctor : ℕᵒᵖ ⥤ RingCat where
  obj n := RingCat.of (ZMod (p ^ (unop n)))
  map {m n} f := RingCat.ofHom <| 
    ZMod.castHom (pow_dvd_pow p (leOfHom f.unop)) (ZMod (p ^ (unop n)))
  map_id := by
    intro n
    ext x
    simp
  map_comp := by
    intro x y z f g
    ext x
    simp

theorem pAdic_limit_exists : HasLimit (pAdicFunctor p) := by
  sorry
Domain: Category | Level: Easy | Tags: Limit

Theorem: Let $\mathcal{C}$ and $\mathcal{D}$ be a small category and let $F,G:\mathcal{C}\to\mathcal{D}$ be two functors.
    Then we have $\mathrm{Nat}(F,G)\cong \int_{c\in\mathcal{C}}\hom_{\mathcal{D}}(F(c),G(c))$.

Lean 4 formal statement:
import Mathlib

open CategoryTheory Limits

variable {C : Type u} [SmallCategory C]
variable {D : Type u} [SmallCategory D]
variable (F G : C ⥤ D)

def homIntegrandBifunctor : Cᵒᵖ × C ⥤ Type u :=
  (Functor.prod F.op G) ⋙ (Functor.hom D)


theorem natTransIsoEnd :
    Nonempty (NatTrans F G ≅ end_ (curryObj (homIntegrandBifunctor F G))) := by
  sorry
Domain: Category | Level: Easy | Tags: Limit

Theorem: There is no equivalence of categories between $\mathcal{S}\mathrm{et}$ and $\mathcal{S}\mathrm{et}^{op}$.

Lean 4 formal statement:
import Mathlib

open CategoryTheory

theorem no_equiv_between_Set_and_op : ¬ Nonempty (Equivalence (Type u) (Type u)ᵒᵖ) := by
  sorry
Domain: Category | Level: Easy | Tags: Limit

Theorem: A reflective subcategory $\mathcal{C}$ of a cocomplete category $\mathcal{D}$ is also cocomplete.

Lean 4 formal statement:
import Mathlib

open CategoryTheory Limits

variable {C : Type u} [Category.{v} C] {D : Type u} [Category.{v} D]


theorem hasColimits_of_reflective (i : C ⥤ D) [Reflective i] [HasColimits D] :
    HasColimits C := by
  sorry
Domain: Category | Level: Easy | Tags: Limit

Theorem: Let $\mathcal{C}$ and $\mathcal{E}$ be two categories and let $F:\mathcal{C}\to \mathcal{E}$ be a functor.
    Let $\bullet $ be the terminal category consisting of a unique object $\bullet$ and a unique morphism.
    Then a colimit of $F$ is a left Kan extension of $F$ along $K:\mathcal{C}\to \bullet$, i.e. $\mathrm{Lan}_KF(\bullet)=\mathrm{colim} F$.

Lean 4 formal statement:
import Mathlib

open CategoryTheory Limits

universe u₁ v₁ u₂ v₂

variable {C : Type u₁} [Category.{v₁} C]
variable {E : Type u₂} [Category.{v₂} E]


theorem colimit_is_leftKanExtension_along_to_terminal
    (F : C ⥤ E) (K : C ⥤ PUnit) [HasColimit F] [K.HasLeftKanExtension F] :
    Nonempty ((K.leftKanExtension F).obj PUnit.unit ≅ colimit F) := by
  sorry
Domain: Category | Level: Medium | Tags: Limit

Definition: Let $\mathcal C$ be a locally small category. 
An object $c \in\mathcal C$ is called $\textbf{compact}$ if $\mathrm{hom}_{\mathcal C} (c,-)$ preserves filtered colimits.


Theorem: For $\mathcal{S}\mathrm{et}$, an object is compact if and only if it is a finite set.

Lean 4 formal statement:
import Mathlib

open CategoryTheory Limits

theorem isCompactObject_iff_finite_type (X : Type u) :
    PreservesFilteredColimits (coyoneda.obj (Opposite.op X)) ↔ Finite X := by
  sorry
Domain: Category | Level: Medium | Tags: Limit

Theorem: Let $\mathcal{C}$ be a category.
    Then $\mathcal{C}$ admits all small limits if and only if $\mathcal{C}$ admits all small products and pullbacks.

Lean 4 formal statement:
import Mathlib

open CategoryTheory Limits

variable {C : Type u} [Category.{v} C]

theorem has_limits_iff_has_products_and_pullbacks :
    HasLimitsOfSize.{v, v} C ↔ (∀ (J : Type v), HasLimitsOfShape (Discrete J) C) ∧ HasLimitsOfShape WalkingCospan C := by
  sorry
Domain: Category | Level: Medium | Tags: Limit

Theorem: Let $X,Y,Z$ be objects in $\mathcal{S}\mathrm{et}$ with morphisms $f:X\to Z$ and $g:Y\to Z$.
    Then $\{(x,y)\in X\times Y\mid f(x)=g(y)\}$ is the pullback $X\times_Z Y$ of $X$ and $Y$ over $Z$.

Lean 4 formal statement:
import Mathlib

open CategoryTheory Limits Functor Types Function Pullback

theorem Function.isPullback_pulllback {X Y Z : Type u} (f : X → Z) (g : Y → Z) :
    IsPullback (C := Type u) (fst (f := f) (g := g)) snd f g := by
  sorry
Domain: Category | Level: Medium | Tags: Limit

Theorem: Let $\mathcal{D}$ be a small-complete locally small category, a functor $ G : \mathcal{D}\to  \mathcal{C}$ has a left adjoint if and only if $G$ is continuous and for each $c\in \mathcal{C}$, the comma category $(c\downarrow G)$ admits an initial object.

Lean 4 formal statement:
import Mathlib

open CategoryTheory Limits

variable {D : Type u} [Category.{v} D] [HasLimits D] [LocallySmall.{v} D]
variable {C : Type u} [Category.{v} C]
variable (G : D ⥤ C)

theorem has_left_adjoint_iff_continuous_and_initials :
    G.IsRightAdjoint ↔ PreservesLimits G ∧ ∀ (c : C), HasInitial (StructuredArrow c G) := by
  sorry
Domain: Category | Level: Medium | Tags: Limit

Theorem: Let $\mathcal{B}$ be a complete category.
    Then $\mathcal{B}$ has an initial object if and only if there exists a small set $I$ and an $I$-indexed family of objects $x_i$ such that, for every $s\in \mathcal{B}$, there is an $i\in I$ and an arrow $x_i \to s$.

Lean 4 formal statement:
import Mathlib

open CategoryTheory Limits

variable {B : Type u} [Category.{v} B]

theorem hasInitial_iff_exists_weakly_initial [HasLimits B] :
    HasInitial B ↔ ∃ (I : Type v) (x : I → B), ∀ (s : B), ∃ (i : I), Nonempty (x i ⟶ s) := by
  sorry