erhaps be generalized to nat indices. *)Fact coord_is_scalar n (X : n.-tuple vT) i : scalar (coord X i).

(* Specifications: *)
Lemma seq1_free v : free [:: v] = (v != 0).
by rewrite (sameP eqP directv_addP).
Lemma catl_free Y X : free (X ++ Y) -> free X.
Lemma catr_free X Y : free (X ++ Y) -> free Y.
~~ free X = [exists i : 'I_n, X`_i
by rewrite /sumX (big_nth 0) big_mkord coord_sum_free. Qed.
Lemma span_basis U X : basis_of U X -> <<X>>%V
basis_of U X -> v \in U -> v = \sum_
Lemma basis_mem x U X : basis_of U X -> x \in X -> x \in U. Proof. by move/span_basis=> <- /memv_span. Qed.
by rewrite andbC; apply: andb_id2r => freeX; rewrite eqEdim (eqnP fr
by apply/eq_span; apply: perm_eq_mem.