(*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_1_complete :
forall (n : nat) (x y : ad) (d : D),
ad_simple_path_dist_1 x y nil n = Some d ->
{l : list ad &
and_sp (CG_path y d (x :: l)) (ad_list_stutters (x :: l) = false)}.