Ltac one_plus_x_minus_one :=
repeat rewrite one_plus_x_minus_one_left in *;
repeat rewrite one_plus_x_minus_one_right in * by omega.
(* I tried [autorewrite with ... using omega]; it does not work. *)
(* ---------------------------------------------------------------------------- *)
(* Trivial facts. *)

Lemma raw_insert_successor:
forall A x o (e : env A),
raw_insert (S x) o e =
lookup 0 e :: raw_insert x o (tail e).