Category theory

In mathematics, category theory deals in an abstract way with mathematical structures and relationships between them: it abstracts from "sets" and "functions" to "objects" and "morphisms". Categories now appear in most branches of mathematics and in some areas of theoretical computer science and mathematical physics, and have been a unifying notion. Categories were first introduced by Samuel Eilenberg and Saunders Mac Lane in 1942-1945, in connection with algebraic topology.

Category theory has several faces known not just to specialists, but to other mathematicians. A term dating from the 1940s, "general abstract nonsense", refers to its high level of abstraction, compared to more classical branches of mathematics. Homological algebra is category theory in its aspect of organising and suggesting calculations in abstract algebra. Diagram chasing is a visual method of arguing with abstract 'arrows'. Topos theory is a form of abstract sheaf theory, with geometric origins, and leads to ideas such as pointless topology.


The study of categories is an attempt to "axiomatically" capture what is commonly found in various classes of related "mathematical structures" by relating them to the "structure-preserving functions" between them. A systematic study of category theory then allows us to prove general results about any of these types of mathematical structures from the axioms of a category.

Consider the following example. The class Grp of groups consists of all objects having a "group structure". More precisely, Grp consists of all sets "G" endowed with a binary operation satisfying a certain set of axioms. One can proceed to prove theorems about groups by making logical deductions from the set of axioms. For example, it is immediately proved from the axioms that the identity element of a group is unique.

Instead of focusing merely on the individual objects (e.g. groups) possessing a given structure, category theory emphasizes the morphisms — the structure-preserving mappings — between these objects. It turns out that by studying these morphisms, we are able to learn more about the structure of the objects. In the case of groups, the morphisms are the group homomorphisms. A group homomorphism between two groups "preserves the group structure" in a precise sense — it is a "process" taking one group to another, in a way that carries along information about the structure of the first group into the second group. The study of group homomorphisms then provides a tool for studying general properties of groups and consequences of the group axioms.

A similar type of investigation occurs in many mathematical theories, such as the study of continuous maps between topological spaces in topology and the study of smooth functions in manifold theory.

If one axiomatizes relations instead of functions, one obtains the theory of allegories.


Abstracting again, a category is "itself" a type of mathematical structure, so we can look for 'processes' which preserve this structure in some sense. Such a process is called a functor. It associates to every object of one category an object of another category; and to every morphism in the first category a morphism in the second.

In fact, what we have done is define a category "of categories and functors" – the objects are categories, and the morphisms (between categories) are functors.

By studying categories and functors, we are not just studying a class of mathematical structures and the morphisms between them, we are studying the "relationships between various classes of mathematical structures". This is a fundamental idea, which first surfaced in algebraic topology. Difficult "topological" questions can be translated into "algebraic" questions which are often easier to solve. Basic constructions, such as the fundamental group of a topological space, can be expressed as functors in this way, and the concept is pervasive in algebra and its applications.

Natural transformation

Abstracting yet again, constructions are often "naturally related", a vague notion at first sight. This leads to the clarifying concept of natural transformation, a way to "map" one functor to another. Many important constructions in mathematics can be studied in this context. 'Naturality' is a principle, like general covariance in physics, that cuts deeper than is initially apparent.

Historical notes

In 1942-45, Samuel Eilenberg and Saunders Mac Lane were the first to introduce categories, functors, and natural transformations, as part of their work in topology, especially algebraic topology. Their work was an important part of the transition from intuitive and geometric homology to axiomatic homology theory. Eilenberg and Mac Lane later wrote that their goal was to understand natural transformations; in order to do that, functors had to be defined, which required categories.

Stanislaw Ulam, and some writing on his behalf, have claimed that related ideas were current in the late 1930s in Poland. Eilenberg was Polish and studied mathematics there in the 1930s. Category theory is also, in some sense, a continuation of Emmy Noether's (one of Mac Lane's teachers) work in formalizing abstract processes. Noether realized that in order to understand a type of mathematical structure, one needs to understand the processes preserving this structure. In order to achieve this understanding, Eilenberg and Mac Lane proposed an axiomatic formalization of the relation between structures and the processes preserving them.

The subsequent development of category theory was powered first by the computational needs of homological algebra; and later by the axiomatic needs of algebraic geometry, the field most resistant to being grounded in either axiomatic set theory or the Russell-Whitehead view of united foundations. General category theory, an extension of universal algebra having many new features allowing for semantic flexibility and higher-order logic, came later; it is now applied throughout mathematics.

Certain categories called topoi (singular "topos") can even serve as an alternative to axiomatic set theory as a foundation of mathematics. These foundational applications of category theory have been worked out in fair detail as a basis for, and justification of, constructive mathematics. More recent efforts to introduce undergraduates to categories as a foundation for mathematics include Lawvere and Rosebrugh (2003) and Lawvere and Schanuel (1997).

