(* Lift a vector of dimension n into a vector of dimension n+1 whose first component is 0 *)
Definition lift (n: nat) (v: kn n) : (kn (S n)) :=  (0%f, v).

Lemma lift0 n : lift n 0 = 0.
Fixpoint base (n : nat) : list (kn n) :=
match n return list (kn n) with
| 0 => nil
| S n1 => ('e_0: kn (S n1)) :: map (lift n1) (base n1)
end.