fact: Fixpoint subst (y : var) (e1 : term) (e2 : term) : term := match e2 with | Const n => Const n | Id x => if eq_nat_dec x y then e1 else e2 | App e e' => App (subst y e1 e) (subst y e1 e') | Abs t e => Abs t (subst (S y) e1 e) end.
imports: mathcomp(ssreflect ssrbool eqtype) Arith List String Lia QuickChick(QuickChick)