Categorical logic is now a well-defined field based on type theory for intuitionistic logics, with applications in functional programming and domain theory, where a cartesian closed category is taken as a non-syntactic description of a lambda calculus. At the very least, category theoretic language clarifies what exactly these related areas have in common (in some sense).

Categories, objects and morphisms

A "category" "C" consists of the following three mathematical entities:
* A class ob("C") of "objects";
* A class hom("C") of morphisms. Each morphism "f" has a unique "source object a" and "target object b". We write "f": "a" → "b", and we say "f" is a morphism from "a" to "b". We write hom("a", "b") [or Hom("a", "b"), or hom"C"("a", "b")] to denote the "hom-class" of all morphisms from "a" to "b". (Some authors write Mor("a", "b") or C("a", "b").)
* A binary operation circ, called "composition of morphisms", such that for any three objects "a", "b", and "c", we have hom("a", "b") × hom("b", "c") → hom("a", "c"). The composition of "f": "a" → "b" and "g": "b" → "c" is written as gcirc f or "gf" (some authors write "fg"), governed by two axioms::* Associativity: If "f" : "a" → "b", "g" : "b" → "c" and "h" : "c" → "d" then hcirc(gcirc f)=(hcirc g)circ f, and:* Identity: For every object "x", there exists a morphism 1"x" : "x" → "x" called the "identity morphism for x", such that for every morphism "f" : "a" → "b", we have { m 1}_bcirc f=f=fcirc{ m 1}_a.

From these axioms, it can be proved that there is exactly one identity morphism for every object. Some authors deviate from the definition just given by identifying each object with its identity morphism.

Relations among morphisms (such as "fg" = "h") are often depicted using commutative diagrams, with "points" (corners) representing objects and "arrows" representing morphisms. The influence of commutative diagrams has been such that "arrow" and morphism are now synonymous.

Properties of morphisms

Some morphisms have important properties. A morphism "f" : "a" → "b" is:
* a monomorphism (or "monic") if "f"o"g"1 = "f"o"g"2 implies "g"1 = "g"2 for all morphisms "g"1, "g2" : "x" → "a".
* an epimorphism (or "epic") if "g"1o"f" = "g"2o"f" implies "g1" = "g2" for all morphisms "g1", "g2" : "b" → "x".
* an isomorphism if there exists a morphism "g" : "b" → "a" with "f"o"g" = 1"b" and "g"o"f" = 1"a". [Note that a morphism that is both epic and monic is not necessarily an isomorphism! For example, in the category consisting of two objects "A" and "B", the identity morphisms, and a single morphism "f" from "A" to "B", "f" is both epic and monic but is not an isomorphism.]
* an endomorphism if "a" = "b". end("a") denotes the class of endomorphisms of "a".
* an automorphism if "f" is both an endomorphism and an isomorphism. aut("a") denotes the class of automorphisms of "a".


Functors are structure-preserving maps between categories. They can be thought of as morphisms in the category of all (small) categories.

A (covariant) functor "F" from a category "C" to a category "D", written "F":"C" → "D", consists of:
* for each object "x" in "C", an object "F"("x") in "D"; and
* for each morphism "f" : "x" → "y" in "C", a morphism "F"("f") : "F"("x") → "F"("y"),

such that the following two properties hold:
* For every object "x" in "C", F(1_x) = 1_{F(x)};
* For all morphisms "f" : "x" → "y" and "g" : "y" → "z", F(gcirc f)=F(g)circ F(f).

A contravariant functor "F": "C" → "D", is like a covariant functor, except that it "turns morphisms around" ("reverses all the arrows"). More specifically, every morphism "f" : "x" → "y" in "C" must be assigned to a morphism "F"("f") : "F"("y") → "F"("x") in "D". In other words, a contravariant functor is a covariant functor from the opposite category "C"op to "D".

Natural transformations and isomorphisms

A "natural transformation" is a relation between two functors. Functors often describe "natural constructions" and natural transformations then describe "natural homomorphisms" between two such constructions. Sometimes two quite different constructions yield "the same" result; this is expressed by a natural isomorphism between the two functors.

If "F" and "G" are (covariant) functors between the categories "C" and "D", then a natural transformation from "F" to "G" associates to every object "x" in "C" a morphism η"x" : "F"("x") → "G"("x") in "D" such that for every morphism "f" : "x" → "y" in "C", we have η"y" o "F"("f") = "G"("f") o η"x"; this means that the following diagram is commutative:

The two functors "F" and "G" are called "naturally isomorphic" if there exists a natural transformation from "F" to "G" such that η"x" is an isomorphism for every object "x" in "C".

Universal constructions, limits, and colimits

