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