let rec remove_deps deps confl =
  let changed = ref false in
  let deps =
    PTbl.mapi (fun p f ->
       Formula.filter (fun d ->
         let b =
           not (maybe_remove deps confl p f d) || is_composition deps p f d
         in
         if not b then changed := true;
         b
       ) f
    ) deps
  in
  if !changed then
    remove_deps deps confl
  else deps