Category instances for Mul, Add, Semigroup and AddSemigroup #
We introduce the bundled categories:
MagmaCatAddMagmaCatSemigroupCatAddSemigroupCatalong 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 Adds.
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 Muls.
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 AddSemigroups.
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 Semigroups.
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 Adds 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 Muls 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 AddSemigroups 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 Semigroups 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.