let e_subst alpha x v t =
match v with
| Fol.Tvar y when (Fol.Var.equal x y) -> t (* v is equal to x *)
| (Fol.Tconst _ | Fol.Tvar _ | Fol.Tapp(_,[]))
when Wp_parameters.Simpl.get () ->
Fol.term_replace alpha x v t
| _ -> Fol.e_let x v t