Section IrrComponent.
(* The component of the socle of the regular module that is associated to an *)
(* irreducible representation.                                               *)
Variables (n : nat) (rG : mx_representation F G n).
Local Notation E_G := (enveloping_algebra_mx rG).
Let not_rsim_op0 (iG j : sG) A :
mx_rsim rG (socle_repr iG) -> iG != j -> (A \in 'R_j)%MS ->
gring_op rG A = 0.
Definition irr_comp := odflt 1%irr [pick i | gring_op rG 'e_i != 0].
Local Notation iG := irr_comp.
Hypothesis irrG : mx_irreducible rG.

(* Specifications: *)
Lemma rsim_irr_comp : mx_rsim rG (irr_repr iG).
Lemma irr_comp'_op0 j A : j != iG -> (A \in 'R_j)%MS -> gring_op rG A = 0.
Lemma ker_irr_comp_op : ('R_iG :&: kermx (lin_mx (gring_op rG)))%MS = 0.
Lemma regular_op_inj :
{in [pred A | (A \in 'R_iG)%MS] &, injective (gring_op rG)}.
Lemma rank_irr_comp : \rank 'R_iG = \rank E_G.
End IrrComponent.
Lemma irr_comp_rsim n1 n2 rG1 rG2 :
@mx_rsim _ G n1 rG1 n2 rG2 -> irr_comp rG1 = irr_comp rG2.
Lemma irr_reprK i : irr_comp (irr_repr i) = i.
Lemma irr_repr'_op0 i j A :
j != i -> (A \in 'R_j)%MS -> gring_op (irr_repr i) A = 0.
Lemma op_Wedderburn_id i : gring_op (irr_repr i) 'e_i = 1%:M.
Lemma irr_comp_id (M : 'M_nG) (modM : mxmodule aG M) (iM : sG) :
mxsimple aG M -> (M <= iM)%MS -> irr_comp (submod_repr modM) = iM.
Lemma irr1_repr x : x \in G -> irr_repr 1 x = 1%:M.
Hypothesis splitG : group_splitting_field G.
Lemma rank_Wedderburn_subring i : \rank 'R_i = ('n_i ^ 2)%N.
Lemma sum_irr_degree : (\sum_i 'n_i ^ 2 = nG)%N.
Lemma irr_mx_mult i : socle_mult i = 'n_i.
Lemma mxtrace_regular :
{in G, forall x, \tr (aG x) = \sum_i \tr (socle_repr i x) *+ 'n_i}.