module Category.introduction where
In the previous sections on groups, rings and fields we defined a bunch of structures and a bunch of morphisms on those structures. We observe that there is some pattern we follow while defining these structures:
setoid
) of objectsStructure | Totality | Associativity | Identity | Invertibility | Commutativity |
---|---|---|---|---|---|
Magma | ★ | ||||
Semigroupoid | ★ | ||||
Small Category | ★ | ★ | |||
Groupoid | ★ | ★ | ★ | ||
Semigroup | ★ | ★ | |||
Inverse Semigroup | ★ | ★ | ★ | ||
Monoid | ★ | ★ | ★ | ||
Commutative monoid | ★ | ★ | ★ | ★ | |
Group | ★ | ★ | ★ | ★ | |
Abelian group | ★ | ★ | ★ | ★ | ★ |
It turns out there is a set of basic properties of a large number of mathematical structures, one can build tools on top of these properties such that they’re applicable in a wide area of mathematics.
Category Theory is the set of tools to describe and work with generalized aspects of mathematical structures. A systematic study of category theory then allows us to prove general results about any of these types of mathematical structures. The stanford encyclopedia of philosophy describes it as:
Roughly, it is a general mathematical theory of structures and of systems of structures. At minimum, it is a powerful language, or conceptual framework, allowing us to see the universal components of a family of structures of a given kind, and how structures of different kinds are interrelated.
Different areas of math share common patterns/trends/structures. For mathematicians, this becomes extraordinarily useful when you want to solve a problem in one realm (say, topology) but don’t have the right tools at your disposal. By transporting the problem to a different realm (say, algebra), you can see the problem in a different light and perhaps discover new tools, and the solution may become much easier. The bridges between realms are also provided by category theory.
Category Theory has grown tremendously over the last few decades and has a large number of applications including:
monad
that represents side-effects, especially IO. A mixture of structures from abstract algebras
and category theory are used to form a class of programming patterns called “functional programming”.