let subst_havoc frame a =
    let addr = zone_of_assignable (assignable a) in
    let m,_ = varmem_at frame Here in
    let v = D.fresh "v" (Vmodel(ADT("data",[]))) in
    let m' sigma =
      let m0 = D.apply sigma (F.var m) in
      F.wrap(model_update_range m0 addr (F.var v))
    in
    [D.Fresh v;D.Update(m,m')]