fact: Fixpoint close_exp_wrt_exp_rec (n1 : nat) (x1 : var) (e1 : exp) {struct e1} : exp := match e1 with | abs e2 => abs (close_exp_wrt_exp_rec (S n1) x1 e2) | var_f x2 => if (x1 == x2) then (var_b n1) else (var_f x2) | var_b n2 => if (lt_ge_dec n2 n1) then (var_b n2) else (var_b (S n2)) | app e2 e3 => app (close_exp_wrt_exp_rec n1 x1 e2) (close_exp_wrt_exp_rec n1 x1 e3) end.
imports: Coq.Logic.FunctionalExtensionality Coq.Program.Equality Metalib.Metatheory Metalib.LibLNgen Stlc.Definitions