A push-out of a pull-back

Solution 1:

Not always.

Consider the category of groups; in the category of groups, the pullback is the fibered product, and the pushout is the amalgamated free product.

Let $X = Y$ be nontrivial, $T=X\times Y$, and take the maps $X\to T$ and $Y\to T$ to be the canonical immersions. The pullback is $$\{ (x,y)\in X\times Y\mid (x,1)=(1,y)\} = \{(1,1)\}.$$ Hence the pushout of the pullback is the pushout of the diagram that embeds the trivial group into both $X$ and $Y$; but this pushout is the free product of $X$ and $Y$, not their direct product.


Added.

However, the pullback of a pushout is already a pushout, and the pushout of a pullback is already a pushout.

That is: suppose that $$\begin{equation*}\begin{array}{rcl} Z&\stackrel{g}{\longrightarrow}&Y\\ {\scriptstyle f}\downarrow&&\\ X&& \end{array}\qquad\qquad\qquad(1)\end{equation*}$$ is a diagram, and $(p_X,p_Y,T)$ is the pushout: $$\begin{equation*}\begin{array}{rcl} Z&\stackrel{g}{\longrightarrow}&Y\\ {\scriptstyle f}\downarrow&&\downarrow{\scriptstyle p_Y}\\ X&\stackrel{p_X}{\longrightarrow}&T \end{array}\qquad\qquad\qquad(2)\end{equation*}$$ Now form the pullback of $(X,Y,T)$: $$\begin{equation*}\begin{array}{ccl} X\times_T Y&\stackrel{q_Y}{\longrightarrow}&Y\\ \!\!\!\!\!\!\!\!{\scriptstyle q_X}\downarrow&&\downarrow{\scriptstyle p_Y}\\ \!\!\!\!X&\stackrel{p_X}{\longrightarrow}&T \end{array}\qquad\qquad(3)\end{equation*}$$ Then (3) is a pushout diagram.

Indeed, note first that since $p_yg = p_Xf$ (by (2)), by the universal property of the pullback there is a unique arrow $u\colon Z\to X\times_T Y$ such that $g=q_Yu$, and $f=q_Xu$.

Now let $C$ be any object, and let $a\colon X\to C$, $b\colon Y\to C$ be arrows such that $aq_X = bq_Y$. Therefore, $aq_Xu = bq_Yu$, hence $ag = bf$. By the universal property of the pushout (using (2)), there is a unique arrow $v\colon T\to C$ such that $a=vp_X$ and $b=vp_Y$. But this is precisely what we needed to show in order to establish that (3) is a pushout diagram.

The dual argument also holds.

We are really doing three "operations" here: I'm essentially saying that "pullback2(pushout(pullback1)) = pullback1" and "pushout2(pullback(pushout1))=pushout1". The example above does not qualify because the diagram I start with is not already a pushout.