Theorem: Characterization of Natural Transformation Between Bifunctors

Let $\mathbf C, \mathbf D$ and $\mathbf E$ be categories.
Let $F, G : \mathbf C \times \mathbf D \to \mathbf E$ be bifunctors from the product category $\mathbf C \times \mathbf D$ to the category $\mathbf E$.
For each object $C \in\mathbf C$ let: 
:$F \tuple{C, -}$ and $G \tuple{C, -}$
denote the functors obtained by substituting the first variable of $F$ and $G$, respectively, with $C$.
For each object $D \in\mathbf D$ let:
:$F \tuple{-, D}$ and $G \tuple{-, D}$
denote the functors obtained by substituting the second variable of $F$ and $G$, respectively, with $D$.
For each object $\tuple{C, D} \in \mathbf C \times \mathbf D$ let:
:$\alpha_{\tuple{C, D}} : F \tuple{C,D} \to G \tuple{C,D}$ 
denote a morphism in $\mathbf E$.
Then:
:$\alpha : F \to G$ is a natural transformation
{{iff}}
:$(1)\quad$ For each object  $C \in \mathbf C : \alpha \tuple{C, -} : F \tuple{C, -} \to G \tuple{C, -}$ is a natural transformation
:$(2)\quad$ For each object  $D \in \mathbf D : \alpha \tuple{-, D} : F \tuple{-, D} \to G \tuple{-, D}$ is a natural transformation
where:
:for objects $C \in \mathbf C$ and $D \in \mathbf D$, $\alpha \tuple{C, -}_D = \alpha_{\tuple{C, D}}$
and:
:for objects $C \in \mathbf C$ and $D \in \mathbf D$, $\alpha \tuple{-, D}_C = \alpha_{\tuple{C, D}}$

