(*									*)
(*  Concatenation de 2 mots : 						*)
(*    (Append w1 w2) est la concatenation de w1 et w2			*)
(*    (append w1 w2 w3) est la proposition "w3 est la conc.de w1 et w2"	*)
(*									*)

(*
Fixpoint Append [w1:Word] : Word -> Word :=
  [w2:Word]
    (<Word>Case w1 of
	(* nil  *) w2
	(* cons *) [a:Elt][w3:Word](cons a (Append w3 w2))
    end ).
*)
Fixpoint Append (w1 : Word) : Word -> Word :=
  fun w2 : Word =>
  match w1 with
  | nil => w2
  | cons a w3 => cons a (Append w3 w2)
  end.

(* Specifications: *)
Lemma Append_w_nil : forall w : Word, Append w nil = w :>Word.