Definition fun_consaw_a (w : Word) : Elt :=
  match w return Elt with
  | nil =>
      (* nil  *)  zero
      (* cons *) 
  | cons a w' => a
  end.Definition fun_consaw_w (w : Word) : Word :=
  match w return Word with
  | nil =>
      (* nil  *)  nil
      (* cons *) 
  | cons a w' => w'
  end.

Lemma nil_or_cons : forall w : Word, w = nil \/ (exists x : Elt, (exists w0 : Word, w = cons x w0)).