Solution (source code)

= Solution

First construct every finite <product in a category> by iterating binary <products in a category>; the empty product is the <terminal object>. Let $D:J\to\mathcal C$ be a <diagram in a category> with finitely many objects and arrows. Form the finite <products in a category>
$$
P=\prod_{j\in\operatorname{Ob}J}D(j),\qquad
Q=\prod_{u:i\to j\text{ in }J}D(j).
$$
Define $a,b:P\rightrightarrows Q$ by their components
$$
\pi_u a=D(u)\pi_i,\qquad \pi_u b=\pi_j.
$$
Take their <equalizer> $e:L\to P$. Its components $p_j=\pi_j e$ satisfy $D(u)p_i=p_j$, so they form a <cone over a diagram>.

For any other <categorical cone> $x_j:X\to D(j)$, the <product in a category> property supplies a unique $x:X\to P$ with $\pi_jx=x_j$. The cone equations imply $ax=bx$, so the <equalizer> property supplies a unique $\bar x:X\to L$ with $e\bar x=x$. These are exactly the required equations $p_j\bar x=x_j$, with uniqueness. Thus $L$ is a <categorical limit>. For empty $J$, both products are terminal and this construction still gives a terminal limit. \b[All finite limits exist.]