let strongdeps ?(transitive=true) univ closure =
let size = Cudf.universe_size univ in
let graph = G.create ~size () in
Util.Progress.set_total conjbar size;
Util.Timer.start conjtimer;
let l =
List.fold_left (fun acc id ->
Util.Progress.progress conjbar;
IntPkgGraph.conjdepgraph_int ~transitive graph univ id;
id :: acc
) [] closure
in
Util.Progress.reset conjbar;
Util.Timer.stop conjtimer ();
debug "conj dep graph: nodes %d , edges %d" (G.nb_vertex graph) (G.nb_edges graph);
let g = strongdeps_int ~transitive graph univ l in
if not transitive then O.transitive_reduction g;
g