Category instances for Mul
, Add
, Semigroup
and AddSemigroup
#
We introduce the bundled categories:
MagmaCat
AddMagmaCat
SemigroupCat
AddSemigroupCat
along with the relevant forgetful functors between them.
This closely follows Mathlib.Algebra.Category.MonCat.Basic
.
TODO #
- Limits in these categories
- free/forgetful adjunctions
The category of additive magmas and additive magma morphisms.
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- AddMagmaCat.instCoeSortAddMagmaCatType = { coe := fun (X : AddMagmaCat) => ↑X }
Equations
- MagmaCat.instCoeSortMagmaCatType = { coe := fun (X : MagmaCat) => ↑X }
Equations
- MagmaCat.forget_obj_eq_coe R = ((CategoryTheory.forget MagmaCat).obj R = ↑R)
Instances For
Equations
- AddMagmaCat.forget_obj_eq_coe R = ((CategoryTheory.forget AddMagmaCat).obj R = ↑R)
Instances For
Equations
- AddMagmaCat.instMulα X = X.str
Equations
- AddMagmaCat.instFunLike X Y = inferInstanceAs (FunLike (AddHom ↑X ↑Y) ↑X ↑Y)
Equations
- MagmaCat.instFunLike X Y = inferInstanceAs (FunLike (↑X →ₙ* ↑Y) ↑X ↑Y)
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Typecheck an AddHom
as a morphism in AddMagmaCat
.
Equations
- AddMagmaCat.ofHom f = f
Instances For
Typecheck a MulHom
as a morphism in MagmaCat
.
Equations
- MagmaCat.ofHom f = f
Instances For
Equations
- AddMagmaCat.instInhabitedAddMagmaCat = { default := AddMagmaCat.of PEmpty.{u_1 + 1} }
Equations
- MagmaCat.instInhabitedMagmaCat = { default := MagmaCat.of PEmpty.{u_1 + 1} }
The category of additive semigroups and semigroup morphisms.
Instances For
The category of semigroups and semigroup morphisms.
Equations
Instances For
Equations
- AddSemigroupCat.instCoeSortAddSemigroupCatType = { coe := fun (X : AddSemigroupCat) => ↑X }
Equations
- SemigroupCat.instCoeSortSemigroupCatType = { coe := fun (X : SemigroupCat) => ↑X }
Equations
- SemigroupCat.forget_obj_eq_coe R = ((CategoryTheory.forget SemigroupCat).obj R = ↑R)
Instances For
Equations
- AddSemigroupCat.forget_obj_eq_coe R = ((CategoryTheory.forget AddSemigroupCat).obj R = ↑R)
Instances For
Equations
- AddSemigroupCat.instSemigroupα X = X.str
Equations
- SemigroupCat.instSemigroupα X = X.str
Equations
- AddSemigroupCat.instFunLike X Y = inferInstanceAs (FunLike (AddHom ↑X ↑Y) ↑X ↑Y)
Equations
- SemigroupCat.instFunLike X Y = inferInstanceAs (FunLike (↑X →ₙ* ↑Y) ↑X ↑Y)
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Typecheck an AddHom
as a morphism in AddSemigroupCat
.
Equations
Instances For
Typecheck a MulHom
as a morphism in SemigroupCat
.
Equations
- SemigroupCat.ofHom f = f
Instances For
Equations
Equations
- SemigroupCat.instInhabitedSemigroupCat = { default := SemigroupCat.of PEmpty.{u_1 + 1} }
Build an isomorphism in the category AddMagmaCat
from an AddEquiv
between Add
s.
Equations
- AddEquiv.toAddMagmaCatIso e = { hom := AddEquiv.toAddHom e, inv := AddEquiv.toAddHom (AddEquiv.symm e), hom_inv_id := ⋯, inv_hom_id := ⋯ }
Instances For
Build an isomorphism in the category MagmaCat
from a MulEquiv
between Mul
s.
Equations
- MulEquiv.toMagmaCatIso e = { hom := MulEquiv.toMulHom e, inv := MulEquiv.toMulHom (MulEquiv.symm e), hom_inv_id := ⋯, inv_hom_id := ⋯ }
Instances For
Build an isomorphism in the category
AddSemigroup
from an AddEquiv
between AddSemigroup
s.
Equations
- AddEquiv.toAddSemigroupCatIso e = { hom := AddEquiv.toAddHom e, inv := AddEquiv.toAddHom (AddEquiv.symm e), hom_inv_id := ⋯, inv_hom_id := ⋯ }
Instances For
Build an isomorphism in the category Semigroup
from a MulEquiv
between Semigroup
s.
Equations
- MulEquiv.toSemigroupCatIso e = { hom := MulEquiv.toMulHom e, inv := MulEquiv.toMulHom (MulEquiv.symm e), hom_inv_id := ⋯, inv_hom_id := ⋯ }
Instances For
Build an AddEquiv
from an isomorphism in the category AddMagma
.
Equations
- CategoryTheory.Iso.addMagmaCatIsoToAddEquiv i = AddHom.toAddEquiv i.hom i.inv ⋯ ⋯
Instances For
Build a MulEquiv
from an isomorphism in the category Magma
.
Equations
- CategoryTheory.Iso.magmaCatIsoToMulEquiv i = MulHom.toMulEquiv i.hom i.inv ⋯ ⋯
Instances For
Build an AddEquiv
from an isomorphism in the category AddSemigroup
.
Equations
- CategoryTheory.Iso.addSemigroupCatIsoToAddEquiv i = AddHom.toAddEquiv i.hom i.inv ⋯ ⋯
Instances For
Build a MulEquiv
from an isomorphism in the category Semigroup
.
Equations
- CategoryTheory.Iso.semigroupCatIsoToMulEquiv i = MulHom.toMulEquiv i.hom i.inv ⋯ ⋯
Instances For
additive equivalences between Add
s are the same
as (isomorphic to) isomorphisms in AddMagma
Equations
- One or more equations did not get rendered due to their size.
Instances For
multiplicative equivalences between Mul
s are the same as (isomorphic to) isomorphisms
in Magma
Equations
- One or more equations did not get rendered due to their size.
Instances For
additive equivalences between AddSemigroup
s are
the same as (isomorphic to) isomorphisms in AddSemigroup
Equations
- One or more equations did not get rendered due to their size.
Instances For
multiplicative equivalences between Semigroup
s are the same as (isomorphic to) isomorphisms
in Semigroup
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.
Equations
- One or more equations did not get rendered due to their size.
Once we've shown that the forgetful functors to type reflect isomorphisms,
we automatically obtain that the forget₂
functors between our concrete categories
reflect isomorphisms.