Maths - Category Theory - Natural Transformations

natural transformation A natural transformation is a mapping between two functors. The functors must have the same domain and codomain as each other. There is also the natuality square condition that must apply for this to be a natural transformation as we shall see below.


For components we will be working in terms of internal objects:

natural transformation component


First we take an object 'x' in 'C' and we see that this maps to a morphism in 'D'.

For every object 'x' in C there is a morphism in D (f x -> g x) known as the components of α at x written αx.

naturality square

Natuality Square

So now we know what happens to on object in 'C', we now want to know what happens to structure in 'C', for this we see what happens to a morphism in 'C'.

A morphism in C would map to two component morphisms in D. This diagram must commute for every morphism in C.

So αx is the component of the natural transform at x and αy is the component of the natural transform at y. For naturality we require that the square in D commutes, that is,

αy• M = N • αx

where: M = F m
and N = G m

so: αy• F m = G m • αx

Here is a more schematic view of the
natuality square. The outside square must
commute like this:

For a natural transformation α: F -> G
iiffor allm: C -a-> D
αddFm = Gm•dαc

natuality square schematic

naturality 2-categories


We could generalise this to any structure in C which would have two components in D. Usually we define categories from the outside using arrows, in this case we look 1 level inside the category, two layers of category are known as a 2-category.

natural transformation compose vertical

Composition Vertical

We can apply α to F to get G and then β to get H.

natural transformation horizontal composition

Composition Horizontal


Horizontal and Vertical Composition

So a natural transformation adds another layer on top of functors. When we looked at functors we saw that we can see them at two levels, we can see them in terms of internal objects, or we can 'lift' the view to be in terms of structure.

So how can functors of functors occur? That is functors that map one functor to another, there are at least two ways which I will show here as horizontal or vertical:

Horizontal natural transform horizontal component The first way that we can get functors of functors is not new, it arises from morphisms. A function of components (x and y) gives rise to a function of the function 'h'.
Vertical natural transform vertical component

The natural transform is shown here as a vertical double arrow.

We can 'lift' the view, so that the natural transformation relates the functors F & G in a way that is independent of the underlying categories C & D.

So we have a morphism of functors, that is we can regard the functors as objects and α as a functor.

Square (combination of horizontal and vertical) natuality square

The natuality square requirement combines these vertical and horizontal functors into to a square which must commute for naturality.

αy º F(h) = G(h) º αx

or if we notate: βF = F(h) and βG= G(h):

αy º βF = βG º αx

So now we have 3 levels at which we can view natural transformations:

When working at level 1 and 2 we must remember that the natuality square (see below) applies but when we include the lowest level natuality comes out of the diagram automatically, so we will start by working in terms of the internal objects, until the natuality square becomes intuitive.


Example - Computer Language Types - Lists

On the functor page we saw how an example of lists (as used in computer languages) could be seen as instances of functors, here we extend that example to natural transformations.

list reverse If we have a functor: C -> List (C) then we can define a natural transformation 'reverse' which reverses the order of the list. This is defined in a way that is independent of whether it is a list of integers, booleans or whatever.
list reverse example Natuality square for List(Int)

In the case of containers like this:

A list may also be thought of as a cartesian product.

Take example 'C' is a set containing elements such as x and y. 'D' contains lists written as [x] for a list with a single element x.

natuality square example

The carteasian product of x1 and x2 in set is mapped to a list containg x1 and x2.

Example 2 - Permutation Groups

As our category with the object being a set and the morhisms being the permutations of the set elements.

We can think of composition of these permutations as being a natural transformation.

See Yonada lemma.

group permutation


On site here are definitions in Isabella.

Related Subjects

Combinatory Logic

metadata block
see also:
Correspondence about this page

Book Shop - Further reading.

Where I can, I have put links to Amazon for books that are relevant to the subject, click on the appropriate country flag to get more details of the book or to buy it from them.

flag flag flag flag flag flag The Princeton Companion to Mathematics - This is a big book that attempts to give a wide overview of the whole of mathematics, inevitably there are many things missing, but it gives a good insight into the history, concepts, branches, theorems and wider perspective of mathematics. It is well written and, if you are interested in maths, this is the type of book where you can open a page at random and find something interesting to read. To some extent it can be used as a reference book, although it doesn't have tables of formula for trig functions and so on, but where it is most useful is when you want to read about various topics to find out which topics are interesting and relevant to you.


Terminology and Notation

Specific to this page here:


This site may have errors. Don't use for critical systems.

Copyright (c) 1998-2017 Martin John Baker - All rights reserved - privacy policy.