let assigns_goal m1 region m2 =
let zones =
match region with
| [] -> dzone_empty ()
| [a] -> dzone_assigned m1 a
| a::others ->
List.fold_left
(fun dz a ->
dzone_union dz (dzone_assigned m1 a)
) (dzone_assigned m1 a) others
in
RtLib.is_havoc (F.var m1.valloc) (F.var m1.vbits) zones (F.var m2.vbits)