let do_exists xs p = if F.pred_has_var xs p then let ys = List.filter (fun y -> F.pred_has_var [y] p) xs in if ys = [] then p else F.p_exists ys (guards_with F.p_and p ys) else p