scicraft/LeanCat huggingface dataset:
Domain: Category | Level: Easy | Tags: Basic

Theorem: Let $\mathcal{C}$ be a category and $\mathrm{Id}_{\mathcal{C}}$ the identity functor. Then monoid of natural transformations $\mathrm{End}(\mathrm{Id}_{\mathcal{C}})$ is commutative.

Lean 4 formal statement:
import Mathlib

open CategoryTheory

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

theorem id_comm (α β : (𝟭 C) ⟶ (𝟭 C)) : α ≫ β = β ≫ α := by
  sorry
Domain: Category | Level: Easy | Tags: Basic

Theorem: Let $\mathcal{C}$ be a category and let $f,g$ be morphisms in $\mathcal{C}$ such that $f\circ g$ is monic. Then $g$ is monic.

Lean 4 formal statement:
import Mathlib

open CategoryTheory

variable {C : Type*} [Category C]


theorem monic_of_comp_monic {X Y Z : C} (g : X ⟶ Y) (f : Y ⟶ Z)
    [Mono (g ≫ f)] : Mono g := by
  sorry
Domain: Category | Level: Medium | Tags: Basic

Theorem: The forgetful functor $\mathcal{T}\mathrm{op}\to\mathcal{S}\mathrm{et}$, $\mathcal{G}\mathrm{rp}\to\mathcal{S}\mathrm{et}$, $\mathcal{R}\mathrm{ing}\to\mathcal{A}\mathrm{b}$, $\mathcal{T}\mathrm{op}_*\to\mathcal{T}\mathrm{op}$ are faithful but not full.\nomenclature{$\mathcal{S}\mathrm{et}$}{the category of sets}\nomenclature{$\mathcal{A}\mathrm{b}$}{the category of abelian groups}\nomenclature{$\mathcal{T}\mathrm{op}_*$}{the category of topological spaces with a based point}\nomenclature{$\mathcal{T}\mathrm{op}$}{the category of topological spaces}

Lean 4 formal statement:
import Mathlib

open CategoryTheory Limits


theorem forget_Top_faithful_not_full :
    (forget TopCat).Faithful ∧ ¬ (forget TopCat).Full := by
  sorry


theorem forget_Grp_faithful_not_full :
    (forget Grp).Faithful ∧ ¬ (forget Grp).Full := by
  sorry


theorem forget_Ring_Ab_faithful_not_full :
    (forget₂ RingCat Ab).Faithful ∧ ¬ (forget₂ RingCat Ab).Full := by
  sorry


theorem forget_TopPointed_faithful_not_full :
    (Under.forget (terminal TopCat)).Faithful ∧ ¬ (Under.forget (terminal TopCat)).Full := by
  sorry
Domain: Category | Level: Medium | Tags: Basic

Theorem: Let $\{*\}\in\mathcal{S}\mathrm{et}$ be the terminal object in $\mathcal{S}\mathrm{et}$.Then $\hom_{\mathcal{S}\mathrm{et}}(\{*\},-):\mathcal{S}\mathrm{et}\to\mathcal{S}\mathrm{et}$ is an equivalence of categories.

Lean 4 formal statement:
import Mathlib

open CategoryTheory

universe u

def fromTerminalFunctor : Type u ⥤ Type u where
  obj α := PUnit.{u} → α
  map {α β} (f : α → β) := fun g => f ∘ g
  map_id := by
    intro α
    funext g x
    rfl
  map_comp := by
    intro α β γ f g
    funext h x
    rfl


theorem fromTerminalEquivalence : fromTerminalFunctor.IsEquivalence := sorry
Domain: Category | Level: Easy | Tags: Basic

Theorem: Let $\mathcal{C}$ be a category, if every idempotent in $\mathcal{C}$ can be factored into an epimorhisms followed by a monomorphism, then all idempotents split in $\mathcal{C}$.

Lean 4 formal statement:
import Mathlib

open CategoryTheory Idempotents

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

theorem idempotent_splitting_from_epi_mono_factorization 
    (h : ∀ (X : C) (p : X ⟶ X) (hpp : p ≫ p = p), 
      ∃ (Y : C) (e : X ⟶ Y) (he : Epi e) (m : Y ⟶ X) (hm : Mono m), p = e ≫ m) : 
    IsIdempotentComplete C := by
  sorry
