Cat::SemiRing – the category of semi-rings
Cat::SemiRing represents the category of semi-rings.
Categories
Cat::SemiRng, Cat::AbelianMonoid, Cat::Monoid
Details:
A Cat::SemiRing is essentially a ring (Cat::Ring), except that the operation + (_plus) is not required to be invertible. In other words, this is an Abelian monoid according to the operation + and a non-Abelian monoid according to the operation * (_mult) where in addition the two distributive laws and hold.
Note that a semi-ring without unit is a Cat::SemiRng.
Background:
A Cat::SemiRing is not quite a left module over itself since the category Cat::LeftModule requires the domain to be an Abelian group according to the operation + (_plus).