Given fixed objects A,B,C and morphisms g,f then a pullback is P with some universal property. | ![]() |
Pullback is a:
- Generalisation of both intersection an inverse.
- If a category has binary products and equalisers, then it has pullbacks.
In programming terms it is related to the concept of indexing.
The pullback is like a type of division for function composition, in other words if multiplication is function composition then what is division? This comes in left and right flavors that is:
if h = g o f
- We know f and h, how do we find g?
- We know g and h, how do we find f?
Pullbacks | Pushout | |
---|---|---|
universal cone over diagram | ||
P is the pullback of f along g or g along f (A,B,C fixed) . Square must commute (in best possible way) so any other square, also containing (A,B,C) must uniquely map to it. |
![]() P is the pushout of A,B,C |
|
generalisation |
|
a kind of colimit |
examples: set: | Σ<a,b> where: k(x) maps to <j(x),i(x)> called a fibred product. |
A U B /equivalence relation |
In concrete categories the Cartesian product is often the categorical product. The pullback is like the categorical product but with additional conditions. So in the following examples we have a Cartesian product with a subset of the rows and columns.
Examples in Set
Set Example 1
This diagram is both a pullback and a pushout. | ![]() |
Set Example 2
How does the above example relate to the idea that the pullback is a subset of the cartesian product of two sets? We have this restriction on the Cartesian product:
Σ<a,b>A×B| f(a)=g(b)
So, in this example, 'P' contains only the subset of the Cartesian product shown in red (that is <e,e>). | ![]() |
Example in Number ExpressionsThis generates pairs of elements <a, b> : P with a in A, b in B, such that f(a) = g(b). So the requirement for this square to commute generates in P all the possible pairs of numbers that are equal to each other. So, in the example on the right, 4 is a 'representative' for all the things it is equal to such as 2+2 and 3+1. Sometimes the notation [4] is used for the set of all the things it is equal to (although this notation could be confused with list). More about this on Leibniz equality page. |
![]() |
Examples in Graphs
- Pullbacks always exist.
- Pushouts do not necessarily exist.
In this example only the red arrows go both ways round the square so only the red arrows exist in 'G'. |
![]() |
Examples in Groups
![]() |
Example - Type Theory - Substitution as Pullback
see:
- Substitution and adjunction discussed on this page.
- Pullback and equality discussed on this page.
- Equality discussed on this page.
Substitution as Pullback
Can we express substitution in category theory terms? See discussion on page here.
Substitution of a term into a predicate is pullback, but substitution of a term into a term is composition. | |
Type theory version | Substitution of a term into a dependant type is pullback, but substitution of a term into a term is composition. |
There is a discussion of this topic on this site.
So why the difference? I think in the predicate case we are going backwards.
Typically a predicate could be an equation which may be true or false depending on the values of its variables. Or a function from a variable to bool (or some truth object). |
![]() |
Pullback as generalisation of Inverse
Hence we have two morphisms to C so this looks like the given part of a pullback. |
![]() |
![]() |
To complete the square we add cone for this diagram and we call it f-1(B) to emphasise that it is the inverse of 'f'. |
Reversing a function can generate interesting structure, for example, reversing addition on natural numbers leads to the integers and reversing multipication leads to fractional numbers.
If we reverse a surjective mapping, where many elements in the domain map to a single element in the codomain, then reversing the function gives a fibre bundle. | ![]() |
If we reverse a injective mapping, where not all elements in the codomain are mapped to, then reversing the function gives a subobject structure. | ![]() |
Relationship to Equaliser
If the category A is the same as the category B then the pullback becomes an equaliser. See equalisers on this page. |
![]() |
Related Pages
Examples in Various Categories
Product (pullback) |
||
---|---|---|
![]() |
||
generalisation | a kind of limit | |
set example | ![]() |
cartesian product {a,b,c}*{x,y}= |
group | the product is given by the cartesian product with multiplication defined componentwise. | |
Grp (abelian) | direct sum | |
vector space | direct sum | |
poset | greatest lower bound meet |
|
base topological space | ||
POS | greatest lower bounds (meets) |
|
Rng | ||
Top | the space whose underlying set is the cartesian product and which carries the product topology | |
Grf | ||
category | objects: (a,b) morphism: (a,b)->(a',b') |
tensor products are not categorial products.
In the category of pointed spaces, fundamental in homotopy theory, the coproduct is the wedge sum (which amounts to joining a collection of spaces with base points at a common base point).