Domain: Category | Level: Medium | Tags: Basic

Theorem: Let $\mathcal{C}$ and $\mathcal{D}$ be two categories.
    Let $F:\mathcal{C}\to\mathcal{D}$ be a functor.
    Then $F$ has a quasi-inverse if and only if 
    \begin{enumerate}
        \item $F$ is fully faithful;
        \item $F$ is essentially surjective.
    \end{enumerate}

Lean 4 formal statement:
import Mathlib

open CategoryTheory


theorem funtor_has_quasi_inverse_iff {C D : Type*} [Category C] [Category D] (F : C ⥤ D):
    (∃ G : D ⥤ C, (Nonempty (Functor.id C ≅ F.comp G)) ∧ (Nonempty (G.comp F ≅ Functor.id D)))
    ↔ F.IsEquivalence := by
 sorry
Domain: Category | Level: Medium | Tags: Basic

Theorem: Let $\mathcal{C}$ be a category and $\mathrm{Kar}(\mathcal{C})$ be its idempotent completion. Let $I:\mathcal{C}\to \mathrm{Kar}(\mathcal{C})$ be the inclusion functor. Then for any category $\mathcal{D}$ in which idempotents split and any functor $F:\mathcal{C}\to \mathcal{D}$, there is a unique (up to isomorphism) functor $F':\mathrm{Kar}(\mathcal{C})\to \mathcal{D}$ such that $F'\circ I=F$.

Lean 4 formal statement:
import Mathlib

open CategoryTheory

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

theorem karoubi_universal_property [IsIdempotentComplete D] (F : C ⥤ D) :
    ∃ (F' : Idempotents.Karoubi C ⥤ D), Nonempty ((Idempotents.toKaroubi C) ⋙ F' ≅ F) := by
  sorry

theorem karoubi_universal_property_unique_up_to_iso [IsIdempotentComplete D] {F : C ⥤ D}
    {F₁ F₂ : Idempotents.Karoubi C ⥤ D}
    (h₁ : Nonempty ((Idempotents.toKaroubi C) ⋙ F₁ ≅ F))
    (h₂ : Nonempty ((Idempotents.toKaroubi C) ⋙ F₂ ≅ F)) :
    Nonempty (F₁ ≅ F₂) := by
  sorry
Domain: Category | Level: Medium | Tags: Basic

Theorem: Let $G_1$ and $G_2$ be two objects in the category $\mathcal{G}\mathrm{rp}$ of groups.\nomenclature{$\mathcal{G}\mathrm{rp}$}{the category of groups} 
The coproduct of $G_1$ and $G_2$ in $\mathcal{G}\mathrm{rp}$ is equivalent to the free product of $G_1$ and $G_2$.

Lean 4 formal statement:
import Mathlib

open CategoryTheory Limits

universe u
variable {G H : Grp.{u}}


theorem freeProdGrp_iso_coprod [HasBinaryCoproduct G H] :
     Nonempty (Monoid.Coprod G H ≅ coprod G H) := by
  sorry
Domain: Category | Level: Medium | Tags: Basic

Theorem: There exists a morphism in $\mathcal{R}\mathrm{ing}$ such that it is epic but not surjective.\nomenclature{$\mathcal{R}\mathrm{ing}$}{the category of rings}

Lean 4 formal statement:
import Mathlib

open CategoryTheory

theorem exists_epic_not_surjective_in_Ring :
    ∃ (A B : RingCat) (f : A ⟶ B), Epi f ∧ ¬ Function.Surjective f := by
  sorry
Domain: Category | Level: Medium | Tags: Basic

Theorem: Let $F:\mathcal{G}\mathrm{rp}\to \mathcal{S}\mathrm{et}$ be the functor that $G\mapsto \{g\in G\mid g^2=1\}$.
    Then $F$ is representable.

Lean 4 formal statement:
import Mathlib

open CategoryTheory

def functor_involution : Grp.{u} ⥤ Type u where
  obj := fun G => { g : G.carrier |  g * g = 1 }
  map := fun {G H} f x => ⟨f.hom x.val, by
    refine Set.mem_setOf.mpr ?_
    rcases x with ⟨g, hg⟩
    simp only [Set.mem_setOf_eq] at hg
    rw [← f.hom.map_mul, hg]
    simp only [map_one]
    ⟩


