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