Definition perm_of_baseFinGroupMixin : FinGroup.mixin_of (perm_type T) :=
  FinGroup.Mixin perm_mulP perm_oneP perm_invP.Canonical perm_baseFinGroupType :=
  Eval hnf in BaseFinGroupType (perm_type T) perm_of_baseFinGroupMixin.Canonical perm_finGroupType := @FinGroupType perm_baseFinGroupType perm_invP.

(* Specifications: *)
Lemma perm1 x : (1 : {perm T}) x = x.
Lemma permM s t x : (s * t) x = t (s x).
Lemma permK s : cancel s s^-1.
Lemma permKV s : cancel s^-1 s.
Lemma permJ s t x : (s ^ t) (t x) = t (s x).
Lemma perm_on1 H : perm_on H 1.
Lemma perm_onM H s t : perm_on H s -> perm_on H t -> perm_on H (s * t).