let quantify_effects _stmt stmts pred =
let effects =
List.fold_left
(fun acc s ->
Locations.Zone.join acc
(Cilutil.out_some (Db.Outputs.kinstr (Kstmt s))))
Locations.Zone.bottom
stmts
in
if Locations.Zone.equal effects Locations.Zone.bottom then
pred (*no effects: do not quantify *)
else (*at least one effect: quantify over "mem"*)
Fol.forall_pred M.prop_in_data ~fresh:true
(Lazy.force M.cur_mem_var) pred