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