(** *** Exercise [fv_exp_open_exp_wrt_exp_upper] *)
(** Now prove the following lemmas about the free variables of an opened term.  The structure of this proof follows that of the proof above. You should prove this by induction on the term [e1], after appropriately generalizing the induction hypothesis. Remember to use [fsetdec] for reasoning about properties of atom sets. Also note that you can [rewrite] with atom set inequalities in the hypotheses list. *)

(* Specifications: *)
Lemma fv_exp_open_exp_wrt_exp_upper :
forall e1 e2,
fv_exp (open_exp_wrt_exp e1 e2) [<=] fv_exp e2 `union` fv_exp e1.