Adjunctions regarding the category of (abelian) groups #
This file contains construction of basic adjunctions concerning the category of groups and the category of abelian groups.
Main definitions #
AddCommGroup.free
: constructs the functor associating to a typeX
the free abelian group with generatorsx : X
.Group.free
: constructs the functor associating to a typeX
the free group with generatorsx : X
.abelianize
: constructs the functor which associates to a groupG
its abelianizationGᵃᵇ
.
Main statements #
AddCommGroup.adj
: proves thatAddCommGroup.free
is the left adjoint of the forgetful functor from abelian groups to types.Group.adj
: proves thatGroup.free
is the left adjoint of the forgetful functor from groups to types.abelianize_adj
: proves thatabelianize
is left adjoint to the forgetful functor from abelian groups to groups.
The free functor Type u ⥤ AddCommGroup
sending a type X
to the
free abelian group with generators x : X
.
Equations
- AddCommGroupCat.free = CategoryTheory.Functor.mk { obj := fun (α : Type u) => AddCommGroupCat.of (FreeAbelianGroup α), map := fun {X Y : Type u} => FreeAbelianGroup.map }
Instances For
@[simp]
theorem
AddCommGroupCat.free_obj_coe
{α : Type u}
:
↑(AddCommGroupCat.free.toPrefunctor.obj α) = FreeAbelianGroup α
theorem
AddCommGroupCat.free_map_coe
{α : Type u}
{β : Type u}
{f : α → β}
(x : FreeAbelianGroup α)
:
(AddCommGroupCat.free.toPrefunctor.map f) x = f <$> x
The free-forgetful adjunction for abelian groups.
Equations
- AddCommGroupCat.adj = CategoryTheory.Adjunction.mkOfHomEquiv (CategoryTheory.Adjunction.CoreHomEquiv.mk fun (X : Type u) (G : AddCommGroupCat) => FreeAbelianGroup.lift.symm)
Instances For
The free functor Type u ⥤ Group
sending a type X
to the free group with generators x : X
.
Equations
- GroupCat.free = CategoryTheory.Functor.mk { obj := fun (α : Type u) => GroupCat.of (FreeGroup α), map := fun {X Y : Type u} => FreeGroup.map }
Instances For
The free-forgetful adjunction for groups.
Equations
- GroupCat.adj = CategoryTheory.Adjunction.mkOfHomEquiv (CategoryTheory.Adjunction.CoreHomEquiv.mk fun (X : Type u) (G : GroupCat) => FreeGroup.lift.symm)
Instances For
The abelianization-forgetful adjuction from Group
to CommGroup
.
Equations
- abelianizeAdj = CategoryTheory.Adjunction.mkOfHomEquiv (CategoryTheory.Adjunction.CoreHomEquiv.mk fun (G : GroupCat) (A : CommGroupCat) => Abelianization.lift.symm)
Instances For
@[simp]
theorem
MonCat.units_map :
∀ {X Y : MonCat} (f : X ⟶ Y), MonCat.units.toPrefunctor.map f = GroupCat.ofHom (Units.map f)
@[simp]
The functor taking a monoid to its subgroup of units.
Equations
- MonCat.units = CategoryTheory.Functor.mk { obj := fun (R : MonCat) => GroupCat.of (↑R)ˣ, map := fun {X Y : MonCat} (f : X ⟶ Y) => GroupCat.ofHom (Units.map f) }
Instances For
The forgetful-units adjunction between Group
and Mon
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
CommMonCat.units_obj
(R : CommMonCat)
:
CommMonCat.units.toPrefunctor.obj R = CommGroupCat.of (↑R)ˣ
@[simp]
theorem
CommMonCat.units_map :
∀ {X Y : CommMonCat} (f : X ⟶ Y), CommMonCat.units.toPrefunctor.map f = CommGroupCat.ofHom (Units.map f)
The functor taking a monoid to its subgroup of units.
Equations
- CommMonCat.units = CategoryTheory.Functor.mk { obj := fun (R : CommMonCat) => CommGroupCat.of (↑R)ˣ, map := fun {X Y : CommMonCat} (f : X ⟶ Y) => CommGroupCat.ofHom (Units.map f) }
Instances For
The forgetful-units adjunction between CommGroup
and CommMon
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.