let at_most_one_path (states,transitions as auto) st1 st2 =
try
let path,_ = dijkstra (voisins auto) st1 st2 in
match path with
| [] | [ _ ] -> true
| x::y::_ ->
let (trans1,trans2) =
List.partition
(fun t -> t.start.nums = x.nums && t.stop.nums = y.nums)
transitions
in
let transitions = (List.tl trans1) @ trans2 in
let auto = states, transitions in
ignore (dijkstra (voisins auto) st1 st2);
false
with Not_found -> true