let forall_pred prop_in_data ~fresh v p = 
  if p = Ptrue then Ptrue
  else if nb_var_in_pred prop_in_data v p > 0 then 
    (* TODOopt : do only one visit *)
    let v, p = if fresh then fresh_var_in_pred prop_in_data v p else v, p in
      Pforall (v, p)
  else p