# Algebraic structure tree

Some classes of algebraic structure are given special names based on the properties of their sets and operations. These terms grew organically over the history of modern mathematics, so the overall list of names is a bit arbitrary (and in a few cases, some authors will use slightly different assumptions about certain terms, such as whether a semiring needs to have identity elements). This list is intended to clarify the situation to someone who has some familiarity with what an algebraic structure is, but not a lot of experience with using these specific terms.

# One set, one binary operation

Groupoid, sometimes known as a magma. This is the freebie. Have a set and a binary operation? That’s a groupoid.

A semigroup is a groupoid where

*the operation is associative*.A monoid is a semigroup where

*the operation has an identity element*.A group is a monoid where

*every element has an inverse element under the binary operation*.An Abelian group is a group where

*the binary operation is commutative*.

A semilattice is a semigroup where

*the operation is idempotent and commutative*.

A quasigroup is a groupoid where

*every element has a left and right quotient under the binary operation*(sometimes called the Latin square property).A loop is a quasigroup

*with identity*.A

**group**, as defined above, can also be defined as a (non-empty) quasigroup where*the operation is associative*(quotients and associativity give a two-sided identity and two-sided inverses, provided there’s at least one element to be that identity).

# One set, two binary operations

For the below, we’ll use \(*\) and \(\circ\) to denote the two binary operations in question. It might help to think of \(*\) as “like addition” and \(\circ\) as “like multiplication”, but be careful—in most of these structures, properties of addition and multiplication like commutativity won’t be assumed!

Ringoid assumes only that \(\circ\) distributes over \(*\)—in other words, \(a \circ (b \* c) = (a \circ b) \* (a \circ c)\) and \((a \* b) \circ c = (a \circ c) \* (b \circ c)\).

A semiring is a ringoid where

*both \(*\) and \(\circ\) define semigroups*.An additive semiring is a semiring where \(*\)

*is commutative*.A rig is an additive semiring where \(*\)

*has an identity element*. (It’s almost a ring! It’s just missing**n**egatives.)A ring is a rig where

*every element has an inverse element under*\(*\). (Some authors also require \(\circ\) to have an identity to call the structure a ring.)A

**ring with unity**is a ring where \(\circ\)*has an identity*. (Some authors just use the word “ring” for this; others use variations like “unit ring”.)A division ring is a ring with unity where

*every element (except for the identity of \(*\)) has an inverse element under*\(\circ\).A field is a division ring where \(\circ\)

*is commutative*.

A lattice is a ringoid where

*both \(*\) and \(\circ\) define semilattices, and satisfy the absorption laws (\(a \circ (a \* b) = a \* (a \circ b) = a\))*. (While we’ll continue to use \(*\) and \(\circ\) here, the two operations of a lattice are almost always denoted with \(\wedge\) and \(\vee\).)A bounded lattice is a lattice where

*both operations have identities*.

Parents:

Here are some things I’d love to be able to add to this page to make it more explanatory (some of these might be technical features, some an invitation to brainstorm more creative visualizations):

Tables! Specifically, a table of the structures going down and the properties they require going across would be a much clearer way to summarize this information. I tried HTML tables and preformatted-text ASCII tables here but couldn’t get either to work.

Some indication of what collection of properties imply other properties, or what collection of properties don’t get their own name because they’re logically impossible.

A way to toggle between different naming conventions, as described in the text when different authors assume different axioms with the same word.

Visual highlighting for the most important members of the tree—if you’re just starting out in abstract algebra, knowing what a field is is much more important than knowing what a rig is.

I’ve added a +1 and link to this from the make tables possible bug. Currently, the workaround is to use images, but that’s clearly not very good, does not allow links, etc.

For 3, do you think that would often be useful, and much better than having clarifications in parentheses?

For 4, maybe just bold the important ones? Would work better when tables are possible, though.

Also, if you think the name is suboptimal, feel free to bring it up on the #math Slack and change unless people object.

For 3, I imagine clarifications in parentheses are okay, maybe good enough, for the math domain. A more high-powered solution probably wouldn’t come in handy all that often, and tables would probably help with the visual clutter. But I wonder as Arbital turns its eye towards more subjective domains whether the problem of describing theories or taxonomies that vary somewhat in the wild will come up more frequently, where statically explaining the multiple conventions in use ends up being considerably more complex to read than giving a more dynamic presentation. Less “this is a feature you need”, more “this is an interesting opportunity to deliver a better learning experience than a textbook or encyclopedia article could provide”.