(*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_3 :
forall (x y : ad) (dd : option D),
(forall (l : list ad) (d : D),
CG_path y d (x :: l) -> Ddle dd (Some d) = true) ->
Ddle dd (ad_simple_path_dist x y) = true.