Inductive alternate (w : word) : Prop :=
alter : forall b : bool, alt b w -> alternate w.
(* (alternate w) iff Exists b  (alt b w)  *)
(*********************************************)
(* Subwords of alternate words are alternate *)
(*********************************************)

(* Specifications: *)
Lemma alt_conc_l :
forall u v w : word, conc u v w -> forall b : bool, alt b w -> alt b u.
Lemma alt_conc_r :
forall u v w : word,
conc u v w ->
forall b : bool, alt b w -> odd u /\ alt (negb b) v \/ even u /\ alt b v.
Lemma alt_conc :
forall u v w : word, conc u v w -> alternate w -> alternate u /\ alternate v.