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_havoc m0 addr (F.var v))
in
[D.Fresh v;D.Update(m,m')]