=== Necessary Condition === Let $G$ be the internal group direct product of $H_1$ and $H_2$. Then by definition the mapping: :$C: H_1 \times H_2 \to G: \map C {h_1, h_2} = h_1 \circ h_2$ is a (group) isomorphism from the cartesian product $\struct {H_1, \circ {\restriction_{H_1} } } \times \struct  {H_2, \circ {\restriction_{H_2} } }$ onto $\struct {G, \circ}$. Let the symbol $\circ$ also be used for the operation induced on $H_1 \times H_2$ by $\circ {\restriction_{H_1} }$ and $\circ {\restriction_{H_2} }$. $(1): \quad \forall h_1 \in H_1, h_2 \in H_2: h_1 \circ h_2 = h_2 \circ h_1$: This follows directly from Internal Group Direct Product Commutativity. {{wtd|Did the following get deleted by accident after a redirect, or was it just a result that nobody posted up?}} From Factor of Group Inner Direct Product is Normal it follows that the other condition: :$(1): \quad$ Either $H_1$ of $H_2$ is normal in $G$ is equivalent to this. {{qed|lemma}} $(2): \quad G = H_1 \circ H_2$ This follows directly from Subgroup Product is Internal Group Direct Product iff Surjective. {{qed|lemma}} $(3): \quad H_1 \cap H_2 = \set e$ Let $z \in H_1 \cap H_2$. From Intersection of Subgroups is Subgroup, $z^{-1} \in H_1 \cap H_2$. So $\tuple {z, z^{-1} } \in H_1 \times H_2$ and so: :$\map C {z, z^{-1} } = z \circ z^{-1} = e = \map C {e, e}$ We have by definition that $C$ is a (group) isomorphism, therefore a bijection and so an injection. So, as $C$ is injection, we have that: :$\tuple {z, z^{-1} } = \tuple {e, e}$ and therefore $z = e$. {{qed|lemma}} === Sufficient Condition === Suppose $H_1, H_2 \le G$ such that: :$(1): \quad \forall h_1 \in H_1, h_2 \in H_2: h_1 \circ h_2 = h_2 \circ h_1$ :$(2): \quad G = H_1 \circ H_2$ :$(3): \quad H_1 \cap H_2 = \set e$ all apply. Let $C: H_1 \times H_2 \to G$ be the mapping defined as: :$\forall \tuple {h_1, h_2} \in H_1 \times H_2: \map C {h_1, h_2} = h_1 \circ h_2$ Let $\tuple {x_1, x_2}, \tuple {y_1, y_2} \in H_1 \times H_2$. Then: {{begin-eqn}} {{eqn | l = \map C {\tuple {x_1, x_2} \circ \tuple {y_1, y_2} }       | r = \map C {\paren {x_1 \circ y_1}, \paren {x_2 \circ y_2} }       | c = {{Defof|Operation Induced by Direct Product}} }} {{eqn | r = \paren {x_1 \circ y_1} \circ \paren {x_2 \circ y_2}       | c = Definition of $C$ }} {{eqn | r = \paren {x_1 \circ \paren {y_1 \circ x_2} } \circ y_2       | c = Associativity of $\circ$ }} {{eqn | r = \paren {x_1 \circ \paren {x_2 \circ y_1} } \circ y_2       | c = $(1)$: $x_2$ commutes with $y_2$ }} {{eqn | r = \paren {x_1 \circ x_2} \circ \paren {y_1 \circ y_2}       | c = Associativity of $\circ$ }} {{eqn | r = \map C {x_1, x_2} \circ \map C {y_1, y_2}       | c = Definition of $C$ }} {{end-eqn}} So $C$ is a (group) homomorphism. It follows from $(2)$ that $C$ is a surjection and so, by definition, an epimorphism. As $H_1$ and $H_2$ are subgroups of $G$, they are by definition groups. Now let $h_1 \in H_1, h_2 \in H_2$ such that $h_1 \circ h_2 = e$. That is, $h_2 = h_1^{-1}$. By the Two-Step Subgroup Test it follows that $h_2 \in H_1$. By a similar argument, $h_1 \in H_2$. Thus by definition of set intersection, $h_1, h_2 \in H_1 \cap H_2$ and so $h_1 = e = h_2$. By definition of $C$, that means: :$\map C {h_1, h_2} = e \implies \tuple {h_1, h_2} = \tuple {e, e}$ That is: :$\map \ker C = \set {\tuple {e, e} }$ From the Quotient Theorem for Group Epimorphisms it follows that $C$ is a monomorphism. So $C$ is both an epimorphism and a monomorphism, and so by definition an isomorphism. Thus, by definition, $G$ is the internal group direct product of $H_1$ and $H_2$ {{qed}}