Proof:
By definition of natural transformation:
:for all morphisms $f: C \to C' \in \mathbf C$ and $g: D \to D' \in \mathbf D$ the following diagrams commute:
::<nowiki>$\begin{xy}
<0em,0em>*+{\map {F \tuple{-, D} } C} = "FCD",
<15em,0em>*+{\map {F \tuple{-, D} } {C'} } = "FC2D",
<0em,-6em>*+{\map {G \tuple{-, D} } C} = "GCD",
<15em,-6em>*+{\map {G \tuple{-, D} } {C'} } = "GC2D",
"FCD";"FC2D" **@{-} ?>*@{>} ?<>(.5)*!/_1em/{\map {F \tuple{-, D} } f },
"GCD";"GC2D" **@{-} ?>*@{>} ?<>(.5)*!/^1em/{\map {F \tuple{-, D} } f },
"FCD";"GCD" **@{-} ?>*@{>} ?<>(.5)*!/^3em/{\alpha \tuple{-, D}_C },
"FC2D";"GC2D" **@{-} ?>*@{>} ?<>(.5)*!/_3em/{\alpha \tuple{-, D}_{C'} },
<0em,-12em>*+{\map {F \tuple{C', -} } D} = "FC2D",
<15em,-12em>*+{\map {F \tuple{C', -} } {D'} } = "FC2D2",
<0em,-18em>*+{\map {G \tuple{C', -} } D} = "GC2D",
<15em,-18em>*+{\map {G \tuple{C', -} } {D'} } = "GC2D2",
"FC2D";"FC2D2" **@{-} ?>*@{>} ?<>(.5)*!/_1em/{\map {F \tuple{C', -} } g},
"GC2D";"GC2D2" **@{-} ?>*@{>} ?<>(.5)*!/^1em/{\map {G \tuple{C', -} } g},
"FC2D";"GC2D" **@{-} ?>*@{>} ?<>(.5)*!/^3em/{\alpha \tuple{C', -}_D },
"FC2D2";"GC2D2" **@{-} ?>*@{>} ?<>(.5)*!/_3em/{\alpha \tuple{C', -}_{D'} },
\end{xy}$</nowiki>
That is:
:for all morphisms $\tuple{f: C \to C', g: D \to D'} \in \mathbf C \times \mathbf D$ the following diagram commutes:
::<nowiki>$\begin{xy}
<0em,0em>*+{\map F {C, D} } = "FCD",
<12em,0em>*+{\map F {C', D} } = "FC2D",
<24em,0em>*+{\map F {C', D'} } = "FC2D2",
<0em,-6em>*+{\map G {C, D} } = "GCD",
<12em,-6em>*+{\map G {C', D} } = "GC2D",
<24em,-6em>*+{\map G {C', D'} } = "GC2D2",
"FCD";"FC2D" **@{-} ?>*@{>} ?<>(.5)*!/_1em/{\map F {f, \operatorname{id}_D} },
"GCD";"GC2D" **@{-} ?>*@{>} ?<>(.5)*!/^1em/{\map G {f, \operatorname{id}_D} },
"FCD";"GCD" **@{-} ?>*@{>} ?<>(.5)*!/^2em/{\alpha_{\tuple{C, D} } },
"FC2D";"GC2D" **@{-} ?>*@{>} ?<>(.5)*!/_2em/{\alpha_{\tuple{C', D} } },
"FC2D";"FC2D2" **@{-} ?>*@{>} ?<>(.5)*!/_1em/{\map F {\operatorname{id}_{C'}, g} },
"GC2D";"GC2D2" **@{-} ?>*@{>} ?<>(.5)*!/^1em/{\map G {\operatorname{id}_{C'}, g} },
"FC2D2";"GC2D2" **@{-} ?>*@{>} ?<>(.5)*!/_2em/{\alpha_{\tuple{C', D'} } },
\end{xy}$</nowiki>
by definitions of 
:* functors obtained by substituting the first variable and substituting the second variable
:* $\alpha \tuple{C, -}$ and $\alpha \tuple{-, D}$
By definition of bifunctor and identity morphism:
:for all morphisms $\tuple{f: C \to C', g: D \to D'} \in \mathbf C \times \mathbf D$ the following diagram commutes:
::<nowiki>$\begin{xy}
<0em,4em>*+{\map F {C, D} } = "FCD",
<12em,0em>*+{\map F {C', D} } = "FC2D",
<24em,4em>*+{\map F {C', D'} } = "FC2D2",
<0em,-10em>*+{\map G {C, D} } = "GCD",
<12em,-6em>*+{\map G {C', D} } = "GC2D",
<24em,-10em>*+{\map G {C', D'} } = "GC2D2",
"FCD";"FC2D" **@{-} ?>*@{>} ?<>(.5)*!/^1.5em/{\map F {f, \operatorname{id}_D} },
"GCD";"GC2D" **@{-} ?>*@{>} ?<>(.5)*!/_1.5em/{\map G {f, \operatorname{id}_D} },
"FCD";"GCD" **@{-} ?>*@{>} ?<>(.5)*!/^2em/{\alpha_{\tuple{C, D} } },
"FC2D";"GC2D" **@{-} ?>*@{>} ?<>(.5)*!/_2em/{\alpha_{\tuple{C', D} } },
"FC2D";"FC2D2" **@{-} ?>*@{>} ?<>(.5)*!/^1.5em/{\map F {\operatorname{id}_{C'}, g} },
"GC2D";"GC2D2" **@{-} ?>*@{>} ?<>(.5)*!/_1.5em/{\map G {\operatorname{id}_{C'}, g} },
"FC2D2";"GC2D2" **@{-} ?>*@{>} ?<>(.5)*!/_2em/{\alpha_{\tuple{C', D'} } },
"FCD";"FC2D2" **@{-} ?>*@{>} ?<>(.5)*!/_1em/{\map F {f,g} },
"GCD";"GC2D2" **@{-} ?>*@{>} ?<>(.5)*!/^1em/{\map G {f,g} },
\end{xy}$</nowiki>
It follows that $\alpha : F \to G$ is a natural transformation by definition.