Definition irr_comp := odflt 1%irr [defXG g: (val g \in val @: XG) = (g \in XG).
  by apply/imsetP/idP=> [[h XGh] | XGg]; [move/val_inj-> | exists g].
by rewrite /= mxdirectE /=f.
rewrite PackSocleK; apply: Clifford_componentJ (subgP _).
exact: socle_simple.rewrite -eqWW'; apply: valWact.
apply/socleP; rewrite !{1}valWact 2!{1}(eqmxMr _ (valWact _ _)).
by rewrite !subgK ?groupM ?repr_mxM ?mulmxA ?andbb.

by rewrite mxrankMfree ?repr_mx_free. Qed.