let subst_lval m obj loc v wp =
match loc with
| Mloc l -> M.subst_lval m.mem obj l (mvalue_of_value v) wp
| Path ph | PRef ph | PRpar (ph,_)| ARef ph ->
store m ph v false wp
| ARpar (ph,_) -> store m ph v true wp