Definition of a Category (Mathematics)
--------------------------------------
By Dan Christensen
(Comments in blue)
Informally, a category is a collection of nodes (objects) connected by directed arrows (morphisms or maps) such that:
1. Every arrow has a unique source and target node.
2. Between any pair of nodes, there may any number arrows in either direction.
3. Composition of pairs of arrows are defined for arrows with compatible source and target nodes.
4. Composition of arrows with compatible node is associative.
5. Every node x has associated with it a unique identity arrow with source and target nodes of x.
Equivalent Terminology/Notation
-------------------------------
nodes = objects
arrows = morphisms or maps
arrows(x,y) = hom-class or hom-set or mor(x,y) or C(x,y)
source = domain or dom
target = codomain or cod
comp(x,y) = y o x (note reversed order of x and y)
id(x) = 1<sub>x or id<sub>x
Note that the resemblance of equivalent terminology to that of set theory can lead to some confusion for the beginner.
In category theory, for example the domain and codomain of a morphism are not necessarily sets. They should be thought
of source and target nodes at either end of an arrow. Category theory is more like graph theory than set theory in
this respect.
Formally, the ordered 7-tuple (nodes, arrows, source, target, source, comp, id) is a category if and only
if the following axioms hold:
Define: source
--------------
source is function mapping arrows to nodes
1 ALL(a):[a e arrows => source(a) e nodes]
Axiom
Define: target
--------------
target is a function mapping arrows to nodes
2 ALL(a):[a e arrows => target(a) e nodes]
Axiom
Define: comp (composition of arrows)
------------
comp is a partial functions mapping some pairs of arrows (those with compatible source and target nodes) to other arrows
Diagrammatic ordering is used, i.e. comp(x,y) is the composition of arrow x followed by arrow y.
Also written as y o x (not reversed order of x and y).
3 ALL(a):ALL(b):[a e arrows & b e arrows => [target(a)=source(b) => comp(a,b) e arrows]]
Axiom
The composition of two arrows must have source and target nodes that are compatible with those of the original arrows
4 ALL(a):ALL(b):[a e arrows & b e arrows
=> [target(a)=source(b) => source(comp(a,b))=source(a) & target(comp(a,b))=target(b)]]
Axiom
Composition of arrows is associative
5 ALL(a):ALL(b):ALL(c):[a e arrows & b e arrows & c e arrows => [target(a)=source(b) & target(b)=source(c)
=> comp(comp(a,b),c)=comp(a,comp(b,c))]]
Axiom
Define: id
----------
id is function mapping nodes to arrows
id(x) is the identity arrow associated with node x
6 ALL(a):[a e nodes => id(a) e arrows]
Axiom
Identity arrows have the same source and target
7 ALL(a):[a e nodes => source(id(a))=a & target(id(a))=a]
Axiom
The composition of any arrow x with an identity arrow (assuming compatible target and source nodes) is just arrow x
8 ALL(a):[a e arrows => ALL(b):[b e nodes => [source(a)=b => comp(id(b),a)=a]]]
Axiom
9 ALL(a):[a e arrows => ALL(b):[b e nodes => [target(a)=b => comp(a,id(b))=a]]]
Axiom
Define: arrows(a,b)
-------------------
Subset of arrows with source node a and target node b
Also called the hom-class, hom-set, hom(a,b) or C(a,b)
Note the overloading of the variable arrows:
x e arrows means x is an element of the set (or class) of arrows.
x e arrows(a,b) means x is an element the set (or class) of arrows with source node a and target note b.
10 ALL(a):ALL(b):[a e nodes & b e nodes => ALL(c):[c e arrows(a,b) <=> c e arrows & source(c)=a & target(c)=b]]
Axiom