Adjunctions regarding the category of monoids #
This file proves the adjunction between adjoining a unit to a semigroup and the forgetful functor from monoids to semigroups.
TODO #
- free-forgetful adjunction for monoids
- adjunctions related to commutative monoids
theorem
adjoinZero.proof_1 :
∀ (x : AddSemigroupCat), WithZero.map (AddHom.id ↑x) = AddMonoidHom.id (WithZero ↑x)
The functor of adjoining a neutral element zero
to a semigroup
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
adjoinZero.proof_2 :
∀ {X Y Z : AddSemigroupCat} (f : AddHom ↑X ↑Y) (g : AddHom ↑Y ↑Z),
WithZero.map (AddHom.comp g f) = AddMonoidHom.comp (WithZero.map g) (WithZero.map f)
@[simp]
theorem
adjoinZero_map :
∀ {X Y : AddSemigroupCat} (f : AddHom ↑X ↑Y), adjoinZero.map f = WithZero.map f
@[simp]
@[simp]
The functor of adjoining a neutral element one
to a semigroup.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
hasForgetToAddSemigroup.proof_1
(X : AddMonCat)
:
{ obj := fun (M : AddMonCat) => AddSemigroupCat.of ↑M, map := fun {X Y : AddMonCat} => AddMonoidHom.toAddHom }.map
(CategoryTheory.CategoryStruct.id X) = CategoryTheory.CategoryStruct.id
({ obj := fun (M : AddMonCat) => AddSemigroupCat.of ↑M, map := fun {X Y : AddMonCat} => AddMonoidHom.toAddHom }.obj
X)
theorem
hasForgetToAddSemigroup.proof_2
{X : AddMonCat}
{Y : AddMonCat}
{Z : AddMonCat}
(f : X ⟶ Y)
(g : Y ⟶ Z)
:
{ obj := fun (M : AddMonCat) => AddSemigroupCat.of ↑M, map := fun {X Y : AddMonCat} => AddMonoidHom.toAddHom }.map
(CategoryTheory.CategoryStruct.comp f g) = CategoryTheory.CategoryStruct.comp
({ obj := fun (M : AddMonCat) => AddSemigroupCat.of ↑M, map := fun {X Y : AddMonCat} => AddMonoidHom.toAddHom }.map
f)
({ obj := fun (M : AddMonCat) => AddSemigroupCat.of ↑M, map := fun {X Y : AddMonCat} => AddMonoidHom.toAddHom }.map
g)
Equations
- One or more equations did not get rendered due to their size.
theorem
hasForgetToAddSemigroup.proof_3 :
CategoryTheory.Functor.comp
{
toPrefunctor :=
{ obj := fun (M : AddMonCat) => AddSemigroupCat.of ↑M, map := fun {X Y : AddMonCat} => AddMonoidHom.toAddHom },
map_id := ⋯, map_comp := ⋯ }
(CategoryTheory.forget AddSemigroupCat) = CategoryTheory.Functor.comp
{
toPrefunctor :=
{ obj := fun (M : AddMonCat) => AddSemigroupCat.of ↑M, map := fun {X Y : AddMonCat} => AddMonoidHom.toAddHom },
map_id := ⋯, map_comp := ⋯ }
(CategoryTheory.forget AddSemigroupCat)
Equations
- One or more equations did not get rendered due to their size.
theorem
adjoinZeroAdj.proof_1
{S : AddSemigroupCat}
{T : AddSemigroupCat}
{M : AddMonCat}
(f : S ⟶ T)
(g : T ⟶ (CategoryTheory.forget₂ AddMonCat AddSemigroupCat).obj M)
:
((fun (S : AddSemigroupCat) (M : AddMonCat) => WithZero.lift.symm) S M).symm (CategoryTheory.CategoryStruct.comp f g) = CategoryTheory.CategoryStruct.comp (adjoinZero.map f)
(((fun (S : AddSemigroupCat) (M : AddMonCat) => WithZero.lift.symm) T M).symm g)
theorem
adjoinZeroAdj.proof_2
{X : AddSemigroupCat}
{Y : AddMonCat}
{Y' : AddMonCat}
(f : adjoinZero.obj X ⟶ Y)
(g : Y ⟶ Y')
:
((fun (S : AddSemigroupCat) (M : AddMonCat) => WithZero.lift.symm) X Y') (CategoryTheory.CategoryStruct.comp f g) = CategoryTheory.CategoryStruct.comp (((fun (S : AddSemigroupCat) (M : AddMonCat) => WithZero.lift.symm) X Y) f)
((CategoryTheory.forget₂ AddMonCat AddSemigroupCat).map g)
The adjoinZero
-forgetful adjunction from AddSemigroupCat
to AddMonCat
Equations
- One or more equations did not get rendered due to their size.
Instances For
The adjoinOne
-forgetful adjunction from SemigroupCat
to MonCat
.
Equations
- One or more equations did not get rendered due to their size.