Hint Extern 1 (lc_exp (abs _)) =>
  let x1 := fresh in
  pick_fresh x1;
  apply (lc_abs_exists x1).

Lemma subst_exp_lc_exp : forall e1 e2 x1, lc_exp e1 -> lc_exp e2 -> lc_exp (subst_exp e2 x1 e1).