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 *)
(*s The length of a path without repetition is less than the cardinal of the map representing the graph *)
Inductive and_sp (A : Set) (B : Prop) : Set :=
conj_sp : A -> B -> and_sp A B.
(*s Given a path, one may find a shortest path withour repetition *)

Lemma CG_path_app_4 :
forall (l1 l2 : list ad) (last x : ad) (d : D),
CG_path last d (l1 ++ x :: l2) ->
{d1 : D &
{d2 : D &
and_sp (CG_path x d1 (l1 ++ x :: nil) * CG_path last d2 (x :: l2))
(d = Dplus d2 d1)}}.