let assign_exp texpr lv exp p = match lv with
  | Var vi, off ->
      let exp = match exp with
        | Some _ -> 
            let v = MT.mk_cvar vi in
            let t = Ctype vi.vtype in
            MV.mk_offset_update texpr None v t exp off
        | None -> None 
      in MV.mk_let_vi vi exp p
  | Mem  _m, _off -> abort "indirect assign"