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 *)

(* Specifications: *)
Lemma CG_edge_in_cg_1 :
forall (x y : ad) (d : D),
CG_edge x y = Some d -> in_FSet x (MapDom _ cg) = true.
(*s The elements of a path are in the domain of the graph extended with the last element *)
Lemma CG_path_in_cg_1 :
forall (l : list ad) (last : ad) (d : D),
CG_path last d l -> MapSubset _ _ (Elems l) (MapPut _ (MapDom _ cg) last tt).
Lemma CG_path_last :
forall (l : list ad) (last : ad) (d : D),
CG_path last d l -> {l' : list ad | l = l' ++ last :: nil}.