Definition of the Zappa–Szép product of groups in categorical terms I have learned about the general or the Zappa–Szép product of groups. The definition of the inner product is simple: if $H, K$ are subgroups of $G$, then if $G = HK$ and $H \cap K = 1$, $G$ is called the Zappa–Szép product of $H$ and $K$ (no other restrictions on $H$ and $K$ are implied).
I have some difficulty with the definition of the external product  though. Let $H$ and $K$ be groups. The definition requires one left and one right action of $H$ and $K$ on each other which satisfy a particular condition. My question is: is there a simpler definition, which maybe expresses the Zappa–Szép product by some universal property (a limit in some category) or just in terms of category theory? I have searched for a while and seen that semidirect and direct products can be expressed in such a way, but I haven't found an answer for the general product. Any suggestion would be appreciated!
Also, I see from this paper that the Zappa–Szép product definition extends far beyond groups to other algebraic structures and categories. Unfortunately, this doesn't seem to help.
 A: A definition by a universal property defines an object uniquely up to canonical isomorphism, so it cannot exist unless additional data is specified (the group is not defined by the subgroups themselves), but some definition in categorical terms can be given (as we say, the extension of groups is defined in categorical terms) .
I would define the Zappa–Szep product of the groups $H$ and $K$ as a pair of monomorphisms $a: H \to G \leftarrow K :b$ such that $a \times b$ is the initial object and $a \amalg b$ is the terminal object in the category $\rm{SubObj}(G)$.
Upd. No, that doesn't work: $a \amalg b$ is the smallest subgroup containing $H, K$. The fact that it is equal to $G$ does not imply that $HK = G$. It seems to me that it is impossible to define this operation inside the category of groups. The set $HK$ is naturally defined using the forgetful functor $\rm{Group} \to \rm{Set}$ (the standard concrete structure on Group). Also about the actions of groups on sets. If we use the functor $\rm{Group} \to \rm{Set}$, then it is easy to give a definition.
