Category instances for Monoid
, AddMonoid
, CommMonoid
, and AddCommMmonoid
. #
We introduce the bundled categories:
MonCat
AddMonCat
CommMonCat
AddCommMonCat
along with the relevant forgetful functors between them.
AddMonoidHom
doesn't actually assume associativity. This alias is needed to make
the category theory machinery work.
Equations
- AddMonCat.AssocAddMonoidHom M N = (M →+ N)
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
- AddMonCat.instCoeSortType = { coe := fun (X : AddMonCat) => ↑X }
Equations
- MonCat.instCoeSortType = { coe := fun (X : MonCat) => ↑X }
Equations
- X.instFunLike Y = inferInstanceAs (FunLike (↑X →+ ↑Y) ↑X ↑Y)
Equations
- X.instFunLike Y = inferInstanceAs (FunLike (↑X →* ↑Y) ↑X ↑Y)
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Construct a bundled AddMonCat
from the underlying type and typeclass.
Equations
Equations
- AddMonCat.instInhabited = { default := AddMonCat.of PUnit.{?u.1 + 1} }
Equations
- MonCat.instInhabited = { default := MonCat.of PUnit.{?u.1 + 1} }
Typecheck an AddMonoidHom
as a morphism in AddMonCat
.
Equations
- AddMonCat.ofHom f = f
Equations
- X.instZeroHom Y = { zero := AddMonCat.ofHom 0 }
Equations
- X.instOneHom Y = { one := MonCat.ofHom 1 }
Equations
- AddMonCat.instGroupαAddMonoidOf = inst
Universe lift functor for additive monoids.
Equations
- One or more equations did not get rendered due to their size.
Universe lift functor for monoids.
Equations
- One or more equations did not get rendered due to their size.
The category of additive commutative monoids and monoid morphisms.
The category of commutative monoids and monoid morphisms.
Equations
Equations
- AddCommMonCat.concreteCategory = id inferInstance
Equations
- CommMonCat.concreteCategory = id inferInstance
Equations
- AddCommMonCat.instCoeSortType = { coe := fun (X : AddCommMonCat) => ↑X }
Equations
- CommMonCat.instCoeSortType = { coe := fun (X : CommMonCat) => ↑X }
Equations
- X.instCommMonoidα = X.str
Equations
- X.instCommMonoidα = X.str
Equations
- X.instFunLike Y = inferInstance
Equations
- X.instFunLike Y = inferInstance
Construct a bundled AddCommMonCat
from the underlying type and typeclass.
Equations
Construct a bundled CommMonCat
from the underlying type and typeclass.
Equations
Equations
- AddCommMonCat.instInhabited = { default := AddCommMonCat.of PUnit.{?u.1 + 1} }
Equations
- CommMonCat.instInhabited = { default := CommMonCat.of PUnit.{?u.1 + 1} }
Equations
- AddCommMonCat.instCoeMonCat = { coe := (CategoryTheory.forget₂ AddCommMonCat AddMonCat).obj }
Equations
- CommMonCat.instCoeMonCat = { coe := (CategoryTheory.forget₂ CommMonCat MonCat).obj }
Typecheck an AddMonoidHom
as a morphism in AddCommMonCat
.
Equations
- AddCommMonCat.ofHom f = f
Typecheck a MonoidHom
as a morphism in CommMonCat
.
Equations
- CommMonCat.ofHom f = f
Universe lift functor for additive commutative monoids.
Equations
- One or more equations did not get rendered due to their size.
Universe lift functor for commutative monoids.
Equations
- One or more equations did not get rendered due to their size.
Build an isomorphism in the category AddMonCat
from
an AddEquiv
between AddMonoid
s.
Equations
- e.toAddMonCatIso = { hom := AddMonCat.ofHom e.toAddMonoidHom, inv := AddMonCat.ofHom e.symm.toAddMonoidHom, hom_inv_id := ⋯, inv_hom_id := ⋯ }
Build an isomorphism in the category MonCat
from a MulEquiv
between Monoid
s.
Equations
- e.toMonCatIso = { hom := MonCat.ofHom e.toMonoidHom, inv := MonCat.ofHom e.symm.toMonoidHom, hom_inv_id := ⋯, inv_hom_id := ⋯ }
Build an isomorphism in the category AddCommMonCat
from an AddEquiv
between AddCommMonoid
s.
Equations
- e.toAddCommMonCatIso = { hom := AddCommMonCat.ofHom e.toAddMonoidHom, inv := AddCommMonCat.ofHom e.symm.toAddMonoidHom, hom_inv_id := ⋯, inv_hom_id := ⋯ }
Build an isomorphism in the category CommMonCat
from a MulEquiv
between CommMonoid
s.
Equations
- e.toCommMonCatIso = { hom := CommMonCat.ofHom e.toMonoidHom, inv := CommMonCat.ofHom e.symm.toMonoidHom, hom_inv_id := ⋯, inv_hom_id := ⋯ }
Build an AddEquiv
from an isomorphism in the category
AddMonCat
.
Equations
- i.addMonCatIsoToAddEquiv = AddMonoidHom.toAddEquiv i.hom i.inv ⋯ ⋯
Build a MulEquiv
from an isomorphism in the category MonCat
.
Equations
- i.monCatIsoToMulEquiv = MonoidHom.toMulEquiv i.hom i.inv ⋯ ⋯
Build an AddEquiv
from an isomorphism in the category
AddCommMonCat
.
Equations
- i.commMonCatIsoToAddEquiv = AddMonoidHom.toAddEquiv i.hom i.inv ⋯ ⋯
Build a MulEquiv
from an isomorphism in the category CommMonCat
.
Equations
- i.commMonCatIsoToMulEquiv = MonoidHom.toMulEquiv i.hom i.inv ⋯ ⋯
additive equivalences between AddMonoid
s are the same
as (isomorphic to) isomorphisms in AddMonCat
Equations
- addEquivIsoAddMonCatIso = { hom := fun (e : X ≃+ Y) => e.toAddMonCatIso, inv := fun (i : AddMonCat.of X ≅ AddMonCat.of Y) => i.addMonCatIsoToAddEquiv, hom_inv_id := ⋯, inv_hom_id := ⋯ }
additive equivalences between AddCommMonoid
s are
the same as (isomorphic to) isomorphisms in AddCommMonCat
Equations
- One or more equations did not get rendered due to their size.
multiplicative equivalences between CommMonoid
s are the same as (isomorphic to) isomorphisms
in CommMonCat
Equations
- mulEquivIsoCommMonCatIso = { hom := fun (e : X ≃* Y) => e.toCommMonCatIso, inv := fun (i : CommMonCat.of X ≅ CommMonCat.of Y) => i.commMonCatIsoToMulEquiv, hom_inv_id := ⋯, inv_hom_id := ⋯ }
Equations
Equations
Equations
Equations
Equations
Equations
@[simp]
lemmas for MonoidHom.comp
and categorical identities.