Julio Song wrote:

>What Keith's string diagram helped me realize (by completely omitting the bottom-side of the square) is precisely the point that we do not care whether or not there exist independent \\(d \to d'\\) arrows but merely want to _determine a dependent one_ via manipulating \\(f\\), \\(h\\), and \\(g\\).

That is exactly what the \\(\mathrm{hom}\\) functor is doing.

Also, my diagram reminds me of a [stalagmite](https://en.wikipedia.org/wiki/Stalagmite).

In fact, you gave me an idea as to how to give a possible formal definition of \\(\mathrm{hom}\\),

\\[

\mathrm{hom}(f,g)(h)=\begin{cases}

u := g\circ h \circ f & \text{ if } target(f)=source(h) \\\\

& \text{ and } target(h)=source(g)\\\\

& \\\\

\varnothing & \text{ otherwise.}

\end{cases}

\\]

>What Keith's string diagram helped me realize (by completely omitting the bottom-side of the square) is precisely the point that we do not care whether or not there exist independent \\(d \to d'\\) arrows but merely want to _determine a dependent one_ via manipulating \\(f\\), \\(h\\), and \\(g\\).

That is exactly what the \\(\mathrm{hom}\\) functor is doing.

Also, my diagram reminds me of a [stalagmite](https://en.wikipedia.org/wiki/Stalagmite).

In fact, you gave me an idea as to how to give a possible formal definition of \\(\mathrm{hom}\\),

\\[

\mathrm{hom}(f,g)(h)=\begin{cases}

u := g\circ h \circ f & \text{ if } target(f)=source(h) \\\\

& \text{ and } target(h)=source(g)\\\\

& \\\\

\varnothing & \text{ otherwise.}

\end{cases}

\\]