Using the language of category theory, many areas of mathematical study can be cast into appropriate categories, such as the categories of all sets, groups, topologies, and so on. These categories surely have some objects that are "special" in a certain way, such as the empty set or the product of two topologies. Yet, in the definition of a category, objects are considered to be atomic; i.e., "we do not know" whether an object "A" is a set, a topology, or any other abstract concept. Hence, the challenge is to define special objects without referring to the internal structure of these objects. But how can we define the empty set without referring to elements, or the product topology without referring to open sets?

The solution is to characterize these objects in terms of their relations to other objects, as given by the morphisms of the respective categories. Thus the task is to find "universal properties" that uniquely determine the objects of interest. Indeed, it turns out that numerous important constructions can be described in a purely categorical way. The central concept which is needed for this purpose is called categorical "limit", and can be dualized to yield the notion of a "colimit".

Equivalent categories

It is a natural question to ask, under which conditions two categories can be considered to be "essentially the same", in the sense that theorems about one category can readily be transformed into theorems about the other category. The major tool one employs to describe such a situation is called "equivalence of categories". It is given by appropriate functors between two categories. Categorical equivalence has found numerous applications in mathematics.

Further concepts and results

The definitions of categories and functors provide only the very basics of categorical algebra. Additional important topics are listed below. Although there are strong interrelations between all of these topics, the given order can be considered as a guideline for further reading.
* The functor category "D""C" has as objects the functors from "C" to "D" and as morphisms the natural transformations of such functors. The Yoneda lemma is one of the most famous basic results of category theory; it describes representable functors in functor categories.
* Duality: Every statement, theorem, or definition in category theory has a "dual" which is essentially obtained by "reversing all the arrows". If one statement is true in a category "C" then its dual will be true in the dual category "C"op. This duality, which is transparent at the level of category theory, is often obscured in applications and can lead to surprising relationships.
* Adjoint functors: A functor can be left (or right) adjoint to another functor that maps in the opposite direction. Such a pair of adjoint functors typically arises from a construction defined by a universal property; it can be seen as a more abstract and powerful view on universal properties.

Higher-dimensional categories

Many of the above concepts, especially equivalence of categories, adjoint functor pairs, and functor categories, can be situated into the context of "higher-dimensional categories". Briefly, if we consider a morphism between two objects as a "process taking us from one object to another", then higher-dimensional categories allow us to profitably generalize this by considering "higher-dimensional processes".

For example, a (strict) 2-category is a category together with "morphisms between morphisms", i.e. processes which allow us to transform one morphism into another. We can then "compose" these "bimorphisms" both horizontally and vertically, and we require a 2-dimensional "exchange law" to hold, relating the two composition laws. In this context, the standard example is Cat, the 2-category of all (small) categories, and in this example, bimorphisms of morphisms are simply natural transformations of morphisms in the usual sense. Another basic example is to consider a 2-category with a single object—these are essentially monoidal categories. Bicategories are a weaker notion of 2-dimensional categories where the composition of morphisms is not strictly associative, but only associative "up to" an isomorphism.

This process can be extended for all natural numbers "n", and these are called "n"-categories. There is even a notion of "ω-category" corresponding to the ordinal number ω. For a conversational introduction to these ideas, see [ Baez (1996).]

See also

* List of category theory topics
* Important publications in category theory
* Glossary of category theory
* Domain theory
* Enriched category theory
* Higher category theory
* Timeline of category theory and related mathematics



