(* A specialized version of eauto that only uses the most common
   lc lemmas to cut down the search space. *)
Ltac eauto_lc := simpl; eauto using AnnTyping_lc1, Value_lc,
                        AnnDefEq_lc3, AnnPropWff_lc.

Lemma head_reduction_in_one : forall G a b, head_reduction G a b -> forall A, AnnTyping G a A -> reduction_in_one (erase a) (erase b) \/ erase a = erase b.