Hint Resolve mprod_hom.
Definition is_decomposable n M := exists l, decomposable n l M.

(* Specifications: *)
Lemma joinl_factor n x M : x <> 0 -> hom n 1 x ->
is_decomposable n M -> x ∨ M = 0 ->
exists k, exists l, (forall v, In v l -> hom n 1 v) /\ M = k .* joinl n (x::l).
Lemma decomposable_factor n k x M : x <> 0 -> hom n 1 x -> hom n k.+2 M ->
is_decomposable n M -> x ∨ M = 0 -> is_decomposable n (factor n x M).