What is the intuition behind pushouts and pullbacks in category theory?

Pullbacks are fibred-products, i.e., a product with some compatibility restrictions. The terminology came from differential geometry when you really pull differential forms or their bundle on $B$ back to differential forms or their bundle on $A$ along immersion $A\to B$. Product $A\times B$ is just a special case when you pullback $$ \require{AMScd} \begin{CD} @. B\\ @. @V{!}VV\\ A@>{!}>> 1 \end{CD} $$ which the terminal object $1$ doesn't impose any restrictions, and get $$ \begin{CD} A\times B@>{\operatorname{proj}_2}>> B\\ @V{\operatorname{proj}_1}VV @V{!}VV\\ A@>{!}>> 1 \end{CD} $$

Dually we have pushouts as a kind of sum, subject to some constraint. Indeed, in Sets we have the disjoint union $$ \begin{CD} \varnothing@>{!}>> B\\ @V{!}VV @V{i_2}VV\\ A@>{i_1}>> A\amalg B \end{CD} $$ as the pushout of $\varnothing\to A,B$, and we also have $$ \begin{CD} A\cap B@>>> B\\ @VVV @VVV\\ A@>>> A\cup B \end{CD}. $$ I don't think "pushout" was coined before the late-1940s when category theory came along, and merely chosen because it is clearly opposite to "pullback" (a similar word "pushforward" existed in other context but that name was not chosen).


Pullbacks generalise many common situations; they can be thought of as equationally defined sub-objects or as the subobjects of products that satisfy certain equations.

Here are a few examples of pullbacks off the top of my head:

  • inverse images are pullbacks
  • intersection of subsets is a pullback
    • more generally, intersection of (copies of) structures embedded in common larger structure, is a pullback; e.g., see here
  • equationally defined categories (including sets) are pullbacks
    • E.g., the category of elements of a functor to sets is obtained via pullback
    • E.g., the set of solutions to any equation in two unknowns, such as $3x + 2 = y$, is obtained by pullback
  • Relations are essentially spans and then relation composition is given by pullback
  • characteristic predicate for sets make certain squares pullback, and that condition is used to specify characteristic arrows and truth-objects in general categories
  • (binary) pullbacks and a terminal object yield all (finite) limits
    • E.g., products and equalisers are pullbacks

In contrast, whereas pullbacks let us intersect in a mutual context, pushouts let us union along a mutual shared context. E.g., the pushout of two graph homomorphisms $A \leftarrow I \rightarrow B$ is essentially the union $A \cup B$ but we 'identify' (glue, "make equal") all the pieces that orginate from $I$; i.e., we make the disjoint union but treat the images of $I$ as being "the same" and so do not repeat those parts.