theorem involution_functor_representable :
    CategoryTheory.Functor.IsCorepresentable functor_involution := by
  sorry
Domain: Category | Level: High | Tags: Basic
Reference: Exercise 9D, 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 morphism $f: x\to y$ in $\mathcal C$ is called $\textbf{initial}$ if for any object $c\in \mathcal C$, a morphism $g:U(c)\to U(x)$ is a morphism in $\mathcal{C}$ whenever $f\circ g: U(c)\to U(y)$ is a morphism in $\mathcal C$.

Definition: An initial morphism $f:x\to y$ such that the underlying morphism $U(f):U(x)\to U(y)$ is monic is called an $\textbf{embedding}$.

Definition: If $f:x\to y$ is an embedding, then $(x, f)$ is called an $\textbf{initial subobject}$ of $y$.

Definition: In a concrete category an object $I$ is called $\textbf{injective}$ provided that for any embedding $m: A \to B$ and any morphism $f: A\to C$ there exists a morphism $g:B\to C$ extending $f$, i.e., $g\circ m=f$


Definition: A concrete category $\textbf{has enough injectives}$ provided that each of its objects is an initial subobject of an injective object.

Theorem: The category $\mathcal{T}\mathrm{op}^{CH}$ of compact Hausdorff space has enough injectives.

Lean 4 formal statement:
import Mathlib

open CategoryTheory

namespace CAT_statement_S_0011

universe u uX

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

namespace AHS

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 IsInitialHom {C : ConcreteCat (X:= X)} {A B : C.C} (f : A ⟶ B) : Prop :=
  ∀ ⦃Z : C.C⦄ (g : C.U.obj Z ⟶ C.U.obj A),
    (∃ h : Z ⟶ B, C.U.map h = g ≫ C.U.map f) →
      (∃ k : Z ⟶ A, C.U.map k = g)


def IsEmbedding {C : ConcreteCat (X:= X)} {A B : C.C} (f : A ⟶ B) : Prop :=
  IsInitialHom f ∧ Mono (C.U.map f)


def IsInjectiveObj {C : ConcreteCat (X:= X)} (I : C.C) : Prop :=
  ∀ ⦃A B : C.C⦄ (m : A ⟶ B),
    IsEmbedding  m →
    ∀ (f : A ⟶ I), ∃ g : B ⟶ I, m ≫ g = f


def HasEnoughInj {C : ConcreteCat (X:= X)} : Prop :=
  ∀ x: C.C, ∃ (I : C.C) (f : x ⟶ I),
    IsInjectiveObj I ∧  IsEmbedding f

end AHS

def CompHausConcrete : AHS.ConcreteCat (X := Type u) :=
{ C := CompHaus.{u}
  U := forget CompHaus}

theorem CompHaus_Has_EnoughInj :AHS.HasEnoughInj (C:= CompHausConcrete) := by
  sorry

end CAT_statement_S_0011
Domain: Category | Level: High | Tags: Basic
Reference: Exercise 7P, Adámek, J., Herrlich, H. and Strecker, G., 1990. Abstract and concrete categories. Wiley-Interscience.

Theorem: Let $\mathcal{C}$ be a category and let $f:x\to y$ be a morphism in $\mathcal{C}$.
    Then $f$ is a monomorphism in $\mathcal{C}$ if and only if there exists a category $\mathcal{D}$ and a faithful functor $I:\mathcal{C}\to\mathcal{D}$ such that $f$ is a section in $\mathcal{D}$.

Lean 4 formal statement:
import Mathlib

open CategoryTheory Functor


theorem mono_iff_exists_embedding_section
  {C : Type u} [Category.{v} C] {X Y : C} (f : X ⟶ Y) :
    Mono f ↔ ∃ (D : Type (max u v)) (_ : Category.{v} D) (I : C ⥤ D) (_ : Faithful I),
    IsSplitMono (I.map f) := by
  sorry
Domain: Category | Level: High | Tags: Basic
Reference: 3.39 EXAMPLES (6), Adámek, J., Herrlich, H. and Strecker, G., 1990. Abstract and concrete categories. Wiley-Interscience.

