(*s [(ad_simple_path_dist x y)] computes the minimum path from x to y *)
Definition ad_simple_path_dist (x y : ad) :=
  ad_simple_path_dist_1 x y nil (MapCard _ cg).

Lemma ad_simple_path_dist_complete_2 : forall (x y : ad) (d : D), ad_simple_path_dist x y = Some d -> {l : list ad & CG_path y d (x :: l)}.