let nb_var_in_pred prop_in_data v p =
  let nb_occ = ref 0 in
  let do_var () var = if eq_var v var then nb_occ := !nb_occ + 1 in
  let rec do_exp () e = fold_data_in_exp do_var do_data () e 
  and do_data () d = ignore (prop_in_data (fun e -> do_exp () e; e) d) in
  let _ = fold_exp_in_pred do_exp () p in
    !nb_occ