(* Coordinates for k vector *)
Fixpoint proj (n: nat) k : (kn n) -> K :=
  match n return kn n -> K with 
  | O => fun _ => 0%f
  | S n1 => fun l => let (a,l1) := l in 
          match k with | O => a | S k1 => 
           proj n1 k1 l1
          end
  end.

(* Specifications: *)
Lemma proj0 n i : proj n i 0 = 0%f.
Lemma proj_add n i x y : proj n i (x + y) = (proj n i x + proj n i y)%f.