# [Haskell-cafe] Re: Num instances for 2-dimensional types

Joe Fredette jfredett at gmail.com
Wed Oct 7 17:51:54 EDT 2009

```I was just quoting from Hungerford's Undergraduate text, but yes, the
"default ring" is in {Rng, Ring}, I haven't heard semirings used in
the sense of a Rng. I generally find semirings defined as a ring
structure without additive inverse and with 0-annihilation (which one
has to assume in the case of SRs, I included it in my previous
definition because I wasn't sure if I could prove it via the axioms, I
think it's possible, but I don't recall the proof).

Wikipedia seems to agree with your definition, though it does have a
note which says some authors use the definition of Abelian Group +
Semigroup (my definition) as opposed to Abelian Group + Monoid (your
defn).

Relevant:

http://en.wikipedia.org/wiki/Semiring
http://en.wikipedia.org/wiki/Ring_(algebra)
http://en.wikipedia.org/wiki/Ring_(algebra)#Notes_on_the_definition

/Joe

On Oct 7, 2009, at 5:41 PM, Daniel Fischer wrote:

> Am Mittwoch 07 Oktober 2009 22:44:19 schrieb Joe Fredette:
>> A ring is an abelian group in addition, with the added operation (*)
>> being distributive over addition, and 0 annihilating under
>> multiplication. (*) is also associative. Rings don't necessarily need
>> _multiplicative_ id, only _additive_ id. Sometimes Rings w/o ID is
>> called a Rng (a bit of a pun).
>>
>> /Joe
>
> In my experience, the definition of a ring more commonly includes
> the multiplicative
> identity and abelian groups with an associative multiplication which
> distributes over
>
> There is no universally employed definition (like for natural
> numbers, is 0 included or
> not; fields, is the commutativity of multiplication part of the
> definition or not;
> compactness, does it include Hausdorff or not; ...).
> _______________________________________________