(**************)
(* Singletons *)
(**************)

Definition single (b : bool) := bit b empty.(*********************)
(* Parities of words *)
(*********************)

Inductive odd : word -> Prop :=
    even_odd : forall w : word, even w -> forall b : bool, odd (bit b w)
with even : word -> Prop :=
  | even_empty : even empty
  | odd_even : forall w : word, odd w -> forall b : bool, even (bit b w).(*********************)
(* Parities of words *)
(*********************)

Inductive odd : word -> Prop :=
    even_odd : forall w : word, even w -> forall b : bool, odd (bit b w)
with even : word -> Prop :=
  | even_empty : even empty
  | odd_even : forall w : word, odd w -> forall b : bool, even (bit b w).(*********************)
(* Parities of words *)
(*********************)

Inductive odd : word -> Prop :=
    even_odd : forall w : word, even w -> forall b : bool, odd (bit b w)
with even : word -> Prop :=
  | even_empty : even empty
  | odd_even : forall w : word, odd w -> forall b : bool, even (bit b w).(*********************)
(* Parities of words *)
(*********************)

Inductive odd : word -> Prop :=
    even_odd : forall w : word, even w -> forall b : bool, odd (bit b w)
with even : word -> Prop :=
  | even_empty : even empty
  | odd_even : forall w : word, odd w -> forall b : bool, even (bit b w).(*********************)
(* Parities of words *)
(*********************)

Inductive odd : word -> Prop :=
    even_odd : forall w : word, even w -> forall b : bool, odd (bit b w)
with even : word -> Prop :=
  | even_empty : even empty
  | odd_even : forall w : word, odd w -> forall b : bool, even (bit b w).

Lemma odd_even_conc : forall u v w : word, conc u v w -> odd w /\ (odd u /\ even v \/ even u /\ odd v) \/ even w /\ (odd u /\ odd v \/ even u /\ even v).