(*s Definition of simple paths : paths without repetition *)
Definition CG_simple_path (last : ad) (d : D) (l : list ad) :=
and_sp (CG_path last d l) (ad_list_stutters l = false).

(* Specifications: *)
(*s Between two vertexes, there exists a simple path or there exists no path *)
Lemma ad_simple_path_dec :
forall x y : ad,
{l : list ad &  {d : D &  CG_simple_path y d (x :: l)}} +
{(forall (l : list ad) (d : D), CG_simple_path y d (x :: l) -> False)}.