Theorem: The category $\mathcal{T}\mathrm{op}^{CH}$ of compact Hausdorff space is dually equivalent to the category of commutative unital $C^*$-algebras and algebra homomorphisms.\nomenclature{$\mathcal{T}\mathrm{op}^{CH}$}{the category of compact Hausdorff topological spaces}

Lean 4 formal statement:
import Mathlib

open CategoryTheory

universe u


structure CommCStarAlgCat : Type (u + 1) where
  of ::

  carrier : Type u
  [commCStarAlgebra : CommCStarAlgebra carrier]

attribute [instance] CommCStarAlgCat.commCStarAlgebra

namespace CommCStarAlgCat

instance : CoeSort CommCStarAlgCat (Type u) :=
  ⟨CommCStarAlgCat.carrier⟩

instance : Category CommCStarAlgCat where
  Hom A B := A →⋆ₐ[ℂ] B
  id A := StarAlgHom.id ℂ A
  comp f g := g.comp f

end CommCStarAlgCat

theorem gelfandDuality : Nonempty (CompHaus.{u} ≌ (CommCStarAlgCat.{u})ᵒᵖ) := by
  sorry
Domain: Category | Level: High | Tags: Basic
Reference: 9.3 EXAMPLES (2), 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 morphism $f: x\to y$ in $\mathcal C$ is called $\textbf{initial}$ if for any object $c\in \mathcal C$, a morphism $g:U(c)\to U(x)$ is a morphism in $\mathcal{C}$ whenever $f\circ g: U(c)\to U(y)$ is a morphism in $\mathcal C$.

Definition: An initial morphism $f:x\to y$ such that the underlying morphism $U(f):U(x)\to U(y)$ is monic is called an $\textbf{embedding}$.

Definition: In a concrete category an object $I$ is called $\textbf{injective}$ provided that for any embedding $m: A \to B$ and any morphism $f: A\to C$ there exists a morphism $g:B\to C$ extending $f$, i.e., $g\circ m=f$


Theorem: In $\mathcal{P}\mathrm{o}\mathcal{S}\mathrm{et}$, injective objects are precisely the suplattice.

Lean 4 formal statement:
import Mathlib

open CategoryTheory

namespace CAT_statement_S_0014

universe u uX

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

namespace AHS2

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 IsInitialHom {C : ConcreteCat (X:= X)} {A B : C.C} (f : A ⟶ B) : Prop :=
  ∀ ⦃Z : C.C⦄ (g : C.U.obj Z ⟶ C.U.obj A),
    (∃ h : Z ⟶ B, C.U.map h = g ≫ C.U.map f) →
      (∃ k : Z ⟶ A, C.U.map k = g)


def IsEmbedding {C : ConcreteCat (X:= X)} {A B : C.C} (f : A ⟶ B) : Prop :=
  IsInitialHom f ∧ Mono (C.U.map f)


def IsInjectiveObj {C : ConcreteCat (X:= X)} (I : C.C) : Prop :=
  ∀ ⦃A B : C.C⦄ (m : A ⟶ B),
    IsEmbedding  m →
    ∀ (f : A ⟶ I), ∃ g : B ⟶ I, m ≫ g = f

end AHS2

namespace Poset
def PosetConcrete : AHS2.ConcreteCat (Type u) where
  C := PartOrd.{u}
  cat := inferInstance
  U := forget PartOrd
  U_Faithful := inferInstance


theorem injective_iff_suplattice (P : PartOrd.{u}) :
  AHS2.IsInjectiveObj (C := PosetConcrete) P ↔ ∀ (s : Set P), ∃ x, IsLUB s x := by
  sorry

end Poset

