(* M is decomposable and l is its decomposition *)
Definition decomposable n l M := is_vector_space n l /\ M = joinl n l.

(* Specifications: *)
Lemma hom1_decomposable n x : hom n 1 x -> decomposable n (x::nil) x.
Lemma decomp_hom n (l: list (vect n)) M : decomposable n l M -> hom n (length l) M.