Category instances for Monoid, AddMonoid, CommMonoid, and AddCommMonoid. #
We introduce the bundled categories:
along with the relevant forgetful functors between them.
Equations
- MonCat.instCoeSortType = { coe := MonCat.carrier }
Equations
Construct a bundled AddMonCat from the underlying type and typeclass.
Equations
- AddMonCat.of M = { carrier := M, str := inst✝ }
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
- 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.
Use the ConcreteCategory.hom projection for @[simps] lemmas.
Equations
- MonCat.Hom.Simps.hom X Y f = f.hom
Instances For
The results below duplicate the ConcreteCategory simp lemmas, but we can keep them for dsimp.
Equations
- MonCat.instInhabited = { default := MonCat.of PUnit.{?u.1 + 1} }
Equations
- AddMonCat.instInhabited = { default := AddMonCat.of PUnit.{?u.1 + 1} }
Equations
- X.instOneHom Y = { one := MonCat.ofHom 1 }
Equations
- X.instZeroHom Y = { zero := AddMonCat.ofHom 0 }
Universe lift functor for monoids.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Universe lift functor for additive monoids.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The category of additive commutative monoids and monoid morphisms.
- carrier : Type u
The underlying type.
- str : AddCommMonoid ↑self
Instances For
The category of commutative monoids and monoid morphisms.
- carrier : Type u
The underlying type.
- str : CommMonoid ↑self
Instances For
Equations
Equations
Construct a bundled CommMonCat from the underlying type and typeclass.
Equations
- CommMonCat.of M = { carrier := M, str := inst✝ }
Instances For
Construct a bundled AddCommMonCat from the underlying type and typeclass.
Equations
- AddCommMonCat.of M = { carrier := M, str := inst✝ }
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
- 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.
Turn a morphism in AddCommMonCat back into an AddMonoidHom.
Equations
Instances For
Typecheck an AddMonoidHom as a morphism in AddCommMonCat.
Equations
Instances For
Use the ConcreteCategory.hom projection for @[simps] lemmas.
Equations
- CommMonCat.Hom.Simps.hom X Y f = f.hom
Instances For
Use the ConcreteCategory.hom projection for @[simps] lemmas.
Equations
- AddCommMonCat.Hom.Simps.hom X Y f = f.hom
Instances For
The results below duplicate the ConcreteCategory simp lemmas, but we can keep them for dsimp.
Equations
- CommMonCat.instInhabited = { default := CommMonCat.of PUnit.{?u.1 + 1} }
Equations
- AddCommMonCat.instInhabited = { default := AddCommMonCat.of PUnit.{?u.1 + 1} }
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.
The forgetful functor from CommMonCat to MonCat is fully faithful.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The forgetful functor from AddCommMonCat to AddMonCat is fully faithful.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
Universe lift functor for commutative monoids.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Universe lift functor for additive commutative monoids.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Build an isomorphism in the category MonCat from a MulEquiv between Monoids.
Equations
- e.toMonCatIso = { hom := MonCat.ofHom e.toMonoidHom, inv := MonCat.ofHom e.symm.toMonoidHom, hom_inv_id := ⋯, inv_hom_id := ⋯ }
Instances For
Build an isomorphism in the category AddMonCat from
an AddEquiv between AddMonoids.
Equations
- e.toAddMonCatIso = { hom := AddMonCat.ofHom e.toAddMonoidHom, inv := AddMonCat.ofHom e.symm.toAddMonoidHom, hom_inv_id := ⋯, inv_hom_id := ⋯ }
Instances For
Build an isomorphism in the category CommMonCat from a MulEquiv between CommMonoids.
Equations
- e.toCommMonCatIso = { hom := CommMonCat.ofHom e.toMonoidHom, inv := CommMonCat.ofHom e.symm.toMonoidHom, hom_inv_id := ⋯, inv_hom_id := ⋯ }
Instances For
Build an isomorphism in the category AddCommMonCat
from an AddEquiv between AddCommMonoids.
Equations
- e.toAddCommMonCatIso = { hom := AddCommMonCat.ofHom e.toAddMonoidHom, inv := AddCommMonCat.ofHom e.symm.toAddMonoidHom, hom_inv_id := ⋯, inv_hom_id := ⋯ }
Instances For
Build a MulEquiv from an isomorphism in the category MonCat.
Equations
- i.monCatIsoToMulEquiv = (MonCat.Hom.hom i.hom).toMulEquiv (MonCat.Hom.hom i.inv) ⋯ ⋯
Instances For
Build an AddEquiv from an isomorphism in the category
AddMonCat.
Equations
- i.addMonCatIsoToAddEquiv = (AddMonCat.Hom.hom i.hom).toAddEquiv (AddMonCat.Hom.hom i.inv) ⋯ ⋯
Instances For
Build a MulEquiv from an isomorphism in the category CommMonCat.
Equations
- i.commMonCatIsoToMulEquiv = (CommMonCat.Hom.hom i.hom).toMulEquiv (CommMonCat.Hom.hom i.inv) ⋯ ⋯
Instances For
multiplicative equivalences between Monoids are the same as (isomorphic to) isomorphisms
in MonCat
Equations
- mulEquivIsoMonCatIso = { hom := fun (e : X ≃* Y) => e.toMonCatIso, inv := fun (i : MonCat.of X ≅ MonCat.of Y) => i.monCatIsoToMulEquiv, hom_inv_id := ⋯, inv_hom_id := ⋯ }
Instances For
additive equivalences between AddMonoids 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 := ⋯ }
Instances For
multiplicative equivalences between CommMonoids 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 := ⋯ }
Instances For
additive equivalences between AddCommMonoids are
the same as (isomorphic to) isomorphisms in AddCommMonCat
Equations
- One or more equations did not get rendered due to their size.
Instances For
Ensure that forget₂ CommMonCat MonCat automatically reflects isomorphisms.
We could have used CategoryTheory.HasForget.ReflectsIso alternatively.
@[simp] lemmas for MonoidHom.comp and categorical identities.
The equivalence between AddCommMonCat and CommMonCat.
Equations
- One or more equations did not get rendered due to their size.