A commuting square is called bicartesian if it is both a pullback and a pushout. I would like to show that given any diagram of abelian groups $A \stackrel{f}{\twoheadrightarrow} B\stackrel{\beta}{\hookrightarrow} C$, I can always embed this as part of a bicartesian square:
$ \newcommand{\ra}[1]{\kern-1.5ex\xrightarrow{\ \ #1\ \ }\phantom{}\kern-1.5ex} \newcommand{\da}[1]{\bigg\downarrow\raise.5ex\rlap{\scriptstyle#1}} \begin{array}{c} A & \ra{\alpha} & D \\ \da{f} & &\da{g} \\ B & \ra{\beta} & C \end{array} $
That is, I want to show there exists an abelian group $D$, an injection $\alpha: A\hookrightarrow D$, and a surjection $g: D\twoheadrightarrow C$ that makes a commutative square as above. I also know that a square is bicartesian if and only if the induced map on the cokernels (or kernels) is an isomorphism.
Let's call $K = \ker f$ and $G = \mathrm{coker}\,\beta$. I am looking for an abelian group $D$ such that the indicated square is commutative and the following diagram has exact rows and columns:
$ \newcommand{\ra}[1]{\kern-1.5ex\xrightarrow{\ \ #1\ \ }\phantom{}\kern-1.5ex} \newcommand{\da}[1]{\bigg\downarrow\raise.5ex\rlap{\scriptstyle#1}} \begin{array}{c} & &0 & &0 \\ & &\da{} & &\da{} \\ & & K & \ra{\simeq} & K \\ & & \da{k} & & \da{}\\ 0 & \ra{}& A & \ra{\alpha} & D &\ra{} &G& \ra{} & 0\\ & & \da{f} & &\da{g} & &\da{\simeq}\\ 0& \ra{}& B & \ra{\beta} & C & \ra{}& G & \ra{} & 0 \\ & &\da{} & & \da{} \\ & & 0& & 0 \end{array} $
We can pick off the following short exact sequences from the diagram:
$ 0 \to A \to D \to C \to 0$ EDIT: As Zhen pointed out, this sequence need not be exact
$ 0 \to K \to D \to C \to 0$
$ 0 \to A \to D \to G \to 0$
I think I need to find elements of $\mathrm{Ext}^{1}(C,K)$ and $\mathrm{Ext}^{1}(G,A)$, but I also need them to be mutually "compatible" (in whatever way that makes sense). I'm not sure how to algebraically express that the object $D$ I pick is able to simultaneously fit into all of these short exact sequences. I imagine that I have to use Mayer-Vietoris or the long exact sequence for Ext, but I don't have a good feel for how this should work. Any hints would be much appreciated.