End CGConsistent.
(*s We assume that any cycle has a positive weight *)
Section CGNoBadCycles.
Variable
no_bad_cycles :
forall (x : ad) (d : D) (l : list ad),
CG_path x d (x :: l) -> Dle Dz d = true.
(*s The edges are in the domain of the graph *)

Lemma CG_path_last :
forall (l : list ad) (last : ad) (d : D),
CG_path last d l -> {l' : list ad | l = l' ++ last :: nil}.