(* Completely reducible modules, and Maeschke's Theorem. *)
Definition mx_completely_reducible V :=
forall U, mxmodule U -> (U <= V)%MS -> mxsplits V U.

Lemma hom_mxsemisimple_iso I P U W f :
let V := (\sum_(i : I |  P i) W i)%MS in
mxsimple U -> (forall i, P i -> W i != 0 -> mxsimple (W i)) ->
(V <= dom_hom_mx f)%MS -> (U <= V *m f)%MS ->
{i | P i & mx_iso (W i) U}.