(* Base of k vector *)
Fixpoint base (n: nat) k:list (vect n) :=
match n return list (vect n) with
| O =>  match k with | O => 1%f::nil | _ => nil end
| S n1 =>
match k with | O =>
map (lift n1) (base n1 k) | S k1 =>
(map (dlift n1) (base n1 k1) ++
map (lift n1) (base n1 k))%list
end
end.

(* An element of the base is a generator *)
Lemma e_in_base1_ex n v :
In v (base n 1) -> exists p1, p1 < n /\ v = 'e_p1.