let fresh_vars_in_pred vars p = let do_var (vars, p) v = let v' = Var.fresh_var v in let p = subst_in_pred v (e_var v') p in v'::vars, p in List.fold_left do_var ([], p) vars