Hint Resolve subst_exp_fresh_same : lngen.
(* begin hide *)

(* Specifications: *)
Lemma subst_exp_fresh_mutual :
(forall e2 e1 x1 x2,
x1 `notin` fv_exp e2 ->
x1 `notin` fv_exp e1 ->
x1 `notin` fv_exp (subst_exp e1 x2 e2)).
Lemma subst_exp_fresh_mutual :
(forall e2 e1 x1 x2,
x1 `notin` fv_exp e2 ->
x1 `notin` fv_exp e1 ->
x1 `notin` fv_exp (subst_exp e1 x2 e2)).