(* ---------------------------------------------------------------------------- *)
(* This internal tactic helps prove goals by examination of all cases. *)
Ltac just_do_it :=
unfold subst, Subst_idx, subst_idx, lift, Lift_idx, var, Var_idx;
intros; solve [ dblib_by_cases; eauto with f_equal omega ].
(* The following two lemmas re-state the definition of [lift] at type [nat]. *)

(* Specifications: *)
Lemma lift_idx_recent:
forall w k x,
k > x ->
lift w k x = x.
Lemma lift_idx_old:
forall w k x,
k <= x ->
lift w k x = w + x.