let assign_exp lv e p =
try
let ty = Ctype (Cil.typeOfLval lv) in
let new_mem = M.mem_update (Lazy.force MV.cur_mem) ty (lval_addr lv) e in
Fol.let_pred M.prop_in_data ~fresh:true
(Lazy.force MV.cur_mem_var) new_mem p
with Calculus.InvalidModel msg -> MV.abort msg