Variable sH : socleType rH.
Definition Clifford_act (W : sH) x :=
let Gx := subgP (subg G x) in
PackSocle (component_socle sH (Clifford_simple (socle_simple W) Gx)).
Let valWact W x : (Clifford_act W x :=: W *m rG (sgval (subg G x)))%MS.
Fact Clifford_is_action : is_action G Clifford_act.
Definition Clifford_action := Action Clifford_is_action.
Local Notation "'Cl" := Clifford_action (at level 8) : action_scope.

(* Specifications: *)
Lemma val_Clifford_act W x : x \in G -> ('Cl%act W x :=: W *m rG x)%MS.
Lemma Clifford_Socle1 : Socle sH = 1%:M.
Lemma Clifford_rank_components (W : sH) : (#|sH| * \rank W)%N = n.
Theorem Clifford_component_basis M : mxsimple rH M ->
{t : nat & {x_ : sH -> 'I_t -> gT |
forall W, let sW := (\sum_j M *m rG (x_ W j))%MS in
[/\ forall j, x_ W j \in G, (sW :=: W)%MS & mxdirect sW]}}.
Lemma Clifford_astab : H <*> 'C_G(H) \subset 'C([set: sH] | 'Cl).
Lemma Clifford_astab1 (W : sH) : 'C[W | 'Cl] = rstabs rG W.
Lemma Clifford_rstabs_simple (W : sH) :
mxsimple (subg_repr rG (rstabs_sub rG W)) W.