0*1 = 0 - Category theory

Welcome to the Functional Programming Zulip Chat Archive. You can join the chat here.

Bolt

What's the name of the structure which has an element that absorbs the others like 0*1 = 0 ?

Bolt

Monoid only have an identity object which is 1 in the case of the monoid (a, *, 1), right?

Bolt

what is the structure (a, *, 1, 0) where 1 is the identity object and 0 the absorbing object?

TheMatten

Oh, sorry, now I see what you mean :sweat_smile:

Christoph Horst

I'm not aware of a special name for the structure, it will just be a semigroup or whatever with an absorbing element

Bolt

oh okay! Thanks :P

Bolt

Would something like

absorbingElement :: (Num a, Monoid a) => a
absorbingElement = mempty - mempty

be a good approach?

TheMatten

@Bolt Theoretically, nothing is stopping me from implementing NonZero type and giving it Num and Monoid instance, does it?

Bolt

you're right :frown:

Asad Saeeduddin

@Bolt I've sometimes seen that called an "annihilating element"

Asad Saeeduddin

You might be looking for a ring or some slight weakening/strengthening of that concept

Jack Henahan

@Bolt I think the literature calls that a "monoid with zero", but that's equivalent to "monoid with absorbing element" or "monoid with annihilator"

Bolt

Yes, I found semigroups with zero

Emily Pillmore

Category Theory is a trivial Category Theory

TheMatten

@Emily Pillmore I guess "Abstract" in that topic name is not "abstract" enough for this comment :smiley:

Will

just upon the concept of a near-semiring, which is equipped with an absorbing element, in case that helps

In mathematics, a near-semiring is an algebraic structure more general than a near-ring or a semiring. Near-semirings arise naturally from functions on monoids.