I have recently come across two examples of an algebraic structure similar to a ring, but without commutative addition. It consists of a set of values and two operations $(\sigma, +, \cdot)$, with the following axioms ($a, b, c \in \sigma$):
- $(a+b)+c=a+(b+c)$ (associativity of addition)
- $a\cdot (b+c) = a\cdot b+a\cdot c$ (distributivity of multiplication)
- $\exists 0 \in \sigma : a+0=0+a=a$ (additive identity)
- $\exists 1 \in \sigma : a \cdot 1 = 1 \cdot a = a$ (multiplicative identity)
- $\exists -a \in \sigma : a+(-a) = 0$ (additive inverse)
- $\exists a^{-1} \in \sigma : a\cdot a^{-1} = 1, a \neq 0$ (multiplicative inverse)
Is there a name for this type of structure?
Here's an example:
We start with strings, defining $+$ as concatenation (so $AAB+BCA=AABBCA$). It is clear that the empty string $\emptyset$ is the additive identity. Then we add additive inverses by defining an anti-character for every character, written with an overbar (so the inverse of $A$ is $\overline{A}$ such that $A+\overline{A}=\emptyset$, inverse of $ABB$ is $\overline{B}\overline{B}\overline{A}$, etc.) To create multiplication, we re-imagine strings as paths through space, so $A$ points right, $B$ points down, $C$ points forwards, $D$ points in a 4-dimensional unit direction, etc. Then, to multiply two characters, you place both of their vectors in space, then rotate such that $A$ points towards the direction of the left argument, then just see where the right argument points after the transformation. Since $A$ is used as the direction to point to, that causes $A$ to be the multiplicative identity. So $A\cdot B=B$, $B\cdot B=\overline{A}$, $B\cdot C = B$. To multiply a character by a whole string, you just apply the multiplication to each character: $ABC\cdot B=B\overline{A}C$. Then you can extend this single-character multiplication by multiplying every character on the left by the whole string on the right, repeatedly, and summing them (or more succinctly, $a\cdot b=\sum_{n=1}^{|n|} a_n \cdot b$). You can then extend this to multiplicative inverses, by allowing divisions between any two strings (not just ones who happen to be multiples of other strings, of course excluding right-division of $\emptyset$). Then, left-dividing by $A$ produces the inverse of a string.