Canonical morphpre_group fPh M :=
  @group _ (morphpre fPh M) (morphpre_groupset M).Canonical morphim_group fPh G := @group _ (morphim fPh G) (morphim_groupset G).Canonical morph_dom_group := group morph_dom_groupset.Notation "f @: D" := (morph_dom_group f D) : Group_scope.Definition idm of {set gT} := fun x : gT => x : FinGroup.sort gT.Canonical idm_morphism A := Morphism (@idm_morphM A).Implicit Type B : {set aT}.Local Notation fA := (restrm sAD (mfun f)).Canonical restrm_morphism :=
  @Morphism aT rT A fA (sub_in2 (subsetP sAD) (morphM f)).Canonical triv_morph A := Morphism (@trivm_morphM A).Canonical comp_morphism := Morphism comp_morphM.Notation ff := (factm sKqKf sGH).Canonical factm_morphism := Morphism factm_morphM.Implicit Types C D : {set rT}.Definition invm := factm invm_subker (subxx _).Definition misom f := morphic f && isom f.Definition morphm of morphic f := f : aT -> FinGroup.sort rT.

(* Specifications: *)
Lemma morphmE fM : morphm fM = f.