(* paired_odd_r b w == w = [b1 ~b1 b2 ~b2 ... bn ~bn ~b] *)
Definition paired_odd_r (b : bool) (w : word) := paired (append w (single b)).
(* paired_rot b w == w = [b b2 ~b2 ... bn ~bn ~b] *)
Inductive paired_rot : bool -> word -> Prop :=
| paired_rot_empty : forall b : bool, paired_rot b empty
| paired_rot_bit :
forall (b : bool) (w : word),
paired_odd_r b w -> paired_rot b (bit b w).

Lemma paired_odd_r_from_rot :
forall (w : word) (b : bool),
paired_rot b w -> paired_odd_r b (bit (negb b) w).