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