# Abstract Algebra

Since I mentioned the idea of monoids as a formal models of computations, John
Armstrong made the natural leap ahead, to the connection between monoids and monads - which are
a common feature in programming language semantics, and a prominent language feature in
href="http://scienceblogs.com/goodmath/goodmath/programming/haskell/">Haskell, one of my favorite programming languages.
Monads are a category theoretic construction. If you take a monoid, and use some of the constructions we've seen in the last few posts, we can move build a meta-monoid; that is,
a monoid that's built from…

While doing some reading on rings, I came across some interesting stuff about
Monoids and syntax. That's right up my alley, so I decided to write a post about that.
We start by defining a new property for monoids - a kind of equivalence
relation called a monoid congruence. A Monoid congruence defines
equivalence classes within the set of values in a monoid. The monoid congruence
relation is generally written as "~", and it's a relation between two values in a
monoid: ~⊆M×M. A monoid congruence has all of the usual properties
of an equivalence relation: it's symmetric, reflexive, and…

When I first talked about rings, I said that a ring is an algebraic
abstraction that, in a very loose way, describes the basic nature of integers. A ring is a full abelian group with respect to addition - because the integers
are an abelian group with respect to addition. Rings add multiplication with an
identity - because integers have multiplication with identity. Ring multiplication doesn't include an inverse - because there is no multiplicative inverse in
the integers.
But a ring isn't just the set of integers with addition and multiplication. It's an abstraction, and there are lots of…

By now, we've seen the simple algebraic monoid, which is essentially an
abstract construction of a category. We've also seen the more complicated, but interesting monoidal category - which is, sort of, a meta-category - a category built using categories. The monoidal category is a fairly complicated object - but it's useful.
What does a algebraic monoid look like in category theory? The categorical monoid is a complex object - a monoid built from monoids. If we render the algebraic monoid in terms of a basic category, what do we get? A monoid is, basically, a category with one object. That'…

In the last post on groups and related stuff, I talked about the algebraic construction of monoids. A monoid is, basically, the algebraic construction of a category - it's based on the same ideas, and has the same properties; just the presentation of it is different.
But you can also see a monoid in categorical terms. It's what we computer scientists would call a bootstrapped definition: we're relying on the fact that we have all of the constructs of category theory, and then using category theory to rebuild its own basic concepts.
The basic idea of the construction is to start pretty much…

In the last couple of posts, I showed how we can start looking at group
theory from a categorical perspective. The categorical approach gives us a
different view of symmetry that we get from the traditional algebraic
approach: in category theory, we see symmetry from the viewpoint of
groupoids - where a group, the exemplar of symmetry, is seen as an
expression of the symmetries of a simpler structure.
We can see similar things as we climb up the stack of abstract algebraic
constructions. If we start looking for the next step up in algebraic
constructions, the rings, we can see a very…