proposition: Lemma subst_exp_intro : forall x1 e1 e2, x1 `notin` fv_exp e1 -> open_exp_wrt_exp e1 e2 = subst_exp e2 x1 (open_exp_wrt_exp e1 (var_f x1)).
proof: Proof. unfold open_exp_wrt_exp; default_simp. Qed.
imports: Coq.Logic.FunctionalExtensionality Coq.Program.Equality Metalib.Metatheory Metalib.LibLNgen Stlc