mathlib documentation

category_theory.single_obj

Single-object category #

Single object category with a given monoid of endomorphisms. It is defined to facilitate transfering some definitions and lemmas (e.g., conjugacy etc.) from category theory to monoids and groups.

Main definitions #

Given a type α with a monoid structure, single_obj α is unit type with category structure such that End (single_obj α).star is the monoid α. This can be extended to a functor Mon ⥤ Cat.

If α is a group, then single_obj α is a groupoid.

An element x : α can be reinterpreted as an element of End (single_obj.star α) using single_obj.to_End.

Implementation notes #

@[nolint]
def category_theory.single_obj (α : Type u) :
Type

Type tag on unit used to define single-object categories and groupoids.

Equations
@[instance]

One and flip (*) become id and comp for morphisms of the single object category.

Equations
@[instance]

Monoid laws become category laws for the single object category.

Equations
theorem category_theory.single_obj.comp_as_mul (α : Type u) [monoid α] {x y z : category_theory.single_obj α} (f : x y) (g : y z) :
f g = g * f

The single object in single_obj α.

Equations

The endomorphisms monoid of the only object in single_obj α is equivalent to the original monoid α.

Equations

There is a 1-1 correspondence between monoid homomorphisms α → β and functors between the corresponding single-object categories. It means that single_obj is a fully faithful functor.

See https://stacks.math.columbia.edu/tag/001F -- although we do not characterize when the functor is full or faithful.

Equations
theorem category_theory.single_obj.map_hom_comp {α : Type u} {β : Type v} [monoid α] [monoid β] (f : α →* β) {γ : Type w} [monoid γ] (g : β →* γ) :
@[simp]
theorem category_theory.single_obj.difference_functor_map {C : Type u_1} {G : Type u_2} [category_theory.category C] [group G] (f : C → G) (x y : C) (_x : x y) :
def category_theory.single_obj.difference_functor {C : Type u_1} {G : Type u_2} [category_theory.category C] [group G] (f : C → G) :

Given a function f : C → G from a category to a group, we get a functor C ⥤ G sending any morphism x ⟶ y to f y * (f x)⁻¹.

Equations
@[simp]
theorem category_theory.single_obj.difference_functor_obj {C : Type u_1} {G : Type u_2} [category_theory.category C] [group G] (f : C → G) (_x : C) :
def monoid_hom.to_functor {α : Type u} {β : Type v} [monoid α] [monoid β] (f : α →* β) :

Reinterpret a monoid homomorphism f : α → β as a functor (single_obj α) ⥤ (single_obj β). See also category_theory.single_obj.map_hom for an equivalence between these types.

Equations
@[simp]
theorem monoid_hom.comp_to_functor {α : Type u} {β : Type v} [monoid α] [monoid β] (f : α →* β) {γ : Type w} [monoid γ] (g : β →* γ) :

The units in a monoid are (multiplicatively) equivalent to the automorphisms of star when we think of the monoid as a single-object category.

Equations
@[simp]
theorem units.to_Aut_hom (α : Type u) [monoid α] (x : units α) :
@[simp]
theorem units.to_Aut_inv (α : Type u) [monoid α] (x : units α) :

The fully faithful functor from Mon to Cat.

Equations
@[instance]
Equations