proposition: Lemma fv_exp_subst_exp_upper : forall e1 e2 x1, fv_exp (subst_exp e2 x1 e1) [<=] fv_exp e2 `union` remove x1 (fv_exp e1).
proof: Proof. intros. induction e1; simpl in *. - fsetdec. - destruct (x == x1); simpl; fsetdec. - rewrite IHe1. fsetdec. - rewrite IHe1_1. rewrite IHe1_2. fsetdec. Qed.
imports: Metalib.Metatheory Stlc.Definitions String