Freely available online:
* Adámek, Jiří, Herrlich, Horst, & Strecker, George E. (1990) [ "Abstract and concrete categories"] . John Wiley & Sons. ISBN 0-471-60922-6.
* Freyd, Peter J. (1964) " [ Abelian Categories.] " New York: Harper and Row.
* Michael Barr and Charles Wells (1999) " [ Category Theory Lecture Notes.] " Based on their book "Category Theory for Computing Science".
* -------- (2002) [ "Toposes, triples and theories.] " Revised and corrected translation of "Grundlehren der mathematischen Wissenschaften" (Springer-Verlag, 1983).
* Leinster, Tom (2004) " [ Higher operads, higher categories] " (London Math. Society Lecture Note Series 298). Cambridge Univ. Press.
* Schalk, A. and Simmons, H. (2005) " [ An introduction to Category Theory in four easy movements.] " Notes for a course offered as part of the MSc. in Mathematical Logic, Manchester University.
* Turi, Daniele (1996-2001) " [ Category Theory Lecture Notes.] " Based on Mac Lane (1998).
* Goldblatt, R (1984) [;cc=math;view=toc;subview=short;idno=Gold010 "Topoi: the Categorial Analyis of Logic"] A clear introduction to categories, with particular emphasis on the recent applications to logic.
* A. Martini, H. Ehrig, and D. Nunes (1996) [ "Elements of Basic Category Theory"] (Technical Report 96-5, Technical University Berlin)

* Awodey, Steven (2006) "Category Theory" (Oxford Logic Guides 49). Oxford University Press.
* Borceux, Francis (1994) "Handbook of categorical algebra" (Encyclopedia of Mathematics and its Applications 50-52). Cambridge Univ. Press.
* Freyd, Peter J. & [ Scedrov, Andre] , (1990) "Categories, allegories" (North Holland Mathematical Library 39). North Holland.
*Hatcher, William S. (1982) "The Logical Foundations of Mathematics", 2nd ed. Pergamon. Chpt. 8 is an idiosyncratic introduction to category theory, presented as a first order theory.
* Lawvere, William, & Rosebrugh, Robert (2003) "Sets for mathematics". Cambridge University Press.
* Lawvere, William, & Schanuel, Steve (1997) "Conceptual mathematics: a first introduction to categories". Cambridge University Press.
* Mac Lane, Saunders (1998) "Categories for the Working Mathematician". 2nd ed. (Graduate Texts in Mathematics 5). Springer-Verlag.
*-------- and Garrett Birkhoff (1967) "Algebra". 1999 reprint of the 2nd ed., Chelsea. ISBN 0-8218-1646-2. An introduction to the subject making judicious use of category theoretic concepts, especially commutative diagrams.
*May, Peter (1999) "A Concise Course in Algebraic Topology". University of Chicago Press, ISBN 0-226-51183-9.
*Pedicchio, Maria Cristina & Tholen, Walter (2004) "Categorical foundations" (Encyclopedia of Mathematics and its Applications 97). Cambridge Univ. Press.
*Taylor, Paul, 1999. "Practical Foundations of Mathematics". Cambridge University Press. An introduction to the connection between category theory and constructive mathematics.
*Pierce, Benjamin, 1991. "Basic Category Theory for Computer Scientists". MIT Press.

External links

* Stanford Encyclopedia of Philosophy: " [ Category Theory] " -- by Jean-Pierre Marquis. Extensive bibliography.
* [ Homepage of the Categories mailing list,] with extensive resource list.
* Baez, John, 1996," [ The Tale of "n"-categories.] " An informal introduction to higher order categories.
* [ The catsters] " a Youtube channel about category theory.
*planetmath reference|id=5622|title=Category Theory
* [ Categories, Logic and the Foundations of Physics] , Webpage dedicated to the use of Categories and Logic in the Foundations of Physics.

Wikimedia Foundation. 2010.

Look at other dictionaries:

  • category theory — noun A branch of mathematics which deals with spaces and maps between them in abstraction, taking similar theorems from various disparate more concrete branches of mathematics and unifying them …   Wiktionary

  • Outline of category theory — The following outline is provided as an overview of and guide to category theory: Category theory – area of study in mathematics that examines in an abstract way the properties of particular mathematical concepts, by formalising them as… …   Wikipedia

  • List of category theory topics — This is a list of category theory topics, by Wikipedia page. Specific categories *Category of sets **Concrete category *Category of vector spaces **Category of graded vector spaces *Category of finite dimensional Hilbert spaces *Category of sets… …   Wikipedia

  • Monad (category theory) — For the uses of monads in computer software, see monads in functional programming. In category theory, a branch of mathematics, a monad, Kleisli triple, or triple is an (endo )functor, together with two natural transformations. Monads are used in …   Wikipedia

  • Higher category theory — is the part of category theory at a higher order, which means that some equalities are replaced by explicit arrows in order to be able to explicitly study the structure behind those equalities. Contents 1 Strict higher categories 2 Weak higher… …   Wikipedia

  • Timeline of category theory and related mathematics — This is a timeline of category theory and related mathematics. By related mathematics is meant first hand * Homological algebra * Homotopical algebra * Topology using categories, especially algebraic topology * Categorical logic * Foundations of… …   Wikipedia

  • Cone (category theory) — In category theory, a branch of mathematics, the cone of a functor is an abstract notion used to define the limit of that functor. Cones make other appearances in category theory as well. Contents 1 Definition 2 Equivalent formulations 3 Category …   Wikipedia

  • Nerve (category theory) — In category theory, the nerve N(C) of a small category C is a simplicial set constructed from the objects and morphisms of C. The geometric realization of this simplicial set is a topological space, called the classifying space of the category C …   Wikipedia

  • Kernel (category theory) — In category theory and its applications to other branches of mathematics, kernels are a generalization of the kernels of group homomorphisms and the kernels of module homomorphisms and certain other kernels from algebra. Intuitively, the kernel… …   Wikipedia

  • Diagram (category theory) — In category theory, a branch of mathematics, a diagram is the categorical analogue of an indexed family in set theory. The primary difference is that in the categorical setting one has morphisms. An indexed family of sets is a collection of sets …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”