let transitive_reduction graph =
Util.Progress.set_total trbar (G.nb_vertex graph);
Util.Timer.start tr_timer;
G.iter_vertex (fun v ->
Util.Progress.progress trbar;
G.iter_succ (fun w ->
if not(G.V.equal v w) then
G.iter_succ (fun z ->
if not(G.V.equal w z) then
G.remove_edge graph v z
) graph w
) graph v;
) graph;
Util.Timer.stop tr_timer ();
Util.Progress.reset trbar