Section more_about_words.
Variable f : Elt -> Elt.
Let wef := Word_ext f.
(* Lemma wef_cons : (a:Elt)(u:Word)(wef (cons a u))=(cons (f a) (wef u)). Proof [a:Elt][u:Word](refl_equal Word (wef (cons a u))). *)
intros u v.
elim u.
trivial.
unfold wef in |- *.
intros x w H.
simpl in |- *.
rewrite <- H.
reflexivity.
Qed.
intro a.
case a.
auto.
unfold wef in |- *; simpl in |- *; intros x w H; discriminate H.
Qed.
intros a b e.
unfold wef in |- *.
case b.
simpl in |- *; intro H; discriminate H.
simpl in |- *; intros x w H.
exists x.
exists w.
trivial.
injection H; auto.
Qed.
End more_about_words.
Hint Resolve wef_cons.

Lemma Append_assoc :
forall a b c : Word, Append a (Append b c) = Append (Append a b) c.