let transitive_reduction graph =
Util.Timer.start tr_timer;
G.iter_vertex (fun v ->
List.iter (fun v' ->
if v <> v' then
List.iter (fun v'' ->
if v' <> v'' then
G.remove_edge graph v v''
) (G.succ graph v')
) (G.succ graph v);
) graph;
Util.Timer.stop tr_timer ()