[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
> addition are called semi-rings.
>
> 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; ...).
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
More information about the Haskell-Cafe
mailing list