(* Get the constant part of a vector *)
Fixpoint const (n: nat): (vect n) -> K :=
  match n return vect n -> K with 
  | O => fun a => a
  | S n1 => fun l => let (l1,l2) := l in const n1 l2
  end.Notation "'C[ x ]" := (const _ x).Notation "x ?= 0" := (eq0 _ x) (at level 70): g_scope.

Lemma add_hom n k (x y: vect n) : hom n k x -> hom n k y -> hom n k (x + y).