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