Canonical sdpair2_morphism := Morphism sdpair2_morphM.

(* Specifications: *)
Lemma injm_sdpair1 : 'injm sdpair1.
Lemma injm_sdpair2 : 'injm sdpair2.
Lemma sdpairE (u : sdT) : u = sdpair2 u.1 * sdpair1 u.2.
Lemma sdpair_act : {in R & D,
forall x a, sdpair1 (to x a) = sdpair1 x ^ sdpair2 a}.
Lemma sdpair_setact (G : {set rT}) a : G \subset R -> a \in D ->
sdpair1 @* (to^~ a @: G) = (sdpair1 @* G) :^ sdpair2 a.
Lemma im_sdpair_norm : sdpair2 @* D \subset 'N(sdpair1 @* R).
Lemma im_sdpair_TI : (sdpair1 @* R) :&: (sdpair2 @* D) = 1.
Lemma im_sdpair : (sdpair1 @* R) * (sdpair2 @* D) = setT.
Lemma sdprod_sdpair : sdpair1 @* R ><| sdpair2 @* D = setT.
Hypotheses (sAD : A \subset D) (sGR : G \subset R).
Lemma astabEsd : 'C(G | to) = sdpair2 @*^-1 'C(sdpair1 @* G).
Lemma astabsEsd : 'N(G | to) = sdpair2 @*^-1 'N(sdpair1 @* G).
Lemma actsEsd : [acts A, on G | to] = (sdpair2 @* A \subset 'N(sdpair1 @* G)).
Lemma pprodmEl : {in H, f =1 fH}.
Canonical pprodm_morphism := Morphism pprodmM.
Lemma morphim_pprodm A B :
A \subset H -> B \subset K -> f @* (A * B) = fH @* A * fK @* B.
Lemma morphim_pprodml A : A \subset H -> f @* A = fH @* A.
Lemma morphim_pprodmr B : B \subset K -> f @* B = fK @* B.
Lemma ker_pprodm : 'ker f = [set x * a^-1 | x in H, a in K & fH x == fK a].
Lemma injm_pprodm :
'injm f = [&& 'injm fH, 'injm fK & fH @* H :&: fK @* K == fH @* K].