There is a branch of modern mathematics known as Category Theory
which may fairly be caricatured as the general theory of abstractions, or as the
abstract theory of generalisations. I actually rather like it, but find that it
isn't general or abstract enough; ironically, my remedy to this is to make it
both more concrete and more specific – my general formalisation of mathematics
in terms of relations (rather than sets and functions thereon) lets it be so and
yet be more general and abstract.
Category theory generally concerns itself with composing morhpisms between
objects; at least some schools of fairly orthodox category theory allow that a
so-called object
can be identified with the identity
morphism on
it, a stance which I take to the extreme of not treating objects specially at
all – hence, for example, not regarding a functor
as anything more
special than a transformation which can be combined with itself and, when it can
be combined with a transformation, yields the transformation with which it was
combined.
An orthodox category can be encoded as an associative binary operator * on its morphisms; if this is compose = (: ({morphisms}: a*b ←b :{morphisms}) ←a :{morphisms}) then we can define
b in post(i) implies i*b = band
a in pre(i) implies a*i = i}
and specify a category by the requirements: post(a*b) = post(a), pre(a*b) = pre(b) and every morphism m has a unique identity in pre(m) and a unique identity in post(m).
This gets messy when I proceed to define composition among relations to
ignore right values of its left operand that aren't left values of its right
operand, and vice versa; a relation can be composable before or after many
identities (an orthodox way out is to say we have only one identity, the global
identity on all values); it also interferes with a natural formulation of
categoric transformations which allows several functors as distinct
identities
before or after a given transformation. At the same time, the
whole business of binary operators begs to be Curried and expressed in terms
that only concern themselves with the morphisms; and the associativity property
begs for us to be considering bulk actions – taking a list and returing the
composite of the whole.
I wrote quite a bit of mess about arrow
worlds in which I began exploring how to do category theory
another
way; it is now my intent to do a tidier (and more general) job of that. My
previous analysis involved a convolution called arrow lands
which can largely be
converted to a discussion of directed graphs; this provided the framework within
which to characterise a category's composition and specify such characteristics
of transformations (and functors) as don't depend on composition itself. It is
arguable that analysis should have applied to the hom-sets rather than to the
morphisms themselves. The analysis then moved on to considering a category's
composition as a constrained binary operator – it only combines things if they
are suitably linked in the directed graphs; and the composite fits into the
directed graph as a substitute for its components. Having now explored what the
relevant digraph theory reduces to when expressed in terms of relations, I no
longer consider it worth discussing separately from the composition.
Our composition then presents two aspects. On the one hand, a relation which tells us which morphisms it is willing to compose; from which we can infer which lists of morphisms it is willing to compose. On the other hand, we have its bulk action, which actually will compose any such list. Both are naturally encoded in a binary operator, which thus necessarily occupies the fundamental position. Equally, it is the binary operator which must satisfy various criteria for the whole categoric project to be applicable. In the terminology I introduce to specify those criteria, I'll describe a binary operator, *, as categoric precisely if:
follow(*) relates x to y and y to zimplies
follow(*) relates x*y to z and x to y*zimplies
(x*y)*z = x*(y*z)
Note that orthodoxy adds requirements relating to identities, and
identifies a category as its collection of operands equipped with
the
binary operator.

Written by Eddy.