end CAT_statement_S_0014
Domain: Category | Level: High | Tags: Basic
Reference: 9.3 EXAMPLES (2)(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 morphism $f: x\to y$ in $\mathcal C$ is called $\textbf{initial}$ if for any object $c\in \mathcal C$, a morphism $g:U(c)\to U(x)$ is a morphism in $\mathcal{C}$ whenever $f\circ g: U(c)\to U(y)$ is a morphism in $\mathcal C$.

Definition: An initial morphism $f:x\to y$ such that the underlying morphism $U(f):U(x)\to U(y)$ is monic is called an $\textbf{embedding}$.

Definition: In a concrete category an object $I$ is called $\textbf{injective}$ provided that for any embedding $m: A \to B$ and any morphism $f: A\to C$ there exists a morphism $g:B\to C$ extending $f$, i.e., $g\circ m=f$


Theorem: In $\mathcal{L}\mathrm{at}_{\land}$, the category of meet semilattice and meet preserving maps, injective objects are frames.

Lean 4 formal statement:
import Mathlib

open CategoryTheory

namespace CAT_statement_S_0015

universe u uX

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

namespace AHS

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 IsInitialHom {C : ConcreteCat (X:= X)} {A B : C.C} (f : A ⟶ B) : Prop :=
  ∀ ⦃Z : C.C⦄ (g : C.U.obj Z ⟶ C.U.obj A),
    (∃ h : Z ⟶ B, C.U.map h = g ≫ C.U.map f) →
      (∃ k : Z ⟶ A, C.U.map k = g)


def IsEmbedding {C : ConcreteCat (X:= X)} {A B : C.C} (f : A ⟶ B) : Prop :=
  IsInitialHom f ∧ Mono (C.U.map f)


def IsInjectiveObj {C : ConcreteCat (X:= X)} (I : C.C) : Prop :=
  ∀ ⦃A B : C.C⦄ (m : A ⟶ B),
    IsEmbedding  m →
    ∀ (f : A ⟶ I), ∃ g : B ⟶ I, m ≫ g = f

end AHS

namespace SemilatInfCat


def forget : SemilatInfCat.{u} ⥤ Type u where
  obj A := A
  map {A B} f := f


instance : forget.Faithful  where
  map_injective {A B} f g h := by
    ext x
    simpa using congrArg (fun k => k x) h

def SemilatInfCatConcrete : AHS.ConcreteCat (X := Type u) :=
{ C := SemilatInfCat.{u}
  U := forget }


class IsFrameObj (P : SemilatInfCat.{u}) (sSup : Set P.X → P.X) (sInf : Set P.X → P.X): Prop where
  exists_sSup :
      (∀ (s : Set P.X), IsLUB s (sSup s))
  exists_sInf :
      (∀ (s : Set P.X), IsGLB s (sInf s))
  distributive :
      (∀ (a : P.X), ∀ (s : Set P.X),
        a ⊓ sSup s = sSup (Set.image (fun (b : P.X) => a ⊓ b) s))


theorem AHS_injective_iff_frameObj (P : SemilatInfCat) :
    AHS.IsInjectiveObj (C := SemilatInfCatConcrete) P ↔ ∃ (sSup : Set P.X → P.X) (sInf : Set P.X → P.X), IsFrameObj P sSup sInf := by
  sorry

end SemilatInfCat

end CAT_statement_S_0015
Domain: Category | Level: High | Tags: Basic
Reference: 9.3 EXAMPLES (3)(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 morphism $f: x\to y$ in $\mathcal C$ is called $\textbf{initial}$ if for any object $c\in \mathcal C$, a morphism $g:U(c)\to U(x)$ is a morphism in $\mathcal{C}$ whenever $f\circ g: U(c)\to U(y)$ is a morphism in $\mathcal C$.

Definition: An initial morphism $f:x\to y$ such that the underlying morphism $U(f):U(x)\to U(y)$ is monic is called an $\textbf{embedding}$.

Definition: In a concrete category an object $I$ is called $\textbf{injective}$ provided that for any embedding $m: A \to B$ and any morphism $f: A\to C$ there exists a morphism $g:B\to C$ extending $f$, i.e., $g\circ m=f$


Theorem: In $\mathcal{A}\mathrm{b}$ the injective objects are precisely the divisible abelian groups.

Lean 4 formal statement:
import Mathlib

open CategoryTheory

namespace CAT_statement_S_0016

universe u uX

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

namespace AHS

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 IsInitialHom {C : ConcreteCat (X:= X)} {A B : C.C} (f : A ⟶ B) : Prop :=
  ∀ ⦃Z : C.C⦄ (g : C.U.obj Z ⟶ C.U.obj A),
    (∃ h : Z ⟶ B, C.U.map h = g ≫ C.U.map f) →
      (∃ k : Z ⟶ A, C.U.map k = g)


def IsEmbedding {C : ConcreteCat (X:= X)} {A B : C.C} (f : A ⟶ B) : Prop :=
  IsInitialHom f ∧ Mono (C.U.map f)


def IsInjectiveObj {C : ConcreteCat (X:= X)} (I : C.C) : Prop :=
  ∀ ⦃A B : C.C⦄ (m : A ⟶ B),
    IsEmbedding  m →
    ∀ (f : A ⟶ I), ∃ g : B ⟶ I, m ≫ g = f

end AHS

def AddCommGrpConcrete : AHS.ConcreteCat (X := Type u) :=
{ C := AddCommGrp.{u}
  U := forget AddCommGrp}

theorem AddCommGrp.injective_iff_divisible (A : AddCommGrp.{u}) :
    AHS.IsInjectiveObj (C:= AddCommGrpConcrete) A ↔ ∀ (n : ℕ) (hn : n ≠ 0) (a : A), ∃ b : A, n • b = a := by
  sorry

end CAT_statement_S_0016
Domain: Category | Level: High | Tags: Basic
Reference: 9.3 EXAMPLES (4)(d), 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 morphism $f: x\to y$ in $\mathcal C$ is called $\textbf{initial}$ if for any object $c\in \mathcal C$, a morphism $g:U(c)\to U(x)$ is a morphism in $\mathcal{C}$ whenever $f\circ g: U(c)\to U(y)$ is a morphism in $\mathcal C$.

Definition: An initial morphism $f:x\to y$ such that the underlying morphism $U(f):U(x)\to U(y)$ is monic is called an $\textbf{embedding}$.

Definition: In a concrete category an object $I$ is called $\textbf{injective}$ provided that for any embedding $m: A \to B$ and any morphism $f: A\to C$ there exists a morphism $g:B\to C$ extending $f$, i.e., $g\circ m=f$


Theorem: In $\mathcal{T}\mathrm{op}$, the injective objects are precisely the retracts of powers $C^I$ of the space $C:=(\{0,1,2\},\{\emptyset,\{0,1\},\{0,1,2\}\})$.

Lean 4 formal statement:
import Mathlib

open CategoryTheory Limits TopologicalSpace

namespace CAT_statement_S_0017

universe u uX

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

namespace AHS

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 IsInitialHom {C : ConcreteCat (X:= X)} {A B : C.C} (f : A ⟶ B) : Prop :=
  ∀ ⦃Z : C.C⦄ (g : C.U.obj Z ⟶ C.U.obj A),
    (∃ h : Z ⟶ B, C.U.map h = g ≫ C.U.map f) →
      (∃ k : Z ⟶ A, C.U.map k = g)


def IsEmbedding {C : ConcreteCat (X:= X)} {A B : C.C} (f : A ⟶ B) : Prop :=
  IsInitialHom f ∧ Mono (C.U.map f)


def IsInjectiveObj {C : ConcreteCat (X:= X)} (I : C.C) : Prop :=
  ∀ ⦃A B : C.C⦄ (m : A ⟶ B),
    IsEmbedding  m →
    ∀ (f : A ⟶ I), ∃ g : B ⟶ I, m ≫ g = f

end AHS

def S : TopCat.{u} :=
  letI : TopologicalSpace (Fin 3) := generateFrom {({0, 1} : Set (Fin 3))}
  TopCat.of (ULift.{u} (Fin 3))

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

theorem Inj_in_TopCat {Y : TopCat.{u}} :
    AHS.IsInjectiveObj (C:= TopCatConcrete) Y ↔∃ (I : Type u), Nonempty (Retract Y (piObj (fun (_ : I) => S))) := by
    sorry

end CAT_statement_S_0017
Domain: Category | Level: High | Tags: Basic
Reference: 9.3 EXAMPLES (4)(a), 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 morphism $f: x\to y$ in $\mathcal C$ is called $\textbf{initial}$ if for any object $c\in \mathcal C$, a morphism $g:U(c)\to U(x)$ is a morphism in $\mathcal{C}$ whenever $f\circ g: U(c)\to U(y)$ is a morphism in $\mathcal C$.

Definition: An initial morphism $f:x\to y$ such that the underlying morphism $U(f):U(x)\to U(y)$ is monic is called an $\textbf{embedding}$.

Definition: In a concrete category an object $I$ is called $\textbf{injective}$ provided that for any embedding $m: A \to B$ and any morphism $f: A\to C$ there exists a morphism $g:B\to C$ extending $f$, i.e., $g\circ m=f$


Theorem: In the category $\mathcal{T}\mathrm{op}^{CH}$ of compact Hausdorff space, injective objects are precisely the retracts of powers $[0,1]^I$ of the unit interval.

Lean 4 formal statement:
import Mathlib

open CategoryTheory

namespace CAT_statement_S_0018

universe u uX

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

namespace AHS

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 IsInitialHom {C : ConcreteCat (X:= X)} {A B : C.C} (f : A ⟶ B) : Prop :=
  ∀ ⦃Z : C.C⦄ (g : C.U.obj Z ⟶ C.U.obj A),
    (∃ h : Z ⟶ B, C.U.map h = g ≫ C.U.map f) →
      (∃ k : Z ⟶ A, C.U.map k = g)


def IsEmbedding {C : ConcreteCat (X:= X)} {A B : C.C} (f : A ⟶ B) : Prop :=
  IsInitialHom f ∧ Mono (C.U.map f)


def IsInjectiveObj {C : ConcreteCat (X:= X)} (I : C.C) : Prop :=
  ∀ ⦃A B : C.C⦄ (m : A ⟶ B),
    IsEmbedding  m →
    ∀ (f : A ⟶ I), ∃ g : B ⟶ I, m ≫ g = f

end AHS

def CompHausConcrete : AHS.ConcreteCat (X := Type u) :=
{ C := CompHaus.{u}
  U := forget CompHaus}

theorem tieze_urysohn {Y : CompHaus.{u}} :
    AHS.IsInjectiveObj (C:= CompHausConcrete) Y ↔ ∃ ι : Type u, Nonempty (Retract Y (.of (∀ i : ι, unitInterval))) := by
    sorry

end CAT_statement_S_0018
Domain: Category | Level: Easy | Tags: Adjunction

Theorem: A functor $G : \mathcal{D} \to \mathcal{C}$ has a left adjoint if and only if for each $c \in\mathcal{C}$, the comma category $(c \downarrow G)$ has an initial object.

Lean 4 formal statement:
import Mathlib

open CategoryTheory Limits

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

theorem functor_hasLeftAdjoint_iff_structuredArrow_hasInitial
    (G : D ⥤ C) :
    G.IsRightAdjoint ↔ ∀ c : C, HasInitial (StructuredArrow c G) := by
  sorry
Domain: Category | Level: Easy | Tags: Adjunction

Theorem: Let $\mathcal{C}$ and $\mathcal{D}$ be categories and let $F:\mathcal{C}\to \mathcal{D}$ be a functor that admits a right adjoint $G$.
    Then $F$ is fully faithful if and only if $u:\mathrm{Id}_{\mathcal{C}}\to G\circ F$ is isomorphism.

Lean 4 formal statement:
import Mathlib

open CategoryTheory

variable {C D : Type*} [Category C] [Category D] (F : C ⥤ D) (G : D ⥤ C)

theorem fully_faithful_iff_unit_isIso (adj : F ⊣ G) :
    (F.Full ∧ F.Faithful) ↔ IsIso adj.unit := by
  sorry
Domain: Category | Level: Medium | Tags: Adjunction

Theorem: Let $\mathcal{C}$ and $\mathcal{D}$ be categories and let $F:\mathcal{C}\to \mathcal{D}$ be a functor that admits a right adjoint $G$.
    Then $G$ is an equivalence of categories if and only if $F$ is fully faithful and $G$ is conservative.

Lean 4 formal statement:
import Mathlib

open CategoryTheory

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

theorem right_adjoint_isEquivalence_iff_left_full_faithful_and_right_conservative 
    (F : C ⥤ D) (G : D ⥤ C) (adj : F ⊣ G) :
    G.IsEquivalence ↔ (F.Full ∧ F.Faithful) ∧ G.ReflectsIsomorphisms := by
  sorry