# Abstract Algebra

### Meta out the wazoo: Monads and Monoids

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…

### Monoids and Computation: Syntactic Monoids

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…

### Ideals - Abstract Integers

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…

### Full Circle: the Categorical Monoid

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'…

### This is getting fun! On to Monoidal Categories.

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…

### Abstract Algebra and Computation - Monoids

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…