intros F n.
red in |- *.
intros c c' v.
simpl in |- *.
red in |- *.
intro i.
simpl in |- *.
apply RING_dist_l.
Qed.
Definition Fn_mod (F : ring) (n : Nat) : MODULE F :=
Build_module
(Build_module_on (Fn_scmult_l_lin (F:=F) (n:=n))
(Fn_scmult_r_lin (F:=F) (n:=n))).
Definition Fn (F : field) (n : Nat) : VECSP F := Fn_mod F n:vectorspace F.
End Fn_vectors.
(** - Defining the standard basis vectors needs a generalised Kronecker since 0 and 1 from [nat] cannot be used in $F$ *)
Section Basis_vectors.
Fixpoint Kronecker (A : Setoid) (t f : A) (n m : Nat) {struct m} : A :=
match n, m with
| O, O => t
| S n', O => f
| O, S m' => f
| S n', S m' => Kronecker t f n' m'
end.

(* Specifications: *)
Lemma Kronecker_case_equal :
forall (A : Setoid) (t f : A) (n m : Nat),
n =' m in _ -> Kronecker t f n m =' t in _.