let mk_let ~fresh v exp p = match exp with
    | Fol.Tdata E0addr _ ->  
        Fol.subst_in_pred prop_in_data v exp p
    | _ -> 
        Wp_parameters.debug ~level:3 "mk_let : %a <- %a (%s fresh )@." 
          Why_output.pp_var v pp_exp0 exp (if fresh then "" else "no");
        Fol.let_pred prop_in_data ~fresh v exp p